170 likes | 308 Views
Kiểm tra bài cũ. Câu 1: Hãy nêu các bước để đọc tệp ? Câu 2: Hãy nêu các bước để ghi tệp ?. BÀI TOÁN TÍNH TỔNG GIAI THỪA TGiaithua = n! + m! + p! + q!. program tong_giai_thua ; var TGiaithua , Giaithua1, Giaithua2, Giaithua3, Giaithua4: real; n, m, p, q, i : integer; begin
E N D
Kiểmtrabàicũ Câu 1: Hãynêucácbướcđểđọctệp? Câu 2: Hãynêucácbướcđểghitệp?
BÀI TOÁN TÍNH TỔNG GIAI THỪA TGiaithua = n! + m! + p! + q! programtong_giai_thua; varTGiaithua, Giaithua1, Giaithua2, Giaithua3, Giaithua4: real; n, m, p, q, i: integer; begin writeln(‘nhapvaocac so nguyen n, m, p, q’); readln(n, m, p, q); Giaithua1:=1.0; for i:=ndownto1do Giaithua1:=Giaithua1*i; Giaithua2:=1.0; for i:=m downto1do Giaithua2:=Giaithua2*i; Giaithua3:=1.0; for i:=pdownto1do Giaithua3:=Giaithua3*i; Giaithua4:=1.0; for i:=qdownto1do Giaithua4:=Giaithua4*i; TGiaithua:= Giaithua1 + Giaithua2 + Giaithua3 + Giaithua4; Writeln(‘tong giaithua =’, Tgiaithua:10:4’); readln; end. Quansátchươngtrìnhnàytacónhậnxétgì???
CHƯƠNG VI: CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC BÀI 17: CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI
1. Kháiniệmchươngtrình con Xétbàitoántínhtổngbốnlũythừa: TLuythua = an+ bm+ cp + dq
Xétbàitoántínhtổngbốnlũythừa:TLuythua = an + bm + cp + dq programtong_luy_thua; varTLuythua, Luythua1, Luythua2, Luythua3, Luythua4: real; a, b, c, d: real; n, m, p, q, i: integer; begin writeln(‘hay nhap du lieu theothutu a, b, c, d, n, m, p, q’); readln(a, b, c, d, n, m, p, q); Luythua1:=1.0; for i:=1tondo Luythua1:=Luythua1*a; Luythua2:=1.0; fori:=1tomdoLuythua2:=Luythua2*b; Luythua3:=1.0; fori:=1topdo Luythua3:=Luythua3*c; Luythua4:=1.0; fori:=1toqdoLuythua4:=Luythua4*d; TLuythua:=Luythua1 + Luythua2 + Luythua3 + Luythua4; writeln(‘Tong luythua =’, TLuythua:8:4); readln; end. programtong_luy_thua; varTLuythua: real; a, b, c, d: real; n, m, p, q: integer; functionLuythua(x:real; k: integer):real; var j:integer; Tich: real; begin Tich:=1.0; for j:=1to k do Tich:=Tich*x; Luythua:=Tich; end; begin writeln(‘hay nhap du lieu theothutu a, b, c, d, n, m, p, q’); readln(a, b, c, d, n, m, p, q); TLuythua:=Luythua(a, n) + Luythua(b, m) + Luythua(c, p) + Luythua(d, q); writeln(‘Tong luythua =’, TLuythua:8:4); readln; end.
1. Kháiniệmchươngtrình con Lưu ý: Chươngtrình con chỉcầnviếtmộtlầnnhưngcóthểthựchiệnnhiềulầntrongchươngtrình. Chươngtrình con làmộtdãylệnhmôtảmộtsốthaotácnhấtđịnhvàcóthểđượcthựchiện (đượcgọi) từnhiềuvịtrítrongchươngtrình.
2. Phânloạivàcấutrúccủachươngtrình con: Chươngtrình con a. Phânloại: Hàm (function) làchươngtrình con thựchiệnmộtsốthaotácnàođóvàtrảvềmộtgiátrịqua têncủanó Thủtục(procedure) làchươngtrình con thựchiệncácthaotácnhấtđịnhnhưngkhôngtrảvềgiátrịnào qua têncủanó. Vídụ: Cácthủtụcvào/rachuẩn hay xửlýxâu: Writeln, readln, delete, insert,… Vídụ: Hàm sin(x) nhậngiátrịthực x vàtrảvềgiátrịsinx.
2. Phânloạivàcấutrúccủachươngtrình con: b. Cấutrúcchươngtrình con <phầnđầu> [<phầnkhaibáo>] <phầnthân> Trongđó:Phầnđầugồmcótênchươngtrình con, cácthamsố. • Phầnkhaibáo: khaibáobiếnchodữliệuvào, ra, cáchằngvàbiếnchochươngtrình con • Phầnthân: dãycâulệnhđượcviếtgiữacặp begin end;
2. Phânloạivàcấutrúccủachươngtrình con: programtong_luy_thua; varTLuythua: real; a, b, c, d: real; n, m, p, q: integer; functionLuythua(x:real; k: integer):real; var j:integer; Tich: real; begin Tich:=1.0; for j:=1to k do Tich:=Tich*x; Luythua:=Tich; end; begin writeln(‘hay nhap du lieu theothutu a, b, c, d, n, m, p, q’); readln(a, b, c, d, n, m, p, q); TLuythua:=Luythua(a, n) + Luythua(b, m) + Luythua(c, p) + Luythua(d, q); writeln(‘Tong luythua =’, TLuythua:8:4); readln; end. programtong_luy_thua; varTLuythua: real; a, b, c, d: real; n, m, p, q: integer; functionLuythua(x:real; k: integer):real; var j:integer; Tich: real; begin Tich:=1.0; for j:=1to k do Tich:=Tich*x; Luythua:=Tich; end; begin writeln(‘hay nhap du lieu theothutu a, b, c, d, n, m, p, q’); readln(a, b, c, d, n, m, p, q); TLuythua:=Luythua(a, n) + Luythua(b, m) + Luythua(c, p) + Luythua(d, q); writeln(‘Tong luythua =’, TLuythua:8:4); readln; end. b. Cấutrúcchươngtrình con Lưu ý: • Thamsốhìnhthức: làcácbiếnđượckhaibáochodữliệuvào/racủachươngtrình con. Thamsốhìnhthức • Vídụ: Thamsốthựcsựứngvớithamsốhìnhthức (x, k). • Thamsốthựcsự: làcáchằngvàbiếnchứadữliệuvàovàratươngứngvớicácthamsốhìnhthứcđặttrongcặpngoặc (và) khigọimộtchươngtrình con. Vídụ:
2. Phânloạivàcấutrúccủachươngtrình con: b. Cấutrúcchươngtrình con: programtong_luy_thua; varTLuythua: real; a, b, c, d: real; n, m, p, q: integer; functionLuythua(x:real; k: integer):real; var j:integer; Tich: real; begin Tich:=1.0; for j:=1to k do Tich:=Tich*x; Luythua:=Tich; end; begin writeln(‘hay nhap du lieu theothutu a, b, c, d, n, m, p, q’); readln(a, b, c, d, n, m, p, q); TLuythua:=Luythua(a, n) + Luythua(b, m) + Luythua(c, p) + Luythua(d, q); writeln(‘Tong luythua =’, TLuythua:8:4); readln; end. programtong_luy_thua; varTLuythua: real; a, b, c, d: real; n, m, p, q: integer; functionLuythua(x:real; k: integer):real; var j:integer; Tich: real; begin Tich:=1.0; for j:=1to k do Tich:=Tich*x; Luythua:=Tich; end; begin writeln(‘hay nhap du lieu theothutu a, b, c, d, n, m, p, q’); readln(a, b, c, d, n, m, p, q); TLuythua:=Luythua(a, n) + Luythua(b, m) + Luythua(c, p) + Luythua(d, q); writeln(‘Tong luythua =’, TLuythua:8:4); readln; end. Biếntoàncục. • Biếncụcbộlàcácbiếnđượckhaibáođểdùngriêngchochươngtrình con. Vídụ: Biếncụcbộ. • Biếntoàncụclàbiếnđượckhaibáotrongchươngtrìnhchính. Vídụ:
2. Phânloạivàcấutrúccủachươngtrình con: c. Thựchiệnchươngtrình con programtong_luy_thua; varTLuythua: real; a, b, c, d: real; n, m, p, q: integer; functionLuythua(x:real; k: integer):real; var j:integer; Tich: real; begin Tich:=1.0; for j:=1to k do Tich:=Tich*x; Luythua:=Tich; end; begin writeln(‘hay nhap du lieu theothutu a, b, c, d, n, m, p, q’); readln(a, b, c, d, n, m, p, q); TLuythua:=Luythua(a, n) + Luythua(b, m) + Luythua(c, p) + Luythua(d, q); writeln(‘Tong luythua =’, TLuythua:8:4); readln; end. • Viếttrongphầnkhaibáocủachươngtrìnhchính • Kếtthúcbằngdấu ; • Chươngtrình con đượcviếttrongphầnkhaibáocủachươngtrìnhchính. • Kếtthúcchươngtrình con làdấuchấmphẩy; • Đểgọi 1 chươngtrình con taphảicólệnhgọinó. • Lệnhgọichươngtrình con: • <tênchươngtrình con>[(<thamsốthựcsự>)] • Cúpháp: <tênchươngtrình con>(<thamsốthựcsự>).
Ghinhớ! • Chươngtrình con làmộtdãylệnhmôtảmộtsốthaotácnhấtđịnhvàcóthểđượcthựchiện (đượcgọi) từnhiềuvịtrítrongchươngtrình. • Phânloạichươngtrình con: + Hàm (Function). + Thủtục (Procedure). • Cấutrúcchươngtrình con: • Thamsốhìnhthức, thamsốthựcsố,biếncụcbộ, biếntoàncục,lệnhgọichươngtrình con. <phầnđầu> [<phầnkhaibáo>] <phầnthân>
Củngcố Câu 1:Hãychọncâutrảlờiđúngnhấtchokháiniệmcủachươngtrình con? D. Chươngtrình con lànhữngdãylệnhmôtảmộtsốthaotácnhấtđịnhđượcthựchiện ( đượcgọi) từmộtvịtrítrongchươngtrình. A. Chươngtrình con làmộtdãylệnhmôtảmộtsốthaotácnhấtđịnhđượcthựchiện ( đượcgọi) từmộtvịtrítrongchươngtrình. B. Chươngtrình con lànhữngdãylệnhmôtảmộtsốthaotácnhấtđịnhđượcthựchiện ( đượcgọi) từnhiềuvịtrítrongchươngtrình. C. Chươngtrình con làmộtdãylệnhmôtảmộtsốthaotácnhấtđịnhđượcthựchiện ( đượcgọi) từnhiềuvịtrítrongchươngtrình.
Củngcố Câu 2: Điểmkhácnhaucởbảncủahàmvàthủtụclàgì? Chọncâutrảlờiđúng. D. Xâydựnghàmkhóhơnthủtục. A. Hàmcósửdụngbiếnsốcònthủtụcthìkhôngcósửdụngbiếnsố. B. Thủtụckhaibáotrướcphầnthânchươngtrìnhcònhàmthìsauphầnthânchươngtrình. C. Hàmsẽtrảvềmộtgiátrịthông qua tênhàmcònthủtụcthìkhông.
Củngcố Câu 3: Cho biếtđiểmkhácnhaugiữabiếntoàncụcvàbiếncụcbộ?
Dặndò • Vềnhàhọcbài 17. • Xembài 18.