Upload
supicha-ploy
View
66
Download
7
Embed Size (px)
Citation preview
การเขยนค าสงควบคมแบบมทางเลอก
การเขยนค าสงควบคมแบบมทางเลอก
การจดเกบขอมลลงหนวยความจ าคอมพวเตอร ภาษาก าหนดใหด าเนนการผานชอ(identifier) ทผสรางงานโปรแกรมเปนผก าหนดเอง ระบบคอมพวเตอรจะจดเกบชอและต าแหนงทอย (Address ) ในหนวยความจ า เพออางองน าขอมลทจดเกบนนมาใชงาน การก าหนดชอทใชเกบขอมลตองท าภายใตกฎเกณฑ และตองศกษาวธก าหนดลกษณะการจดเกบขอมลตามทภาษาก าหนดไวลกษณะการจดเกบขอมลม 2 แบบคอ แบบคาคงทและแบบตวแปร ทงนกอนทจะเขยนค าสงก าหนดการจดเกบขอมล ควรมความรในเรองชนดขอมลกอน
ค าสงจดเกบขอมลลง
หนวยความจ า
สงทจ าเปนตองรเพอเพมประสทธภาพในการเขยนค าสงจะมดงน คอ เกณฑการก าหนดชอหนวยความจา ชนดขอมลพนฐานในภาษาซ และค าสงก าหนดคาคงท
1.ค าสงจดเกบขอมลลงหนวยความจ า1.1 กฎเกณฑการก าหนดชอ
1.อกขระแรกตองเปนตวอกษร หรเครองหมายขดลาง ( _ ) ตวถดไปเปนอกษร ตวเลข หรอ เครองหมายขดลางกได
2.ในภาษาซตวพมพใหญจะมความหมายตางกบตวพมพเลก เชน A จะมความหมายไมเหมอน a
3. หามมอกขระพเศษ เชน $ @ และหามมชองวางระหวางอกขระ
4. ควรตงชอใหสอดคลองกบงาน
5. ตองไมซ ากบคาสงวนของภาษาซ
1.ค าสงจดเกบขอมลลงหนวยความจ า
O1.2 ชนดขอมล
Oภาษาซมชนดขอมลพนฐาน 3 กลมหลก คอ อกขระ ตวเลขจานวนเตม ตวเลขทศนยม
Oผสรางโปรแกรมควรเลอกใชชนดขอมลใหเหมาะสม เพอใชหนวยความจาอยางมประสทธภาพ
ชนดขอมล ขอบเขตของขอมล การเกบขอมล
char -128 ถง 127 อกขระ
unsigned char 0 ถง 255 อกขระ ไมคดเครองหมาย
int -32768 ถง 32767 เลขจานวนเตม
unsigned int 0 ถง 65535 เลขจานวนเตม ไมคดเครองหมาย
short -128 ถง 127 เลขจานวนเตมแบบสน
unsigned short 0 ถง 255 เลขจานวนเตมแบบสน ไมคดเครองหมาย
long -2147483648 ถง 2147483649
เลขจานวนเตมแบบยาว
unsigned long 0 ถง 4294967296 เลขจานวนเตมแบบยาว ไมคดเครองหมาย
float 3.4 x 10-38 ถง 3.4 x 1038 เลขทศนยม ตวเลขหลงจด 6 หลก
double 3.4 x 10-308 ถง 3.4 x 10308 เลขทศนยม ตวเลขหลงจด 12 หลก
long double 3.4 x 10-4032 ถง 3.4 x 104032
เลขทศนยม ตวเลขหลงจด 24 หลก
1.ค าสงจดเกบขอมลลงหนวยความจ า
1.3 ค าสงก าหนดขอมลแบบคาคงท
1.3.1 แบบท 1 ไมตองกาหนดชอของขอมล
เชน printf (“2 x2 = %d\n”,4)
1.3.2 แบบท 2 เขยนบรเณสวนหว ในโครงสรางภาษาซ
รปแบบ #define macro_namedata;
อธบาย 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 นอยกวา> greater than มากกวา<= less than or equal นอยกวาหรอเทากบ
>= greater than or equal มากกวาหรอเทากบ
== equal เทากบ!= not equal ไมเทากบ
การเขยนนพจนเชงตรรกะ
ตารางสรปคาความจรงของนพจนตรรกะ
ประโยค(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 (เงอนไข)
{
กลมคาสง ; (กรณเงอนไขเปนจรง)
} ;
คาสงชดตอไป ; (กรณเงอนไขเปนเทจ)
ค าสงควบคมแบบมทางเลอก ลกษณะ if3.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 – elseif (เงอนไข 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 รปแบบการเขยนค าสงและแนวทางผงงานแบบ switchSwitch { 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 สง /21.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, lO - คานวณ area = w * lO - พมพ areaO (ออกไปทางานขอ 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