• Ví dụ 1: Chương trình vẽ các hình chữ nhật có kích thước khác nhau bằng cách dùng thủ tục Ve_Hcn với các tham số chdai, chrong.. Cách viết và sử dụng thủ tục Khi đó phần đầu của thủ tụ
Trang 1BỘ MÔN TIN HỌC 11 Người thực hiện: Châu Quốc Phong Giáo viên trường THPT Trà Cú
SỞ GIÁO DỤC VÀ ĐÀO TẠO TRÀ VINH
Trường THPT Trà Cú
Trang 3• 1 Cách viết và sử dụng thủ tục (tiết 1)
• a Cấu trúc của thủ tục
• b Ví dụ về thủ tục
a Cấu trúc của hàm
• b Ví dụ về hàm
Trang 4Phân biệt giữa tham số giá trị và tham số biến ?
Phân loại chương
trình con ?
Điểm khác nhau cơ bản giữa hàm và thủ tục ?
Trang 5Chương 6: CHƯƠNG TRÌNH CON VÀ
LẬP TRÌNH CÓ CẤU TRÚC
Phân biệt giữa tham số giá trị và tham số biến ?
Phân loại chương
trình con ?
Điểm khác nhau cơ bản giữa hàm và thủ tục ?
Trang 6• Xét ví dụ vẽ hình chữ nhật có dạng sau:
• * * * * * * *
• * *
• * * * * * * *
•1 Cách viết và sử dụng thủ tục
Để vẽ hình chữ nhật trên,
ta cần sử dụng những câu
lệnh nào?
writeln(‘* * * * * * *’);
writeln(‘* *’);
writeln(‘* * * * * * *’);
Trang 7•1 Cách viết và sử dụng thủ tục
{bắt đầu thủ tục}
{kết thúc thủ tục}
Cấu trúc của thủ tục gồm mấy phần?
Trang 8procedure <tên thủ tục> [(<danh sách tham số>)];
• [<phần khai báo>]
begin
[<dãy các lệnh>]
end ;
•1 Cách viết và sử dụng thủ tục
•a Cấu trúc của thủ tục:
procedure
;
Trang 9program VD_thutuc1;
procedure Ve_Hcn;
begin writeln('* * * * * * *');
writeln('* *');
writeln('* * * * * * *');
end;
begin Ve_Hcn;
•1 Cách viết và sử dụng thủ tục
Thủ tục Ve_Hcn (chương trình con Ve_Hcn)
Lệnh gọi chương trình con
Trang 10có thực hiện được không ?
Để giải quyết bài toán trên, thủ tục Ve_Hcn được viết lại như thế nào ?
•1 Cách viết và sử dụng thủ tục
Trang 11• Ví dụ 1: Chương trình vẽ các hình chữ nhật có kích thước khác nhau bằng cách dùng thủ
tục Ve_Hcn với các tham số chdai, chrong Giá trị của các tham số chdai, chrong là
nguyên (integer)
•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
Khi đó phần đầu của thủ tục được viết như sau: procedure Ve_hcn(chdai, chrong: integer);
Khi đó phần đầu của thủ tục
Ve_Hcn được viết như thế nào?
Trang 121 procedure Ve_Hcn(chdai, chrong: integer);
•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
Tham số hình thức
Vẽ cạnh trên của hình chữ nhật
Vẽ hai cạnh bên
Vẽ cạnh dưới
Trang 13•Câu lệnh gọi thủ tục có dạng:
•<tên thủ tục>[(các tham số thực sự)];
•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
Trang 14•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
• Ví dụ 2: Chương trình hoán đổi giá trị của hai
biến, bằng cách dùng thủ tục Hoan_doi.
•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
Trang 15•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
Tham số hình thức là các tham số biến
Lệnh gọi thủ tục Hoan_doi với các tham số được thay bằng
các biến Thay đổi giá trị của các biến
Trang 16chứa dữ liệu ra được gọi là
các tham số biến (tham biến).
•Để phân biệt tham biến và tham trị, Pascal sử dụng từ khóa var để khai báo cho
những tham số biến.
•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
Trang 17•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
Khác nhau trong khai báo
•* Tham số biến được dùng để ghi lại
•dữ liệu kết quả của việc thực hiện
•thủ tục.
•* Tham số giá trị chỉ để đưa dữ liệu
•vào cho thủ tục khi bắt đầu thực hiện
•thủ tục.
•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
Trang 18•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
procedure Hoan_doi(var x: integer; y: integer);
Kết quả nhận được (trên màn hình) như thế nào khi thực hiện chương trình ?
Trang 19* Chú ý:
• - Khi khai báo các tham số hình thức, nếu có
kiểu khác nhau thì các tham số sẽ cách nhau
bằng dấu chấm phẩy, nếu có cùng kiểu thì cách nhau bằng dấu phẩy.
• Ví dụ:
• procedure CTC(x, y, z: integer; r: real);
•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
Trang 20* Chú ý:
• - Khi khai báo dữ liệu cho các tham số hình thức
chỉ được dùng tên kiểu Tên kiểu là tên chuẩn
hoặc tên do người lập trình đặt.
• Ví dụ:
Khai báo hợp lệ:
procedure Alpha(N: integer; var s: string);
•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
Trang 21-Khai báo không hợp lệ:
procedure Delta(M: array[1 10] of byte; var X: string[25]);
-Khai báo hợp lệ:
type mang = array[1 10] of byte; xau = string[25]; procedure Delta(M: mang; var X: xau);
•b Ví dụ về thủ tục
•1 Cách viết và sử dụng thủ tục
Trang 22function <tên hàm> [(<danh sách tham số>)]:<kiểu dữ liệu>;
• [<phần khai báo>]
begin
[<dãy các lệnh>]
end;
•2 Cách viết và sử dụng hàm
•a Cấu trúc của hàm:
Trong đó: <kiểu dữ liệu> là kiểu dữ liệu của giá trị mà hàm trả về và chỉ có thể là các kiểu
integer, real, char, boolean, string.
Trang 23•2 Cách viết và sử dụng hàm
Cũng giống như thủ tục, nếu hàm không có tham số hình thức thì không cần danh sách
tham số
Khác với thủ tục, trong thân hàm cần có lệnh gán giá trị cho tên hàm:
<tên hàm> := <biểu thức>;
•a Cấu trúc của hàm:
Trang 24• Ví dụ 1: Chương trình thực hiện việc rút gọn một phân số, trong đó có sử dụng hàm tính ước chung lớn nhất (UCLN) của hai số nguyên.
Nêu ý tưởng giải bài toán ?
•2 Cách viết và sử dụng hàm
•b Ví dụ về hàm:
Ý tưởng: Lấy số lớn hơn trong 2 số trừ đi nhau Lặp lại thao tác đến khi nào 2 số bằng nhau UCLN
Trang 25•2 Cách viết và sử dụng hàm
•b Ví dụ về hàm:
Trang 261 function UCLN(x, y: integer): integer;
2 var sodu: integer;
•2 Cách viết và sử dụng hàm
•b Ví dụ về hàm:
Trang 27• * Sử dụng hàm:
Việc sử dụng hàm tương tự như sử dụng các hàm chuẩn
<tên hàm>(tham số)
ví dụ: UCLN(TuSo, MauSo);
Lệnh gọi hàm có thể tham gia vào biểu thức như một toán hạng
ví dụ: A:= 6*UCLN(TuSo, MauSo) + 1;
•2 Cách viết và sử dụng hàm
•b Ví dụ về hàm:
Trang 28•2 Cách viết và sử dụng hàm
•b Ví dụ về hàm:
• Ví dụ 2: Chương trình cho biết giá trị nhỏ nhất trong ba số được nhập từ bàn phím, trong đó có sử dụng hàm tìm số nhỏ nhất trong hai số
Muốn biết số nhỏ nhất trong hai số, làm cách
nào?
Trang 29Cần nhớ:
giống một chương trình).
hiện hàm luôn trả về một giá trị thuộc kiểu xác định qua 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.
tên hàm.
Trang 301 Từ khóa để khai báo hàm là:
2 Sự khác nhau cơ bản giữa chương trình con
hàm và thủ tục là:
A Hàm khác thủ tục ở phần khai báo
B Hàm trả về giá trị còn thủ tục thì không
C Không có sự khác biệt
D Cả A và B đúng
Củng cố
Trang 313 Giả sử ta có hàm Max(A, B: integer):integer; để tìm số lớn hơn trong hai số A và B Cần sử dụng hàm Max trên như thế nào để tìm được số lớn nhất trong bốn số A,B,C,D?
Trang 324 Khẳng định nào sau đây là đúng?
A Các thủ tục và hàm đều có thể có tham
Trang 33Tiết học đến đây là hết.
• Xin chúc quý Thầy (Cô)
cùng các em học sinh
• Vui - Khoẻ và Thành công.
• Xin cám ơn!
Trang 341 Từ khóa để khai báo thủ tục là:
A Program B Procedure
C Function D Processor
2 Muốn khai báo x, y là tham số giá trị (x, y thuộc
kiểu integer) trong thủ tục có tên là “ABC” thì khai báo nào sau đây là đúng?
A Procedure ABC(x, y: integer);
B Procedure ABC(var x, y: integer);
C Procedure ABC(x: integer; var y: integer);
D Procedure ABC(var x: integer; y: integer);
Củng cố
Trang 353 Muốn khai báo x là tham số giá trị, y và z là tham số biến (x, y, z thuộc kiểu integer) trong thủ tục có tên là “CTC” thì khai báo nào sau đây là đúng?
A Procedure CTC(x, y, z: integer);
B Procedure CTC(var x, y, z: integer);
C Procedure CTC(var x:integer; y, z: integer);
D Procedure CTC(x: integer; var y, z: integer);
Củng cố
Trang 364 Cho chöông trình sau: