ݺߣ

ݺߣShare a Scribd company logo
การเขียนคาสั่งควบคุมแบบมีทาง๶ลือก
1. คำสั่งจัดเก็บข้อมูลลงหน่วยควำมจำ
1.1 กฎเกณฑ์การกาหนดชื่อ
ชื่อ (Identifier)หมายถึง ชื่อหน่วยความจาประเภทตัวแปร ชื่อหน่วยความจาประเภทค่าคงที่
หรือ ชื่อในส่วนใดๆ ของโปรแกรมที่ผู้สร้างโปรแกรมเป็นผู้กาหนดด้วยตนเอง มีกฎเกณฑ์ดังนี้
1. อักขระแรกต้องเป็นตัวอักษร หรือเครื่องหมายขีดล่าง (_) ตัวถัดไปเป็นตัวอักษร หรือตัวเลข
หรือเครื่องหมายขีดล่าง (_) ก็ได้
2. ชื่อที่ใช้อักษรตัวพิมพ์ใหญ่ หรือตัวพิมพ์เล็ก จะจัดเก็บข้อมูลในหน่วยความจาตาแหน่งที่
ต่างกัน
3. ห้ามใช้อักขระพิเศษ เช่น $ @ และห้ามมีช่องว่างระหว่างอักขระโดยเด็ดขาด
4. ควรตั้งชื่อให้มีความหมายสอดคล้องกับงาน
5. ต้องไม่ซ้ากับคาสงวนของภาษาซี (Reserved Word)
1.2 ชนิดของข้อมูล
ภาษาซีมีชนิดของข้อมูลพื้นฐานให้เลือกใช้งาน 3 กลุ่มหลักคือ อักขระ ตัวเลขจานวนเต็ม
ตัวเลขทศนิยม
การเขียนคำสั่งควบคุมแบบมีทาง๶ลือก.
1.3 คาสั่งกาหนดข้อมูลแบบค่าคงที่ มี 3 ลักษณะคือ
1.3.1 แบบที่ 1 ไม่ต้องกาหนดชื่อหน่วยความจารองรับข้อมูล (Literal Constant)
อธิบาย เลข 4 กับ ‘c’ คือข้อมูลแบบค่าคงที่ ไม่ต้องจัดเก็บในหน่วยความจา
1.3.2 แบบที่ 2 เขียนบริเวณส่วนหัว ในโครงสร้างภาษาซี (Defined Constant)
1.3.3 แบบที่ 3 เขียนบริเวณส่วนฟังก์ชันหลัก main ( ) (Memory Constant)
2. กำรเขียนนิพจน์เชิงตรรกะ
2.1 ตัวดาเนินการทางคณิตศาสตร์ (MathematicalOperators)
2.2 ตัวดาเนินการความสัมพันธ์ (RelationalOperators)
2.3 ตัวดาเนินการเชิงตรรกะ (Logical Operators)
เป็นสัญลักษณ์ใช้เชื่อมประโยคคาสั่งแบบมีเงื่อนไข2 ประโยคขึ้นไป
ตรรกะ คือ การคิดเชิงเหตุผลที่มีความจริงค่าใดค่าหนึ่งคือ จริง (True: 1) หรือ (False: 0)
3. คำสั่งควบคุมแบบมีทำงเลือก ลักษณะ if
3.1 กรณีใช้ประโยคคาสั่งแบบ if
ประสิทธิภาพของคาสั่ง: ควบคุมการทางานแบบมีทางเลือก ลักษณะหากประโยคเงื่อนไข
ตรรกะได้
ข้อสรุปค่าความจริงเป็นจริงให้ไปทางานตามคาสั่ง (กลุ่มคาสั่ง) ต่อจากประโยคเงื่อนไข แล้ว
ไปตาแหน่งบรรทัดคาสั่งชุดต่อไป แต่หากเงื่อนไขเป็นเท็จไม่ต้องทาคาสั่งใดให้ไปทางานที่ตาแหน่งคาสั่ง
ต่อไป
3.1.1 รูปแบบการเขียนคาสั่งและแนวทางผังงานแบบ if
การเขียนคำสั่งควบคุมแบบมีทาง๶ลือก.
3.2 กรณีใช้ประโยคคาสั่งแบบ if – else
ประสิทธิภาพของคาสั่ง: ใช้กรณีควบคุมการทางานในลักษณะ หากประโยคเงื่อนไขตรรกะได้ข้อ
สรุปความจริงเป็นจริง ให้ทางานตามคาสั่ง (กลุ่มคาสั่ง) ชุดที่ 1 แล้วไปที่คาสั่งต่อไป แต่หากเงื่อนไขตรรกะ
เป็นเท็จ ให้ทางานตามคาสั่ง (กลุ่มคาสั่ง) ชุดที่ 2 แล้วไปทางานที่ตาแหน่งคาสั่งชุดต่อไป
3.3 กรณีใช้ประโยคคาสั่งแบบ if – else if –else
ประสิทธิภาพคาสั่ง: ใช้กรณีควบคุมการทางานในลักษณะ หากประโยคเงื่อนไขตรรกะมี
ทางเลือกทางานมากกว่า 2 ทางเลือก ระบบจะตรวจสอบเงื่อนไข ดังนี้
การเขียนคำสั่งควบคุมแบบมีทาง๶ลือก.
3.4โครงสร้าง หรือ รูปแบบ ที่ใช้ if ซ้อนกัน หรือ อาจเรียกว่า nested if
โครงสร้าง nested if เพิ่ม if เข้ามาในคาสั่ง if ทาให้ใช้คาสั่ง if เพิ่มได้ตามที่ต้องการ ใช้กับการ
ตัดสินใจที่มีทางเลือกมากกว่า 2 ทางเลือก อาจเขียนผังงานได้เป็น (มีได้หลายแบบ)
4. คำสั่งควบคุมแบบมีทำงเลือก
คาสั่งswitchใช้ควบคุมการทางานแบบมีทางเลือก กรณีที่ทางเลือกการทางานมีจานวนมาก
ภาษาซีออกแบบคาสั่งswitch ให้ทางานลักษณะวิเคราะห์ตรวจสอบค่าของตัวแปรหรือนิพจน์ว่าตรงกับค่า
ภายในคาสั่ง case ใด จะทางานตามคาสั่งภายใต้การควบคุมของคาสั่งcaseนั้นแต่หากตรวจสอบแล้วไม่
ตรงกับคาสั่งใดเลย จะทางานภายใต้คาสั่ง default
** เงื่อนไขที่ใช้กับคาสั่ง switch ต้องเป็นคาสั่งแบบประโยคเงื่อนไขแบบ1ประโยค การท างานของswitch
จะต้องมีคาสั่งbreakเพื่อออกจากการท างานของcaseนั้นโดยไม่ต้องผ่านcaseถัดไป
4.1 รูปแบบการเขียนคาสั่งและแนวทางผังงานแบบswitch
การเขียนคำสั่งควบคุมแบบมีทาง๶ลือก.
ตัวอย่างการใช้คาสั่ง switch
ตัวอย่างที่ 1 การใช้คาสั่ง switch โดยไม่ใช้คาสั่ง break ในแต่ละ case
#include <stdio.h>
main()
{
/*printf("n");*/
switch(getchar())
{
case '9': printf("99 9 9 9 9 9 9 9n");
case '8': printf("8 8 8 8 8 8 8 8n");
case '7': printf("7 7 7 7 7 7 7n");
case '6': printf("6 6 6 6 6 6n");
case '5': printf("5 5 5 5 5n");
case '4': printf("4 4 4 4n");
case '3': printf("3 3 3n");
case '2': printf("2 2n");
case '1': printf("1n");
default: printf("0000000000000000000");
}
getch();
}
เมื่อโปรแกรมทางานจะได้ผล ในลักษณะทานองในรูป
ตัวอย่างที่ 2 แสดงการใช้ค าสั่ง switch โดยมีการใช้ค าสั่ง break ในแต่ละ case
#include <Stdio.h>
main()
{
float num1 = 1.0 , num2 = 1.0;
int operate;
printf("nPlease enter firstfloatingpoint number : ");
scanf("%f",&num1);
printf("nPlease enter seconf floatingpoint number : ");
scanf("%f",&num2);
printf("n Please enter the operator. : ");
operate = getche();
switch( operate) /* start switch*/
{
case '+' :
printf("ntresult tof t%0.2ft%c t%02.2ftist %.2f",num1,operate,num2,num1+num2);
break;
case '-' :
printf("ntresult tof t%0.2ft%c t%02.2ftist %.2f",num1,operate,num2,num1- num2);
break;
case '/' :
printf("ntresult tof t%0.2ft%c t%02.2ftist %.2f",num1,operate,num2,num1+num2);
break;
default :
printf("unknownoperator");
} /* end switch*/
Getch();
} /* end main() */
โดยการทางานของโปรแกรมนี้เป็นไปในลักษณะ ดังรูป
case '*' :
printf("ntresult tof t%0.2ft%c t%02.2ftist %.2f",num1,operate,num2,num1+num2);
break;
5.กรณีศึกษำกำรใช้คำสั่งควบคุมแบบมีทำงเลือก
กรณีใช้คาสั่ง switch
โจทย์: จงเขียนงานโปรแกรมในลักษณะเมนูเลือกการทางาน ด้วยคาสั่ง switch ดังนี้
ขั้นตอนการพัฒนางานโปรแกรม
1. การวิเคราะห์ระบบงานเบื้องต้น
1.1 สิ่งที่ต้องการ โปรแกรมเมนูเลือกการคานวณพื้นที่สี่เหลี่ยม
และพื้นที่สามเหลี่ยม
1.2 สมการคานวณ พื้นที่สี่เหลี่ยม = กว้าง x ยาว
พื้นที่สามเหลี่ยม = ฐาน x สูง /2
1.3 ข้อมูลนาเข้า ตัวเลือกเมนู
ความว้าง ความยาว หรือฐานกับสูง
1.4 การแสดงผลตามโจทย์กาหนด
1.5 กาหนดคุณสมบัติตัวแปร
1.6 ลาดับขั้นตอนการทางาน (action)
1) เริ่มต้นการทางาน
2) แสดงส่วนเมนูเลือกงาน
3) ป้อนค่าตัวเลือกเมนู (ans)
4) เลือกทางานด้วยคาสั่ง switch ( ans )
4.1) ถ้า ans เป็น ‘1’ ให้ท างานกลุ่มคาสั่ง ดังนี้
- ป้อนคาสั่ง w, l
- คานวณ area = w * l
- พิมพ์area
(ออกไปทางานข้อ 5)
4.2) ถ้า ans เป็น ‘2’ ให้ทางานกลุ่มคาสั่ง ดังนี้
- ป้อนคาสั่ง b, h
- คานวณ area = b * h/2
- พิมพ์area
(ออกไปทางานข้อ 5)
4.3) ถ้า ans เป็น ‘3’ ให้ทางานกลุ่มคาสั่ง ดังนี้
- ออกจากส่วนการทางาน
(ออกไปทางานข้อ 5)
4.4) นอกเหนือจากนี้ พิมพ์ข้อความแจ้งข้อผิดพลาด
(ออกไปทางานข้อ 5)
5) สิ้นสุดการทางาน
2.แผȨังงาน
3. คาสั่งควบคุมการทางาน
กรณีศึกษาโปรแกรมระบบงาน ลักษณะเมนูเลือกการทางาน ควบคุมการเลือกการทางานด้วย
คาสั่ง switch
สมาชิก
นายธนวัฒน์ น้อยเกตุ เลขที่ 6
นายณัฐกาญจน์ สุขสม เลขที่ 7
นางสาวกมลวรรณ สมบูรณ์ศิริ เลขที่ 17
นางสาวจุฑามาศ เนียมหอม เลขที่ 18
นางสาวธนาภรณ์ นิลบุตร เลขที่ 28
นางสาวกาญจนาพร รุ้งพรม เลขที่ 34
ชั้นมัธยมศึกษาปีที่ 6/2

More Related Content

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