Chương VI: CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC Tiết 38: §17
CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Tiết 1) 1
Làm việc theo nhóm Tính và ghi kết quả ra giấy của tổng sau: S= 28+ 35 + 54 + 63 Yêu cầu: Làm thế nào nhanh nhất mà không được dùng máy tính bỏ Làm thế nào cho túi.
nhanh nhỉ
2
Xét bài toán tính tổng bốn lũy thừa: TLuyThua = an+ bm + cp + dq Làm việc theo nhóm: Mỗi nhóm trình bày giải thuật của 1 lũy thừa: Thuật toán tính n m cp q c a b d B1: Lt 1; i 1; m p p B2: Nếu i > n Thì chuyển sang bước 4 B3: Lt Lt * a ; i i + 1; Quay lại bước 2; B4: In kết quả Lt và kết thúc
3
Var Tlt,Lt1,Lt2,Lt3,Lt4,a,b,c,d:Real; i,n,m,p,q:Integer; Begin Write('Nhap DL theo thu tu a,b,c,d,m,n,p,q: '); Readln(a,b,c,d,m,n,p,q); Lt1:=1.0; Nhp on chng trình tính a^n ây For i:=1 To n Do Lt1:=Lt1*a; Lt2:=1.0; Nhp on chng trình tính b^m ây For i:=1 To m Do Lt2:=Lt2*a; Lt3:=1.0; Nhp on chng trình tính c^p ây For i:=1 To p Do Lt3:=Lt3*a; Lt4:=1.0; Nhp on chng trình tính d^q ây For i:=1 To q Do Lt4:=Lt4*a; Tlt:=Lt1+Lt2+Lt3+Lt4; Writeln('Tong luy thua = ',Tlt:8:2); Readln; End.
4
Var Tlt,Lt1,Lt2,Lt3,Lt4,a,b,c,d:Real; i,n,m,p,q:Integer; Begin Write('Nhap DL theo thu tu a,b,c,d,m,n,p,q: '); Readln(a,b,c,d,m,n,p,q); Lt1:=1.0; For i:=1 To n Do Lt1:=Lt1*a; Lt2:=1.0; For i:=1 To m Do Lt2:=Lt2*b; Lt3:=1.0; For i:=1 To p Do Lt3:=Lt3*c; Lt4:=1.0; For i:=1 To q Do Lt4:=Lt4*d; Tlt:=Lt1+Lt2+Lt3+Lt4; Writeln('Tong luy thua = ',Tlt:8:2); Readln; End.
5
Cách giải bài toán lớn BÀI TOÁN LỚN BÀI TOÁN BÀI TOÁN BÀI TOÁN BÀI TOÁN NHỎ NHỎ NHỎ NHỎ BÀI TOÁN NHỎ
BÀI TOÁN BÀI TOÁN BÀI TOÁN NHỎ NHỎ NHỎ
BÀI TOÁN NHỎ
BÀI TOÁN BÀI TOÁN NHỎ NHỎ 6
Phân chia chương trình thành các mô-đun (CTC) CHƯƠNG TRÌNH MÔ-ĐUN (CTC) MÔ-ĐUN (CTC) MÔ-ĐUN (CTC)
MÔ-ĐUN (CTC)
MÔ-ĐUN (CTC)
MÔ-ĐUN (CTC)
MÔ-ĐUN (CTC)
MÔ-ĐUN (CTC)
MÔ-ĐUN (CTC)
MÔ-ĐUN (CTC)
MÔ-ĐUN (CTC)
7
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ừ nhiều vị trí trong chương trình.
8
Var Tlt,Lt1,Lt2,Lt3,Lt4,a,b,c,d:Real; i,n,m,p,q:Integer; Begin Write('Nhap DL theo thu tu a,b,c,d,m,n,p,q: '); Readln(a,b,c,d,m,n,p,q); Lt1:=1.0; For i:=1 To n Do Lt1:=Lt1*a; Lt2:=1.0; For i:=1 To m Do Lt2:=Lt2*b; Lt3:=1.0; For i:=1 To p Do Lt3:=Lt3*c; Lt4:=1.0; For i:=1 To q Do Lt4:=Lt4*d; Tlt:=Lt1+Lt2+Lt3+Lt4; Writeln('Tong luy thua = ',Tlt:8:2); Readln; End. 9
Chương trình đại diện LuyThua=xk – LuyThua(x,k);
Trong đó LuyThua và x là giá trị kiểu thực, còn k thuộc kiểu nguyên:
Function LuyThua(x:Real;k:Integer):Real; Var j:Integer; Tich:Real; Begin Tich:=1.0; For j:=1 To k Do Tich := Tich * x; LuyThua:=Tich; End; 10
Lt1:=1.0; n For Tính i:=1 aTo n Do Lt1:=Lt1*a; Lt2:=1.0; m For Tính i:=1 bTo m Do Lt2:=Lt2*b;
LuyThua(a,n);
Lt3:=1.0; p For Tính i:=1 cTo p Do Lt3:=Lt3*c;
LuyThua(c,p);
LuyThua(b,m);
LuyThua(d,q);
Lt4:=1.0; q For Tính i:=1 dTo q Do Lt4:=Lt4*d; 11
Var Tlt,Lt1,Lt2,Lt3,Lt4,a,b,c,d:Real; i,n,m,p,q:Integer; Function LuyThua(x:Real;k:Integer):Real; Var j:Integer; Tich:Real; Begin Tich:=1.0; For j:=1 To k Do Tich := Tich * x; LuyThua:=Tich; End; Begin Write('Nhap DL theo TT a,b,c,d,m,n,p,q: '); Readln(a,b,c,d,m,n,p,q); Lt1:=LuyThua(a,n); Lt2:=LuyThua(b,m); Lt3:=LuyThua(c,p); Lt4:=LuyThua(d,q); Tlt:=Lt1+Lt2+Lt3+Lt4; Writeln('Tong luy thua = ',Tlt:8:2); Readln; End. 12
Lợi ích của việc sử dụng chương trình con Tránh được việc phải viết lặp đi lặp lại một dãy lệnh nào đó. Hỗ trợ việc thực hiện các 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.
13
Củng cố
Nêu các lợi ích cơ bản của chương trình con?
14