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

Bai 18 Chuong Trinh Con ( Ham- Thu Tuc)

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 (866.95 KB, 11 trang )


B i 18à

GV: Tôn Thị Quỳnh Nga

Để viết chương trình giải các bài toán lớn, phức tạp người lập trình có thể
chia thành nhiều bài toán nhỏ, mỗi bài toán là một dãy lệnh mô tả một số thao
tác nhất định (gọi là ctc). Sau đó ghép nối các chương trình con thành chương
trình chính.
Nhóm
trưởng
V
i

c

A
Vi c Bệ
1. Chương trình con (ctc)

2. Phân lo i ch ng trình conạ ươ
Ch ng trình conươ
Ch ng trình conươ
Hàm (Function)
Là chương trình con thực
hiện một số thao tác nào
đó, và trả về một giá trị
qua tên của nó.
Hàm (Function)
Là chương trình con thực
hiện một số thao tác nào


đó, và trả về một giá trị
qua tên của nó.
Th t c (Procedure)ủ ụ
Là chương trình con thực
hiện một số thao tác nào
đó, và không trả về giá
trị nào qua tên của nó.
Th t c (Procedure)ủ ụ
Là chương trình con thực
hiện một số thao tác nào
đó, và không trả về giá
trị nào qua tên của nó.
Tính tổng luỹ thừa
Tính tổng luỹ thừa


S = a
S = a
n
n
+ b
+ b
m
m
+ c
+ c
p
p
+ d
+ d

q
q
Vẽ và đưa ra màn hình 5
Vẽ và đưa ra màn hình 5
hình chữ nhật có kích
hình chữ nhật có kích
thước khác nhau
thước khác nhau
.
.

3. CẤU TRÚC CỦA CHƯƠNG TRÌNH CON
<Phần khai báo>
< Phần thân>
<Phần khai báo>
< Phần thân>
Function <
Tên hàm
Tên hàm>(<ds tham số lúc
khai báo>): kiểu của hàm;
[< Phần khai báo >]
Begin
[<Dãy các lệnh>]

tênhàm
tênhàm := giá trị trả về;
End;
Procedure <tên thủ tục> (<ds tham số
lúc khai báo>);
[< Phần khai báo >]

Begin
[<Dãy các lệnh>]
End;
Hàm (Function) Thủ tục (Procedure)
Lời gọi thực thi:
tên biến:= tênhàm(<ds tham số lúc thực thi>);
Lời gọi thực thi:
tên thủ tục(<ds tham số lúc thực thi>);


Danh sách tham số khai báo có dạng:
[Var] thamsố1
[Var] thamsố1
,
,
thamsố2
thamsố2
,
,


,
,
thamsốN: Kiểu DL 1
thamsốN: Kiểu DL 1
;
;
[Var] thamsốA
[Var] thamsốA
,

,
tham sốB
tham sốB
,
,


,
,
thamsốZ: Kiểu DL 2
thamsốZ: Kiểu DL 2
;
;


4. Ghi chú:

Tham số và cách truyền tham số:

Tham số tại nơi gọi: Tham số THỰC ( biến chính)

Tham số tại nơi được gọi: Tham số HÌNH THỨC ( biến CTC)
Tham số HÌNH THỨC TRỊ: THAM TRỊ
Tham số HÌNH THỨC BiẾN: THAM BiẾN
Kiểu TS hình thức
Kiểu TS hình thức
Khai báo
Khai báo
Giá trị của TS thực tương ứng
Giá trị của TS thực tương ứng

sau khi thực thi CTC
sau khi thực thi CTC
Ts hình thức trị
Ts hình thức trị
(Truyền bằng trị)
(Truyền bằng trị)
Không có
Không có
VAR
VAR
Giữ nguyên giá trị ban đầu trước
Giữ nguyên giá trị ban đầu trước
khi gọi CTC
khi gọi CTC
Ts hình thức biến
Ts hình thức biến
(Truyền bằng tham
(Truyền bằng tham
khảo
khảo
Có VAR
Có VAR
Lấy kq giá trị của CTC
Lấy kq giá trị của CTC

4. Ghi chú:
Ví dụ TS hình thức trị và TS hình thức biến:
Program main;
Var x, y: integer;
Procedure sub( a: integer ; var b: integer);

Begin
a:=a+5;
b:=b+5;
Writeln(a,’ ‘,b);
end;
Begin
x:=1; y:= 2; writeln(x,’ ‘,y);
Sub(x,y);
Writeln(x,’ ‘,y);
End.
TS hình thức
Tham trị
Tham biến
Kết quả?
X= 1
Y= 7
X= 6
Y= 7

4. Ghi chú

Quy tắc cho TS hình thức và TS thực:
Quy tắc 2:
Số lượng TS hình thức và TS thực
phải tương ứng với nhau theo từng vị trí
Quy tắc 3:
Các TS hình thức và TS thực
phải tương ứng với nhau về kiểu DL
Quy tắc 4:
Với TS hình thức được khai báo như là THAM TRỊ

thì TS thực tương ứng có thể là hằng, biến, bt, trị trả về từ hàm.
Với TS hình thức được khai báo như là THAM BiẾN
thì TS thực tương ứng chỉ có thể là biến
Quy tắc 1:
Số lượng TS hình thức và TS thực
phải bằng nhau
Program main;
Var x, y: integer;
Procedure sub( a: integer, var b: integer);
Begin
a:=a+5;
b:=b+5;
Writeln(a,’ ‘,b);
end;
Begin
x:=1; y:= 2; writeln(x,’ ‘,y);
Sub(x,y);
Writeln(x,’ ‘,y);
End.

4. M t s ví d ộ ố ụ
Bài toán 1: Lập chương trình tối giản phân số
Bài toán 1: Lập chương trình tối giản phân số
Ví d : ụ nh p ậ 6/10 => ra 3/5
* INPUT : Nh p phân s a/b;ậ ố
* OUTPUT : Phân s c/d - Trong ó: c = a/ố đ ƯCLN (a,b);
d = b/ƯCLN(a,b);
 Viết chương trình con thực hiện tìm ƯCLN(a,b) và gọi nó khi tính c,d trong
chương trình chính.


Program tgps;
Uses crt;
Var tu,mau,c,d : integer;
Function UCLN( a,b :integer) : integer;
Begin
While a<> b do
if a>b then a := a-b else b:=b-a;
UCLN := a;
end;
BEGIN
Write(‘ Nhap vao tu so va mau so:’); readln(tu,mau);
C := tu div UCLN(tu,mau) ; d := mau div UCLN(tu,mau);
Writeln(‘ Phan so toi gian = ’, c, ‘ / ’, d);
Readln;
END.
Write( Nhap vao tu so va ‘
mau so: );’
C := 6
div
d := 10
div
UCLN(6,10) UCLN(6,10);
Writeln(‘ Phan so toi gian = ’, 3, ‘ / ’, 5);
Readln;
END.
BEGIN
Readln(tu,mau);
USCLN=2;
USCLN=2;
Nhap vao tu so va mau so: 6 10

Phan so toi gian= 3/5


Các CTC thường được
đặt sau phần khai báo
của chương trình
chính.

CTC chỉ được thực hiện
khi có lời gọi nó.

Hãy nhớ!
 Chương trình con là một dãy lệnh
giải quyết một bài toán con cụ
thể.
 Cấu trúc chương trình gồm:
Phân loại chương trình con:
+ Hàm
+ Thủ tục
<Ph n khai báo>ầ
< Ph n thân>ầ
<Ph n khai báo>ầ
< Ph n thân>ầ
GV: Tôn Thị Quỳnh Nga

×