Tải bản đầy đủ (.ppt) (36 trang)

Bài 18. Ví dụ về cách viết và sử dụng Chương Trình Con

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (926.67 KB, 36 trang )


BỘ 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ú
Tập thể lớp 11A1 - Kính chào quý Thầy cô.
SỞ GIÁO DỤC VÀ ĐÀO TẠO TRÀ VINH
Trường THPT Trà Cú



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

2. Cách viết và sử dụng hàm (tiết 2)
a. Cấu trúc của hàm

b. Ví dụ về hàm

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 ?

Chươ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 ?


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(‘* * * * * * *’);

procedure Ve_Hcn;

begin
writeln(‘* * * * * * *’);
writeln(‘* *’);
writeln(‘* * * * * * *’);


end;

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?

procedure <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
;

program VD_thutuc1;
procedure Ve_Hcn;
begin
writeln('* * * * * * *');
writeln('* *');
writeln('* * * * * * *');
end;
begin

Ve_Hcn;
writeln;writeln;
Ve_Hcn;
writeln;writeln;
Ve_Hcn;
readln
end.

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

program VD_thutuc1;
procedure Ve_Hcn;
begin
writeln('* * * * * * *');
writeln('* *');
writeln('* * * * * * *');
end;
Begin
Ve_Hcn;
writeln;writeln;
Ve_Hcn;
writeln;writeln;
Ve_Hcn;
readln
end.
Giả sử ta cần vẽ nhiều hình chữ
nhật với kích thước khác nhau

(25x10; 5x10; 4x2), thủ tục này
có 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


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?

1. procedure Ve_Hcn(chdai, chrong: integer);
2. var i, j: integer;
3. begin
4. for i:=1 to chdai do write('*');
5. writeln;
6. for j:=1 to chrong-2 do
begin

write('*');
for i:=1 to chdai-2 do write(' ');
writeln('*');
end;
7. for i:=1 to chdai do write('*');
8. writeln;
9. end;

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

begin
clrscr;
Ve_Hcn(25,10);
writeln;writeln;
Ve_Hcn(5,10);
readln;
clrscr;
a:=4; b:=2;
for i:=1 to 4 do
begin
Ve_Hcn(a,b);
readln; clrscr;
a:=a*2; b:=b*2;

end;
readln;
end.
* Trong lệnh gọi thủ tục, các tham
số hình thức được thay bằng các
tham số thực sự tương ứng là các
giá trò cụ thể được gọi là tham số
giá trò (tham trò).

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


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.
x
y
TG
TG
TG
x

y
TG
x
y
TG := x (1)
x := y (2)
y := TG (3)

b. Ví dụ về thủ tục

1. Cách viết và sử dụng thủ tục

1. program VD_thambien1;
2. uses crt;
3. var a, b: integer;
4. procedure Hoan_doi(var x,y: integer);
5. var TG: integer;
6. begin
TG:= x;
x:= y;
y:= TG;
end;
7. begin
8. clrscr;
9. a:=5; b:=10;
10. writeln(a:6, b:6);
11. Hoan_doi(a,b);
12. writeln(a:6, b:6);
13. readln;
14. end.


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

program VD_thambien1;
uses crt;
var a, b: integer;
procedure Hoan_doi(var x,y: integer);
var TG: integer;
begin
TG:= x;
x:= y;
y:= TG;
end;
begin
clrscr;
a:=5; b:=10;
writeln(a:6, b:6);
Hoan_doi(a,b);
writeln(a:6, b:6);
readln;
end.


Trong lệnh gọi thủ tục, các
tham số hình thức được thay
bằng các tham số thực sự
tương ứng là tên các biến
chứ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

program VD_thambien2;
uses crt;
var a, b: integer;
procedure Hoan_doi(x: integer; var y: integer);
var TG: integer;
begin
TG:= x;
x:= y;
y:= TG;
end;
begin
clrscr;
a:=5; b:=10;

writeln(a:6, b:6);
Hoan_doi(a,b);
writeln(a:6, b:6);
readln;
end.

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ố hình thức
Khác nhau ở kết quả sau
khi thực hiện thủ tục
Điểm khác nhau
giữa tham trò và
tham biến ?
•* 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

1. program VD_thambien2;

2. uses crt;
3. var a, b: integer;
4. procedure Hoan_doi(x: integer; var y: integer);
5. var TG: integer;
6. begin
TG:= x;
x:= y;
y:= TG;
end;
7. begin
8. clrscr;
9. a:=5; b:=10;
10. writeln(a:6, b:6);
11. Hoan_doi(a,b);
12. writeln(a:6, b:6);
13. readln;
14. end.

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 ?

* 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

* 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

-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

function <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.


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:


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


2. Cách viết và sử dụng hàm


b. Ví dụ về hàm:
Nhập x và y
du  x chia y
x  y
y  du
y = 0
UCLN là x
và kết thúc
Lần
duyệt
x y du
1 125 35 20
2 35 20 15
3 20 15 5
4 15 5 0
5 5 0
sai
đúng
* Thuật toán Euclide

×