22
CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC

Bài 17 tin học 11

Embed Size (px)

Citation preview

CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC

Chương trình con là gì?1

Lợi ích chương trình con2

Phân loại và cấu trúc chương trình con3

Thực hiện chương trình con4

CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Tiết 1)

1. Khái niệm chương trình con

CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI

- C¸c ch- ng tr×nh gi¶i c¸c bµi to¸n phøc t¹p th- ng rÊt dµiươ ườ

=> Khã ®äc, khã hiÓu, khã hiÖu chØnh=> §Æt ra vÊn ®Ò lµm sao dÔ ®äc, dÔ hiÓu, dÔ hiÖu chØnh

- Mét bµi to¸n th- ng cã thÓ ph©n tÝch thµnh nhiÒu bµi to¸n con ườnhá VÝ dô: TÝnhLT=am+bn+cp+dq

Gåm 4 bµi to¸n con lµ tÝnh am, tÝnh bn, tÝnh cp, tÝnh dq

Giao cho 4 ng-êi, c«ng viÖc sÏ nhÑ nhµng h¬n

- Mçi bµi to¸n con l¹i chia thµnh c¸c bµi to¸n con nhá h¬n

- Qu¸ tr×nh lµm “mÞn” nh- thÕ ®-îc gäi lµ c¸ch thiÕt kÕ tõ trªn ưxuèng.

1. Khái niệm chương trình con

CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI

Tương tự trên máy tính, khi giải các bài toán phức tạp, người ta chia thành các bài toán nhỏ, gọi lad module ha chương trình con.Chương trình chính sẽ được xây dựng từ các chương trình con

Nhóm trưởng

Việc A

Việc B

1. Khái niệm chương trình con

CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI

Cách lập trình như vậy dựa trên lập trình có cấu trúc và chương trình được xây dựng gọi là chương trình có cấu trúc

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.

Tương tự trên máy tính, khi giải các bài toán phức tạp, người ta chia thành các bài toán nhỏ, gọi lad module ha chương trình con.Chương trình chính sẽ được xây dựng từ các chương trình con

1. Khái niệm chương trình con

CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI

VÝ dô: ViÕt ch­ ng tr×nh tÝnh tæng ươ am+bn+cp+dq.Program Tong_Luy_thua;Var Tong, lta, ltb, ltc, ltd: Real; a, b, c, d: Real; i, m, n, p, q: Integer;Begin

Write(‘ Nhap a,b,c,d,m,n,p,q: ’);Readln(a,b,c,d,m,n,p,q);lta:=1;For i:=1 to m do lta:=lta*a;ltb:=1;For i:=1 to n do ltb:=ltb*b;

ltc:=1; For i:=1 to p do ltc:=ltc*c;ltd:=1;For i:=1 to q do ltd:=ltd*d;Tong:=lta+ltb+ltc+ltd;Write(‘Tong LT = ’,Tong:8:2);Readln;

End.

1. Khái niệm chương trình con

CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI

Ví Dụ: Viết chương trình tính tổng: am+bn+cp+dq

Var i: Integer; ltx:=1; For i:=1 to k do ltx:=ltx*x;

­ Trong ch­ ng tr×nh trªn cã 4 ®o¹n lÖnh t­ ng tù nhau, lÆp ®i lÆp ươ ươl¹i Ch­ ng tr×nh dµi, khã theo dâi.ươ­ §Ó n©ng cao hiÖu qu¶ lËp tr×nh, ng«n ng÷ lËp tr×nh cho phÐp x©y dùng c¸c ch­ ng tr×nh con ®¹i diÖn cho nhiÒu ®o¹n lÖnh t­ ng tù ươ ươnhau.­ VÝ dô: TÝnh lòy thõa ltx = xk.

­ §Æt tªn cho nã lµ Luythua víi c¸c tham sè lµ x vµ k.­ Khi cÇn tÝnh lòy thõa cña gi¸ trÞ cô thÓ nµo th× gäi nã víi c¸c tham sè. VÝ dô: Luythua(a,m), Luythua(b,n),…

2. Lợi ích sử dụng chương trình con:

Ch­ NG tr×nh con vµ ph©n lo¹iƯƠ

Tránh được việc phải viết đi viết lại nhiều lần cùng 1 dãy lệnh;

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;

Haõy nhôù

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.

Lợi ích của việc sử dụng chương trình con:- Tránh được việc lặp đi lặp lại cùng 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ụ 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.

CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Tiết 2)

1. Haõy chæ ra caâu noùi sai:A. Chöông trình con thöïc chaát laø moät khoái leänh nhaèm giaûi quyeát moät baøi toaùn con.B. Chöông trình con laø moät daõy leänh moâ taû moät soá thao taùc nhaát ñònh vaø coù theå ñöôïc thöïc hieän töø nhieàu vò trí trong chöông trình.C. Chöông trình con laø khoâng caàn thieát vì ta coù theå giaûi moïi baøi toaùn maø khoâng caàn duøng noù.D. Chöông trình con laø raát caàn thieát ñeå giaûi quyeát caùc baøi toaùn lôùn vaø laøm vieäc theo nhoùm.

KIEÅM TRA BAØI CUÕ

2. Lôïi ích cuûa vieäc söû duïng chöông trình con:A. Traùnh vieäc laëp ñi, laëp laïi cuøng moät daõy leänh naøo ñoù.B. Hoã trôï vieäc thöïc hieän caùc chöông trình lôùn.C. Thuaän tieän cho vieäc phaùt trieån, naâng caáp chöông trình.D. Taát caû caùc caâu treân ñeàu ñuùng.

3. Phaân loaïi vaø caáu truùc cuûa chöông trình con

a. Phaân loaïi

CHÖÔNG TRÌNH CON VAØ PHAÂN LOAÏI

Chöông trình con goàm coù 2 loaïi:

Haøm(Function)

Laø chöông trình conThöïc hieän moät soá thao taùc naøo ñoùTraû veà moät giaù trò qua teân haøm

Thuû tuïc(Procedure)

Laø chöông trình conThöïc hieän moät soá thao taùc naøo ñoù

Sqrt(x): Traû veà caên baäc 2 cuûa soá x

Length(S): Traû veà chieàu daøi xaâu S

EOF(<bieán teäp>): Traû veà giaù trò True neáu con troû ñang chæ tôùi cuoái teäp

Writeln(<danh saùch keát quaû>): Xuaát danh saùch keát quaû ra maøn hình

Delete(S,vt,N): Xoùa N kyù töï trong xaâu S, tính töø vò trí thöù vt

Assign(<bieán teäp>,<teân teäp>): Gaén teân teäp cho bieán teäp.

3. Phaân loaïi vaø caáu truùc cuûa chöông trình con

b. Caáu truùc chöông trình con

CHÖÔNG TRÌNH CON VAØ PHAÂN LOAÏI

Haõy trình baøy caáu truùc cuûa moät chöông trình?

Caáu truùc chöông trình

[<Phaàn khai baùo>]<Phaàn thaân>

Caáu truùc chöông trình con

<Phaàn ñaàu>[<Phaàn khai baùo>]

<Phaàn thaân>

Function Luythua(x: Real; k: Integer): Real; Var i: Integer; ltx: Real; Begin ltx:=1; For i:=1 to k do ltx:=ltx*x; Luythua:=ltx; End;

Ñöôïc duøng ñeå khai baùo teân chöông trình con, neáu laø haøm thì caàn khai baùo kieåu döõ lieäu cho giaù trò traû veà.

Coù theå khai baùo bieán cho döõ lieäu vaøo vaø ra, caùc haèng vaø bieán söû duïng trong chöông trình con.

Laø moät daõy leänh

3. Phaân loaïi vaø caáu truùc cuûa chöông trình con

CHÖÔNG TRÌNH CON VAØ PHAÂN LOAÏI

Program Tong_Luy_thua;Var a, b, c, d, Tong: Real; m, n, p, q: Integer;Function Luythua(x: Real; k: Integer): Real; Var i: Integer; ltx: Real; Begin ltx:=1; For i:=1 to k do ltx:=ltx*x; Luythua:=ltx; End;Begin Write(' Nhap a, b, c, d, m, n, p, q: '); Readln(a, b, c, d, m, n, p, q); Tong:=Luythua(a,m)+Luythua(b,n)+Luythua(c,p)+Luythua(d,q); Write(' Tong luy thua = ',Tong:8:2); ReadlnEnd.

x: Real; k: IntegerVar i: Integer; ltx: Real;

Var a, b, c, d, Tong: Real; m, n, p, q: Integer;

Ñöôïc khai baùo cho döõ lieäu vaøo/ra vaø goïi laø tham soá hình thöùc

Ñöôïc khai baùo, söû duïng trong chöông trình con vaø goïi laø bieán cuïc boä

Ñöôïc khai baùo trong chöông trình chính vaø söû duïng trong toaøn boä chöông trình vaø goïi laø bieán toaøn cuïc

3. Phân loại và cấu trúc chương trình con

CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI

* Moät soá thuaät ngöõ- Tham soá hình thöùc cuûa chöông trình con: Laø caùc

bieán ñöôïc khai baùo cho döõ lieäu vaøo/ra.- Bieán cuïc boä: Laø caùc bieán ñöôïc khai baùo, söû

duïng trong chöông trình con.- Bieán toaøn cuïc: Laø caùc bieán ñöôïc khai baùo trong

chöông trình chính vaø söû duïng trong toaøn boä chöông trình.* Löu yù: Moät chöông trình con coù theå coù hoaëc khoâng coù tham soá hình thöùc, cuõng nhö bieán cuïc boä.

Procedure Ve_HCN; Begin Writeln('************************'); Writeln('* *'); Writeln('* *'); Writeln('************************'); End;Begin Ve_HCN; ReadlnEnd.

Ví duï veà chöông trình con khoâng coù tham soá hình thöùc vaø bieán cuïc boä:

4. Thöïc hieän chöông trình con

CHÖÔNG TRÌNH CON VAØ PHAÂN LOAÏI

Ñeå thöïc hieän chöông trình con, ta caàn phaûi coù leänh goïi noù töông töï leänh goïi haøm hay thuû tuïc chuaån, bao goàm teân chöông trình con vaø caùc tham soá (neáu coù). Caùc tham soá naøy ñöôïc goïi laø tham soá thöïc söï.

4. Thöïc hieän chöông trình con

CHÖÔNG TRÌNH CON VAØ PHAÂN LOAÏI

Program Tong_Luy_thua;Var a, b, c, d, Tong: Real; m, n, p, q: Integer;Function Luythua(x: Real; k: Integer): Real; Var i: Integer; ltx: Real; Begin ltx:=1; For i:=1 to k do ltx:=ltx*x; Luythua:=ltx; End;Begin Write(' Nhap a, b, c, d, m, n, p, q: '); Readln(a, b, c, d, m, n, p, q); Tong:=Luythua(a,m)+Luythua(b,n)+Luythua(c,p)+Luythua(d,q); Write(' Tong luy thua = ',Tong:8:2); ReadlnEnd.

Luythua(a,m)

Lôøi goïi chöông trình con

Teân chöông trình con

Tham soá thöïc söï

4. Thöïc hieän chöông trình con

CHÖÔNG TRÌNH CON VAØ PHAÂN LOAÏI

Ñeå thöïc hieän chöông trình con, ta caàn phaûi coù leänh goïi noù töông töï leänh goïi haøm hay thuû tuïc chuaån, bao goàm teân chöông trình con vaø caùc tham soá (neáu coù). Caùc tham soá naøy ñöôïc goïi laø tham soá thöïc söï.

* Chuù yù: Caùc tham soá thöïc söï vaø tham soá hình thöùc phaûi coù söï töông öùng veà thöù töï vaø kieåu döõ lieäu.

Coù 2 loaïi chöông trình con laø Haøm vaø Thuû tuïc.

Caáu truùc chöông trình con goàm 3 phaàn: Phaàn ñaàu, phaàn khai baùo vaø phaàn thaân.

Caùc thuaät ngöõ: Tham soá hình thöùc, tham soá thöïc söï, bieán cuïc boä, bieán toaøn cuïc.

Ñeå thöïc hieän moät chöông trình con, caàn phaûi coù leänh goïi chöông trình con, bao goàm teân chöông trình con vaø caùc tham soá thöïc söï (neáu coù).