nguyên lý và phương pháp lập trình

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

ÑAÏI HOÏC QUOÁC GIA TP.

HOÀ CHÍ MINH

NGUYEÂN LYÙ & PHÖÔNG PHAÙP


NGOÂN NGÖÕ LAÄP TRÌNH

1
CHÖÔNG TRÌNH VAØ LAÄP TRÌNH

CHÖÔNG NGOÂN NGÖÕ


TRÌNH THEÅ HIEÄN

Laø moät caùch bieåu dieãn Ñôn giaûn: Phöùc taïp:


thuaät giaûi ñeå thöïc hieän treân Caùc leänh maùy caùc meänh ñeà
maùy tính
theo vaên phaïm
qui öôùc

2
CHÖÔNG TRÌNH VAØ LAÄP TRÌNH
* Lòch söû phaùt trieån cuûa ngoân ngöõ laäp trình
WHAT HOW

Moâ taû nhieäm vuï Nhöõng leänh ñeå thöïc hieän vieäc
phaûi laøm chuyeån P1  Pm
P1  Pm Leänh L1, L2, ..Ln
* Quaù trình laäp trình chuyeån ñoåi theo höôùng töø

KHOÙ LAÄP TRÌNH LAÄP TRÌNH DEÃ

Quaù trình chuyeån ñoåi


naøy raát khoù khaên
3
PHONG CAÙCH LAÄP TRÌNH

 LAÄP TRÌNH THUÛ TUÏC (laäp trình haøm)


 Traùnh söï nhaäp nhaèng.
Ví duï: f(x) + g(x)= g(x) + f(x)

 Laäp trình coù theå “trong suoát” trong toaùn hoïc

 Chuyeån nhöõng chöông trình phöùc taïp, ñeä qui veà nhöõng
haøm ñôn giaûn

 Laäp trình döïa treân thuaät toaùn.

4
PHONG CAÙCH LAÄP TRÌNH

 LAÄP TRÌNH HÖÔÙNG ÑOÁI TÖÔÏNG


 Mang tính phaân caáp, keá thöøa.
 Ñoäc laäp
 Laäp trình döïa treân thuaät toaùn.

 LAÄP TRÌNH LOGIC


 Moâ taû baøi toaùn döôùi daïng vò töø, döõ lieäu töøng caëp ñænh vaø
moät luaät ñöôøng ñi.
 Laäp trình döïa treân luaät.

5
PHONG CAÙCH LAÄP TRÌNH
 LAÄP TRÌNH GENETIC
 Laäp trình theo töï nhieân

 Chæ caàn ñöa baøi toaùn thöïc teá veà baøi toaùn sinh hoïc, nghóa laø
taïo neân caùc ñôn theå vaø chaïy qua nhieàu theá heä. Döøng ôû thôøi
ñieåm naøo thì taïm chaáp nhaän keát quaû ôû thôøi ñieåm ñoù.

 Laäp trình döïa treân thöøa höôûng

6
CHÖÔNG TRÌNH VAØ LAÄP TRÌNH

Meänh ñeà 1 Caâu leänh maùy


CHÖÔNG DÒCH

TRÌNH Meänh ñeà 2 DÒCH Caâu leänh maùy


• •
• •
• •
 INTERPRETER: thoâng dòch töøng leänh.
 COMPILER: bieân dòch toaøn boä caùc leänh, thöïc hieän sau.

HEÄ CHÖÔNG TRÌNH


“Trong suoát” “Trong suoát”

E = { e1, e2, …., en}


7
NGOÂN NGÖÕ BARE BONE
Ngoân ngöõ BARE BONE raát ñôn giaûn. Laäp trình baèng ngoân ngöõ Bare Bone
söû duïng:
 3 caâu leänh:
 CLEAR: xoùa moät oâ nhôù

clear X X := 0
 INCR: taêng giaù trò bieán leân 1
incr X X := X + 1
 DECR: giaûm giaù trò bieán xuoáng 1
decr X X := X - 1
 1 caáu truùc laëp: while ... do

8
NGOÂN NGÖÕ BARE BONE

 Ngoân ngöõ BB coù theå bôùt ñi moät leänh, chaúng haïn leänh
clear.

Leänh clear x coù theå ñöôïc thay theá baèng moät caáu truùc laëp
while vaø leänh decr nhö sau:
while x not 0 do
decr x;

9
NGOÂN NGÖÕ BARE BONE
 Moâ phoûng caáu truùc if … then … else
Caáu truùc ñieàu kieän coù daïng sau:
if ñk then S1 else S2

Ví duï: if x<>0 then x:=0 else x:=1;


Hoaït ñoäng cuûa noù laø bieán ñoåi giaù trò cuûa x thaønh
 0 neáu giaù trò ban ñaàu khaùc 0

 1 neáu giaù trò ban ñaàu laø 0.

10
NGOÂN NGÖÕ BARE BONE
Moâ phoûng baèng ngoân ngöõ BB caáu truùc ñieàu kieän
if x<>0 then x:=0 else x:=1 baèng caáu truùc laëp while…do nhö
sau: 1. clear y;
2. incr y;
3. while x not 0 do
4. clear x;
5. clear y;
6. end;
7. while y not 0 do
8. clear x;
9. incr x;
10. clear y;
11. end;
11
NGOÂN NGÖÕ BARE BONE
 Xaây döïng caùc pheùp toaùn coäng, tröø, nhaân, chia, pheùp gaùn,
pheùp so saùnh
 Pheùp coäng: X + Y => Z
1. clear Z;
2. while X not 0 do
3. incr Z;
4. decr X;
5. end;
6. while Y not 0 do
7. incr Z;
8. decr Y;
9. end;

12
NGOÂN NGÖÕ BARE BONE
 Pheùp tröø : X – Y => Z
1. clear Z;
2. while X not 0 do
3. incr Z;
4. decr X;
5. end;
6. while Y not 0 do
7. decr Z;
8. decr Y;
9. end;

13
NGOÂN NGÖÕ BARE BONE
 Pheùp nhaân: X * Y => Z
Löu yù caàn duøng theâm bieán taïm W ñeå löu giaù trò cuûa Y
1. clear Z;
2. while X not 0 do
3. clear W;
4. while Y not 0 do
5. incr Z;
6. incr W;
7. decr Y;
8. end;
9. while W not 0 do
10. incr Y;
11. decr W;
12. end;
13. decr X;
14. end; 14
NGOÂN NGÖÕ BARE BONE
 Pheùp gaùn: Y  X ( Gaùn X cho Y )
Löu yù caàn duøng theâm bieán taïm Temp
1. clear Y;
2. clear Temp;
3. while X not 0 do
4. incr Y;
5. incr Temp;
6. decr X;
7. end;
8. while Temp not 0 do
9. incr X;
10. decr Temp;
11. end;

15
NGOÂN NGÖÕ BARE BONE

Pheùp so saùnh X,Y:


Neáu X<Y ñuùng thì keát quaû laø 0
Ngöôïc laïi thì keát quaû laø 1.

1. clear kq; 8. while X1 not 0 do


2. X1 - X; 9. decr kq;
3. Y1 - Y; 10. decr X1;
4. while Y1 not 0 do 11. end;
12. if kq not 0 then
5. incr kq; kq:=0;
6. decr Y1; 13. else
7. end; kq:=1;

16
NGOÂN NGÖÕ BARE BONE
Pheùp chia nguyeân X/ Y => Z
12. while W not 0 do
1. clear Z;
2. clear kq; 13. incr Y;
3. incr kq; 14. decr W;
4. while Y not 0 do 15. end;
5. while kq not 0 do 16. incr Z;
6. clear W; 17. kq = sosaùnh (x,y);
7. while X not 0 do 18. Neáu X<Y thì
8. decr X; 19. kq:=0,
9. decr Y; 20. Ngöôïc laïi kq:=1.
10. incr W;
21. end;
11. end;
22. clear Y;
23. end; 17
NGOÂN NGÖÕ BARE BONE
 Leänh invert X
Thöïc hieän bieán ñoåi giaù trò cuûa X (ñaõ giaûi trong baøi taäp 2)
 Thaønh 0 neáu giaù trò ban ñaàu khaùc 0
 Thaønh 1 neáu gía trò ban ñaàu laø 0
 Thöïc hieän chuyeån soá döông thaønh soá aâm
Phöông phaùp: Duøng theâm moät bieán daáu keøm theo moät
bieán x. Neáu bieán daáu = 0 thì x >= 0 .Ngöôïc laïi neáu bieán
daáu = 1 thì x < 0.
if dau not 0 then
clear dau
else incr dau;

18

You might also like