Câu lệnh lặp trong Pascal

Thứ tư - 29/07/2020 09:52
- Cấu trúc FOR: Cho phép lặp lại nhiều lần một dãy lệnh. Số lần lặp lại dãy lệnh đã biết trước.
- Câu lệnh REPEAT ... UNTIL: Dùng trong các trường hợp khi biến điều khiển không có kiểu rời rạc và đặc biệt trong các trường hợp số lần lặp không biết trước.
- Câu lệnh WHILE ... DO: Trong khi điều kiện còn đúng thì cứ thực hiện lệnh.
1. CẤU TRÚC FOR
Cấu trúc FOR cho phép lặp lại nhiều lần một dãy lệnh. Số lần lặp lại dãy lệnh đã biết trước. Phát biểu FOR có 2 dạng :
FOR.. TO                       đếm lên.
FOR.. DOWNTO                    đếm xuống.
Cú pháp tổng quát là :
FOR biến đếm := trị đầu TO/DOWNTO trị cuối DO lệnh
Lưu đồ thể hiện phát biểu FOR.. TO

- Ví dụ 1 : Chương trình sau sẽ đưa ra màn hình 5 dòng chữ Turbo Pascal
PROGRAM NamDong ;
VAR
      i : Integer ;
BEGIN
      FOR i := 1 TO 5 DO
          Writeln ('TURBO PASCAL’) ;
          Readln ;
END.
- Ví dụ 2 : Chương trình sau sẽ đưa ra màn hình dãy số 54321 PROGRAM DaySo ;
VAR
      i : Integer ;
BEGIN
     FOR i := 5 DOWNTO 1 DO
         Write (i) ;
         Readln ;
END.

2. CẤU TRÚC REPEAT.. UNTIL
Câu lệnh REPEAT.. UNTIL dùng trong các trường hợp khi biến điều khiển không có kiểu rời rạc và đặc biệt trong các trường hợp số lần lặp không biết trước.
• Ý nghĩa của lưu đồ :
- Nếu điều kiện Sai (False) thì lặp lại Lệnh.
- Cho tới khi nào điều kiện Đúng (True) thì Thoát ra.
- Điều kiện là biểu thức logic.
- Trước hết thực hiện Lệnh, sau đó mới kiểm tra điều kiện.
 
Cú pháp :

• Ngữ nghĩa của cú pháp :
Chừng nào điều kiện chưa đúng thì lặp lại lệnh (hoặc các lệnh trong vòng lặp), cho tới khi nào (UNTIL) điều kiện đúng thì thoát ra khỏi vòng lặp để thực hiện câu lệnh tiếp theo (sau UNTIL).
• Sơ đồ cú pháp :

Nếu có nhiều lệnh thì mỗi lệnh ngăn cách nhau bởi dấu chấm phẩy (;)
3. CẤU TRÚC WHILE..DO
• Lưu đồ :

• Ý nghĩa của lưu đồ :
Trong khi mà điều kiện còn đúng thì cứ thực hiện (làm) lệnh Sl.
• Cú pháp :
WHILE <điều kiện> DO <Lệnh>
• Sơ đồ cú pháp :

• Ngữ nghĩa của cú pháp :
- Khi thực hiện cấu trúc WHILE.. DO, đầu tiên chương trình sẽ kiểm tra <điều kiện>. Điều kiện là 1 biểu thức logic nhận một trong 2 giá trị Đúng (True) và Sai (False).
- Nếu <điều kiện> đúng, chương trình sẽ thực hiện các lệnh trong cấu trúc WHILE...DO (bắt đầu bằng BEGIN và kết thúc bằng END, mỗi lệnh phân cách nhau bằng dấu chấm phẩy (;), (nhóm lệnh S1)).
- Nếu <điều kiện> sai thì điều khiển được chuyến xuống dưới cấu trúc WHILE.. DO và thi hành các lệnh dưới đó (nhóm lệnh S2).
Như vậy cứ sau 1 vòng lặp (còn gọi là một chu trình) lại tiến hành kiểm tra lại <điều kiện>. Tùy theo giá trị của <điều kiện> là Đúng hay Sai mà quyết định nên thực hiện theo lệnh nào.

4. ĐẶC ĐIỂM CỦA TỪNG CẤU TRÚC LẶP
Như ta đã biết, Pascal có kiểu cấu trúc lặp :
FOR.. DO/DOWNTO.. DO
REPEAT.. UNTIL
WHILE.. DO
Vậy giữa chúng có gì giống nhau và khác nhau ?
• Giống nhau : Cả 3 cấu trúc đều là cấu trúc lặp (lặp đi lặp lại)
• Khác nhau :
- Với FOR : Được dùng khi biết trước sô lần lặp. Ví dụ :
FOR i := 1 TO 1000 hoặc
FOR i := 100 I30WNT0 1 130 (lặp 100 lần)
Với REPEAT.. UNTIL và WHILE.. DO : Được dùng khi số lần lặp không biết trước.
Vậy thì lúc nào dùng REPEAT.. UNTIL, lúc nào dùng WHILE.. DO?
- Với REPEAT.. UNTIL : Được dùng khi muốn hành động <Lệnh> được thực hiện trước rồi sau mới xét đến <Điều kiện> lặp, tức là phải được thực hiện tối thiểu 1 lần. Mặt khác <Lệnh> dù là lệnh đơn hay lệnh phức thì cũng không bao giờ cần BEGIN và END.
- Với WHILE.. DO thì <điều kiện> lặp bao giờ cũng được xem xét trước. Tùy theo giá trị của <điều kiện> tức là Đúng hay Sai mà quyết định hành động theo hướng nào.
• Tóm lại :
WHILE : <Điều kiện> lặp xét trước. Đúng thi làm.
REPEAT: <Điều kiện> lặp xét sau. Đúng thì ngừng.
Khi dùng cấu trúc lặp, ta nên cân nhắc xem nên dùng cấu trúc nào cho thích hợp. Để có được chương trình ngắn gọn, hợp lí... chúng ta còn phải rèn luyện nhiều. Dưới đây xin giới thiệu một chương trình viết bằng 3 cách (3 loại cấu trúc lặp) khác nhau để chúng ta phân tích và rút kinh nghiệm lập trình.
Bản quyền bài viết thuộc về Sachgiai.com. Ghi nguồn Sách giải.com khi đăng lại bài viết này.

  Ý kiến bạn đọc

THÀNH VIÊN

Hãy đăng nhập thành viên để trải nghiệm đầy đủ các tiện ích trên site
Kênh Bóng đá trực tiếp hôm nay miễn phí
Kênh
90Phut TV full HD ⇔ 32win
69VN ⇔  ⇔ F168 ⇔ 123b ⇔ 566

Vmax ⇔ 78Win ⇔ https://xn88.bio/
GK88 ⇔ SHBET ⇔ nh88 ⇔ u888 ⇔ 789f
fo88vic88 ⇔ u888 ⇔ 888p ⇔ 69vn
BL555 ⇔ 99OK ⇔ KJC ⇔ Link MB66
mv66af88 ⇔ 8x bet ⇔ 88AA
789BET ⇔ LC88 ⇔ BL555 ⇔ 789f
OKFUN ⇔ 789F ⇔ MB66 ⇔ 8xbet
https://789betcom0.com/ ⇔ https://hi88.baby/
UU88 ⇔ au88 ⇔ win678 ⇔ https://xx88.ink/
zo88 ⇔ ev99 ⇔ 888b ⇔ go88 ⇔ kèo nhà cái
cm88 ⇔ 88aa ⇔ Kkwin ⇔ tv88 ⇔ 77win
mb66.racing ⇔ u888 ⇔ FO88 ⇔ 88xx
188v ⇔ f168 ⇔ QQ88 ⇔ bk8 ⇔ bk8
 ⇔ iwinclub ⇔ Subnhanh ⇔ Bluphim
m88 ⇔ Nettruyenviet ⇔ P3 ⇔ 8s
vn23 ⇔ SHBET ⇔ kubet ⇔ 888new
NOHU ⇔ hi88 ⇔ https://fun88.social/
thabet ⇔ SV88 ⇔ https://vnalo789c.com/
https://qq88.fun/ ⇔ f168 ⇔ 888New ⇔ QQ88
daga ⇔ SHBET ⇔ keo nha cai ⇔ bl-555.site
https://bshbet.com/ ⇔ https://uk88.rocks
kkwin ⇔ KUWIN ⇔ 8xbet ⇔ RR88 ⇔ 188v
mb6678win ⇔ https://hello8880.net/
tv88UU88 ⇔ HM88 ⇔ MB66 ⇔ TV88
NOHU ⇔ 77ball ⇔ 32win ⇔ Kuwin
ek333 ⇔ xoso66 ⇔ nổ hũ ⇔ SUN WIN
X88 ⇔ 78win ⇔ Jun88 ⇔ uu88
NOHU ⇔  KINGFUN ⇔ https://789club24.com/
https://98winlive.com/ ⇔ https://789win.voyage/
https://bet88yk.com/ ⇔ https://alo789apk.app/
https://33win100.com/ ⇔ https://u888ny.com/
69vn ⇔ vn88 ⇔ OK8386 ⇔ x88 ⇔ SHBET
https://hi88.voyage/ ⇔ https://79kings.blue/
https://dom88.jp.net/ ⇔ https://hello880.net/
https://789club60.com/ ⇔ https://blc88.net/
23win ⇔ 6ff ⇔ f168 ⇔ xoso66 ⇔ bomwin
nhatvip ⇔ https://789club24.com/ ⇔ 789 bet
win68 ⇔ 8xbet ⇔ go99 ⇔ 78win ⇔ QQ88
XX88 ⇔ ev99 ⇔ 69vn ⇔ rr88 ⇔ rr88
Uu88 ⇔ win456 ⇔ Tài xỉu online ⇔ XN88
https://33win101.com/ ⇔ oxbet ⇔ Slot365
78wind.com ⇔ https://shbet.gg/ ⇔ XX88
daga ⇔ SV388 ⇔ OKFUN ⇔ ee88 ⇔ 12bet
hitclub ⇔ Kkwin ⇔ VankhanhTV ⇔ Hay 88
3WIN ⇔ WIN678 ⇔ https://58winbank.com/
68 game bàiEE88 ⇔ 77BET ⇔ 12BET
vmaxVMAX ⇔ ok9 football ⇔ K8CC
https://hi88o.com/ ⇔ https://hi88.gives/
https://qq88.co.com/ ⇔ https://f168.law/
8xbet ⇔ https://shbetk.net/ ⇔ RIKVIP ⇔ rikvip
https://mm88.us.com/ ⇔ 79king
ww88 ⇔ https://78win.bot/ ⇔ https://13win.vegas/
https://lc88o.com/ ⇔ https://hi88.uno/
https://58win1.info/ ⇔ j88 ⇔ j88 ⇔ 69vn
Slot365 ⇔ alo88 ⇔ UU88 ⇔ 32 win
888TO ⇔ wstar77 ⇔ 73bet ⇔ 888b
11uu ⇔ 123B ⇔ 78win ⇔ Slot365
789f ⇔ mv88 ⇔ 789f ⇔ Bsport
888New ⇔  ⇔ Vmax ⇔ sunwin
tỷ lệ kèo nhà cái hôm nay ⇔ BIN88
 ⇔ https://qq88.studio/
https://nh8811.com/ ⇔ Leo88 ⇔ 78win
88CLB ⇔ SV388 ⇔ https://cakhiatv88.net/
7m ⇔ i9 Bet ⇔ Tv88 ⇔ hi88 ⇔ 888To
socolive trực tiếp74bet ⇔ VN168
Bong88 ⇔ socolive ⇔ bet88 ⇔ 555WIN
https://au88.black/ ⇔ trực tiếp bóng đá
https://king88clb.com/ ⇔ https://f168hi.com/
sv66ax88 ⇔ 88clb ⇔ Nn88
https://32win.vc/ ⇔ 888new ⇔ PG88 ⇔ PG88
EE88 ⇔ SanClub ⇔ F168 ⇔ QQ88
hb88 ⇔ Vin777 ⇔ SV388 ⇔ MV66 ⇔ 23WIN
https://vankhanhtvv.com/ ⇔ Nhà Cái LC88
https://789fnew.com/ ⇔ https://u888lm.com/
https://sv66.coupons/ ⇔ https://f168.tech/
https://8kbetbh.com/ ⇔ https://ta88club.kim/
socolivemv88 ⇔ https://rr88.com.se/
https://bet168.com.co/ ⇔ https://8kbet.co/
https://888b-link.cc/ ⇔ https://sunwinn.deal/
88gokingfun ⇔ https://bong88vn.wiki/
SHBET ⇔ https://shbet.racing/
RR99 ⇔ U888 ⇔ OK8386 ⇔
MM88 ⇔ 33win ⇔ BL555 ⇔ 69vn
 ⇔ https://w88link1.com/
xocdia88 ⇔ 77ball ⇔ vuabet88 ⇔ betvisa
https://fun88link0.com/ ⇔ https://fun88link1.com/
https://188betlink0.com/ ⇔ https://188betlink1.com/
https://188betlink2.com/ ⇔ https://w88link0.com/
thabet ⇔  ⇔  ⇔  ⇔ 789F
QQ88 COM ⇔ https://xx88.sale/ ⇔ 78win
https://bet88.pictures/ ⇔ https://xo88.group/
https://86bet.tech/ ⇔ https://nohu90.consulting/
789BET ⇔ https://i9betz4.com/ ⇔ đá gà 88
w88link2.com ⇔ w88link3.com ⇔ luck8
https://8dayvip.mobi/ ⇔ https://8dayvip.com/
QQ88 Com ⇔ af88 ⇔ https://79kingsr.com/
https://pg99yk.com/ ⇔  hm88.com ⇔ J88
https://luongson161.tv/ ⇔ 78WIN ⇔ MB66
78win ⇔ U888 ⇔ nn88 ⇔ 99win ⇔ hi88
https://8kbettt.com/ ⇔ https://hi88.biz/
https://thabetcasino.us.com/ ⇔ 789Win ⇔ vn88
https://hello88net.com/ ⇔ https://pg88.jpn.com/
https://az8888.org/ ⇔ https://fly88.gifts/
lc88 ⇔ VN88 ⇔ 69vn ⇔ nh88 ⇔ vn88
GO8 ⇔ 888new ⇔ sv388 ⇔ KWIN
tỷ lệ kèo nhà cái 88 ⇔ PG66 ⇔ 68win
BL555 ⇔ 23win ⇔ SV388 ⇔ SHBET ⇔ hitclub
Game bài đổi thưởng ⇔ https://saobet.shop/
https://99ok99ok.com/ ⇔ UU88 ⇔ HM88
https://bet88.ventures/ ⇔ bongdalu22.com
zx88 ⇔ ev99 ⇔ 8s ⇔ bet8s ⇔ QQ88
https://f168.name/ ⇔ https://13wincom.io/
Nhà cái vn88 ⇔ Nhà Cái QQ88
https://fb888.in.net/ ⇔ https://kjc.ac/
https://onbet.in.net/ ⇔ link vn88 ⇔ HZ88
http://58win.trading/ ⇔ https://qq88.gives/
bong88 ⇔ sky88 ⇔ Cổng game rikvip ⇔ ev99
79KING ⇔ Bet88 ⇔ XN88 ⇔ i9bet ⇔ VN23
https://kkwin.fan/ ⇔ https://555win.bike/
https://f8bet.courses/ ⇔ https://go8play.com/
https://lc88.bar/ ⇔ 789f ⇔ abc8 ⇔ good88
789win ⇔ Hitclub ⇔ https://f8bet80.one/
lương sơn tv ⇔ vwin ⇔ sut88 ⇔ vua88
hb88 ⇔ https://okfun.center/ ⇔ 68win
LC88 ⇔ 79king ⇔ https://hi88.tours/
https://ok9.charity/ ⇔ https://kkwin68.info/
https://ee88com.me/ ⇔ https://new88blog.org
nổ hũ ⇔ https://uu88vn.com ⇔ LC88
nohu ⇔ lc88 com ⇔ 69VN ⇔ Ok365 ⇔ 6FF
Nohu90 ⇔ go8 ⇔ 22vip ⇔ af88 ⇔ YO88
five88 ⇔ 68win ⇔ 11uu ⇔ https://go8.beer/
đánh bài tiến lên ⇔  ⇔  ⇔
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây