160 likes | 259 Views
Repetitive Statements (Looping). เป็นคำสั่งที่สั่งให้ทำงานซ้ำ (loop)ในขอบข่ายที่กำหนด จนกระทั่งได้เงื่อนไขที่ต้องการ ซึ่งมีอยู่ด้วยกัน 3 คำสั่งดังนี้ :- 1. คำสั่ง FOR 2. คำสั่ง WHILE 3. คำสั่ง REPEAT.
E N D
Repetitive Statements (Looping) • เป็นคำสั่งที่สั่งให้ทำงานซ้ำ (loop)ในขอบข่ายที่กำหนด จนกระทั่งได้เงื่อนไขที่ต้องการ ซึ่งมีอยู่ด้วยกัน 3 คำสั่งดังนี้ :- • 1. คำสั่ง FOR • 2. คำสั่ง WHILE • 3. คำสั่ง REPEAT
1. คำสั่งFORเป็นคำสั่งให้ทำซ้ำหรือวนรอบ เมื่อเงื่อนไขสอดคล้องหรือ เงื่อนไขเป็นจริง จะทำงานในขอบข่าย ( คำสั่ง หรือกลุ่มของคำสั่ง ) ที่กำหนดไว้ และจะเลิกกระทำซ้ำหรือวนรอบ เมื่อเงื่อนไขไม่สอดคล้องหรือ เงื่อนไขเป็นเท็จ
Syntax : Control Var Expression1 FOR := TO DOWN TO Expression2 DO Statements Expression1 = Initial Value Expression2 = Final Value เช่น ต้องการให้ทำซ้ำจำนวน 20 ครั้ง FOR i := 1 TO 20 DO หรือ FOR j := 20 DOWN TO 1 DO
คำสั่ง FORแสดงใน รูปผังงาน (Flowchart) ได้ดังนี้ No No i <= 20 i >= 1 Yes Yes Statements Statements Increase i by 1 Decrease i by 1 FOR j := 20 DOWN TO 1 DO FOR i := 1 TO 20 DO
ตัวอย่าง • PROGRAM Demo_ASCII_by_FOR_Statement; • USES CRT; • VAR count : INTEGER; • BEGIN • FOR count := 32 to 255 DO • BEGIN • WRITE(’ ', count:3); • WRITE(' ', CHR(count)); • END; • END.
ตัวอย่าง โปรแกรมเพื่อหาผลรวมของเลข 10 จำนวน • PROGRAM Sum; • USES CRT; • VAR count : INTEGER; • num, total : REAL; • BEGIN • total := 0; • FOR count := 1 TO 10 DO • BEGIN • READLN(num); • total := total + num ; • END; • WRITELN('Total = ', total); • END.
ตัวอย่าง เขียนโปรแกรมเพื่อหาค่าผลรวมและค่าเฉลี่ยของคะแนนสอบของนัก ศึกษา 20 คนโดยอ่านคะแนนจากคีย์บอร์ด • PROGRAM Compute_Mean_by_FOR_Statement; • USES CRT; • VAR count,amount : INTEGER; • total, mean, num : REAL; • BEGIN • total := 0; • WRITE('How many data to be input :- '); • READLN(amount); • FOR count := 1 to amount DO • BEGIN • WRITE('DATA(',count,')='); • WRITE(LST,'DATA(',count,')='); • READLN(num); • WRITE(LST,num:4:2); • total := total + num; • END; • WRITELN; • WRITELN(LST); • mean := total / amount; • WRITELN('Total =',total); • WRITELN(LST,'Total =',total); • WRITELN('Mean =', mean); • WRITELN(LST,'Mean =', mean); • END.
2. คำสั่ง WHILE คำสั่ง while เป็นคำสั่งให้ทำซ้ำหรือวนรอบ เมื่อ เงื่อนไขสอดคล้องหรือ เงื่อนไขเป็นจริง จะทำงานในขอบข่าย( คำสั่ง หรือกลุ่มของคำสั่ง )ที่กำหนด และจะเลิกทำงานในขอบข่าย เมื่อเงื่อนไขไม่สอดคล้องหรือ เงื่อนไขเป็นเท็จ
Syntax : คำสั่ง WHILE แสดงใน รูปผังงาน (Flowchart) ได้ดังนี้ Expression WHILE Statement(s) DO No Is condition true ? Yes Statement(s)
ตัวอย่าง • PROGRAM Demo_looping_by_WHILE_Statement; • USES CRT; • VAR count : INTEGER; • BEGIN • count := 32; • WHILEcount < 255DO • BEGIN • WRITE(count:3, ' ',CHR(count),' '); • count := count + 1; • END; • END.
ตัวอย่าง • PROGRAM Sum; • USES CRT; • VAR total : REAL; • count : INTEGER; • BEGIN • total := 0; • count := 1; • WHILEcount <= 10DO • BEGIN • total := total + count; • count := count + 1; • END; • WRITELN('Total = ', total ); • END.
3. คำสั่ง REPEAT เป็นคำสั่งให้ทำซ้ำหรือวนรอบ เมื่อ เงื่อนไขไม่สอดคล้องหรือเงื่อนไขเป็นเท็จ จะทำงานในขอบข่าย( คำสั่ง หรือกลุ่มของคำสั่ง )ที่กำหนด และจะเลิกทำงานในขอบข่าย เมื่อเงื่อนไขสอดคล้องหรือ เงื่อนไขเป็นจริง คำสั่ง REPEAT แตกต่างจากคำสั่ง WHILE ตรงที่ คำสั่ง REPEAT ต้องทำก่อนอย่างน้อยหนึ่งรอบแล้ว จึงมาทำการตรวจสอบเงื่อนไขทีหลัง
Syntax : Expression คำสั่ง REPEAT แสดงใน รูปผังงาน (Flowchart) ได้ดังนี้ REPEAT Statement UNTIL ; Statement(s) No Is condition true ? Yes
ตัวอย่าง • PROGRAM Demo_Looping_by_REEPEAT_Statement; • USES CRT; • VAR count : INTEGER; • BEGIN • count := 32; • REPEAT • WRITE(' ',count :3); • WRITE(' ',CHR(count)); • count := count + 1; • UNTILcount > 255; • END.
ตัวอย่าง จงเขียนโปรแกรม เพื่อหาผลรวมของเลข 10 จำนวน • PROGRAM Sum; • USES CRT; • VAR count : INTEGER; • total, num : REAL; • BEGIN • total := 0; • count := 0; • REPEAT • READLN(num); • total := total + num; • count := count + 1; • UNTILcount > 10; • WRITELN('Total = ', total); • END.
การบ้านจงเขียนโปรแกรมโดยใช้คำสั่ง Forคำสั่งWhileและคำสั่ง Repeat ในโจทย์การบ้านข้อที่ 3, 4 และข้อที่ 5 ในกรณีที่มีจำนวนรายการหรือจำนวนครั้งที่วนซ้ำเท่ากับ N • หมายเหตุN เป็นเลขจำนวนเต็มใด ๆ