A. Phần trắc nghiệm:
Hãy chọn một đáp án đúng nhất.
Câu 1. Thiết bị nào dưới đây được dùng để ra lệnh cho máy tính?
A. Bàn phím; B. Loa; C. Màn hình; D. Máy in.
Câu 2. Từ nào sau đây là từ khóa trong ngôn ngữ lập trình Pascal?
A. Uses; B. Hinh_tron; C. End; D. A và C.
Câu 3. Trong các tên sau đây, tên nào là hợp lệ trong ngôn ngữ Pascal?
A. Lop 8A; B. Tbc; C. Begin D. 8B.
ĐỀ CƯƠNG ÔN TẬP MÔN TIN 8 HKI 2011- 2012 cd A. Phần trắc nghiệm: Hãy chọn một đáp án đúng nhất. Câu 1. Thiết bị nào dưới đây được dùng để ra lệnh cho máy tính? A. Bàn phím; B. Loa; C. Màn hình; D. Máy in. Câu 2. Từ nào sau đây là từ khóa trong ngôn ngữ lập trình Pascal? A. Uses; B. Hinh_tron; C. End; D. A và C. Câu 3. Trong các tên sau đây, tên nào là hợp lệ trong ngôn ngữ Pascal? A. Lop 8A; B. Tbc; C. Begin D. 8B. Câu 4. Phạm vi giá trị nào sao đây là phạm vi giá trị của kiểu dữ liệu số nguyên (integer)? A. 2 đến 2 -1; B. -215 đến 215 - 1; C. -215 đến 215 -1; D. -215 đến 215. Câu 5. Kết quả của phép toán 45 div 2 mod 3 + 1 là bao nhiêu? A. 7; B. 5; C. 3; D. 2. Câu 6. Trong ngôn ngữ lập trình Pascal, câu lệnh khai báo nào sau đây đúng? A. var a, b : integer; B. var x = real; C. const x := 5 ; D. var thong bao : string. Câu 7. Trong ngôn ngữ lập trình Pasal, câu lệnh gán nào sau đây đúng? A. x := real; B. y = a +b; C. z := 3; D. i = 4. Câu 8. Trong Pascal, giả sử x là biến kiểu số nguyên. Phép gán nào sau đây là hợp lệ? A. x := 15/2; B. x := 50; C. x := 2,4; D. x := 83000. Câu 9. Quá trình giải bài toán trên máy tính gồm có bao nhiêu bước? A. 2; B. 3; C. 4; D. 5. Câu 10. Kết thúc thuật toán sau đây, hãy cho biết giá trị của biến T và i là bao nhiêu? B1: T ß 20; i ß 0; B2: i ß i + 5; B3: Nếu i ³ 20 thì T ß T + i và quay lại bước 2; B4: Thông báo kết qủa và kết thúc thuật toán. A. T = 25, i = 25; B. T = 40, i = 25; C. T = 70, i = 25; D. T = 40, i = 20; Câu 11. Trong Pascal, câu lệnh điều kiện nào sau đây được viết đúng? A. if a := 1 then a := a + 1; B. if a > b else write(a); C. if (a mod 2) =0 then write(‘So khong hop le’); D. if x = y; then writeln(y); Câu 12. Nếu cho x = 10, giá trị của x là bao nhiêu sau câu lệnh: if x > 5 then x := x + 5;? A. 15; B. 10; C. 5; D. 20. B. Phần tự luận: 1 Viết biểu thức toán sau đây dưới dạng biểu thức trong Pascal. a) b) c) d) 2 Em hãy viết thuật toán tính tổng các số chẵn của 20 số tự nhiên đầu tiên 3Viết chương trình tính diện tích và chi vi của hình chữ nhật với độ dài các cạnh được nhập từ bàn phím. 4.Cho biết sự khác nhau giữa từ khóa và tên. Cho biết cách đặt tên trong chương trình. 5.Hãy cho biết các thành phần chính trong cấu trúc chung của một chương trình. 6.Các thao tác mở cửa sổ mới, tệp đã lưu, lưu, lưu với tên khác, thoát, dịch, chạy chương trình. 7.Nêu một số kiểu dữ liệu cơ bản của ngôn ngữ lập trình Pascal. 8.Nêu sự khác nhau giữa biến và hằng. Cú pháp khai báo biến và hằng. Cho VD. 9Cú pháp câu lệnh điều kiện dạng đầy đủ và câu lệnh điều kiện dạng thiếu. 10.Viết chương trình in ra màn hình dòng chữ CHÀO CÁC BẠN! MÌNH LÀ TURBO PASCAL 11.Viết chương trình in ra tổng, hiệu, tích, thương của hai số được nhập vào từ bàn phím. 12.Viết chương trình in ra số lớn nhất trong ba số được nhập vào từ bàn phím. 13.Viết chương trình kiểm tra một số nguyên được nhập vào từ bàn phím là số chẵn hay số lẽ Hướng dẫn tham khảo: 1) x*x/(3 + y) + 2 + 4 – ((a + b)*c)/(8 +y) + z - a/b*a/b 2) B1: i ß 0, Sum ß 0; B2: i ß i + 2; B3: Nếu i £ 20 thì Sum ß Sum + i và quay lại B2; B4: Thông báo kết quả và kết thúc thuật toán. 3) Program hinh_chu_nhat; Uses crt; Var a, b, V, S : real; Begin Clrscr; Write(‘Nhap chieu dai a = ‘); readln(a); Write(‘Nhap chieu rong b = ‘); readln(b); V := (a + b)*2; S := a*b; Writeln(‘Chu vi hinh chu nhat la: ‘, v:2:1); Writeln(‘Dien tich hinh chu nhat la: ‘, s:2:1); Readln; End. Các kí tự Các kí tự của pascal bao gồm bảng chữ cái gồm 26 chữ cái tiếng Anh (không phân biết kí tự thường hoặc kí tự in) từ a đến z và dấu gạch dưới ( _ ) bảng chữ số từ 0 đến 9 các dấu phép toán: +,-, *, /, div, mod các dấu chính tả , ; . : ‘ dấu cách (space) các dấu ngoặc () [] {} Một số dấu đặc biệt @ # $ ^ Từ khóa:các từ khóa là các từ dành riêng mà người dùng không được thay đổi hoặc dùng vào mục đích khác. Các từ khóa gồm PROGRAM, USES, CLRSCR, VAR, BEGIN, END,. TÊN: Dùng để phân biệt các đại lượng và do người dùng đặt. Tên phải đặt theo các quy tắc sau: - tên không được trùng với từ khóa - tên khác nhau tương ứng với những đại lượng khác nhau - không được bắt đầu bằng chữ số và không được chứa dấu cách 4. Cấu trúc chung của chương trình Phần khai báo Phần thân Ví dụ Program CHAO; Uses Crt; Var a, b : integer; PHẦN KHAI BÁO BEGIN Write(‘CHAO CAC BAN’); END. PHẤN THÂN Chương trình máy tính và dữ liệu Dữ liệu và kiểu dữ liệu Tên kiểu Phạm vi giá trị Integer Số nguyên trong khoảng -215 đến 215 Real Số thực có giá trị tuyệt đối trong khoảng 2,9 x 10-39 đến 1,7 x 1038 và số 0 Char Một kí tự trong bảng chữ cái String Xâu kí tự, tối đa 255 kí tự Các phép toán với dữ liệu kiểu số Kí hiệu Tên phép toán Kiểu dữ liệu + Cộng Integer, real - Trừ Integer, real * Nhân Integer, real / Div Chia Chia lấy phần nguyên Integer, real Integer Mod Chia lấy phần dư integer Các phép toán so sánh Kí hiệu trong pascal Phép so sánh Kí hiệu toán học = Bằng = Khác ¹ > Nhỏ hơn < >= Nhỏ hơn hoặc bằng £ < Lớn hơn > <= Lơn hơn hoặc bằng ³ Sử dụng biến trong chương trình 1. Biến là công cụ trong lập trình Trong lập trình biến dùng để lưu trử dữ liệu và dữ liệu được biến lưu trử có thể thay đổi trong khi thực hiện chương trình (xem ví dụ 1, ví dụ 2 trang 29,30) 2. Khai báo biến Var :; Ví dụ: var m,n : integer; S, dientich:Real; Thongbao: string; Sử dụng biến trong chương trình - Gán giá trị cho biến ví dụ m:=5; ketqua:=-c/b Nhận giá trị từ bàn phím dùng lệnh Read hoặc readln ví dụ Readln(a); {biến a sẽ nhận giá trị do người dùng nhập từ bàn phím} Tính toán với giá trị của biến ví dụ tong:=so1 +so2 {trong đó tong, so1, so2 là các biến} Hằng:hằng là đại lượng có giá trị không đổi trong suốt quá trình thực hiện chương trình Khai báo hằng : CONST = ví dụ CONST PI=3.14; 1. Bài toán và xác định bài toán Bài toán là một công việc hay một nhiệm vụ cần phải giải quyết Giải quyết bài toán cần xác định bài toán tức là xác định rõ các điều kiện cho trước và kết quả cần thu được Thuật toán: dãy hửu hạn các thao tác để giải một bài toán Ghi nhớ: thuật toán là các bước để giải một bài toán còn chương trình chỉ là thể hiện thuật toán trong một ngôn ngữ lập trình cụ thể. Quá trình giải bài toán trên máy tính gồm các bước sau: - Xác định bài toán: input (thông tin vào), output (thông tin ra) - Mô tả thuật toán: Tìm cách giải bài toán và diễn tả các lệnh cần phải thực hiện ngôn ngữ lập trình đã biết. - Viết chương trình: Dựa vào thuật toán ở trên, viết chương trình bằng một ngôn ngữ lập trình đã biết. Ví dụ1 : In ra màn hình số a nếu a>b INPUT: hai số a và b OUTPUT: in ra giá trị của a hoạc không in ra gì cả Thuật toán: Bước 1: nếu a>b thì in ra giá trị a Bước 2: kết thúc Dùng câu lệnh điều kiện dạng thiếu để viết chương trình như sau: Program INSO_A; Uses Crt; Var a, b : integer; BEGIN Write(‘nhap so a = ’);readln(a); Write(‘nhap so b = ’);readln(b); IF a>b THEN write(a); readln END Ví dụ 2 nhập 2 số a và b in ra màn hình số lớn hơn INPUT: các số a và b OUTPUT: giá trị lớn hơn Thuật toán: B1 nếu a>b thi in ra số a Ngược lại in ra số b B2: kết thúc Dùng câu lệnh điều kiện dạng đầy đủ để viết chương trình như sau: Program IN_SO_MAX; Uses Crt; Var a, b : integer; BEGIN Write(‘nhap so a = ’);readln(a); Write(‘nhap so b = ’);readln(b); IF a>b THEN write(a) ELSE write(b); readln END Ví dụ 3: Viết chương trình tính kết quả a chia cho b, với a, b là 2 số nguyên bất kỳ. phép tính chỉ thực hiện khi b0. chương tình cần kiểm tra giá trị của b, nếu b0 thì thực hiện phép chia, ngược lại (b=0) sẽ thông báo lỗi INPUT: hai số a và b OUTPUT a/b hoặc thông báo lỗi Thuật toán: Bước 1: nếu b 0 thì kết quả là a/b Ngược lại thông báo lỗi Bước 2: kết thúc Viết chương trình (dùng ngôn ngữ lập trình pascal) Program TINH_ketqua_AchiaB; Uses Crt; Var a, b : integer; BEGIN Write(‘nhap so a = ’);readln(a); Write(‘nhap so b = ’);readln(b); IF b0 then write(‘kết qua a chia cho b la ’,a/b) ELSE write(‘b bang 0, khong chia duoc’); readln END Ví dụ4 Giải phương trình bậc nhất dạng tổng quát bx+c=0 INPUT: các số a và b OUTPUT: nghiệm của phương trình bậc nhất Thuật toán: Bước 1: nếu b=0 chuyển sang bước 3 Bước 2: tính nghiệm của phương trình x = -b/c và chuyển sang bước 4 Bước 3: nếu c 0 (c khác 0), thông báo phương trình đã cho vô nghiệm. Ngược lại (c=0) thông báo phương trình có vô số nghiệm. Bước 4 kết thúc Viết chương trình (dùng ngôn ngữ lập trình pascal) Để ý rằng ở bước 1 và bước 2 ta dùng cấu trúc rẽ nhánh tức là dùng câu lệnh điều kiện Câu lệnh điều kiện trong pascal gồm 2 dạng sau Dạng thiếu: IF THEN ; Dạng đầy đủ: IF THEN ELSE ; Minh họa dưới dây gồm các câu ghi chú ( được viết trong cặp dấu móc {} ) và các lệnh của ngôn ngữ lập trình pascal như sau Program GIAIPT_BACNHAT; Uses crt; Var b,c,x: Real BEGIN {Đưa ra thông báo nhập số (lệnh WRITE)} { và đọc giá trị biến từ bàn phím (dùng lệnh READLN)} Write(‘Nhap so b : ’); readln(b); Write(‘Nhap so c : ’); readln(c); If b=0 then {buoc 1: sử dụng câu lệnh dạng thiếu} {câu lệnh sau sẽ thực hiện nếu kiểm tra b=0 là đúng} {buoc 3 sử dụng cau lệnh điều kiện dạng đầy đủ} If c0 then writeln(‘phuong trinh vo nghiem’) Else writeln(‘Phuong trinh vo so nghiem’); x:=-c/b; {buoc 2} Write(‘nghiem cua phuong trinh x = ’,x); {buoc 4 ket thuc} readln END. Sử dụng lệnh điều kiện IF..THEN Bài 1: Program Sap_xep; {từ khóa: Program tên chương trình sap_xep} Uses crt; {khai báo thư viện} Var A, B : integer; (khai báo hai biến A, B kiểu dữ liệu số nguyên) Begin {bắt đầu thân chương trình} Clrscr; {Lệnh xóa màn hình}; Write(‘Nhập số A: ’); readln(A); {lệnh write dùng hiện ra màn hình câu ‘nhap so A’, lệnh readln nhận giá trị A từ bàn phím} Write(‘Nhập số B: ’); readln(B); {lệnh write dùng hiện ra màn hình câu ‘nhap so B’, lệnh readln nhận giá trị B từ bàn phím} If A<B then writeln (A, ‘ ’,B) else writeln (B, ‘ ’,A); {nếu A <B in ra giá trị A , giá trị B, ngược lại in ra giá trị B, giá trị A} Readln; {lệnh này để dừng chương trình đợi người dùng nhấn phím Enter để thoát} Bài 2: Sửa lại chương trình như sau Chỗ chưa đúng là khi nhập giá trị biến Long lớn hơn giá trị biến Trang chẳng hạn như long =1.5 trang =1.4 thì kết quả sẽ xuất hiện 2 câu thông báo “bạn Long cao hơn” và “Hai bạn bằng nhau” vì trong chương trình câu lệnh if thứ nhất thực hiện trước sau đó câu lệnh IF thứ hai cũng sẽ thực hiện. Sửa lại như sau:(viết 3 câu lệnh điều kiện dạng thiếu) If Long = Trang then writeln(‘Hai ban bang nhau’); {nếu Long không bằng Trang thì lệnh này không thực hiện} If long>trang then writeln(‘ban long cao hon’); {nếu Long không lớn hơn trang thì lệnh này không thực hiện} If trang >long write(‘ban trang cao hon’); {nếu trang không lớn hơn Long thì lệnh này cũng không thực hiện. Bài 3: PROGRAM TINH_TIEN_MUA_SACH; Uses .; Var .............:, . :real; BEGIN Write(‘nhap tong so tien mua sach = ’); readln(tongtien); If <100000 then tienthanhtoan:=tongtien*90/100 Else tienthanhtoan:=tongtien*70/100; Writeln(‘so tien phai tra la = ’,tienthanhtoan); Readln END. Ví dụ chương trình tiền điện như sau: tiền thanh toán = tienTT+ thuế GTGT - tienTT=Số KW tiêu thụ x giá 1 KW - Gia 1KW là 1200 nếu hình thức sử dụng là ‘SH’ (sinh hoạt) giá 1KW là 1500 nếu hình thức sử dụng là ‘KD’ (kinh doanh) số KW tiêu thụ x giá 1 KW - thuế GTGT (thuế giá trị gia tăng) = 10% *TienTT Bài 4: Hoàn chỉnh chương trình sau Program ; Uses crt; Var soKW, gia, tienTT, thueGTGT, tienthanhtoan:real; Hinhthuc: string; BEGIN Write(‘nhap so KW tieu thu ’);readln(soKW); Write(‘nhap hinh thuc sử dụng la SH hoac KH ’);readln(hinhthuc); If .. = ‘SH’ then gia:=. Else gia=..; tienTT:= . thueGTGT:=10/100*tienTT; Tienthanhtoan:=tienTT+thueGTGT Writeln(‘so tien phai thanh toan la : ’, ...); Readln END.
Tài liệu đính kèm: