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[r]
(1)ĐỀ CƯƠNG ÔN TẬP MÔN TIN HKI 2011- 2012 A Phần trắc nghiệm: Hãy chọn đáp án đúng Câu Thiết bị nào đây dùng để 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 Từ nào sau đây là từ khóa ngôn ngữ lập trình Pascal? A Uses; B Hinh_tron; C End; D A và C Câu Trong các tên sau đây, tên nào là hợp lệ ngôn ngữ Pascal? A Lop 8A; B Tbc; C Begin D 8B Câu Phạm vi giá trị nào đây là phạm vi giá trị kiểu liệu số nguyên (integer)? A 15 đến 15 -1; B -215 đến 215 - 1; C -215 đến 215 -1; D -215 đến 215 Câu Kết phép toán 45 div mod + là bao nhiêu? A 7; B 5; C 3; D Câu 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 := ; D var thong bao : string Câu 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 = Câu 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 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 Câu 10 Kết thúc thuật toán sau đây, hãy cho biết giá trị 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 viết đúng? A if a := 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ị x là bao nhiêu sau câu lệnh: if x > then x := x + 5;? A 15; B 10; C 5; D 20 B Phần tự luận: Viết biểu thức toán sau đây dạng biểu thức Pascal x2 ( a b) * c ) a a) 24 z 3 y 8 y b Lop7.net (2) b) 2a 2c a c) x x x 15 d) x y x y Em hãy viết thuật toán tính tổng các số chẵn 20 số tự nhiên đầu tiên 3Viết chương trình tính diện tích và chi vi hình chữ nhật với độ dài các cạnh nhập từ bàn phím 4.Cho biết khác từ khóa và tên Cho biết cách đặt tên chương trình 5.Hãy cho biết các thành phần chính cấu trúc chung 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 số kiểu liệu ngôn ngữ lập trình Pascal 8.Nêu khác biến và Cú pháp khai báo biến và 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 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 tổng, hiệu, tích, thương hai số nhập vào từ bàn phím 12.Viết chương trình in số lớn ba số nhập vào từ bàn phím 13.Viết chương trình kiểm tra số nguyên 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) + + – ((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 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ự pascal bao gồm Các kí tự Lop7.net (3) - bảng chữ cái gồm 26 chữ cái tiếng Anh (không phân biết kí tự thường kí tự in) từ a đến z và dấu gạch ( _ ) - bảng chữ số từ đến - 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 thay đổi 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à người dùng đặt Tên phải đặt theo các quy tắc sau: - tên không trùng với từ khóa - tên khác tương ứng với đại lượng khác - không bắt đầu chữ số và không chứa dấu cách Cấu trúc chung chương trình Phần khai báo Phần thân Ví dụ Program CHAO; PHẦN Uses Crt; KHAI Var a, b : integer; BÁO BEGIN Write(‘CHAO CAC BAN’); END Chương trình máy tính và liệu Dữ liệu và kiểu liệu Tên kiểu Phạm vi giá trị Integer Số nguyên khoảng -215 đến 215 Real Số thực có giá trị tuyệt đối khoảng 2,9 x 10-39 đến 1,7 x 1038 và số Char Một kí tự bảng chữ cái String Xâu kí tự, tối đa 255 kí tự Các phép toán với liệu kiểu số Kí hiệu Tên phép Kiểu liệu toán + Cộng Integer, real Trừ Integer, real PHẤN THÂN * / Div Nhân Integer, real Chia Integer, real Chia lấy phần Integer nguyên Mod Chia lấy phần integer dư Các phép toán so sánh Kí hiệu Phép so sánh Kí hiệu pascal toán học = Bằng = <> Khác > Nhỏ < >= Nhỏ < Lớn > <= Lơn Sử dụng biến chương trình Biến là công cụ lập trình Trong lập trình biến dùng để lưu trử liệu và liệu biến lưu trử có thể thay đổi thực chương trình (xem ví dụ 1, ví dụ trang 29,30) Khai báo biến Var <tên các biến cách dấu phẩy>:<kiểu liệu biến>; Lop7.net (4) Ví dụ: var m,n : integer; S, dientich:Real; Thongbao: string; Sử dụng biến 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 readln ví dụ Readln(a); {biến a nhận giá trị người dùng nhập từ bàn phím} - Tính toán với giá trị 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 suốt quá trình thực chương trình Khai báo : CONST <tên hằng> = <giá trị > ví dụ CONST PI=3.14; Bài toán và xác định bài toán Bài toán là công việc hay nhiệm vụ cần phải giải Giải 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 cần thu Thuật toán: dãy hửu hạn các thao tác để giải bài toán Ghi nhớ: thuật toán là các bước để giải bài toán còn chương trình là thể thuật toán 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 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 ngôn ngữ lập trình đã biết Ví dụ1 : In màn hình số a a>b INPUT: hai số a và b OUTPUT: in giá trị a hoạc không in gì Thuật toán: Bước 1: a>b thì in giá trị a Bước 2: kết thúc Ví dụ nhập số a và b in màn hình số lớn INPUT: các số a và b OUTPUT: giá trị lớn Thuật toán: B1 a>b thi in số a Ngược lại in 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 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 Dùng câu lệnh điều kiện dạng thiếu để viết chương trì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 Lop7.net (5) Ví dụ 3: Viết chương trình tính kết a chia cho b, với a, b là số nguyên phép tính thực b<>0 chương tình cần kiểm tra giá trị b, b<>0 thì thực phép chia, ngược lại (b=0) thông báo lỗi INPUT: hai số a và b OUTPUT a/b thông báo lỗi Thuật toán: Bước 1: b<> thì kết 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 b<>0 then write(‘kết qua a chia cho b la ’,a/b) ELSE write(‘b bang 0, khong chia duoc’); readln END Viết chương trình (dùng ngôn ngữ lập trình pascal) Để ý bước và bước 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 pascal gồm dạng sau Dạng thiếu: IF <điều kiện> THEN <câu lệnh>; Dạng đầy đủ: IF <Điều kiện > THEN <câu lệnh 1> ELSE <câu lệnh 2>; Minh họa dây gồm các câu ghi chú ( viết cặp dấu móc {} ) và các lệnh ngôn ngữ lập trình pascal sau Program GIAIPT_BACNHAT; Uses crt; Var b,c,x: Real BEGIN {Đưa 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 thực kiểm tra b=0 là đúng} {buoc sử dụng cau lệnh điều kiện dạng đầy đủ} If c<>0 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 ket thuc} readln END Ví dụ4 Giải phương trình bậc dạng tổng quát bx+c=0 INPUT: các số a và b OUTPUT: nghiệm phương trình bậc Thuật toán: Bước 1: b=0 chuyển sang bước Bước 2: tính nghiệm phương trình x = b/c và chuyển sang bước Bước 3: c <> (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 kết thúc 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 liệu số nguyên) Begin {bắt đầu thân chương trình} Lop7.net (6) Clrscr; {Lệnh xóa màn hình}; Write(‘Nhập số A: ’); readln(A);{lệnh write dùng 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 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 giá trị A , giá trị B, ngược lại in 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 sau Chỗ chưa đúng là nhập giá trị biến Long lớn giá trị biến Trang chẳng hạn long =1.5 trang =1.4 thì kết xuất câu thông báo “bạn Long cao hơn” và “Hai bạn nhau” vì chương trình câu lệnh if thứ thực trước sau đó câu lệnh IF thứ hai thực Sửa lại sau:(viết 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 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 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 Long thì lệnh này không thực 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 sau: tiền toán = tienTT+ thuế GTGT - tienTT=Số KW tiêu thụ x giá KW - Gia 1KW là 1200 hình thức sử dụng là ‘SH’ (sinh hoạt) giá 1KW là 1500 hình thức sử dụng là ‘KD’ (kinh doanh) số KW tiêu thụ x giá KW - thuế GTGT (thuế giá trị gia tăng) = 10% *TienTT Bài 4: Hoàn chỉnh chương trình sau Lop7.net (7) 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 toan la : ’, …………… ); Readln END Lop7.net (8)