"V v Cau truc dieu khien Lap trinh cau trúc sử dụng các cấu trúc điều khiến sau : ¡, Cầu trúc tuần tự Nối tiếp 2.Cấu trúc chọn lựa Rẽ nhánh... a Thu tự các câu lệnh được thực hiện the
Trang 1TRƯỜNG ĐẠI HỌC BC MARKETING
KHOA TIN HOC QUAN LY
Trang 2CẤU TRUC DIEU KHIEN
I/ Câu trúc tuân tự II/ Câu trúc chọn lựa (rẽ nhánh)
2.1/ Câu trúc If
2.1.1/ Câu trúc If Endlf 2.2.2/ Câu trúc If Else Endlf 2.2/ Cau tric Do Case
2.3/ So sánh câu trúc If Endlf va Do Case EndCase III/ Câu trúc lặp
3.1/ Câu trúc For EndFor
3.2/ Câu trúc Do While
3.2.1/ Câu trúc Do While T
3.2.2/ Câu trúc Do While <ExpL>
3.2.3/ Câu trúc Do While !Eof() 3.3/ Câu trúc Scan EndScan
Trang 3"V v
Cau truc dieu khien
Lap trinh cau trúc sử dụng các cấu trúc
điều khiến sau :
¡, Cầu trúc tuần tự (Nối tiếp) 2.Cấu trúc chọn lựa (Rẽ nhánh)
Trang 4I/ Câu trúc tuần tự (nối tiếp)
ä Các lệnh được thi hành tuần tự, lệnh sau
nối tiếp lệnh trước
a Thu tự các câu lệnh được thực hiện theo
đúng trinh tự viết trong chương trinh
¡ Cau trúc tuân tự được thi hành cho đến
khi gặp : cấu trúc lặp , câu trúc rẽ nhánh
hoặc gáp lệnh thi hành một chương trinh con
Trang 6II/ Cấu trúc chon lựa (rế nhánh)
Là câu trúc cho phép chọn lựa một trong nhiều
hướng đi cho chương trinh
ä Nơi rẽ nhánh phải là một biểu thức luận lý cho kết
quả đúng (True - T.) hoặc sai (False - F.)
¡ Mỗi nhánh thực hiện một công việc (hoặc không
làm gì cả) là tùy vào thuật toán được cụ thể bằng
a Du theo cau truc re nhanh nao (If EndIf / If
Else EndIf / Case EndCase ) , chuong trinh cũng phải có một điểm vào và một điểm ra
Trang 7Foxpro su dung 2 dạng cấu trúc rẽ nhánh : a) Cau truc If .[Else] EndIf
b) Cau truc Case .[Otherwise] EndCase
_]Trong cấu trúc If co thé co Else hoac khéng
Do do , Foxpro chia lam 2 loai cau truc If
Trang 82.1.1/ Cau truc If EndIf
IF <Biéu thirc luan ly>
<Lênh>
LÌChương trinh chi thi hành các
lệnh năm trong thân cấu trúc khi
<Biểu thức luận lý> cho giá trị là
True
LÌ Nếu có nhiều cấu trúc Tf Ầ ‹<
trinh sẽ duyệt qua tuần tự từng
Trang 10x90 cau truc If Else Endif , neu nhieu
<Biểu thức luận Vem cung thoa thi Ents fe nhánh
If phía trên sẽ ưu tiên được thực hiện và bỏ qua
các nhanh Tf còn lại
a Lệnh 0 nhanh Else cuối cùng sẽ được thực hiện nếu các <Biểu thức luận lý> ở trên đều cho trị luận ly sai (False)
a Co bao nhiều Tf thi phải được đóng lai boi bay
a Cau trúc ar) còn được gọi là Tí lông (các nhanh
If long vao nhau) Các nhánh If có thể lông vào nhau nhiêu cấp nhưng tối ưu không bao gid qua
Trang 112.2/ Cau truc Do Case
Dang tong quat
Case <Biéu thức luận lý 1>
Case <Biéu thức luận lý 2>
4
Trang 13Cau truc Do Case
a La mot cau truc x nhanh (chọn lựa) , cho phep chọn một trong các khả năng có thể xảy ra
4 Cấu trúc Do Case phai được chấm dứt bằng EndCase
ï Trong cau trúc Do Case , nếu có nhiều điều kiện
(ExpL) cùng thỏa thi chỉ nhánh Case nào có vị trí
Ở trên sẽ được ưu tiên thực hiện (và bỏ qua tất
cả các nhánh Case còn lại) Trong cấu trúc Do
Case , thông thường có điêu khoản Otherwise
được viết để thực hiện lệnh cuối cùng (nếu các
nhanh Case trước đó đều không thỏa)
Có thể lông các cấu trúc khác vào từng nhánh
Case
=
`
Trang 14¡ Giống nhau : If EndIf và Do Case EndCase đều là cấu trúc rẽ
nhánh, cho phép ta điều khiển hướng luận lý của chương trình để chọn một trong các khả năng có thể xảy ra (Nếu có 2 hoặc 3 nhánh thì sử dụng cấu
truc If EndIf co hieu qua hon)
| Khac nhau : Cdu truc If EndIf co thé chia thanh dang If ndi
tiếp và If l6ng , trong khi Do Case chi co thé diéu
khiển hướng luận lý của chương trình tương đương
cau truc If long
Trang 15a Su dung cau truc If EndIf va Do Case
EndCase trong trường hợp cần chọn một trong những khả năng có thể xảy ra (xác định hướng đi cho chương trinh)
a3 Cau trúc Tf viết dưới dạng nối tiếp cho phép
nhiêu lệnh được thi hanh (nếu các điều kiện
riêng rẽ của từng nhánh Tí đều thỏa)
3 Nếu chỉ chọn một trong các khả năng có thể
xay ra thi chon If .Else EndIf hoac Do Case EndCase (Neu so nhanh <=3 thi
chọn câu trúc Tf và ngược lại)
Trang 16TIT/ Câu trúc lặp
ø Là một câu trúc cho phép ta ra lệnh thi hành nhiêu lần một nhóm lệnh ghi trong phan
thân của câu trúc
#4 Foxpro có các dạng câu trúc lặp sau :
Trang 173.1/ Cau truc For EndFor
Dang tong quat
Trang 19¡ Vòng lap For EndFor cho phep lap lai mot nhóm lệnh trong thân cấu trúc với số lần lắp được biết trước (quy định bởi ExpN2>)
ä Cầu trúc For phải được kết thúc bởi EndFor
i[Step +/- <ExpN3> có thể có hoặc không
trong vòng lặp For (gia trị mặc nhiên là +1) ~
3 Trong thân vòng lặp For có thể có lệnh Loop
(cho phép quay trở lại vòng lặp) hoặc Exit (cho phép thoát khỏi vòng lập) :
Trang 203.2/ Cau truc Do While EndDo
3.2.1/ Cau truc Do While T
<Command>
True
lf <ExpL>
Else Exit
Trang 21Dac diém cua Do While T
Là một câu trúc cho phép thi hành nhiêu lân một nhóm lệnh với số vòng lặp không biết trước
Câu trúc Do While T phải được kết thúc bởi
lệnh EndDo
Do While T khong kiêm tra điều kiện đề vào vòng lặp , do đó sô lân lặp phải được thực hiện í† nhất là 1 lần
Trong câu trúc Do While T có thể có lệnh
Loop đề giúp quay trở lại vòng lặp
Trong câu trúc Do While T , bắt buộc phải có một biểu thức luận lý (ExpL) dé thi hành lệnh Exit thoát khỏi vòng lặp
Trang 223.2.2/ Cau truc Do While <ExpL>
Dang tong quat
Trang 23Đặc điểm của cấu trúc Do While <ExpL>
i., Cho phép thi hành nhiêu lần một nhóm
lệnh trong thân vòng lặp (Khi <ExpL>
van con cho gia tri la True - T.)
Cầu trúc Do While <ExpL> ludn kiém tra
Do While <ExpL> luôn phải được kết thúc bởi EndDo
4 Trong thân vòng lặp có thể có lệnh Loop
Trang 243.2.3/ Cấu trúc Do While !Eof()
Trang 25Cau truc Do While 110 thường được sử dụng
để duyệt qua từng mâu tin (Record) trén tap CSDL đang được mở trong khu vực làm việc hiện
hành
Khi con trỏ mẫu tin (Record Pointer) vượt quá
mau tin cuoi thi Eof() sé cho gia tri la False - F
va thoat khoi vong lap
Trong than vong lap Do While !Eof() bat buoc phải có câu lệnh Skip để chuyển sang mẫu tin kế (sau khi xử lý xong mẫu tin hiện hành)
Trong thân vòng lặp có thể có lệnh Loop/Exit
a
Trang 263.3/ Cầu trúc Scan EndScan
Dang tổng quát Lưu f
Trang 27Đặc điểm của cấu trúc Scan EndScan
1) Là cấu trúc dùng để duyệt qua các mẫu tin
trên tập CSDL đang được mở ra trong khu
vực làm việc hiện hành 2) Scan luôn được kết thúc bởi EndScan
3) Trong cấu trúc Scan EndScan không có
câu lệnh Skip (Foxpro sẽ tự động chuyển
sang mau tin kế sau khi xử lý mâu tin hiện hành)
4) Trong cấu trúc Scan EndScan có thể có
Trang 285) Kha nang xu ly trong cau truc Scan
EndScan nhanh hon la dung Do While IEof() Do do nén xử dụng câu trúc này hon la dung Do While !Eof()
6) Trong cấu tric Scan EndScan co thé
có thêm điều khoản For <ExpL> để quy
định chỉ xử ly những mâu tin thoả điều kiện (Tức là <ExpL = T.>)