Để 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.. Phân
Trang 1
Trang 2Nhiệt liệt chào mừng
Các thầy cô giáo và các em học sinh đến với
Hội giảng G.V.D.G
năm học 2007 - 2008
Trường THPT Nam Tiền Hải
Huyện tiền hải – tỉnh Thái bình
Gv: Nguyễn Thị Nhung
Trang 3GV : Đinh Nguyờn Thanh Tỳ (st) – CENTEA Data chưa rừ nguồn gốc
B i à
19
Giáo án điện tử tin học lớp 11
Chương 6
Chương trình con và lập trình có cấu trúc
Trang 4Để 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
Việc A
Vi c B ệ
1 Chương trình con (ctc)
Trang 5Bài toán: Viết chương trình tính tổng luỹ thừa sau:
Tluythua =a n +b m +c p +d q
Chương trình viết theo lỗi viết thông thư
ờng Program Tinh_tong;
Var Tluythua, Luythua1, Luythua2,Luythua3,Luythua4:
real;
a,b,c,d: real;
m,n,p,q: integer;
Begin
write(‘Hay nhap du lieu theo thu tu a,b,c,d,n,m,p,q);
Readln(a,b,c,d,n,m,p,q);
Luythua1:=1.0;
For i := 1 to n do
Luythua1 : = Luythua1 * a;
Luythua2:=1.0;
For i := 1 to m do
Luythua2 : = Luythua2 * b;
Luythua3:=1.0;
For i := 1 to p do
Luythua3 : = Luythua3 * c;
Luythua4:=1.0;
For i := 1 to q do
Luythua4 : = Luythua4 * d;
Tluythua:=Luythua1+Luythua2+Luythua3+Luythua4;
Writeln(‘Tong luy thua =‘, Tluythua:8:2);
Readln
End
Chương trình viết có sử dụng CTC
Program Tinh_tong;
Var Tluythua, a, b, c, d : real;
m,n,p,q: integer;
Funnction Luythua(x:real, k: integer): integer;
Var J: integer; Tich: real;
Begin Tich:=1.0;
For j:= 1 to k do Tich: = Tich * x;
Luythua: = Tich;
End;
Begin {Bắt đầu chương trình chính}
Write(‘Hay nhap du lieu theo thu tu a, b, c, d, n, m, p, q); Readln(a, b, c, d, n, m, p, q);
Tluythua:= 0;
Tluythua := Luythua(a, n) + Luythua (b, m) + Luythua (c, p)
+Luythua (c, q); Writeln(‘Tong luy thua =‘, Tluythua:8:2);
Readln End
Trang 62 Phân loại 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ề kết quả 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ề kết quả 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ú.
VD: Hàm abs(x)
Hàm Sqrt(x)
VD: Delete(st,vt,n)
Insert(s1,s2,vt)
Trang 73 CẤU TRÚC CỦA CHƯƠNG TRÌNH CON
<PhÇn ®Çu>
<PhÇn khai b¸o
< PhÇn Th©n>
<PhÇn ®Çu>
<PhÇn khai b¸o
< PhÇn Th©n>
function <Tªn hµm> [(<ds tham s >)] :KiÓu cña ố
hµm; [< PhÇn khai b¸o >]
Begin
[<D·y c¸c lÖnh>]
Tªn hµm := gi¸ trÞị ;
End;
Procedure <tªn thñ tôc> [(<Ds tham sè>)];
[< PhÇn khai b¸o >]
Begin
[<D·y c¸c lÖnh>]
End;
Trang 8* Tên Hàm : - Là các tên hàm chuẩn: abs, sqrt, sqr…
- Các tên hàm do người lập trình đặt ra như: UCLN, Luythua…
* Tên thủ tục : - Là các tên thủ tục chuẩn: Delete, Insert…
- Các tên thủ tục do người lập trình đặt ra: Luythua
* Danh sách tham số :
• Tham số hình thức: Là các biến và hằng chứa DL vào/ra của CTC
Ví dụ: Trong chương trình Luỹ thừa thì (x,k) là tham số hình thức
• Tham số thực sự: Là các hằng và biến chứa DL vào/ra tương ứng với các tham số hình thức đặt trong cặp ngoặc ( ).
Ví dụ : Các tham số (a,n), (b,m), (c,p), (d,q) là tham số thực sự
3 CẤU TRÚC CỦA CHƯƠNG TRèNH CON
Trong đó:
Trang 9<Tên chương trình con>[Tham số];
Sqrt(x);
ơng trình con.
Trong CT Tính_tổng thì a, b, c,d, n,m,p,q là biến toàn cục
4 Cách gọi CH ƯƠ NG TRìNH CON
Trang 105 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
Trang 11Program 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 vµ 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.
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
Trang 12• 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ó.
• Lợi ích của việc sử dụng chương trình con:
Ø Hỗ trợ việc thực hiện các
chương trình lớn.
Tránh được việc phải viết lặp
đi lặp lại cùng một dãy lệnh nào đó.
Ø Thuận tiện cho việc phát triển
và nâng cấp chương trình.
Trang 13GV : Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốc
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 ®Çu>
<PhÇn khai b¸o>
< PhÇn th©n>
<PhÇn ®Çu>
<PhÇn khai b¸o>
< PhÇn th©n>