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

ลูปแบบ Repeat

 ลูปแบบ Repeat

การทำซ้ำ

                สมมติว่าต้องการใช้คอมพิวเตอร์แสดงข้อความต่อไปนี้
I am a MEDIA INTELLIGENCE TECHNOLOGY .
I am a MEDIA INTELLIGENCE TECHNOLOGY .
I am a MEDIA INTELLIGENCE TECHNOLOGY .
I am a MEDIA INTELLIGENCE TECHNOLOGY .
I am a MEDIA INTELLIGENCE TECHNOLOGY .

                นักเรียนมีวิธีการเขียนโปรแกรมได้ 2 วิธีคือ
                1. เขียนทุกคำสั่ง ดังนี้
                   WriteLn(‘I am a MEDIA INTELLIGENCE TECHNOLOGY . ’);
WriteLn(‘I am a MEDIA INTELLIGENCE TECHNOLOGY . ’);
WriteLn(‘I am a MEDIA INTELLIGENCE TECHNOLOGY . ’);
WriteLn(‘I am a MEDIA INTELLIGENCE TECHNOLOGY . ’);
WriteLn(‘I am a MEDIA INTELLIGENCE TECHNOLOGY . ’);
                วิธีการนี้อาจจะไม่สะดวกถ้าคำสั่งมีจำนวนมาก ๆ
                2. โปรแกรมคอมพิวเตอร์มีวิธีการเฉพาะสำหรับดำเนินการกับงานที่ต้องทำซ้ำ ๆ เรียกว่าการทำงานในลักษณะลูป (Loop) ในภาษาปาสคาลมีอยู่ 3 แบบ คือ Repeat While และ For
                หลักการทำงานของโปรแกรมในลักษณะลูปก็คือ โปรแกรมจะทำงานตามคำสั่งในคำสั่งชุดเดิมซ้ำ ๆ กัน จนกระทั่งสอดคล้องกับเงื่อนไขที่เป็นจริง (True) หรือเท็จ (False) แล้วแต่กรณีของลูปแต่ละแบบ
                ค่าของเงื่อนไขที่เป็นจริงหรือเท็จนี้ได้มาจากการกระทำ 2 ประเภท คือ การเปรียบเทียบ (Relational expression) และการหาค่าบูลีน (Boolean expression)
การเปรียบเทียบ
                การเปรียบเทียบ หรือรีเลชันนอลเอกซ์เพรสชัน หมายถึง การหาคำตอบว่าเมื่อนำค่าที่อยู่ทางด้านซ้ายและทางขวาของโอเปอเรเตอร์เปรียบเทียบ มาเปรียบเทียบกันแล้วจะได้ผลเป็นจริงหรือเท็จ
                การเปรียบเทียบมี 6 กรณี แต่ละกรณีจะได้ผลเป็นจริงหรือเท็จ อย่างใดอย่างหนึ่งเพียงอย่างเดียว ดังตาราง
โอเปอเรชั่น
โอเปอเรเตอร์
ชนิดของข้อมูลที่ใช้ได้ (Y)
เท่ากับ
=
ซิมเปิล
สตริง
เซต
พอยน์เตอร์
เรคอร์ด
ไม่เท่ากับ
< >
Y
Y
Y
Y
Y
น้อยกว่า
< 
Y
Y



มากกว่า
> 
Y
Y



น้อยกว่าหรือเท่ากับ
<=
Y
Y



มากกว่าหรือเท่ากับ
>=
Y
Y



ตารางแสดงการเปรียบเทียบของโอเปอเรเตอร์แบบต่าง ๆ

ตัวอย่าง

                ถ้า A มีค่าเป็น 5 B มีค่าเป็น 5 และ C มีค่าเป็น 4
                A  =  B   Ture                                        A <>  B                  False
                A  <  B   False                                       A   >  B                  False
                A  >  C   Ture                                        C <=  A                  Ture
                C >= B   False

การหาค่าบูลีน

                การหาค่าบูลีนหรือบูลีนเอ็กเพรสชัน เป็นการหาผลลัพธ์จากบูลีนโอเปอเรเตอร์ตามหลักของคณิตศาสตร์บูลีน บูลีนโอเปอเรเตอร์มีหลายตัว แต่นำมาใช้บ่อย ๆ ในการเขียนโปรแกรมมี 4 ตัว ได้แก่ NOT AND OR และ XOR ผลลัพธ์ที่ได้จากการหาค่าบูลีนก็คือ true หรือ false อย่างใดอย่างหนึ่ง
ตัวอย่าง เมื่อกำหนดให้ a และ b เป็น true และ false ในกรณีต่าง ๆ ที่เป็นไปได้ ค่าบูลีนที่ได้จากโอเปอเรเตอร์ NOT AND OR และ XOR จะเป็นดังตาราง


A
b
NOT a
a AND b
a OR b
a XOR b
true
true
false
true
true
false
true
false
false
false
true
true
false
true
true
false
true
true
false
false
true
false
false
false

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

                                     จริง
                                                                         จบ
รูปแบบของ Repeat
            คำสั่ง Repeat มีรูปแบบดังนี้
Repeat
                          คำสั่ง ;
                                ...
                        คำสั่ง ;
                Until เงื่อนไขเป็นจริง






ตัวอย่างโปรแกรมลูปแบบ Repeat
ตัวอย่าง โปรแกรมใช้แสดงตัวเลขตั้งแต่ 1 ถึง โดยวิธีให้โปรแกรมทำงานซ้ำที่ คำสั่งชุดเดิมแบบ Repeat
Program ExRepeat;
Var      Counter : Integer;
Begin
     WriteLn('Repeat Counter ');
     Counter := 1; {กำหนดค่าเริ่มต้นเป็น1}
     Repeat
          WriteLn(Counter);
          Counter := Counter+1;{เพิ่มค่า Counter ขึ้นอีก 1}
     Until Counter > 9; {เลิกทำเมื่อ Counter มากกว่า 9}
     ReadLn
End.
 
 










ผลที่ได้คือ
     Repeat Counter
     1
     2
     3
     4
     5
     6
     7
     8
     9
ลูปแบบ Repeat ซ้อนกัน (Nested Repeat)
คำสั่งที่ทำงานเป็นลูปอาจจะต้องนำมาซ้อนกันเพื่อให้สามารถทำงานที่มีลักษณะเป็นลูปซ้อนกันได้ Repeat ที่เป็นลูปซ้อนกันได้ Repeat ที่เป็นลูปซ้อนกันมีโครงสร้างดังนี้
     Repeat
            คำสั่ง;
                ....
                Repeat
             คำสั่ง;
                ....
                Until เงื่อนไขเป็นจริง
            คำสั่ง;
                ....
     Until เงื่อนไขเป็นจริง
ตัวอย่างที่ 1 ในโปรแกรมที่ต้องการแสดงผลในลักษณะตาราง อาจจะต้องใช้คำสั่ง Repeat ซ้อนกัน เช่นโปรแกรมแสดงตารางสูตรคูณ ซึ่งต้องการให้แสดงผลเป็นตารางดังนี้
                2 x 1 = 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         
โปรแกรมแสดงตารางสูตรคูณดังกล่าวข้างต้น มีตัวอย่างดังโปรแกรมที่ 8
Program NeatedRepeat;
Const   MaxColumn = 9;
               MaxRow    = 10;
Var      Row, Column : integer;
Begin
     Row := 1;
     Repeat
          Column := 2;
          Repeat
               Write(Column, 'x',Row:2,'=',Column * Row:2,' ');
               Column := Column + 1;
          Until Column := MaxColumn;
          WriteLn;
          Row := Row +1;
     Until Roe > MaxRow;
     ReadLn;
End.

 
 











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

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