HomeLập trình pascal

Hướng dẫn giải đề thi HSG môn tin học 9 huyện Mỹ Xuyên – Năm học 2012- 2013

Like Tweet Pin it Share Share Email
Like và share giúp mình phát triển website nhé.
  •  
  •  

Trong đề thi HSG môn tin học 9 huyện Mỹ Xuyên – Năm học 2012- 2013 có 3 câu như sau:

Câu 1: Viết chương trình nhập từ bàn phím N số nguyên, in ra số nhỏ nhất và số lớn nhất trong dãy số vừa nhập.

Câu 2: Người ta gọi a/b với a,b thuộc Z, b khác 0 là một phân số, hãy mô tả kiểu dữ liệu đối với phân số và viết chương trình cho phép nhập vào hai phân số, thực hiện các phép tính liên quan đến phân số như: Nhân, chia, nghịch đảo phân số.

Câu 3: Trong soạn thảo văn bản, quy định khoảng cách giữa các từ là một ký tự trắng, các dấu chấm, dấu phẩy, dấu chấm phẩy phải đi liền với chữ trước nó, sau dấu chấm, dấu phẩy, dấu chấm phẩy thì có một ký tự trắng.

Trong một đoạn văn nếu không tính tới các lỗi sai về chính tả mà chỉ tính các lỗi sai nêu trên. Hãy viết chương trình nhập từ bàn phím một đoạn văn có lỗi với độ dài không quá 255 ký tự và sửa lỗi đó.

Ví dụ:  

Nhập vào: que      huong                   la chum khe                   ngot   .

Xuất ra: que huong la chum khe ngot.

Hướng dẫn giải đề thi HSG môn tin học 9 huyện Mỹ Xuyên 1213

Câu 1: Câu này dễ bạn có thể tham khảo bài viết tìm max, min của mảng một chiều

Câu 2:

Phân tích bài toán

Tất nhiên kiểu dữ liệu phân số là kiểu số thực rồi

Đây là bài toán cũng đơn giản nhưng cũng có nhiều điểm lý thú chúng ta có thể thực hiện như sau:

1) Khai báo 4 biến a1, b1, a2, b2 kiểu số nguyên ứng với 2 phân số a1/b1 và a2/b2, biến “dau” dùng để xác định dấu của kết quả, ta chú ý rằng nếu tích cả 4 biến a1, b1, a2, b2 âm thì kết quả mang dấu âm và ngược lại.

2) Các bạn chú ý rằng khi nhân chia cái quan trọng là phải rút gọn kết quả, vì vậy ta phải viết một chương trình con tìm ước chung lớn nhất để phục vụ việc rút gọn phân số.

Tích của a1/b1 và a2/b2 sau khi rút gọn sẽ là

Nhưng các bạn chú ý khi xuất dữ liệu nếu các bạn dùng phép chia (/) như hình trên thì dữ liệu sẽ xuất ra kiểu số thực vì vậy bạn nên thay phép chia trên bằng phép toán Div (chia lấy phần nguyên) các bạn yên tâm nó luôn chia hết nhé vì nó là UCLN mà.

Tương tự các bạn tính thương cũng nhớ phải rút gọn.

Chương trình dưới đây mình chưa rút gọn phân số nghịch đảo (nhỡ người dùng nhập vào phân số chưa rút gọn) và chưa xử lý các trường hợp phân số bằng 0 hay có mẫu bằng 0, các bạn tự bổ sung

Chương trình viết bằng Free Pascal cho các bạn tham khảo

Câu 3: Chương trình này mình đã hướng dẫn trong bài: Xóa kí tự trắng thừa trong xâu kí tự tuy nhiên bạn cần thêm xử lý các dấu cho đúng nữa.

Comments (0)

Trả lời

Your email address will not be published. Required fields are marked *