งานกิจการนักศึกษา...งาน 6 เด อน ให ด าเน นการตามข อ 3. -กรณ อ น ๆ ให ด าเน นการตามระเบ
งาน อ.ทรงศักดิ์
-
Upload
oraphan4 -
Category
Art & Photos
-
view
201 -
download
0
Transcript of งาน อ.ทรงศักดิ์
การเขยนคำาสงควบคมแบบม
ทางเลอก
1.คำาสงจดเกบขอมลลงหนวยความ
จำา
รหสภาษาเครองเมอเกบอยในหนวยความจำา ของคอมพวเตอรจะมลกษณะเรยงตอกนไป สมมต
ใหสวนของคำาสงเกบในหนวยความจำาเรมจาก ตำาแหนง 1000 และสวนของขอมลเกบไวเรมจาก ตำาแหนง 8000 ดงรป
ภาษาเครองเปนภาษาสงการพนฐานทใชรหส ตวเลขฐานสอง คอมพวเตอรทใช หนวยประมวลผลก
ลางตางตระกลกนจะมภาษาเครองทแตกตางกน เชน เครองทใชซพย เพนเตยม (Pentium) กบซพยทใช
ในเครองแมกอนทอช มรหสคำาสงตางกน
1.คำาสงจดเกบขอมลลงหนวยความจำา
0011101000000000100000000100011100111010000000011000000010000000001100100000001010000000
.
.
.
.
000000110000010100001000
10001001100210031004100510061007100810091010
.
.
.800080018002
00100111111
.
.
.
001
รปการเกบขอมลและคำาสงลงในหนวยความจำาดวยรหสเลขฐานสอง
1.คำาสงจดเกบขอมลลงหนวยความจำา
2.การเขยนนพจนเชงตรรกะ
2.การเขยนนพจนเชงตรรกะ
2.1 ตวดำาเนนการทางคณตศาสตร (Mathematical Operators)
ตารางสญลกษณตวดำาเนนการทางคณตศาสตร
2.2 ตวดำาเนนการความสมพนธ (relational Operators)
ตารางสญลกษณตวดำาเนนการความสมพนธ
2.การเขยนนพจนเชงตรรกะ
2.3 ตวดำาเนนการเชงตรรกะ (Logical Operators)
ตรรกะ คอ การคดเชงเหตผลทมความจรงคาใดคาหนงคอ จรง (True:1) หรอ (False:0)
ตารางสญลกษณตวดำาเนนการความสมพนธ
2.การเขยนนพจนเชงตรรกะ
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if คำาสง if เปนคำาสงในการตรวจสอบเงอนไข โดยรป
แบบการใชงานคำาสง if มรปแบบ 3 รปแบบดงน คอ ประโยค if แบบงาย
ประโยค if แบบงาย 1 ทางเลอก คอ การเขยน ประโยค if ทมการตรวจสอบเงอนไขเพยงหนงทางเลอก
คอ ถาเงอนไขเปนจรง จะทำางานในสวนของคำาสงทกำาหนด แตถาเงอนไขเปนเทจ จะขามการทำางานของคำาสงดงกลาวไป
ดงรปแบบขางลางน
รปแบบคำาสง if 1 ทางเลอก
if (เงอนไข){ คำาสง 1 ; คำาสง 2 ; .......... คำาสง n ;}
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if ผงงานแสดงการเลอกกระทำาของประโยค
if แบบ 1 ทางเลอก
จากภาพ แสดงใหเหนวา ถา เงอนไขหรอคาของนพจนทตรวจสอบ เปนจรง กจะเลอกกระทำาชดคำาสงหนงแลวไปกระทำา
ตามคำาสงตอไป แตถาคาของนพจน เปนเทจ กไมทำา ชดคำาสง ใด ๆ ในทางเลอกเลย แตใหไปทำาชดประโยคคำาสงตอไป
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if ตวอยางท 1 โปรแกรมการใชงาน if 1 ทาง
เลอก ตองการตรวจสอบเงอนไขการผาน
เกณฑ กำาหนดใหคะแนนเตม 100 คะแนน ใหรบคา ขอมลคะแนนของนกเรยนผานทางแปนพมพ ถา
นกเรยนทำาคะแนนไดมากกวาหรอเทากบ 50 คะแนนใหแสดงขอความ "Pass" แลวแสดงขอความ "Good Luck" แตถาคะแนนสอบไมผาน
ใหแสดงขอความ "Good Luck" อยางเดยวจากโจทย เ ขยนผงงาน(Flowchart) ไดดงน
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if
ผงงาน (Flowchart) แสดงทศทางการแกปญหาโจทยตวอยางท 1
จากผงงานนำามาเขยนโปรแกรมไดดงน Source code คำาอธบายโปรแกรม1234567
#include <stdio.h> #include <conio.h> int main() { int score; printf("Input Your score : "); scanf("%d",&score);
// ประกาศตวแปร score เปนชนดจำานวนเตม// แสดงขอความ Input Your score :// รอรบคะแนนจากแปนพมพมาเกบ ทตวแปร score
8
910
if (score>=50)
{ printf("Pass \n",score);
// ตรวจสอบวา score >= 50 ใชหรอไม? ถาใช เรมการทำางานใน block// เรม block ของ if// แสดงขอความ Pass
1112131415
} printf("Good luck"); getch(); return 0; }
// แสดงขอความ Good luck// จบblock ของ if
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if
ผลทไดจากการ Run ถาปอน score มคามากกวา 50 เชน ปอน 75 จะได
ผลลพธ
ถาปอน score มคานอยกวา 50 เชน ปอน 40 จะไดผลลพธ
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if
เปนคำาสงทตางจากคำาสง if แบบงายทผานมาตรงทคำา สง if แบบงายนน มทางเลอกทจะใหทำาอยเพยงทางเลอก
เดยว คอ ถาเปนจรงกทำาทางเลอกนน แตถาเปนเทจกไมทำา แตคำาสง if - else นมทางเลอกทใหทำาอยสองทางเลอกหรอ สองกรณ คอ
กรณท 1 ถาเงอนไขเปนจรง ใหทำากบสายงานหนง คอ ทำาตามชดคำาสงทตามหลงเงอนไข (Condition) ทใช
ตรวจสอบ กรณท 2 ถาเงอนไขเปนเทจ กใหทำากบอกสายงาน
หนง คอ ทำาตามชดคำาสงทตามหลงคำาสงวน else รปแบบคำาสง if - else 2 ทางเลอก
if (เงอนไข){ คำาสงชด A ;}else{ คำาสงชด B ;}
3. คำาสงควบคมแบบมทางเลอก ลกษณะ ifภาพผงงานแสดงการเลอกกระทำาของ
ประโยค if - else
จากภาพ แสดงใหเหนวา เปนการเลอกทำาชดคำาสง A หรอชด คำาสง B ดงน
1. ถาเงอนไขการตรวจสอบเปน "จรง" จะไปทำาสายงาน ในชดประโยคคำาสง A
แลวไปทำาชดประโยคคำาสง C ตอไป 2. ถาเงอนไขการตรวจสอบเปน "เทจ" จะไปทำาสายงาน
ในชดประโยคคำาสง B แลวไปทำาชดประโยคคำาสง C ตอไป
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if
ตวอยางท 2 โปรแกรม การใชงาน if - else 2
ทางเลอก โจทย : รานขาย
ผลไมแหงหนง ขายมะมวง โดยมอตราการขายดงน
ถาซอมะมวงมากกวาหรอ เทากบ 10 ลกขนไป ม
อตราการแถมอยท 10 ตอ 2 ลก ซงถาซอมะมวง
10 ลก จะไดแถม 2 ลก, ถาซอ 20 ลก จะไดแถม 4
ลก เปนตน แตถาซอไมถง10 ลก จะไมแถม จากโจทย จงเขยนโปรแกรมเพอรบคา
จำานวนมะมวงทซอ และคำานวณหาจำานวนมะมวงทลกคาจะได
จากโจทย เ ขยนผงงาน(Flowchart) ไดดงน
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if
ผงงาน(Flowchart) แสดงทศทางการแกปญหา
โจทยตวอยางท 2 จากผงงานนำามาเขยนโปรแกรมไดดงน
Source code คำาอธบายโปรแกรม1234567
#include <stdio.h> #include <conio.h> int main() { int net,number; printf("Input Number of Mango : "); scanf("%d",&number);
/ ประกาศตวแปร net, number เปนชนดจำานวนเตม// แสดงขอความ Input Number of Mango :// รอรบคะแนนจากแปนพมพมาเกบ ทตวแปร number8
910111213141516
171819
if (number>=10) { net=number+(number*2)/10; } else { net=number; } printf("Output Number of Mango : %d",net); getch(); return 0; }
// ตรวจสอบวา number >= 10 ใชหรอไม? ถาใชเรมการทำางาน ใน block
// คำานวณหาจำานวนมะมวงทลกคาจะได
// แสดงขอความ Output Number of Mango : จำานวนมะมวงทลกคาจะได
ผลทไดจากการ Run ถาปอนจำานวนมะมวงมากกวาหรอเทากบ 10 ลก เชน ถาปอน
เทากบ 30 ลก จะไดผลลพธ
ถาปอนจำานวนมะมวงนอยกวา 10 ลก เชน ถาปอน เทากบ 4 ลก จะไดผลลพธ
หมายเหต จากสตร net=number+(number*2)/10 ยกตวอยางเชน ถา number มคา
เทากบ 30 จะสามารถแทนสตรไดดงน net=30+(30*2)/10 คอ net=30+6 จงมคาเปน 36
ซงกคอ 10 ตอ 2 ลก นนเอง
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if
คำาสง nested if หรอคำาสง if else if
การเขยนโปรแกรมคอมพวเตอรบางกรณอาจจะตองมการตรวจสอบเงอนไข
มากกวา 1 ชน ดงนนในการ ตรวจสอบเงอนไขในชนท 2
หรอชนตอ ๆ ไป จงมการนำา ประโยคคำาสง if มาซอนลงใน ประโยคคำาสง if เดมอกครง
หนง ซงการซอนประโยคคำาสงif น สามารถซอนลงไปหลง
เงอนไข (Condition) หรอ ซอนลงไปหลง else กได ขนอย
กบวตถประสงคและลกษณะของการตดสนใจเพอเลอกทจะทำางาน
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if
ขอสงเกต ในการใชคำาสง if ซอนกนนน ถาตองการ ทราบวาจะตองใชคำาสง if ซอนกนกตวหรอกชน ใหพจารณาวา
ทางเลอกทเกดขนทงหมดมกทางเลอก แลวใหเอาจำานวนทาง เลอก - 1 กจะเปนจำานวนชนของการซอนคำาสง if ดงตาราง
จำานวนทางเลอกทงหมด(n)
จำานวนทางเลอก ทงหมด - 1
(n-1)
จำานวนคำาสง if ทใช
2 2-1 13 3-1 24 4-1 35 5-1 4
ตารางแสดงจำานวนชนของการใชคำาสง if เมอมทางเลอก มากกวา 1 ทางเลอก
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if
ตวอยางท 3 โปรแกรมการใชงาน nested - if หรอ if - else - if โจทย : จงเขยนโปรแกรมตดเกรด กำาหนดใหรบคาคะแนนผานทางแปนพมพ และแสดงผลเกรดผานทางจอภาพ กำาหนดเงอนไขการตดเกรด ดงน คะแนนระหวาง 80 ถง 100 ไดเกรด 4 คะแนนระหวาง 60 ถง 79 ไดเกรด 3 คะแนนระหวาง 50 ถง 59 ไดเกรด 2 คะแนนระหวาง 40 ถง 49 ไดเกรด 1 คะแนนระหวาง 0 ถง 39 ไดเกรด 0 จากโจทยสามารถเขยนผงงาน (Flow chart) ไดดงน
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if
ผลทไดจากการRun ถาปอนคะแนนอยระหวาง 80 - 100 จะไดเกรด 4 เชน ถาปอน 89
ถาปอนคะแนนอยระหวาง 0 - 39 จะไดเกรด 0 เชน ถาปอน 35
3. คำาสงควบคมแบบมทางเลอก ลกษณะ if
4.คำาสงควบคมแบบมทาง เลอก ลกษณะ Switch
การเลอกทำาสายงานใดสาย งานหนงนน นอกจากการใชคำาสง if
เพอกำาหนดเงอนไขเพอใหโปรแกรม เลอกทจะทำางานสายงานใดแลว ใน
ภาษาซ ยงมคำาสง switch อกคำา สงหนง เพออำานวยความสะดวกแก
ผเขยนโปรแกรม ในการทนำามาใช แทนคำาสง if ทซอนกนหลาย ๆ ชน โดยทคำาสง switch จะนำาคาของ
ตวแปรทอยหลงคำาสง switch มา เปรยบเทยบกบคาทอยหลง case
แตละคำาสง ถาตรงกน กจะทำาสาย งานทอยใน case นน ๆ แตถาไม
ตรงกบ case ใด ๆ เลย จะทำาหลง คำาสง default โดยมรปแบบ
ประโยคคำาสงดงน
4. คำาสงควบคมแบบมทางเลอก ลกษณะ Switch
คอมไพลเลอรจะทำาการตรวจสอบ 1. (ตวแปร) จะตองเปนตวแปรชนด int หรอประเภทขอมลอน ๆ ทม
ลกษณะเปนจำานวนเตมเชน char , short , long จะเปน string , float , double หรอ long double ไมได
2. คาคงท ในแตละ case จะตองเปนขอมลชนด char , short , int , long เทานน 3. คาคงทในแตละ case จะไปซำากบคาคงทใน case อน ไมได 4. หามม default มากกวาหนง ประโยคคำาสง break
เปนคำาสงทใชในการหลดออกจากเงอนไข โดยไมตองทำางานจนจบบลอกของคำาสง
การนำาคำาสง break มาซอนไวใน case ตาง ๆ ของคำาสงswitch จะชวยใหโปรแกรมไมลวงลำาเขาไปทำาใน case ทอยถดไป แต
ถาไมมประโยคคำาสง break เมอทำา case ใด ๆ เสรจเรยบรอยแลว คอมไพลเลอรกจะใหไปทำาใน case ทอยถดไปเรอย ๆ จนกวาจะจบบล
อกของประโยคคำาสง switch จากนนจะทำางานตอไป ในประโยคคำาสงทอยถดไป
4. คำาสงควบคมแบบมทางเลอก ลกษณะ Switch
ตวอยางท การใชงานคำาสง switch..case
โจทย : จงเขยนโปรแกรมรบระดบผลการเรยนหรอเกรดมา จากแปนพมพ แลวนำามาพจารณาตรวจสอบวา เกรดทรบเขามานนตรง
กบตวอกษรใดแลวแสดงผลดงน ถาเปน A แสดงขอความ "Excellent" ถาเปน B แสดงขอความ "Good" ถาเปน C แสดงขอความ "So so" ถาเปน D แสดงขอความ "Fails" ถาเปน E แสดงขอความ "Get lost" ถาเปนตวอกษรอน ๆ แสดงขอความ "Invalid data" จากโจทยสามารถเขยน ผงงาน (Flow chart) ไดดงน
4. คำาสงควบคมแบบมทางเลอก ลกษณะ Switch
4. คำาสงควบคมแบบมทางเลอก ลกษณะ Switch
5.กรณศกษาการใชคำาสงควบคมแบบมทางเลอก
กรณใชคำาสง switch โจทย : จงเขยนงานโปรแกรมในลกษณะเมนเลอกการทำางาน ดวยคำา
สง switch ดงน ขนตอนการพฒนางานโปรแกรม 1. การวเคราะหระบบงานเบองตน 1.1 สงทตองการ โปรแกรมเมนเลอกการคำานวณพนทสเหลยมและพนทสามเหลยม 1.2 สมการคำานวณ พนทสเหลยม = กวาง x ยาว พนทสามเหลยม = ฐาน x สง /2 1.3 ขอมลนำาเขา ตวเลอกเมน ความวาง ความยาว หรอฐานกบ
สง 1.4 การแสดงผลตามโจทยกำาหนด 1.5 กำาหนดคณสมบตตวแปร
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) สนสดการทำางาน
5.กรณศกษาการใชคำาสงควบคมแบบมทางเลอก
2.แผนผงงาน
5.กรณศกษาการใชคำาสงควบคมแบบมทางเลอก
5.กรณศกษาการใชคำาสงควบคมแบบมทางเลอก
3. คำาสงควบคมการทำางาน กรณศกษาโปรแกรมระบบงาน ลกษณะเมนเลอก
การทำางาน ควบคมการเลอกการทำางานดวยคำาสงswitch
https://pondkhaijeaw.wordpress.com/
http://documents.tips/education/55908f841a28ab856d8b47b5.html
https://support.office.com/th-th/article
http://www.krujintana.com/content/unit2_3.html
http://it.benchama.ac.th/prog/cpro/ctu7tg.php
อางอง
จดทำาโดย1. นางสาว ณสตรา สนทไทย เลขท 162. นางสาว สนสา มหาสด เลขท 17 3. นางสาว อรพรรณ ใหมละเอยด เลขท 184. นางสาว นาขวญ สอนใจ เลขท 285. นางสาว พรรณชนก ชตรรงค เลขท 296. นางสาว สขมาล สภยาหงสสกล เลขท 32
ชนมธยมศกษาปท 5/4