ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH SỞ GIÁO DỤC - ĐÀO TẠO + SỞ KHOA HỌC CÔNG NGHỆ TÀI LIỆU HỖ TRỢ HỌC TẬP Tháng 10 - 2004 PHAN MEM LAP TRINH PASCAL Sau khi học xong phần mém Jap trinh Pascal, hoc sinh sẽ đạt được 1. Biết sử dụng ngôn ngữ lập chương trình máy tính giản đơn. Biết cách phân tích dữ liệu để xử lý (sử dụng một số giải thuật máy tỉnh đơn giản). Biết trình bày trên màn hình, trên giấy nội dụng kết quả của việc xử lý đữ liệu.
Thời lượng: 33 tiết « 10 tiết lý thuyết: gồm 5 bài lý thuyết. „20 tiết thực hành: gôm 20 bài thực hành. ‹ 03 tiết kiểm tra, BANG PHAN TIET CHUONG TRINH HOC KYI-LOP 9 LÝ THUYẾT -_._LTIẾT] THỰC HÀNH “LET BAI 5: ^ CÂU LỆNH LỰA CHỌN tí Câu lệnh If.; T2 d/ Cau lénh if.; 2/ Cau lénh if. ; 3/ Câu lênh if.
; (lông nhau) 4/ Câu lệnh ghép (begin. lí Câu lệnh Case. of / Câu lệnh Case. end, gi Cau lénh Case.
end BAI6: - v ICAU LENH LAP i Cau lénh FOR 4 14 Cau lénh For’. 2/ Cau lénh For. Kf Cau lénh WHILE 3/ Câu lệnh WHILE .; 2/ Lưu ý vòng lặp While: số lần lặp, lặp vô tận, biến đếm lif Cau lệnh Repeat. Until 1/ Câu lệnh Repeat.
Until 2/ Lưu ý vòng lặp Repeat: số lần lặp, lặp vô tận, biến đếm. IV! So sánh đặc điềm các vòng Kip (For While, Repeat) + điều kiện lặp. “lk điều kiện thoát BAL 7: KIEU DU LIEU CO CAU TRUC: ARRAY (KIEU MANG) lí Dữ liệu có cầu trúc mảng 3 1/ Khái niệm về dữ liệu cầu trúc mảng 2/ Cách khai báo dữ liệu cầu trúc mảng một chiều, hai chiều. Hứ Sử dụng dữ liệu cấu trúc mảng.
1/ Nhập đữ liệu cho dữ liệu cấu trúc mảng 2/ Xuất dữ liệu câu trúc mảng. 3/ Cách truy nhập dữ liệu String theo cầu trúc mảng một chiều. Wl’ Tim kiém Phan tip trong mang + Tìm tuần tur (sequential search) IV! Sắp xếp các Phần tử của mang 47 Phuong phap chon (selection sort) 2/_ Phuong phap dai chỗ(bubble sort). BÀI 8: CHƯƠNG TRÌNH CON (Sub program lí Khái niệm về chương trình con 3 1/ Khái niệm 2/ Phân loại chương trình con: Procedure — function; cách sử dụng chương trình con trong chương trình chính.
Các bước cơ bản để việt chương trinh con H/ Chương trình con 1/ Dạng Procedure 2/ Dạng Function liv Mot sé aac tính của Chương trình con 1 Biến toàn cục và biến địa phương 2/ Chuyển tham số cho chương trình con + tham trị. 3/_ Viết chương trinh con: dang Procedure hay Function. 4i Tính đệ qui của chương trinh con. + {inh đệ qui của chương trình con, +.
khi não nên sử dụng tính đệ qui. BÀI 9: KIỂU DỮ LIỆU CÓ CẤU TRÚC: FILE lv Khái niệm về File 1 1 Khái niệm. 2/ Cầu trúc và phân loại file. if File 1/ Cách khai báo biến file 2/ Lệnh mở file mới đề ghi dữ liệu 3/ Lệnh đọc — ghi dữ liệu vào file.
4/ Lệnh đóng file. 5/ _ Một số Lệnh - hảm vẻ xử lý file 1/ Câu lệnh if. Cau lénh if .; iF <Diéu kién> THEN Câu lệnh; Ý nghĩa: Sẽ xét điều kiện theo sau ¡F. Nếu đúng thì thực hiện các lệnh theo sau THEN, nếu sai thì coi như lệnh này đã thực hiện xong.
Điều kiện đơn giản là biểu thị trong các quan hệ =, <>, >, <, >=, <=. Điều kiện phức hợp có sử dụng các phép toán Logic như NOT, AND, OR trên những điều kiện đơn giản. V dụ: Program iF_THEN; Var x: integer; y ; integer; Ketqua : Longint; Begin Write(Ban nhap vao gia tri cua x = `); Readin(x); WriteCBan nhap vao gia tri cua y = `); Readin(y); WriteCBan doan x + y =‘); Readin(Ketqua); if (Ketqua=x+y) Then WritelnCHoan ho ban da doan dung); if (Ketqua<>x+y) Then WritelnCRat tiec ban da doan sai’); Readin; End. » Chương trình này sẽ cho người sử dụng nhập vào hai số x và y, sau đó sẽ nhập kết quả x+y.
Nếu nhập đúng kết quả, chương trình sẽ báo 'oan ho ban da lam dung”, nếu nhập kết quả sai, chương trình sẽ báo `8at tiec ban da lam sal’. « O nhiing ché ma Pascal chi cho phép viết một lệnh mà ta lại cần viết nhiều hơn một lệnh thành phần thì các thành phần đó phải để trong cặp từ khoá begin và end (đừng nhầm với Begin. End trong toàn bộ chương trình), và chúng ta được câu lệnh ghép: BEGIN END; dự: Program iF_THEN; {Co dùng lệnh ghép} Var x : integer; y : integer; Ketqua : Longint; Begin WriteCBan nhap vao gia trị cua x = `); Readin(x); Write(Ban nhap vao gia tri cua y = `); Readln(y); Write(Ban doan x + y =‘); Readln(Ketqua); if (Ketqua=x+y) Then Begin Writeln(C Hoan ho ban da doan dung’); Writeln(‘Ban hoc toan rat tot”); End; if (Ketqua<>x+y) Then Begin Writeln(‘Rat tiec ban da doan sai”); Writeln(‘Ban can co gang hoc tot hon’); End; ReadIn; End. 2, Câu lệnh if.; iF <piéu kién> THEN Câu lệnh mot ELSE ” Câu lệnh hai; G#⁄ cñú- Câu lệnh trước ELSE sẽ không có dấu chấm phẩy'; Ý nghĩa; Xét điều kiện theo sau ¡F, nếu đúng sẽ thực hiện câu lânh một, nếu sai sẽ thực hiện câu lệnh hai.
Vi du: Program iF_THEN_ELSE; Var x t integer; y : integer; Ketqua : Longint; » Begin WriteCBan nhap vao gia tri cua x =‘); Readin(x); Write(Ban nhap vao gia tri cua y ="); Readln(y), WriteCBan doan x + y = `}; Readin(Ketqua); if (Ketqua=x+y) Then WritelnCHoan ho ban da doan dụng? Else WritelnCRat tiec ban da doan sai; Readin;- End. Câu lệnh if. Các bạn có thé xem phat biéu if. else lồng nhau như ở ví dụ Sau: Vi dur Program iF_THEN_ELSE_Longnhau; Var Toan : integer; Ly ; integer; Hoa : integer; Ketqua : integer; Begin Write(Ban nhap diem Toan (toi da la 10): *); ReadIn(Toan); Write(Ban nhap diem Ly (toi da la 10) : ‘); ReadIn(Ly); Write(Ban nhap diem Hoa (toi da la 10): *); Readln(Hoa); Ketqua := Toan + Ly + Hoa; if (Ketqua >= 25) Then Writeln(Dau vao dai hoc, khong can xet diem khong che’) Else Begin if ((ketqua>=21) And (Toan>=7) And (Ly>=7) And (Hoa>=7) Then WritelnCHoc sinh nay dau, vi cac mon deu tu 7 tro len") Eise WritelnCKhong du tieu chuan vao dai hoc; End; Readin; End, 11/ Câu lệnh Case.
Cau lénh Case. end; CASE <Biểu thức chọn> OF Chon 1: Lénh 1; Chon 2: Lénh 2; Chon N: Lénh n; END; = Dau tién biểu thức chọn được tính trị, nếu trị đó nằm trong chọn nao, thi câu lệnh sau chọn đó sẽ thực hiện, nó sẽ kiểm tra từ trên xuống, nếu không có chon nào thoả, kết thúc không làm gì cả. Nhận xét: Phát biểu CASE là một dạng làm gọn của phát biéu iF. Bạn nên dùng CASE khi lựa chọn nhiều trường hợp.
Ví dự: Program CASE_KhongcoELSE; Var x : integer; Begin Write(Ban nhap con so cua thang `); Readin(x); Case (x) of 1: WritelnCĐay la thang gieng’); 2: WritelnCDay la thang Hai”); 3: Writein(Day la thang Ba’); 4: WritelnCDay la thang Tu); 5; WritelnCDay la thang Nam; 6: WritelnCDay !a thang Sau’); 7: WritelnCDay la thang Bay’); 8: WritelnCDay la thang Tam); 9: WritelnCDay la thang Chin); 10; WritelnCDay la thang Muoi?; 11; WritelnCDay la thang Muoi mot; 12: WritelnCDay la thang Muoi hai); End; Readln; End, “ Trong phát biểu Case này, nếu bạn nhập một số không phải từ 1 đến 12, chương :rình sẽ không thông báo gì cả, phát biểu Case xem như chấm dứt. » Để khi nhập vào một số không thuộc từ 1 đến 12, chương trình phải báo ra một câu nào đó, chúng ta phải dùng lệnh Case. end như sau: 2. Câu lénh Case.
end; CASE <Biéu thirc chon> OF Chon 1: Lénh 1; Chon 2: Lénh 2; Chon N: Lénh n; Else Câu lệnh; END; » Đầu tiên biểu thức chọn được tính trị, nếu trị đó nằm trong chọn nào, thì cau lệnh sau chọn đó sẽ thực hiện, nó sẽ kiểm tra từ trên xuống, nếu không có chon nào thoả, thỉ thực hiện lệnh sau ELSE. Nhận xét: Phát biểu CASE là một dạng làm gọn của phát biểu iF. Mọi phát biểu Case đều có thể viết lại với các phát biểu iF. Bạn nên dùng CASE khí lựa chọn nhiều trường hợp.
dụ: Program CASE_ KhongcoELSE; Var x:integer; Begin Write(Ban nhap con so cua thang `}; Readln(x); Case (x) of , : Writeln¢ Day la thang gieng’); DUMAWNr : WritelnCDay fa thang Hai’); : WritelnCDay la thang Ba); : WritelnCDay la thang Tu?; : WritelnfDay la thang Nam); : WritelnfDay la thang Sau”); : WritelnCDay la thang Bay’); COON : WritelnCDay ta thang Tam); : WritelnCDay fa thang Chin’); 10: WritelnDay la thang Muoi2; 11: WritelnCDay la thang Muoi mot); 12: WrkelnCDay la thang Muoi hai’); Else Begin Writeln(Khong co thang nay’); WritelnCBan khong biet cac thang trong nam’); End; End; Readln; End. “ Trong câu lệnh Case. of của Pascal, nếu có nhiều chọn có cùng một giá trị, chúng ta có thể gộp lại. Ban xem vi du sau: Program CASE_goplai; Var x: integer; Begin Write(Ban nhap con so cua thang `); Readin(x); Case (x) of 1,3,5,7,8,10,12: Writeln(Thang: x, ` co 31 ngay?; 4,6,9,11: WritelnCThang: ',x, ` co 30 ngay); 2: WritelnCThang: `, x, ‘ co 28 ngay); Else Begin WritelnCKhong co thang nay’); WritelnCBan khong biet cac thang trong nam’); End; End; Readin; End.
TÓM LƯỢC PHẦN THỰC HÀNH: 1. Cho chương trình sau: Program Doan; Uses Crt; Var a, b, So : integer; Begin Clrscr; WriteCNhap vao 2 so a va b : `); Readin(a,b); SO t= a; if So<b then So:=b; Writeln (x); Readln; End. Hãy giải thích từng lệnh và cho biết chương trình trên làm việc gì? b. Hãy bổ sung những thông báo cần thiết vào chương trình trên để làm dễ dàng cho người sử dụng.
Viết chương trình nhập vào chiều dài và chiều rộng của hình chữ nhật. Nếu kết quả bằng chiều đài nhân với chiều rộng, thông báo đúng và cho kết quả, ngược lại báo sai cho người sử dụng biết, 3. Viết chương trình nhập 3 số a, b, c bất kỳ, Hãy kiểm tra xem ba số đó có thể là độ dài của các cạnh trong một tam giác hay không, thông báo thoả hay không thoả trong từng trường hợp tương ứng. Có người viết chương trình tìm số lớn nhất trong 3 số như sau: Program Max_3so; Var a, b, c : Real; Begin WriteCNhap vao 3 so `); ReadIn(a,b,c); if a<bthen a:=b Else if a<c then a:=c; WriteCSo lon nhat la : ',a); Readtn; End.
Chương trình trên cho đáp số có lúc đúng, có lúc sai, tuy thuộc vào a, b, ‹ Bạn giải thích tại sao như vậy? Hãy sửa lại cho đúng. Bạn có thể viết như ở bài 1, 5.