การเขียนโปรแกรมแบบโครงสร้างแบบมีทางเลือก 2 ทางเลือก

           การเขียนโปรแกรมแบบโครงสร้าง (Structure Programming) ภาษาคอมพิวเตอร์ที่ใช้ในการเขียนโปรแกรมมีให้เลือกมากมายหลายภาษา เช่น ภาษาซี ภาษาจาวา ภาษาเดลไฟล์ ผู้เขียนโปรแกรมจะต้องเลือกภาษาคอมพิวเตอร์ที่จะนำมาใช้ในการเขียนโปรแกรม ตามลักษณะของปัญหา ความสามรถและความถนัดของตนเอง ซึ่งแต่ละภาษาก็จะมีรูปแบบคำสั่งและหลักการในการเขียนโปรแกรมที่แตกต่างกัน สำหรับภาษาคอมพิวเตอร์ที่มีการเขียนโปรแกรมแบบโครงสร้าง ซึ่งเป็นวิธีการเขียนโปรแกรมแบบดั้งเดิม เช่น ภาษาปาสคาล ภาษาซี จะมีโครงสร้างในการเขียนโปรแกรม 3 แบบ ได้แก่ โครงสร้างแบบลำดับ (Sequential Structure) โครงสร้างแบบมีทางเลือก (Selection Structure) โครงสร้างแบบทำซ้ำ (Repetition Structure) ถึงแม้ว่าปัจจุบันแนวคิดเกี่ยวกับการเขียนโปรแกรมจะเปลี่ยนไป แต่แนวคิดเกี่ยวกับวิธีการเขียนโปรแกรมแบบโครงสร้างก็ยังเป็นความรู้พื้นฐานในการเขียนโปรแกรมสมัยใหม่ อย่างการเขียนโปรแกรมแบบเชิงวัตถุและการเขียนโปรแกรมเชิงจินต-ภาพ โครงสร้างในการเขียนโปรแกรม มีรายละเอียดดังนี้

        2. โครงสร้างแบบมีทางเลือก (Selection Structure) เป็นโครงสร้างที่มีการตรวจสอบเงื่อนไขในการตัดสินใจ แบ่งออกเป็นโครงสร้างแบบมีทางเลือก 2 ทางเลือก หรือโครงสร้างแบบ If..Then..Elseและโครงสร้างแบบมีมากกว่า 2 ทางเลือก หรือโครงสร้างแบบ Case ซึ่งสามารถแสดงการทำงานของโครงสร้างนี้โดยใช้ผังงานได้ ดังรูป

โครงสร้างแบบ If..Then..Else

รูปแบบคำสั่ง If..Then..Else

คำอธิบาย

If  เงื่อนไข Then

   คำสั่งที่ 1

Else

   คำสั่งที่ 2

End If

ถ้าเงื่อนไขหลัง If เป็นจริง

   จะทำตามคำสั่งที่อยู่หลัง Then

แต่ถ้าเงื่อนไขหลัง If เป็นเท็จ

   จะทำตามคำสั่งที่อยู่หลัง Else

 

โครงสร้างแบบ Case

รูปแบบคำสั่ง Case

คำอธิบาย

Do case

Case is เงื่อนไข 1

      คำสั่ง 1

   Case is เงื่อนไข 2

      คำสั่ง 2

   Case is เงื่อนไข 3

      คำสั่ง 3

   Other

คำสั่ง 4

End case

 

ถ้าเงื่อนไข 1 เป็นจริง

   ทำตามคำสั่ง 1

ถ้าเงื่อนไข 2 เป็นจริง

   ทำตามคำสั่ง 2

ถ้าเงื่อนไข 3 เป็นจริง

   ทำตามคำสั่ง 3

กรณีอื่นๆ

   ทำตามคำสั่ง 4

ตัวอย่าง  ลำดับของการขอมีใบอนุญาตขับขี่รถจักรยานยนต์กรมขนส่งทางบก กระทรวงคมนาคม

การจำลองความคิดเป็นข้อความ

การจำลองความคิดเป็นผังงาน

เริ่มต้น
          รับข้อมูลอายุนักเรียน
          ตรวจสอบอายุเท่ากับหรือมากกว่า 15 ปี
ถ้าจริง
             
ไปที่ว่าการขนส่ง
             
ทดสอบการขับขี่
             
เขียนใบคำร้อง
             
ถ่ายรูปทำบัตร
             
รับใบอนุญาตขับขี่รถจักรยานยนต์
             
กลับโรงเรียน
             
เข้าเรียนปกติ
ถ้าไม่จริง
             
เข้าเรียนปกติ
จบ

โปรแกรมแบบมีทางเลือก 2 ทางเลือก

ปัญหา    บริษัทแห่งหนึ่งกำหนดจ่ายเงินโบนัสประจำปีให้กับพนักงานที่ทำงานมาเกิน 10 ปี เป็นเงิน 3 เท่าของเงินเดือน และจ่ายเงินโบนัสให้กับพนักงานที่ทำงานไม่เกิน 10 ปี เป็นเงิน 2 เท่าของเงินเดือน

          จงเขียนโปรแกรมให้พนักงานคำนวณเงินโบนัสของตนเอง

  1. สิ่งต้องการ (Requirement)
    คำนวณเงินโบนัส แล้วออกรายงานแสดงผลการคำนวณ

      2. รูปแบบของผลลัพธ์ (Output) ให้มีการแสดงผลออกทางจอภาพ ดังนี้

การคำนวณเงินโบนัส

เงินเดือน              = ……………. บาท

เงินโบนัส              = ……………. บาท

  1. ข้อมูลนำเข้า (Input)

             จำนวนเงินเดือน
             จำนวนปีที่ทำงาน

  1. ตัวแปรที่ใช้ (Variable)

              Salary แทน จำนวนเงินเดือน
              Year แทน จำนวนปีที่ทำงาน
              Bonus แทน จำนวนเงินโบนัส

  1. วิธีการประมวลผล (Process)

             5.1 เริ่มต้น
             5.2 รับค่าจำนวนเงินเดือน Salary ผ่านทางคีย์บอร์ด
             5.3 รับค่าจำนวนปีที่ทำงาน Yearผ่านทางคีย์บอร์ด
             5.4 ตรวจสอบว่าจำนวนปีที่ทำงานมากกว่า 10 ปีหรือไม่
             5.4.1 ถ้าใช่  ให้ Bonus = Salary*3
             5.4.2 ถ้าไม่ใช่  ให้ Bonus = Salary*2
             5.5 แสดงค่าจำนวนเงินเดือนและจำนวนเงินโบนัสออกทางจอภาพ
             5.6 จบการทำงาน

        6. ผังงาน (Flowchart)

  1. เขียนโปรแกรม (Program)

CLS
DIM
INPUT
INPUT
IF
ELSE
END IF
PRINT
PRINT
PRINT


” Salary, Year, Bonus AS INTEGER”
“เงินเดือน=”; Salary
“จำนวนปีที่ทำงาน=”; Year
Year> 10 THEN
Bonus = Salary*3
Bonus = Salary*2
“การคำนวณเงินโบนัส”
“เงินเดือน =  “;Salary;” บาท”
“โบนัสที่คุณได้ =  “;Bonus;” บาท”

Coding

#include<stdio.h>
#include<conio.h>          
int  main()                       
{      
        intSalary,Year,Bonus;                        //ประกาศตัวแปรจำนวนเต็ม int
        printf(“Enter Salary = ”);                   //แสดงข้อความเงินเดือน Enter Salary =
        scanf(“%d”,& Salary);                       //รับค่าเงินเดือน Salary จากแป้นพิมพ์
        printf(“Enter Year = ”);                     //แสดงข้อความจำนวนปีที่ทำงาน Enter Year =
scanf(“%d”,&Year);                                  //รับค่าปีที่ทำงานYear จากแป้นพิมพ์
if(Year >10)                                              //ถ้าปีที่ทำงานมากกว่า 10 ปี
     {   Bonus = Salary*3;                          //คำนวณโบนัส Bonus = Salary*3
printf(“\n Bonus =%d”, Bonus); }          //แสดงค่า Bonus
else                                                           //กรณีอื่น
        {   Bonus = Salary*2;                       //คำนวณโบนัส Bonus = Salary*2
        printf(“\n Bonus = %d”, Bonus); }  //แสดงค่า Bonus
getch();

เอกสารอ้างอิง

น้อย สุวรรณมณี และคณะ.(2553). หนังสือเรียนแม็ค การงานอาชีพและเทคโนโลยีชั้นมัธยมศึกษาปีที่ 4-6 เล่มที่ 3. (หน้า 89-90).กรุงเทพฯ : แม็ค.

สถาบันพัฒนาคุณภาพวิชาการ (พว.)(2558). คู่มือครูหนังสือเรียน เทคโนโลยีสารสนเทศและการสื่อสารชั้นมัธยมศึกษาปีที่ 4-6 เล่มที่ 3 (หน้า 88-89).กรุงเทพฯ :

คุณภาพวิชาการ (พว.).สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี (สสวท.) กระทรวงศึกษาธิการ(2553). เทคโนโลยีสารสนเทศและการสื่อสารชั้นมัธยมศึกษาปีที่ 4-6(หน้า 203-204).กรุงเทพฯ :

สกสค.ลาดพร้าว.อาณัติ  รัตนถิรกุล. (2553).สร้างระบบ e-Learning ด้วย moodle.กรุงเทพฯ : ซีเอ็ดยูเคชั่น.

สุดฤดี  ประทุมชาติ. หน่วยที่ 6โครงสร้างผังงานการทำงานแบบเลือกทำ.http://sudruadee.blogspot.com/2007/06/6.html. [ระบบออนไลน์].(10พฤศจิกายน2557).