Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
329 KB
Nội dung
BÀI 18: CÁCHVIẾTVÀSỬDỤNGCHƯƠNGTRÌNHCON VD: Vẽ hình chữ nhật có dạng: ******* * * ******* Để vẽ hình chữ nhật như trên ta cần các lệnh sau. Writeln(‘*******’); Writeln(‘* *’); Writeln(‘*******’); Ta có thể đưa các lệnh này vào thủ tục có tên VE_HCN, mỗi lần gọi thủ tục này thì một HCN được in ra: 1. Cáchviếtvàsửdụng thủ tục: Program CT1; Procedure VE_ HCN; Begin Writeln(‘*******’); Writeln(‘* *’); Writeln(‘*******’); End; Begin VE_ HCN; Writeln; writeln; VE_ HCN; Writeln; writeln; VE_ HCN; Readln; End. Bắt đầu thủ tục Kết thúc thủ tục. Gọi thủ tục vẽ HCN Để cách hai dòng CHƯƠNG TRÌNH: a. Cấu trúc của thủ tục: Procedure < Tên thủ tục> [(<Danh sách tham số>)]; [<Phần khai báo>] Begin {… dãy các lệnh (thân của thủ tục) } End; Trong đó: - Phần đầu thủ tục : trước hết là tên dành riêng Procedure, tiếp theo sau là Tên thủ tục. Danh sách tham số có thể có hoặc không. - Phần khai báo dùng để xác định các hằng, các kiểu, các biến và cũng có thể khai báo hàm và thủ tục khác sửdụng trong thủ tục. - Dãy câu lệnh đặt giữa cặp Begin …. End; tạo thành thân của thủ tục. Procedure VE_HCN ( Dai, rong: integer); - Dòng khai báo trên có nghĩa là: vẽ HCN có kích thước khác nhau tùy theo giá trị Dai , rong. - Chươngtrình sau mô tả vẽ HCN với hai tham số Dai, rong trên. b. Vídụvề thủ tục: VD: Vẽ hình chữ nhật có dạng: ******* * * ******* Sửdụng tham số dai va rong thể hiện cho chiều dài và rộng của hình chữ nhật. Program CT2; Procedure VE_HCN( dai, rong: integer); Var i, j : integer; Begin { ve canh tren cua hcn} For i:=1 to dai do write (‘ * ’); Writeln; { ve 2 canh ben } For j:=1 to rong - 2 do Begin Write(‘ * ’ ); For i:=1 to dai - 2 do write(‘ ’); Writeln( ‘ * ’ ); End; { ve canh duoi } For i:=1 to dai do write(‘ * ’); Writeln; End; { chuongtrinh chinh} Begin VE_HCN (25,10); Writeln; writeln; VE_HCN (5,10); End. *Chú ý: - Hai tham số trong dấu ngoặc đơn sau tên thủ tục khi khai báo là tham số hình thức, còn trong lời gọi thủ tục chúng được gọi là tham số thực tế. - Hai tham số dai, rong là tham số hình thức -Tham số 25,10,5 trong lời gọi thủ tục là những tham số thực tế. -Khi khai báo tham trị thì giá trị các tham số không thay đổi khi kết thúc thủ tục. VD: Chươngtrình có thủ tục Hoan_doi làm nhiệm vụ hoán đổi giá trị hai biến. Trong chươngtrìnhsửdụng từ khóa Var trong tham số của thủ tục vì cả 2 biến đều chứa dữ liệu. Procedure Hoan_Doi(var x,y :integer); Program CT3 Var a,b :integer; Procedure Hoan_Doi(var x,y :integer); Var TG: integer; Begin TG : = x ; x : = y ; y : = TG ; End; {chuong trinh chinh} Begin A:=5; B:=10; Writeln( A : 6, B : 6); Hoan_Doi(A,B); Writeln(A: 6, B:6); Readln; End. Trong dòng đầu thủ tục : Procedure Hoan_doi (var x,y :integer); Các tham số x, y là các tham số biến. - Khai báo: VAR x,y : integer; Xác định x, y là hai tham số biến kiểu nguyên. - Để thấy được sự khác nhau giữa tham số biến và tham số trị ta xét chưongtrình sau, một trong 2 tham số trở thành tham số giá trị Kết quả 5 10 10 5 Program CT4 Var a,b :integer; Procedure Hoan_doi(x: integer, Var y: integer); Var TG: integer; Begin TG : = x ; x : = y ; y : = TG ; End; {chuong trinh chinh} Begin A:=5; B:=10; Writeln( A:6, B : 6); Hoan_Doi(A,B); Writeln(A: 6, B:6); Readln; End. Trong chươngtrình này x khai báo tham trị, y khai báo tham biến nên sau khi thực hiện song thủ tục chỉ có y là thay đổi giá trị còn biến x không đổi. Kết quả khi chạy chương trình: 5 10 5 5 Cấu trúc của hàm: FUNCTION <Tên hàm>( [ Danh sách tham số >] ) : <kiểu của hàm>; [< Phần khai báo> ] BEGIN (…Dãy các lệnh ( thân của hàm )…) <Tên hàm>: =<Biểu thức> END; 2. Cáchviếtvàsửdụng hàm: [...]... Tục và Hàm: 1.Cả thủ tục và hàm đều là chương trình con, có cấu tạo giống như một chươngtrình trừ dòng đầu tiên và kết thúc bằng END; 2 Cả thủ tục và hàm đều có thể chứa các tham số ( tham số giá trị và tham số biến), cùng tuân theo các qui định về khai báo vàsửdụng các lọai tham số này Ví dụ: Viết thủ tục tính bình phương của một số thực Procedure BinhPhuong(X: real; var X2 : Real); Begin Cách. .. FUNCTION , sau tên hàm và phần khai báo danh sách tham số ( nếu có) phải chỉ ra giá trị kết quả của Hàm thuộc kiểu dữ liệu nào – Kiểu của hàm là kiểu kết quả của Hàm và chỉ có thể là một trong các kiểu : Integer, Real, Char, Boolean, String Trong thân của hàm thường có câu lệnh gán giá trị cho tên hàm : = Sự khác giữa việc sử dụng Thủ tục và việc sửdụng hàm Hàm: BinhPhuong(a,Temp);... Begin Cách tính c:=a + b trong chươngtrình X2: = X*X ; chính End; 2 2 BinhPhuong(a,Temp); c:=Temp;(* c:=a2 *) BinhPhuong(b,Temp); c: =c + Temp; (*c:=a2 + b2) Ví dụ: Viết hàm tính bình phương của một số thực Function BinhPhuong( X: Real) : Real; Begin BinhPhuong:=X*X ; Cách tính c:=a2+b2 trong chươngtrình End; chính • c: = Binhphuong(a) +BinhPhuong(b); * Sự khác giữa Thủ tục và Hàm: Procedure BinhPhuong(X:... BinhPhuong(a,Temp); c:=Temp;(* c:=a2 *) BinhPhuong(b,Temp); c: =c + Temp; (*c:=a2 + b2*) Lời gọi thủ tục: Tên_thủ_tục(Các tham số truyền vào nếu có) c: = Binhphuong(a) +BinhPhuong(b); Tương tự như sử dụng các hàm chuẩn của Pascal như SIN(x), SQRT(x), Viết tên của hàm cần gọi và truyền các tham số thật sự cho hàm . thức> END; 2. Cách viết và sử dụng hàm: Sự giống nhau giữa Thủ Tục và Hàm: 1.Cả thủ tục và hàm đều là chương trình con, có cấu tạo giống như một chương trình. BÀI 18: CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON VD: Vẽ hình chữ nhật có dạng: ******* * * ******* Để vẽ