
Nguyên lý và phương pháp lp trình
Kim chng tính ñúng ñn ca
chương trình
TS. Nguy$n Tu%n ðăng
1

Ni dung
•Lp trình có c%u trúc
•Các phương pháp hình thc
•Lp trình có c%u trúc theo ti-p cn top-down
•Cách ti-p cn k-t h/p
•
Cá
c
c
%
u
trú
c
trì
nh
t
0
(sequences)
•
Cá
c
c
%
u
trú
c
trì
nh
t
0
(sequences)
–Các c%u trúc trình t0 – hình thc hóa
–Các c%u trúc trình t0 – kim chng
–Các c%u trúc trình t0 – sơ ñ2 kim chng
•Các c%u trúc ñi3u ki4n
–Các c%u trúc ñi3u ki4n – hình thc hóa
–Các c%u trúc ñi3u ki4n – kim chng
–Các c%u trúc ñi3u ki4n – sơ ñ2 kim chng 2

Ni dung (tt)
•Các c%u trúc vòng l6p
–Các c%u trúc vòng l6p – ví d8
–Các c%u trúc vòng l6p – chương trình d9n xu%t
–Các c%u trúc vòng l6p – k-t qu<
–Các c%u trúc vòng l6p – sơ ñ2 kim chng
–
Cá
c
c
%
u
trú
c
vò
ng
l
6
p
–
cá
c
l
=
i
trong
ki
m
ch
ng
–
Cá
c
c
%
u
trú
c
vò
ng
l
6
p
–
cá
c
l
=
i
trong
ki
m
ch
ng
•Tóm lư/c
3

Lp trình có cu trúc
•Chương trình s> d8ng các c%u trúc ñi3u khin căn
b<n theo nguyên tc 1-in, 1-out :
–C%u trúc trình t0 :begin S1 S2 end
–C%u trúc ch@n l0a : if Ethen S1 else S2 end
–
C
%
u
trú
c
vò
ng
l
6
p
:
while
E
loop
S
1
end
–
C
%
u
trú
c
vò
ng
l
6
p
:
while
E
loop
S
1
end
–Các c%u trúc ñi3u khin trên còn bao g2m thêm : if vAi
elseif,case,for, etc.
•Boehm và Jacopini, 1966
–Chng minh rCng c%u trúc ñi3u khin ca b%t kỳ mEt
lư/c ñ2 chương trình nào cũng có th ñư/c biu ñGt mà
không cIn dùng các phát biu gotos, chL cIn dùng các
c%u trúc: trình t0, ch@n l0a và vòng l6p.
4

Lp trình có cu trúc
• Edsger Dijkstra, 1970
–Lý lun rCng các phát biu goto là có hGi trong chương
trình, ñ2ng thNi ñưa ra ý tưOng v3 vi4c kim chng tính
ñúng ñn ca chương trình bCng các phương pháp hình
thc.
5