Giải Bài Tập Tin Học 11 – Bài tập và thực hành 1 giúp HS giải bài tập, giúp cho các em hình thành và phát triển năng lực sử dụng công nghệ thông tin và truyền thông:
Xem thêm các sách tham khảo liên quan:
- Sách Giáo Viên Tin Học Lớp 11
1. Mục đích, yêu cầu.
+ Giới thiệu một chương trình Pascal hoàn chỉnh đơn giản.
+ Làm quen với một số dịch vụ cơ bản của Turbo Pascal hoặc Free Pascal trong việc soạn thảo, lưu trữ, dịch và thực hiện chương trình.
2. Nội dung
a] Gõ chương trình sau:
program Giai_PTB2; uses crt; var a,b,c,D: real; x1,x2:real; begin clrscr; write[‘a,b,c:’]; readln[a,b,c]; x1:=[-b-sqrt[b*b-4*a*c]]/[2*a]; X2:=-b/a-x1; Write[‘x1=’,x1:6:2,’x2=’,x2:6:2]; readln end.b] Nhấn phím F2 và lưu chương trình với tên là hello1.pas lên đĩa.
c] Nhấn tổ hợp phím Alt+F9 để dịch và sửa lỗi cú pháp [nếu có].
Nếu thành công sẽ hiện Compile successful như hình trên.
Nếu thất bạn sẽ thông báo Compile failed
d] Nhấn tổ hợp phím Ctrl+F9 để thực hiện chương trình.Nhập các giá trị 1;-3,2 .Quan sát kết quả trên màn hình.
e] Nhấn tổ hợp phím Ctrl+F9 để thực hiện chương trình.Nhập các giá trị 1;0,-2 . Quan sát kết quả trên màn hình.
f] Thực hiện chương trình trên mà không dung biến trung gian D.
Cách làm: những chỗ nào sử dụng biến trung gian D ta thay thẳng giá trị b*b-4*a*c vào.
program Giai_PTB2; uses crt; var a,b,c,D: real; x1,x2:real; begin clrscr; write[‘a,b,c:’]; readln[a,b,c]; x1:=[-b-sqrt[b*b-4*a*c]]/[2*a]; X2:=-b/a-x1; Write[‘x1=’,x1:6:2,’x2=’,x2:6:2]; readln end.g] Sửa lại chương trình nhận được ở câu c] bằng cách thay đổi công thức tính x2[Có 2 cách để tính x2]
Cách làm: ta có a*2=a+a
Như vậy ta sẽ thay 2*a=a+a vẫn sẽ cho cùng kết quả.
program Giai_PTB2; uses crt; var a,b,c,D: real; x1,x2:real; begin clrscr; write[‘a,b,c:’]; readln[a,b,c]; x1:=[-b-sqrt[b*b-4*a*c]]/[a+a]; X2:=-b/a-x1; Write[‘x1=’,x1:6:2,’x2=’,x2:6:2]; readln end.h] Thực hiện chương trình đã sửa với bộ dữ liệu 1; 5; -6. Quan sát kết quả trên màn hình.
i]Thực hiện chương trình với bộ dữ liệu 1;1;1 và quan sát kết quả trên màn hình.
Lỗi vì khi ta tính b*b-4*a*c với a=b=c=1 thì giá trị này sẽ là 1-4=-3
Mà không thể lấy căn bậc 2 của số âm nên chương trình này gây lỗi.
-
Luyện tập soạn thảo, chỉnh sửa chương trình, biên dịch, chạy và xem kết quả hoạt động của chương trình trong môi trường Turbo Pascal.
-
Thực hành với các biểu thức số học trong chương trình Pascal.
Hoạt động 1: Luyện gõ các biểu thức số học trong môi trường Pascal.
a] Viết các biểu thức sau dưới dạng biểu thức trong Pascal.
a. \[15 \times4 – 30+12 ;\]
b. \[\frac{15 + 5 }{3+1}-\frac{18}{5+1};\]
c. \[\frac{[10+2]^{2}}{[3+1]};\]
d. \[\frac{[10+2]^{2}-24}{[3+1]};\]
Lưu ý: chỉ sử dụng dấu ngoặc đơn để nhóm các phép toán.
b] Khởi động Pascal và gõ chương trình sau để tính các biểu thức trên.
Begin
writeln [’15*4 – 30 + 12 = ‘, 15*4-30+12];
writeln [‘[10+5]/[3+1]-18/[5+1] = ‘, [10+5]/[3+1]-18/[5+1]];
writeln [‘[10+2]*[10+2]/[3+6] = ‘ , [10+2]*[10+2]/[3+6]];
End.
Lưu ý: Các biểu thức Pascal được đặt trong câu lệnh writeln để in ra kết quả. Em sẽ có cách viết khác sau khi làm quen với khái niệm biến ở bài 4.
c] Lưu chương trình với tên CT2.pas. Dịch, chạy chương trình và kiểm tra kết quả nhận được trên màn hình.
Hướng dẫn giải:
a] Viết các biểu thức trên dưới dạng biểu thức trong Pascal:
a. = 15*4 – 30 + 12 => Câu lệnh: Writeln[’15*4-30+12= ‘, 15*4-30+12];
b. = [10+5]/[3+1]-18/[5+1] => Câu lệnh: Writeln[‘[10+5]/[3+1] – 18/[5+1]= ‘,[10+5]/[3+1] – 18/[5+1]];
c. = [10+2]*[10+2]/[3+6] => Câu lệnh: Writeln[‘[10+2]*[10+2]/[3+1]= ‘, [10+2]*[10+2]/[3+1]];
d. = [[10+2]*[10+2]-24]/[3+1] => Câu lệnh: Writeln[‘[[10+2]*[10+2]-24]/[3+1]= ‘, [[10+2]*[10+2]-24]/[3+1]];
b] Khởi động Pascal và gõ chương trình mẫu ở trên:
Để khởi động Pascal, các em thực hiện một trong hai cách sau:
-
Cách 1: Nháy đúp chuột vào biểu tượng Turbo Pascal trên màn hình nền.
-
Cách 2: Nháy đúp chuột vào tên tệp Turbo. Exe trong thư mục chứa tệp này [thường là thư mục con TP\BIN].
Trước khi gõ chương trình mẫu, các em thực hiện: Vào bảng chọn File, chọn New để mở cửa sổ mới và bắt đầu soạn thảo chương trình.
c] Lưu chương trình với tên CT2.pas, dịch, chạy chương trình và kiểm tra kết quả nhận được trên màn hình.
-
Lưu chương trình:
-
Cách 1: Nhấn F2.
-
Cách 2: Chọn File/ Save, hộp thoại hiện ra gõ tên cần lưu trong ô Name gõ tên CT2, chọn OK hoặc nhấn Enter.
-
-
Dịch chương trình: Nhấn tổ hợp phím Alt+F9.
-
Chạy chương trình: Nhấn tổ hợp phím Ctrl+F9.
-
Kiểm tra kết quả: Nhấn tổ hợp phím Alt+F5
Hoạt động 2: Tìm hiểu các phép chia lấy phần nguyên, chia lấy phần dư với số nguyên. Sử dụng các câu lệnh tạm ngừng chương trình.
a] Mở tệp mới và gõ chương trình sau:
Uses crt;
Begin
clrscr;
writeln [’16/3 = ‘ , 16/3];
writeln [’16 div 3 = ‘ , 16 div 3];
writeln [’16 mod 3 = ‘ , 16 mod 3];
writeln [’16 mod 3 = ‘ , 16 – [16 div 3]*3];
writeln [’16 div 3 = ‘ , [16-[16 mod 3]]/3];
End.
b] Dịch, chạy chương trình. Quan sát các kết quả nhận được và cho nhận xét về các kết quả đó.
c] Thêm các câu lệnh tạm dừng màn hình sau mỗi câu lệnh writeln để xem kết quả.
d] Thêm câu lệnh Readln vào trước từ khóa end, chạy và kiểm tra kết quả hoạt động của chương trình.
Hướng dẫn giải:
a] Mở tệp mới và gõ chương trình mẫu: Tương tự câu b Bài 1 ở trên.
b] Dịch, chạy chương trình và kiểm tra kết quả: Tương tự câu c Bài 1 ở trên.
Nhận xét kết quả:
writeln [’16/3 = ‘ , 16/3] => Kết quả = 5.333333333…
writeln [’16 div 3 = ‘ , 16 div 3] => Kết quả = 5;
writeln [’16 mod 3 = ‘ , 16 mod 3] => Kết quả = 1;
writeln [’16 mod 3 = ‘ , 16 – [16 div 3]*3] => Kết quả = 1;
writeln [’16 div 3 = ‘ , [16-[16 mod 3]]/3] => Kết quả = 5.
DIV: phép chia lấy phần nguyên;
MOD: phép chia lấy phần dư.
c] Thêm các câu lệnh tạm dừng màn hình sau mỗi câu lệnh writeln
Uses Crt;
Begin
Clrscr;
Writeln [‘16/3=’,16/3]; Delay[5000];
Writeln [’16 div 3 =’,16 div 3]; Delay[5000];
Writeln [’16 mod 3 =’, 16 mod 3]; Delay[5000];
Writeln [’16 mod 3 =’,16-[16 div 3]*3]; Delay[5000];
Writeln [’16 div 3 =’,[16-[16 mod 3]]/3]; Delay[5000];
End.
Nhận xét: Lệnh Delay[5000]: tạm ngừng chương trình trong 5000 phần nghìn giây, sau đó chạy tiếp.
d] Thêm câu lệnh Readln vào trước từ khóa end
Uses Crt;
Begin
Clrscr;
Writeln [‘16/3=’,16/3];
Writeln [’16 div 3 =’,16 div 3];
Writeln [’16 mod 3 =’, 16 mod 3];
Writeln [’16 mod 3 =’,16-[16 div 3]*3];
Writeln [’16 div 3 =’,[16-[16 mod 3]]/3];
Readln
End.
Hoạt động 3: Tìm hiểu thêm về cách in dữ liệu ra màn hình.
Mở tệp CT2.pas và sửa 3 dòng lệnh cuối [trước từ khóa end] như bên dưới. Sau đó dịch, chạy lại chương trình xem kết quả.
writeln [’15*4 – 30 + 12 = ‘ , 15*4-30+12 : 4 : 2];
writeln [‘[10+5]/[3+1]-18/[5+1] = ‘ , [10+5]/[3+1]-18/[5+1] :4 : 2];
writeln [‘[10+2]*[10+2]/[3+6] = ‘ , [10+2]*[10+2]/[3+6] : 4 : 2];
Hướng dẫn giải:
Để mở tệp CT2.pas, các em thực hiện: Vào bảng chọn File, chọn Open mở tệp chương trình đã lưu trong đĩa.
3. Luyện tập
Câu 1: Biểu thức toán học [a2 + b][1 + c]3 được biểu diễn trong Pascal như thế nào?
A. [a*a + b][1+c][1 + c][1 + c]
B. [a.a + b][1 + c][1 + c][1 + c]
C. [a*a + b]*[1 + c]*[1 + c]*[1 + c]
D. [a2 + b][1 + c]3
Câu 2: Các phép toán nào sau đây không dùng cho kiểu số thực?
A. +, -, *, /
B. , >=, , =
C. Mod và div
D. +, -, *, / và , >=, , =
Câu 3: Biểu thức toán học – được biễu diễn trong TURBO PASCAL:
A. x+5/a+3-y/b+5
B. x+5\a+3-y\b+5
C. [x+5]/[a+3]-y/[b+5]
D. [x+5]\[a+3]-y\[b+5]
Câu 4: Lệnh nào sử dụng để tạm ngừng chương trình trong x phần nghìn giây, sau đó chạy tiếp?
A. Delay[x];
B. Read [x];
C. Readln[x]
D. Writeln[n]
Câu 5: Lệnh nào tạm ngừng chương trình cho tới khi nhấn phím Enter?
A. Write hoặc Writeln
B. Read hoặc Readln
C. Cả câu A và B đều đúng
D. Cả câu A và B đều sai
4. Kết luận
Sau khi học xong Bài thực hành 2: Viết chương trình để tính toán, các em cần ghi nhớ các nội dung:
-
Các kí hiệu của các phép toán số học trong Pascal là: +, -, *, /, mod. Div.
-
Lệnh tạm dừng chương trình:
-
Delay[x]: tạm ngừng chương trình trong x phần nghìn giây, sau đó chạy tiếp.
-
read hoặc readln tạm ngừng chương trình cho tới khi nhấn phím enter
-
-
Câu lệnh writeln[