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

การเลือกทำแบบ IF

การเลือกทำแบบ IF
การเลือกทำ
การเลือกทำหมายถึงการกำหนดให้โปรแกรมทำงานอย่างหนึ่งเมื่อเงื่อนไขเป็นจริงและทำงานอีกอย่างหนึ่งเมื่อ  เงื่อนไขเป็นเท็จ ตัวอย่างการเลือกทำที่อาจพบได้บ่อย เช่น การเตือนให้เลือกบันทึกข้อมูลไว้ในดิสก์ คือ
SAVE (Y/N)
ถ้าเราเลือก Y ข้อมูลจะถูกบันทึกเข้าในดิสก์
ถ้าเราเลือก N จะไม่มีการบันทึกข้อมูล
การให้เลือกว่าจะใช้โปรแกรมนั้นต่อหรือไม่ คือ
CONTINUE (Y/N)
ถ้าเราเลือก Y โปรแกรมจะทำงานต่อไป
ถ้าเราเลือก N โปรแกรมหยุดทำงาน
ลักษณะการเลือกทำแบบ IF
การเลือกทำรูปแบบ IF มีลักษณะดังรูปที่ 1









 

ภาพแสดงรูปแบบการเลือกทำแบบ IF

Text Box: IF เงื่อนไขเป็นจริง THEN คำสั่ง 1
   ELSE (เงื่อนไขเป็นเท็จ) คำสั่ง 2

รูปแบบของการเลือกทำแบบ IF เป็นดังนี้

คอมพิวเตอร์จะเลือกทำงานตามเงื่อนไข โดยใช้เงื่อนไขเป็นจริงจะทำงานตามคำสั่ง 1 (ที่อยู่ต่อจาก THEN) แต่ถ้าเงื่อนไขเป็นเท็จ จะทำงานตามคำสั่ง 2 (ที่อยู่ต่อจาก ELSE)
ELSE และ คำสั่ง 2 จะมีหรือไม่มีก็ได้
ตัวอย่างการเลือกทำแบบ IF
ตัวอย่าง โปรแกรมรับอายุเข้าไปเปรียบเทียบ ถ้าอายุมากกว่า 55 คอมพิวเตอร์จะแสดงข้อความ คุณเป็นคนสูงอายุและถ้าอายุตั้งแต่ 55 ลงมาคอมพิวเตอร์จะแสดงข้อความคุณเป็นวัยรุ่น


PROGRAM YoungOld;
VAR
     Age : Real;
BEGIN
     Write( ‘Your Age = ‘);
     ReadLn(Age);
     IF  Age  >  55     THEN    WriteLn( ‘You are Old’)
                                ELSE     WriteLn( ‘You are Young’);
     ReadLn
END.
การเลือกทำแบบ IF ซ้อนกัน (Nested IF)
            การเลือกทำแบบ IF ในบางโปรแกรมจะต้องทำซ้ำกัน ลักษณะโครงสร้างของการเลือกทำแบบ IF ซ้อนกันเป็นดังนี้
IF เงื่อนไขเป็นจริTHEN คำสั่ง
                IF เงื่อนไขเป็นจริง THEN คำสั่ง
 
           


            จำนวนครั้งของการเลือกทำซ้ำมีได้มากเท่าที่ต้องการ สำหรับ ELSE จะมีหรือไม่ก็ได้
ตัวอย่าง การหาปี ค.. ใดที่เดือนกุมภาพันธ์มี 29 วัน มีหลักการดังนี้
                        ถ้า ปี มากกว่า 0
                   ถ้า ปี หารด้วย 100 ลงตัว
                   และหารด้วย 400 ลงตัว นั้น กุมภาพันธ์มี 29 วัน
          มิฉะนั้น ต้องหารด้วย 4 ลงตัว กุมภาพันธ์ จะต้องมี 29 วัน
โปรแกรม จะรับข้อมูลปี ค.. จากคีย์บอร์ดเข้าไป แล้วตรวจดูว่าเป็นปีที่เดือนกุมภาพันธ์มี 29 วัน (leap year) หรือไม่ และแสดงผลการตรวจสอบที่จอภาพ
Program LeapYearOrNot;
VAR
   LeapYear : Boolean;
   Year     : integer;
Begin
     WriteLn('Leap Year or Not ?');
     REPEAT
           WriteLn;
           Write('Enter Year (0=End)');
           ReadLn(Year);
           IF Year > 0 THEN
           Begin
                IF Year MOD 100 = 0
                   THEN LeapYear := (Year MOD 400)=0
                   ELSE LeapYear := (Year MOD 4)=0;
                IF LeapYear
                   THEN WriteLn(Year,' is a Leap year')
                   ELSE WriteLn(Year,' is not a Leap year');
           END
     UNTIL Year=0
END.

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

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