ON HSG
Chia sẻ bởi Tạ Tuấn |
Ngày 25/04/2019 |
38
Chia sẻ tài liệu: ON HSG thuộc Tin học 12
Nội dung tài liệu:
MỘT SỐ BÀI TẬP ÔN THI HỌC SINH GIỎI
Bài số 1. Dấu các phép tính
Cho biểu thức sau: ((((a1 ? a2) ? a3) ? a4) ? a5) ? a6 = n
Viết chương trình tìm tất cả các cách thay thế các dấu ? bởi các phép tính +, -, *, / để thoả mãn biểu thức trên. Với n bất kỳ nhập từ bàn phím.
Dữ liệu vào: Vào từ File văn bản B3in.txt có cấu trúc như sau:
- Dòng đầu tiên ghi giá trị n
- Dòng thứ hai ghi các số a1, a2, a3, a4, a5, a6
Dữ liệu ra: Ghi ra file văn bản B3out.txt các cách thay thế các dấu ? bởi các phép tính +, -, *, / để thoả mãn biểu thức trên. Ví dụ:
B3in.txt
B3out.txt
1.25
18
6
6
3
3
4
Thay dau ? boi cac dau +,-,*,/.
De thoa man ((((18.00?6.00)?6.00)?3.00)?3.00)?4.00=1.25
Cac phep toan thoa man la:
(((18.00+6.00)-6.00)-3.00)/3.00)/4.00)=1.25
(((18.00-6.00)+6.00)-3.00)/3.00)/4.00)=1.25
(((18.00-6.00)-6.00)/3.00)+3.00)/4.00)=1.25
(((18.00*6.00)/6.00)-3.00)/3.00)/4.00)=1.25
(((18.00/6.00)*6.00)-3.00)/3.00)/4.00)=1.25
Chương trình tham khảo
Uses Crt; Const Dau : Array[1..4] Of Char = (`+`, `-`, `*`, `/`); Var i, j, k, l, m, dem : Integer; a : Array[1..7] Of Real; Procedure Input; Var t : Integer; Begin Writeln(`Chuong trinh dien phep toan vao dau "?"`); Writeln(`(((((a1?a2)?a3)?a4)?a5)?a6) = a7`); For t := 1 To 7 Do Begin Write(`a`,t,`=`); Readln(a[t]); End; Writeln; End; Procedure Print; Var t : Integer; Begin Inc(Dem); Write(`(((((`,a[1]:0:0,dau[i],a[2]:0:0,`)`); Write(Dau[j],a[3]:0:0,`)`,dau[k],a[4]:0:0,`)`); Write(Dau[l],a[5]:0:0,`)`,dau[m],a[6]:0:0,`)`); Writeln(`=`,a[7]:0:0); End; Function F(x, y : Real; d : Integer) : Real; Begin Case d Of 1: F := x + y; 2: F := x - y; 3: F := x * y; 4: F := x / y; End; End; Procedure Process; Var t : Integer; Begin Writeln(`Ket qua: `); Dem := 0; For i := 1 To 4 Do For j := 1 To 4 Do For k := 1 To 4 Do For l := 1 To 4 Do For m := 1 To 4 Do If F(F(F(F(F(a[1],a[2],i),a[3],j),a[4],k),a[5],l),a[6],m)=a[7] Then Print; If Dem = 0 Then Writeln(`Vo nghiem`) Else Writeln(`Co tat ca `,dem,` nghiem`); End; Begin Clrscr; Input; Process; Readln; End.
Bài số 2. Viết chương trình tính điểm trung bình 3 môn Toán, Lý , Hoá theo hệ số 2,1,1 sau đó xếp loại như sau:
Loại Giỏi : ĐTB >= 8.0 và không có môn nào dưới 6,5
Loại Khá : 6.5=<ĐTB < 8.0 và không có môn nào dưới 5
Loại Trung bình : 5.0 =<ĐTB < 6.5 và không có môn nào dưới 3.5
Loại Yếu : Còn
Bài số 1. Dấu các phép tính
Cho biểu thức sau: ((((a1 ? a2) ? a3) ? a4) ? a5) ? a6 = n
Viết chương trình tìm tất cả các cách thay thế các dấu ? bởi các phép tính +, -, *, / để thoả mãn biểu thức trên. Với n bất kỳ nhập từ bàn phím.
Dữ liệu vào: Vào từ File văn bản B3in.txt có cấu trúc như sau:
- Dòng đầu tiên ghi giá trị n
- Dòng thứ hai ghi các số a1, a2, a3, a4, a5, a6
Dữ liệu ra: Ghi ra file văn bản B3out.txt các cách thay thế các dấu ? bởi các phép tính +, -, *, / để thoả mãn biểu thức trên. Ví dụ:
B3in.txt
B3out.txt
1.25
18
6
6
3
3
4
Thay dau ? boi cac dau +,-,*,/.
De thoa man ((((18.00?6.00)?6.00)?3.00)?3.00)?4.00=1.25
Cac phep toan thoa man la:
(((18.00+6.00)-6.00)-3.00)/3.00)/4.00)=1.25
(((18.00-6.00)+6.00)-3.00)/3.00)/4.00)=1.25
(((18.00-6.00)-6.00)/3.00)+3.00)/4.00)=1.25
(((18.00*6.00)/6.00)-3.00)/3.00)/4.00)=1.25
(((18.00/6.00)*6.00)-3.00)/3.00)/4.00)=1.25
Chương trình tham khảo
Uses Crt; Const Dau : Array[1..4] Of Char = (`+`, `-`, `*`, `/`); Var i, j, k, l, m, dem : Integer; a : Array[1..7] Of Real; Procedure Input; Var t : Integer; Begin Writeln(`Chuong trinh dien phep toan vao dau "?"`); Writeln(`(((((a1?a2)?a3)?a4)?a5)?a6) = a7`); For t := 1 To 7 Do Begin Write(`a`,t,`=`); Readln(a[t]); End; Writeln; End; Procedure Print; Var t : Integer; Begin Inc(Dem); Write(`(((((`,a[1]:0:0,dau[i],a[2]:0:0,`)`); Write(Dau[j],a[3]:0:0,`)`,dau[k],a[4]:0:0,`)`); Write(Dau[l],a[5]:0:0,`)`,dau[m],a[6]:0:0,`)`); Writeln(`=`,a[7]:0:0); End; Function F(x, y : Real; d : Integer) : Real; Begin Case d Of 1: F := x + y; 2: F := x - y; 3: F := x * y; 4: F := x / y; End; End; Procedure Process; Var t : Integer; Begin Writeln(`Ket qua: `); Dem := 0; For i := 1 To 4 Do For j := 1 To 4 Do For k := 1 To 4 Do For l := 1 To 4 Do For m := 1 To 4 Do If F(F(F(F(F(a[1],a[2],i),a[3],j),a[4],k),a[5],l),a[6],m)=a[7] Then Print; If Dem = 0 Then Writeln(`Vo nghiem`) Else Writeln(`Co tat ca `,dem,` nghiem`); End; Begin Clrscr; Input; Process; Readln; End.
Bài số 2. Viết chương trình tính điểm trung bình 3 môn Toán, Lý , Hoá theo hệ số 2,1,1 sau đó xếp loại như sau:
Loại Giỏi : ĐTB >= 8.0 và không có môn nào dưới 6,5
Loại Khá : 6.5=<ĐTB < 8.0 và không có môn nào dưới 5
Loại Trung bình : 5.0 =<ĐTB < 6.5 và không có môn nào dưới 3.5
Loại Yếu : Còn
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Tạ Tuấn
Dung lượng: |
Lượt tài: 2
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)