การเขียนคาสั่งควบคุม
แบบมีทางเลือก
การเขียนคาสั่งควบคุมแบบมีทางเลือก
การจัดเก็บข้อมูลลงหน่วยความจาคอมพิวเตอร์
ภาษากาหนดให้ดาเนินการผ่านชื่อ(identifier) ที่ผู้สร้าง
งานโปรแกรมเป็นผู้กาหนดเอง ระบบคอมพิวเตอร์จะจัดเก็บ
ชื่อและตาแหน่งที่อยู่ (Address ) ในหน่วยความจา เพื่อ
อ้างอิงนาข้อมูลที่จัดเก็บนั้นมาใช้งาน การกาหนดชื่อที่ใช้
เก็บข้อมูลต้องทาภายใต้กฎเกณฑ์ และต้องศึกษาวิธี
กาหนดลักษณะการจัดเก็บข้อมูลตามที่ภาษากาหนดไว้
ลักษณะการจัดเก็บข้อมูลมี 2 แบบคือ แบบค่าคงที่และ
แบบตัวแปร ทั้งนี้ก่อนที่จะเขียนคาสั่งกาหนดการจัดเก็บ
ข้อมูล ควรมีความรู้ในเรื่องชนิดข้อมูลก่อน
คาสั่งจัดเก็บข้อมูลลง
หน่วยความจา
สิ่งที่จาเป็นต้องรู้เพื่อเพิ่ม
ประสิทธิภาพในการเขียนคาสั่งจะ
มีดังนี้คือ เกณฑ์การกาหนดชื่อ
หน่วยความจา ชนิดข้อมูล
พื้นฐานในภาษาซี และคาสั่ง
กาหนดค่าคงที่
1.คาสั่งจัดเก็บข้อมูลลงหน่วยความจา
1.1 กฎเกณฑ์การกาหนดชื่อ
1.อักขระแรกต้องเป็นตัวอักษร หรืเครื่องหมายขีดล่าง ( _ )ตัว
ถัดไปเป็นอักษร ตัวเลข หรือ เครื่องหมายขีดล่างก็ได้
2.ในภาษาซีตัวพิมพ์ใหญ่จะมีความหมายต่างกับตัวพิมพ์เล็ก
เช่น A จะมีความหมายไม่เหมือน a
3. ห้ามมีอักขระพิเศษ เช่น $ @ และห้ามมีช่องว่างระหว่าง
อักขระ
4. ควรตั้งชื่อให้สอดคล้องกับงาน
5. ต้องไม่ซ้ากับคาสงวนของภาษาซี
1.คาสั่งจัดเก็บข้อมูลลงหน่วยความจา
O1.2 ชนิดข้อมูล
Oภาษาซีมีชนิดข้อมูลพื้นฐาน 3 กลุ่มหลัก
คือ อักขระ ตัวเลขจานวนเต็ม ตัวเลข
ทศนิยม
Oผู้สร้างโปรแกรมควรเลือกใช้ชนิดข้อมูลให้
เหมาะสม เพื่อใช้หน่วยความจาอย่างมี
ประสิทธิภาพ
ชนิดข้อมูล ขอบเขตของข้อมูล การเก็บข้อมูล
char -128ถึง 127 อักขระ
unsignedchar 0 ถึง 255 อักขระ ไม่คิดเครื่องหมาย
int -32768ถึง 32767 เลขจานวนเต็ม
unsignedint 0 ถึง 65535 เลขจานวนเต็ม ไม่คิดเครื่องหมาย
short -128ถึง 127 เลขจานวนเต็มแบบสั้น
unsignedshort 0 ถึง 255 เลขจานวนเต็มแบบสั้น ไม่คิด
เครื่องหมาย
long -2147483648ถึง
2147483649
เลขจานวนเต็มแบบยาว
unsignedlong 0 ถึง 4294967296 เลขจานวนเต็มแบบยาว ไม่คิด
เครื่องหมาย
float 3.4x 10-38ถึง 3.4 x1038 เลขทศนิยม ตัวเลขหลังจุด 6หลัก
double 3.4x 10-308ถึง 3.4x 10308 เลขทศนิยม ตัวเลขหลังจุด 12
หลัก
long double 3.4x 10-4032ถึง 3.4x เลขทศนิยม ตัวเลขหลังจุด 24
1.คาสั่งจัดเก็บข้อมูลลงหน่วยความจา
1.3 คาสั่งกาหนดข้อมูลแบบค่าคงที่
1.3.1แบบที่ 1ไม่ต้องกาหนดชื่อของ
ข้อมูล
เช่น printf (“2 x2= %dn”,4)
1.3.2 แบบที่ 2เขียนบริเณส่วนหัว
ในโครงสร้างภาษาซี
รูปแบบ #define macro_name
data;
อธิบาย macro_nameคือชื่อของ
ข้อมูล ต้องใช้ตัวพิมพ์ใหญ่
data คือข้อมูล
ตัวอย่าง #define PI 3.14;
1.3.3 แบบที่ 3 เขียนบริเวณฟังก์ชัน
หลัก
รูปแบบ const variable = data;
อธิบาย variable คือชื่อตัวแปร
data คือข้อมูล
ตัวอย่าง const x = a*b
การเขียนนิพจน์เชิงตรรกะ
ในการเขียนนิพจน์เชิงตรรกะต้องมีความรู้ดังนี้
2.1 ตัวดาเนินการทางคณิตศาสตร์
ตัวดาเนินการ ศัพท์เฉพาะ ความหมาย
+ addition บวก
- subtraction ลบ
* multiplication คูณ
/ division หาร
% remainder หารเอาเศษ
การเขียนนิพจน์เชิงตรรกะ
2.2 ตัวดาเนินการความสัมพันธ์
กาหนด a= 3 ; b = 2 ;
ตัวดาเนินการ ศัพท์เฉพาะ ความหมาย
< less than น้อยกว่า
> greaterthan มากกว่า
<= less thanorequal น้อยกว่าหรือเท่ากับ
>= greaterthanorequal มากกว่าหรือเท่ากับ
== equal เท่ากับ
!= notequal ไม่เท่ากับ
การเขียนนิพจน์เชิงตรรกะ
ตารางสรุปค่าความจริงของนิพจน์ตรรกะ
ประโยค(X
)
ประโยค(Y
)
!(X) (X)&&(Y) (X)||(Y)
F F T F F
F T T F T
T F F F T
T T F T T
การเขียนนิพจน์เชิงตรรกะ
O 2.3 ตัวดาเนินการเชิงตรรกะ
เป็นสัญลักษณ์ใช้เชื่อมประโยคคาสั่งแบบมีเงื่อนไข 2ประโยคขึ้นไป
ตรรกะ คือ การคิดเชิงเหตุผลที่มีความจริงค่าใดค่าหนึ่งคือ จริง True:1
หรือ False:0
ตัวดาเนินการ ศัพท์เฉพาะ ความหมาย
&& AND และ
|| OR หรือ
! NOT นิเสธ
คาสั่งควบคุมแบบมีทางเลือก ลักษณะ if
คาสั่งควบคุมแบบ if มี 3 ลักษณะคือ แบบ if แบบ if – else
และแบบ if – else if – else
3.1 กรณีใช้ประโยคคาสั่งแบบ if
คาสั่ง if มีการทางานดังนี้หากประโยคเงื่อนไขเป็นจริงให้ไป
ทางานตามคาสั่งต่อจากเงื่อนไข แล้วไปตาแหน่งคาสั่งชุดต่อไป
หากเงื่อนไขเป็นเท็จก็ไม่ต้องทาอะไร ให้ไปตาแหน่งคาสั่งชุด
ต่อไป
คาสั่งควบคุมแบบมีทางเลือก ลักษณะ if
3.1.1 รูปแบบการเขียนคาสั่งแบบ if
รูปแบบ 1
กรณีหลังเงื่อนไข if มี 1 คาสั่ง
if (เงื่อนไข)
คาส่ง ;(กรณีเงื่อนไขเป็นจริง)
คาสั่งชุดต่อไป ; (กรณีเงื่อนไขเป็นเท็จ)
คาสั่งควบคุมแบบมีทางเลือก ลักษณะ if
รูปแบบ 2
กรณีหลังเงื่อนไข if มีมากกว่า 1คาสั่ง
if (เงื่อนไข)
{
กลุ่มคาสั่ง ; (กรณีเงื่อนไขเป็นจริง)
} ;
คาสั่งชุดต่อไป ;(กรณีเงื่อนไขเป็นเท็จ)
คาสั่งควบคุมแบบมีทางเลือก ลักษณะ if
3.2 กรณีใช้ประโยคคาสั่งแบบ if – else
คาสั่ง if – else มีการทางานดังนี้หากเงื่อนไขเป็นจริง ให้ทางานตามคาสั่งชุดที่ 1 แล้ว
ไปที่คาสั่งชุดต่อไป แต่หากเงื่อนไขเป็นเท็จ ให้ทางานตามคาสั่งชุดที่ 2 แล้วไปที่คาสั่ง
ชุดต่อไป
3.2.1 รูปแบบการเขียนคาสั่งแบบ if – else
รูปแบบ การใช้คาสั่งแบบ if – else
If (เงื่อนไข)
คาสั่งชุดที่ 1 (กรณีเงื่อนไขเป็นจริง) ;
else
คาสั่งชุดที่ 2 (กรณีเงื่อนไขเป็นเท็จ) ;
คาสั่งชุดต่อไป ;
ข้อควรจา หากแต่ละทางเลือกมีมากกว่า 1 คาสั่ง ต้องใช้เครื่องหมาย { } กั้นขอบเขต
คาสั่งควบคุมแบบมีทางเลือก ลักษณะ if
O 3.3 กรณีใช้ประโยคคาสั่งแบบ if –else if –else
O คาสั่ง if –else if – elseมีการทางานดังนี้หากเงื่อนไข 1เป็นจริง ให้
ทางานตามคาสั่งชุดที่ 1แล้วทาตามคาสั่งชุดต่อไป หากเงื่อนไข 1 เป็น
เท็จ ให้ตรวจสอบว่าเงื่อนไข 2เป็นจริงหรือไม่ หากเงื่อนไข 2 เป็นจริงให้
ทางานตามคาสั่งชุดที่ 2แล้วทาตามคาสั่งชุดต่อไป หากเงื่อนไข 2 เป็น
เท็จ ให้ตรวจสอบว่าเงื่อนไข nเป็นจริงหรือไม่ หากเงื่อนไข n เป็นจริง
ให้ทางานตามคาสั่งชุดที่ n แล้วทาตามคาสั่งชุดต่อไป หากเงื่อนไข n
เป็นเท็จ ให้ทาตามคาสั่งที่อยู่หลัง else แล้วทาตามคาสั่งชชุดถัดไป
คาสั่งควบคุมแบบมีทางเลือก ลักษณะ if
3.3.1 รูปแบบการเขียนคาสั่งแบบ if – else if – else
รูปแบบ รูปแบบการเขียนคาสั่งแบบ if – else if –else
if (เงื่อนไข 1)
คาสั่งชุดที่ 1 ; (กรณีเงื่อนไข 1 เป็นจริง)
else if (เงื่อนไข 2)
คาสั่งชุดที่ 2 ; (กรณีเงื่อนไข 2 เป็นจริง)
…..
else
คาสั่งชุดที่ n ; (นอกเหนือจากเงื่อนไขข้างต้น)
คาสั่งชุดต่อไป ;
ข้อควรจา หากแต่ละทางเลือกมีมากกว่า 1 คาสั่ง ต้องใช้เครื่องหมาย { } กั้นขอบเขต
4. คาสั่งควบคุมแบบมีทางเลือก ลักษณะ switch
การควบคุมการทางานเชิงตรรกะในภาษาซี นอกจากคาสั่ง if แล้ว
ยังมีคาสั่ง switch ที่ให้เลือกนาไปใช้ควบคุมการทางานแบบมีทางเลือก
กรณีทางเลือกการทางานมีเป็นจานวนมาก ตัวอย่างเช่น งานตัดสินผลการ
เรียนแบบ 8 ระดับ หากใช้คาสั่ง if รูปแบบการเขียนประโยคคาสั่งจะมีจาน
วนบรรทัดคาสั่งจานวนมาก ทาให้อ่านคาสั่งได้ยากภาษาซีออกแบบคาสั่ง
switch ให้ทางานลักษณะวิเคราะห์ตรวจสอบค่าของตัวแปร หรือนิพจน์ว่า
ตรงกับคาภายในคาสั่ง case ใด จะทางานตามคาสั่งภายใต้การควบคุมของ
คาสั่ง caseนั้น แต่หากตรวจสอบแล้วไม่ตรงกับคาสั่งใดเลย จะทางาน
ภายใต้คาสั่ง default (ผุ้เขียนคาสั่งอาจไม่เลือกเขียนคาสั่ง default ก็ได้)
4. คาสั่งควบคุมแบบมีทางเลือก ลักษณะ switch
4.1 รูปแบบการเขียนคาสั่งและแนวทางผังงานแบบ switch
Switch{var /expression}
{
caseค่าที่ 1 : คาสั่งชุดที่ 1 ;
break ;
caseค่าที่ 2 : คาสั่งชุดที่ 2 ;
break;
caseค่าที่ n : คาสั่งชุดที่ n;
break;
: คาสั่ง ;
}
คาสั่งชุดต่อไป
O กรณีใช้คาสั่ง switch
O โจทย์ : จงเขียนงานโปรแกรมใน
ลักษณะเมนูเลือกการทางาน
ด้วยคาสั่ง switch ดังนี้
O กาหนดให้ กด 1 คานวณพื้นที่
สี่เหลี่ยมจัตุรัส
O กด 2 คานวณพื้นที่สามเหลี่ยม
O กด 3 ออกจากระบบงาน
นอกเหนือจากนี้แจ้งข้อความ
การกดหมายเลขผิดพลาด
ขั้นตอนการพัฒนางานโปรแกรม
1. การวิเคราะห์ระบบงานเบื้องต้น
1.1สิ่งที่ต้องการ โปรแกรมเมนูเลือกการ
คานวณพื้นที่สี่เหลี่ยม และพื้นที่สามเหลี่ยม
1.2สมการคานวณ พื้นที่สี่เหลี่ยม =กว้าง x
ยาว พื้นที่สามเหลี่ยม =ฐาน x สูง /2
1.3 ข้อมูลนาเข้า ตัวเลือกเมนู ความกว้าง
ความยาว หรือฐานกับสูง
1.4การแสดงผลตามโจทย์กาหนด
1.5กาหนดคุณสมบัติตัวแปร
กรณีศึกษาการใช้คาสั่งควบคุมแบบมีทางเลือก
O 1.6ลาดับขั้นตอนการทางาน
(action)
O 1)เริ่มต้นการทางาน
O 2)แสดงส่วนเมนูเลือกงาน
O 3)ป้ อนค่าตัวเลือกเมนู (ans)
O 4)เลือกทางานด้วยคาสั่ง switch
(ans)
O 4.1)ถ้า ansเป็น ‘1’ให้ทา งาน
กลุ่มคาสั่ง ดังนี้
O - ป้ อนคาสั่ง w, l
O - คานวณarea=w *l
O - พิมพ์ area
O (ออกไปทางานข้อ 5)
ข้อมูล ชื่อหน่วยความจา ชนิดข้อมูล
ความกว้าง w ตัวเลขทศนิยม
ความยาว l ตัวเลขทศนิยม
ฐาน b ตัวเลขทศนิยม
สูง h ตัวเลขทศนิยม
พื้นที่ area ตัวเลขทศนิยม
ตัวเลือกเมนู ans อักษะ
O 4.2)ถ้า ansเป็น ‘2’ให้ทางานกลุ่มคาสั่ง ดังนี้
O - ป้ อนคาสั่ง b, h
O - คานวณarea=b *h/2
O - พิมพ์ area
O (ออกไปทางานข้อ 5)
O 4.3)ถ้า ansเป็น ‘3’ให้ทางานกลุ่ม คาสั่ง ดังนี้
O - ออกจากส่วนการทางาน
O (ออกไปทางานข้อ 5)
O 4.4)นอกเหนือจากนี้พิมพ์ข้อความแจ้ง ข้อผิดพลาด
O (ออกไปทางานข้อ 5)
O 5)สิ้นสุดการทางาน
กรณีศึกษาการใช้คาสั่งควบคุมแบบมีทางเลือก
O3. คาสั่งควบคุมการทางาน
Oตัวอย่างโปรแกรม กรณีศึกษา
โปรแกรมระบบงาน ลักษณะ
เมนูเลือกการทางาน ควบคุม
การเลือกการทางานด้วย
คาสั่ง switch
จัดทาโดย
นายเกิดพงศ์ เกิดมงคล เลขที่ 3
นายวสวัตต์ ล้อเธียรประทาน เลขที่ 6
นางสาวปนิดา เหมาอาพมาตร์ เลขที่ 17
นางสาวสุภิชา แก้วรักษา เลขที่ 19
นางสาวอภิชญา ใจอักษร เลขที่ 20
ชั้นมัธยมศึกษาปีที่ 4/5

การเขียนคำสั่งควบคุมแบบมีทางเลือก ม.4/5 กลุ่ม 3