Chương trình trên viết theo kiểu chương trình con... 1.Khái niệm chương trình con:Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiệnđược gọi từ nh
Trang 2Kiểm tra bài cũ:
Viết chương trình tính tổng:
T=a m +b n +c p với a,b,c là số thực,
m,n,p là các số nguyên dương.
Trang 3Program tinhtong;
Var
T,T1,T2,T3 :Real;
a,b,c : real;
m,n,p : Integer;
Begin
Write(‘nhap du lieua,b,c,m,n,p’);
Readln(a,b,c,m,n,p);
T1:=1.0;
For i:=1 To m Do
T1:=T1* a;
T2:=1.0;
For i:=1 To n Do
T2:=T2* b ; T3:=1.0
For i:=1 To p Do T3:=T3* c ;
T:=T1+T2+T3;
Readln;
End.
a m
b n
c p
Trang 4Ví dụ đặt vấn đề:
Vd1: Cho hàm số F(x)= 5X 2 + 3X + 1 Tính: A= F(2) +F(F(1))
Vd2:
D : = SQRT(sqr(b) - 4*a*c);
Trang 5Program tinhtong;
Var
T,a, b,c:Real;
m,n,p : Integer
Function Luythua(x:Real; k:Integer): Real;
Var i, :Integer;
Lt:Real;
Begin
Lt :=1.0;
For i:=1 To k Do Lt:=Lt* x ;
Luythua:=Lt;
End;
BEGIN
Write(‘nhap du lieu a,b,c,m,n,p);
Readln(a,b,c,m,n,p);
Luythua( a, m) + Luythua( b, n) + Luythua( c, p ) ; T:=
Nhap du lieu a,b,c,m,n,p
a = 2 ; m = 2
b = 3 ; n = 3
c = 4 ; p = 4
Luythua( 2, 3)
4
Luythua( 3, 3)
Function Luythua(x:Real; k:Integer): Real;
Var i, :Integer;
Lt:Real;
Begin
Lt :=1.0;
For i:=1 To k Do Lt:=Lt* x ;
Luythua:=Lt;
End;
Function Luythua(x:Real; k:Integer): Real;
Var i, :Integer;
Lt:Real;
Begin
Lt :=1.0;
For i:=1 To k Do Lt:=Lt* x ;
Luythua:=Lt;
End; 27
Luythua( 4, 4 ) ;
64
Function Luythua(x:Real; k:Integer): Real;
Var i, :Integer;
Lt:Real;
Begin
Lt :=1.0;
For i:=1 To k Do Lt:=Lt* x ;
Luythua:=Lt;
Function Luythua(x:Real; k:Integer): Real;
Var i, :Integer;
Lt:Real;
Begin
Lt :=1.0;
For i:=1 To k Do Lt:=Lt* x ;
Luythua:=Lt;
End;
END.
Chương trình trên viết theo kiểu chương trình con
Trang 61.Khái niệm chương trình con:
Chương trình con là một dãy lệnh mô tả một
số thao tác nhất định và có thể được thực hiện(được gọi) từ nhiều vị trí trong
chương trình.
Trang 7•Tránh được phải viết lặp đi lặp lại cùng
một dãy lệnh:
• Hỗ trợ việc thực hiện chương trình lớn:
• Phục vụ cho quá trình trừu tượng hoá:
• Mở rộng khả năng ngôn ngữ:
• Thuận tiện cho phát triển, nâng cấp
chương trình:
• Lợi ích của việc sử dụng chương trình con:
Trang 8Tránh được phải viết lặp đi lặp lại cùng một dãy lệnh:
Program tinhtong;
Var
T,T1,T2,T3 :Real;
a,b,c : real;
m,n,p : Integer;
Begin
Write(‘nhap du lieua,b,c,m,n,p’);
Readln(a,b,c,m,n,p); T1:=1.0;
For i:=1 To m Do
T1:=T1* a;
T2:=1.0;
For i:=1 To n Do
T2:=T2* b ;
For i:=1 To p Do T3:=T3* c ;
T:=T1+T2+T3;
Readln;
End.
Nhóm lệnh lặp lại nhiều lần
Trang 9Để 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ể
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
Trang 10Ví dụ: Dây chuyền may công nghiệp:
Để may một chiếc áo được nhiều người thợ may mới hoàn thành, mỗi thợ chỉ may một bộ phận như cổ áo, thân áo sau đó
gộp lại thành một chiếc áo hoàn chỉnh.
Hỏi: Hãy cho biết một một chiếc áo theo kiểu công nghiệp như trên so với may
truyền thống có những lợi ích gì?
Trang 11Ví dụ:
Sqr(4)=16
Delete(St, vt, n);
• Phục vụ cho quá trình trừu tượng hoá:
Các hàm và thủ tục trên đã dùng nhưng chúng ta không quan tâm trong các thủ tục và hàm này việc tính toán là như thế nào?
Trang 12Program tinhtong;
Var
T,T1,T2,T3 :Real;
a,b,c : real;
m,n,p : Integer
BEGIN
Write(‘nhap du lieu a,b,c,m,n,p);
Readln(a,b,c,m,n,p);
Luythua( a, m) + Luythua( b, n) + Luythua( c, p ) ; T:=
Nhap du lieu a,b,c,m,n,p
a = 2 ; m = 2
b = 3 ; n = 3
c = 4 ; p = 4
Luythua( 2, 3)
4
Luythua( 3, 3)
27
Luythua( 4, 4 ) ;
END.
Trang 13• Mở rộng khả năng ngôn ngữ:
Các NN lập trình thường cung cấp
phương thức đóng gói các chương trình con nhằm cung cấp một câu lệnh mới Cho người lập trình sử dụng mà không cần biết mã nguồn của nó như thế nào.
Vd: GptB2(a,b,c);
Đóng gói thủ tục giải PT bậc 2 như một câu lệnh để người sử dụng dùng một cách thuận tiện và dễ dàng.
Trang 14• Thuận tiện cho phát triển, nâng cấp
chương trình:
Chương trình được tạo thành từ các chương trình con nên dễ đọc, dễ hiểu, dễ kiểm tra và hiệu chỉnh.
Trang 15• Bài tập:
Viết chương trình tối giản phân số Vd: 4/6= 2/3