วันจันทร์ที่ 19 กันยายน พ.ศ. 2554

ลูปแบบ WHILE และ ลูปแบบ For

ลูปแบบ WHILE
ลักษณะลูปแบบ While
ลูปแบบ While จะเริ่มด้วยการตรวจสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงจะทำงานตามคำสั่งจำนวนหนึ่งไปจนกระทั่งเงื่อนไขเป็นเท็จแล้วจึงเลิกทำ ซึ่งแสดงลักษณะได้ดังภาพ

 

                                                                                                จริง                                         คำสั่ง;
                                               
                                                   While เงื่อนไขเป็น

                                                                                                เท็จ


รูปแบบของ While
                คำสั่ง While มีรูปแบบดังนี้
                [1]
                                While เงื่อนไขเป็นจริง Do คำสั่ง
                [2]
                                While เงื่อนไขเป็นจริง Do
                                Begin
                                คำสั่ง;
                                .....
                                คำสั่ง;
                                End.
                รูปแบบในข้อ [1] เป็นรูปแบบที่มีคำสั่งเดียว ส่วนรูปแบบในข้อ [2] เป็นรูปแบบผสม คำสั่งที่อยู่ระหว่าง Begin และ End จะทำงานด้วยกัน
ตัวอย่างโปรแกรมลูปแบบ While
ตัวอย่าง  การแสดงข้อความ  I am a MEDIA INTELLIGENCE ซ้ำกันหลายครั้ง โดยโปรแกรมที่มีการทำงานเป็นลูปแบบ While แสดงในโปรแกรม
            Program ExWhile;
Var  Count : Integer;
            Begin
            Count := 1;
            While Count <= 5 Do
            Begin {เริ่มคำสั่งผสม}
                        WriteLn('I am a MEDIA INTELLIGENCE .');
                        Count := Count + 1;
            End;{จบคำสั่งผสม}
            ReadLn
            End.
 
 









ลูปแบบ While ซ้อนกัน (Nested While)
คำสั่งที่ทำงานเป็นลูปอาจจะต้องนำมาซ้อนกันเพื่อให้สามารถทำงานที่มีลักษณะเป็นลูปซ้อนกันได้  While ที่เป็นลูปซ้อนกันมีโครงสร้างดังนี้
                While เงื่อนไขเป็นจริง Do
                Begin
                            คำสั่ง;
                                While เงื่อนไขเป็นจริง DO
                                Begin
                                คำสั่ง;
                                End;
                                คำสั่ง;
                End;
โดยในส่วนคำสั่งอาจจะเป็นคำสั่งเดียว หรือคำสั่งผสมก็ได้
ตัวอย่าง ในโปรแกรมที่ต้องการแสดงผลในลักษณะตาราง อาจจะต้องใช้คำสั่ง While ซ้อนกัน เช่น โปรแกรมแสดงสูตรคูณ ซึ่งต้องการให้แสดงผลเป็นตารางดังนี้
2 x 2 = 2                3 x 1 = 3                ...             9 x 1 = 9
                2 x 2 = 4                3 x 2 = 6                ...             9 x 2 = 18
                      ...                                                ...
                2 x 10 = 20           3 x 10 = 30           ...             9 x 10 = 90
โปรแกรมแสดงตารางสูตรคูณดังกล่าวนี้ มีตัวอย่างดังโปรแกรม
Program ExWhile2;
     CONST     MaxColumn = 9;
                        MaxRow       = 10;
     Var             Row,Column : Integer;
     Begin
          Row := 1;
          While Row <= MaxRow Do
          Begin
               Column := 2;
               While Column <= MaxColumn DO
               Begin
                    While(Column, 'x',Row:2 '=' Column*row:2,'');
                    Column := Column +1;
               End;
               WriteLn;
               Row := Row + 1;
          End;
          ReadLn;
          End.
 
 














ลูปแบบ For
ลักษณะลูปแบบ For
ลูปแบบ For จะควบคุมการทำงานของคำสั่งให้ครบตามจำนวนที่กำหนดแล้วจึงเลิกทำ แสดงลักษณะได้ดังต่อไปนี้
 

            For จากค่าเริ่มต้น จนถึงค่าสุดท้าย ให้ทำคำสั่ง

            คำสั่งจะเป็นคำสั่งเดียวหรือผสมคำสั่งก็ได้

รูปแบบของ For
            คำสั่ง For มีรูปแบบดังนี้
            [1]
            For ตัวแปร := ค่าเริ่มต้น To ค่าสุดท้าย Do คำสั่ง
            [2]
            For ตัวแปร := ค่าเริ่มต้น Downto ค่าสุดท้าย Do คำสั่ง
            รูปแบบในข้อ [1] และข้อ [2] ต่างกันที่  To และ  Downto จำนวนครั้งของการทำงานขึ้นอยู่กับ  ตัวแปร (ซึ่งมีชื่อว่าตัวแปรควบคุม Control variable) ถ้าเลือกใช้  To ค่าของตัวแปรจะเพิ่มขึ้นจากค่าเริ่มต้นครั้งละ 1 ถ้าเลือกใช้  Downto  ค่าของตัวแปรจะลดลงจากค่าเริ่มต้นครั้งละ 1 หลังจากทำงานตามคำสั่งแล้ว
            ในกรณี For....To ถ้าค่าเริ่มต้นมีค่ามากกว่าค่าสุดท้าย เครื่องจะไม่ทำงานตามคำสั่ง  ส่วนในกรณี For....Downto ถ้าค่าเริ่มต้นมีค่าน้อยกว่าค่าสุดท้ายเครื่องจะไม่ทำงานตามคำสั่งเช่นกัน
            คำสั่งจะเป็นคำสั่งเดียวหรือผสมคำสั่งก็ได้
ตัวอย่างโปรแกรมลูปแบบ For
ตัวอย่าง โปรแกรมใช้แสดงตัวเลขตั้งแต่ 1 ถึง 9 โดยวิธีให้โปรแกรมทำงานซ้ำ คำสั่งเดิมแบบ For....To
Program ForCoun;
Var  Counter : Integer;
Begin
            WriteLn('For Counter');
            For Counter := 1 To 9 Do
            WriteLn(Counter); {คำสั่งเดี่ยว}
            ReadLn
End.
 
 








ผลที่ได้คือ
            For Counter
            1
            2   
            3
            4
            5
            6
            7
            8
            9



ลูปแบบ For ซ้อนกัน (Nested For)
            คำสั่งที่ทำงานเป็นลูปอาจจะต้องนำมาซ้อนกันเพื่อให้สามารถทำงานที่มีลักษณะเป็นลูปซ้อนกันได้ For ที่เป็นลูปซ้อนกันมีโครงสร้างดังนี้
                        For จากค่าเริ่มต้นจนถึงค่าสุดท้ายให้ทำคำสั่ง
                        For จากค่าเริ่มต้นจนถึงค่าสุดท้ายให้ทำคำสั่ง
            โดยคำสั่งอาจจะเป็นคำสั่งเดียวหรือผสมคำสั่งก็ได้
ตัวอย่าง โปรแกรมที่ต้องการแสดงผลในลักษณะตาราง อาจจะต้องใช้คำสั่ง For ซ้อนกัน เช่น โปรแกรมแสดงสูตรคูณซึ่งต้องการให้แสดงผลเป็นตารางดังนี้
2 x 2 = 2           3 x 1 = 3           ...         9 x 1 = 9
            2 x 2 = 4           3 x 2 = 6           ...         9 x 2 = 18
                  ...                                                ...
            2 x 10 = 20        3 x 10 = 30        ...         9 x 10 = 90
Program ExFor;
CONST          MaxColumn = 9;
            MazRow          = 10;
Var      Row,Column : Integer;
Begin
            For Row := 1 TO MaxRow Do
            Begin
            For Column :=2 To MaxColumn Do
            Write(Column,'x',Row:2,'=',Column*Row:2,'  ');
            WriteLn;
            End;
            ReadLn;
End.
 
โปรแกรมแสดงตารางสูตรคูณดังกล่าวนี้ มีตัวอย่างดังโปรแกรม











    
ข้อสังเกตสำหรับ While, Repeat, และ For
            5.1 While ควรใช้ในกรณีที่จะต้องมีการตรวจสอบเงื่อนไข ก่อนการทำซ้ำอย่างน้อย 1 ครั้ง
            5.2 Repeat  ควรใช้ในกรณีที่จะต้องมีการทำงานด้วยคำสั่งในลูปอย่างน้อย 1 ครั้ง  ก่อนการตรวจสอบเงื่อนไข
            5.3 For ควรใช้ในกรณีที่เราทราบหรือโปรแกรมสามารถคำนวณจำนวนครั้งที่ต้องทำล่วงหน้าก่อนได้


ไม่มีความคิดเห็น:

แสดงความคิดเห็น