งาน อ.ทรงศักดิ์

37
กกกกกกกกกกก กกกกกกกกกก กกกกกกกก กกกกก

Transcript of งาน อ.ทรงศักดิ์

Page 1: งาน อ.ทรงศักดิ์

การเขยนคำาสงควบคมแบบม

ทางเลอก

Page 2: งาน อ.ทรงศักดิ์

1.คำาสงจดเกบขอมลลงหนวยความ

จำา

Page 3: งาน อ.ทรงศักดิ์

รหสภาษาเครองเมอเกบอยในหนวยความจำา ของคอมพวเตอรจะมลกษณะเรยงตอกนไป สมมต

ใหสวนของคำาสงเกบในหนวยความจำาเรมจาก ตำาแหนง 1000 และสวนของขอมลเกบไวเรมจาก ตำาแหนง 8000 ดงรป

     ภาษาเครองเปนภาษาสงการพนฐานทใชรหส ตวเลขฐานสอง คอมพวเตอรทใช หนวยประมวลผลก

ลางตางตระกลกนจะมภาษาเครองทแตกตางกน เชน เครองทใชซพย เพนเตยม (Pentium) กบซพยทใช

ในเครองแมกอนทอช มรหสคำาสงตางกน

1.คำาสงจดเกบขอมลลงหนวยความจำา

Page 4: งาน อ.ทรงศักดิ์

0011101000000000100000000100011100111010000000011000000010000000001100100000001010000000

.

.

.

.

000000110000010100001000

10001001100210031004100510061007100810091010

.

.

.800080018002

 

00100111111

.

.

.

001

รปการเกบขอมลและคำาสงลงในหนวยความจำาดวยรหสเลขฐานสอง

1.คำาสงจดเกบขอมลลงหนวยความจำา

Page 5: งาน อ.ทรงศักดิ์

2.การเขยนนพจนเชงตรรกะ

Page 6: งาน อ.ทรงศักดิ์

2.การเขยนนพจนเชงตรรกะ

2.1 ตวดำาเนนการทางคณตศาสตร (Mathematical Operators)

 ตารางสญลกษณตวดำาเนนการทางคณตศาสตร

Page 7: งาน อ.ทรงศักดิ์

2.2 ตวดำาเนนการความสมพนธ (relational Operators)

ตารางสญลกษณตวดำาเนนการความสมพนธ

2.การเขยนนพจนเชงตรรกะ

Page 8: งาน อ.ทรงศักดิ์

2.3 ตวดำาเนนการเชงตรรกะ (Logical Operators)

ตรรกะ คอ การคดเชงเหตผลทมความจรงคาใดคาหนงคอ จรง (True:1) หรอ (False:0)

ตารางสญลกษณตวดำาเนนการความสมพนธ

2.การเขยนนพจนเชงตรรกะ

Page 9: งาน อ.ทรงศักดิ์

3. คำาสงควบคมแบบมทางเลอก ลกษณะ if

Page 10: งาน อ.ทรงศักดิ์

3. คำาสงควบคมแบบมทางเลอก ลกษณะ if คำาสง if   เปนคำาสงในการตรวจสอบเงอนไข โดยรป

แบบการใชงานคำาสง  if   มรปแบบ  3   รปแบบดงน คอ ประโยค  if   แบบงาย

ประโยค  if   แบบงาย  1   ทางเลอก คอ การเขยน ประโยค  if   ทมการตรวจสอบเงอนไขเพยงหนงทางเลอก

คอ ถาเงอนไขเปนจรง จะทำางานในสวนของคำาสงทกำาหนด แตถาเงอนไขเปนเทจ จะขามการทำางานของคำาสงดงกลาวไป

ดงรปแบบขางลางน

                 รปแบบคำาสง  if  1  ทางเลอก

if (เงอนไข){            คำาสง 1 ;            คำาสง 2 ;            ..........            คำาสง n ;}

Page 11: งาน อ.ทรงศักดิ์

3. คำาสงควบคมแบบมทางเลอก ลกษณะ if ผงงานแสดงการเลอกกระทำาของประโยค

if แบบ 1 ทางเลอก

จากภาพ  แสดงใหเหนวา ถา เงอนไขหรอคาของนพจนทตรวจสอบ เปนจรง กจะเลอกกระทำาชดคำาสงหนงแลวไปกระทำา

ตามคำาสงตอไป แตถาคาของนพจน เปนเทจ  กไมทำา ชดคำาสง ใด ๆ ในทางเลอกเลย แตใหไปทำาชดประโยคคำาสงตอไป

Page 12: งาน อ.ทรงศักดิ์

3. คำาสงควบคมแบบมทางเลอก ลกษณะ if ตวอยางท 1   โปรแกรมการใชงาน  if  1 ทาง

เลอก                   ตองการตรวจสอบเงอนไขการผาน

เกณฑ กำาหนดใหคะแนนเตม 100 คะแนน ใหรบคา ขอมลคะแนนของนกเรยนผานทางแปนพมพ ถา

นกเรยนทำาคะแนนไดมากกวาหรอเทากบ 50 คะแนนใหแสดงขอความ "Pass"  แลวแสดงขอความ  "Good Luck"   แตถาคะแนนสอบไมผาน

ใหแสดงขอความ "Good Luck"  อยางเดยวจากโจทย  เ ขยนผงงาน(Flowchart)  ไดดงน

Page 13: งาน อ.ทรงศักดิ์

3. คำาสงควบคมแบบมทางเลอก ลกษณะ if

ผงงาน (Flowchart) แสดงทศทางการแกปญหาโจทยตวอยางท 1

Page 14: งาน อ.ทรงศักดิ์

                  จากผงงานนำามาเขยนโปรแกรมไดดงน  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

Page 15: งาน อ.ทรงศักดิ์

3. คำาสงควบคมแบบมทางเลอก ลกษณะ if

ผลทไดจากการ Run  ถาปอน score    มคามากกวา 50      เชน ปอน 75   จะได

ผลลพธ

 ถาปอน score    มคานอยกวา 50      เชน ปอน 40   จะไดผลลพธ

Page 16: งาน อ.ทรงศักดิ์

3. คำาสงควบคมแบบมทางเลอก ลกษณะ if

เปนคำาสงทตางจากคำาสง if แบบงายทผานมาตรงทคำา สง if แบบงายนน มทางเลอกทจะใหทำาอยเพยงทางเลอก

เดยว คอ ถาเปนจรงกทำาทางเลอกนน แตถาเปนเทจกไมทำา แตคำาสง if - else นมทางเลอกทใหทำาอยสองทางเลอกหรอ สองกรณ คอ

กรณท 1 ถาเงอนไขเปนจรง  ใหทำากบสายงานหนง คอ ทำาตามชดคำาสงทตามหลงเงอนไข (Condition) ทใช

ตรวจสอบ กรณท 2 ถาเงอนไขเปนเทจ กใหทำากบอกสายงาน

หนง คอ ทำาตามชดคำาสงทตามหลงคำาสงวน else                   รปแบบคำาสง  if  - else  2  ทางเลอก

if (เงอนไข){             คำาสงชด A ;}else{             คำาสงชด B ;}

Page 17: งาน อ.ทรงศักดิ์

3. คำาสงควบคมแบบมทางเลอก ลกษณะ ifภาพผงงานแสดงการเลอกกระทำาของ

ประโยค   if - else 

จากภาพ  แสดงใหเหนวา เปนการเลอกทำาชดคำาสง A หรอชด คำาสง B ดงน

1. ถาเงอนไขการตรวจสอบเปน "จรง" จะไปทำาสายงาน ในชดประโยคคำาสง A  

แลวไปทำาชดประโยคคำาสง C ตอไป 2. ถาเงอนไขการตรวจสอบเปน "เทจ" จะไปทำาสายงาน

ในชดประโยคคำาสง B   แลวไปทำาชดประโยคคำาสง C ตอไป

Page 18: งาน อ.ทรงศักดิ์

3. คำาสงควบคมแบบมทางเลอก ลกษณะ if

ตวอยางท 2  โปรแกรม การใชงาน  if - else  2

 ทางเลอก โจทย :  รานขาย

ผลไมแหงหนง ขายมะมวง โดยมอตราการขายดงน

ถาซอมะมวงมากกวาหรอ เทากบ 10 ลกขนไป ม

อตราการแถมอยท 10 ตอ 2 ลก ซงถาซอมะมวง

10 ลก จะไดแถม 2 ลก, ถาซอ 20 ลก จะไดแถม 4

ลก เปนตน   แตถาซอไมถง10 ลก จะไมแถม จากโจทย จงเขยนโปรแกรมเพอรบคา

จำานวนมะมวงทซอ และคำานวณหาจำานวนมะมวงทลกคาจะได

จากโจทย  เ ขยนผงงาน(Flowchart)  ไดดงน

Page 19: งาน อ.ทรงศักดิ์

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 : จำานวนมะมวงทลกคาจะได

 

Page 20: งาน อ.ทรงศักดิ์

ผลทไดจากการ 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

Page 21: งาน อ.ทรงศักดิ์

             คำาสง nested if หรอคำาสง if else if

การเขยนโปรแกรมคอมพวเตอรบางกรณอาจจะตองมการตรวจสอบเงอนไข

มากกวา 1 ชน ดงนนในการ ตรวจสอบเงอนไขในชนท 2

หรอชนตอ ๆ ไป จงมการนำา ประโยคคำาสง if มาซอนลงใน ประโยคคำาสง if เดมอกครง

หนง ซงการซอนประโยคคำาสงif น สามารถซอนลงไปหลง

เงอนไข (Condition) หรอ ซอนลงไปหลง else กได ขนอย

กบวตถประสงคและลกษณะของการตดสนใจเพอเลอกทจะทำางาน

3. คำาสงควบคมแบบมทางเลอก ลกษณะ if

Page 22: งาน อ.ทรงศักดิ์

              ขอสงเกต  ในการใชคำาสง 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

Page 23: งาน อ.ทรงศักดิ์

               ตวอยางท 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

Page 24: งาน อ.ทรงศักดิ์

3. คำาสงควบคมแบบมทางเลอก ลกษณะ if

Page 25: งาน อ.ทรงศักดิ์

       ผลทไดจากการRun                 ถาปอนคะแนนอยระหวาง 80 - 100  จะไดเกรด 4 เชน ถาปอน  89

               

  ถาปอนคะแนนอยระหวาง  0 - 39  จะไดเกรด 0 เชน ถาปอน  35

3. คำาสงควบคมแบบมทางเลอก ลกษณะ if

Page 26: งาน อ.ทรงศักดิ์

4.คำาสงควบคมแบบมทาง เลอก ลกษณะ Switch

Page 27: งาน อ.ทรงศักดิ์

             การเลอกทำาสายงานใดสาย งานหนงนน นอกจากการใชคำาสง if

เพอกำาหนดเงอนไขเพอใหโปรแกรม เลอกทจะทำางานสายงานใดแลว ใน

ภาษาซ ยงมคำาสง switch อกคำา สงหนง เพออำานวยความสะดวกแก

ผเขยนโปรแกรม ในการทนำามาใช แทนคำาสง if ทซอนกนหลาย ๆ ชน โดยทคำาสง switch จะนำาคาของ

ตวแปรทอยหลงคำาสง switch มา เปรยบเทยบกบคาทอยหลง case

แตละคำาสง ถาตรงกน กจะทำาสาย งานทอยใน case นน ๆ แตถาไม

ตรงกบ case ใด ๆ เลย จะทำาหลง คำาสง default โดยมรปแบบ

ประโยคคำาสงดงน

4. คำาสงควบคมแบบมทางเลอก ลกษณะ Switch

Page 28: งาน อ.ทรงศักดิ์

  คอมไพลเลอรจะทำาการตรวจสอบ                  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

Page 29: งาน อ.ทรงศักดิ์

ตวอยางท     การใชงานคำาสง switch..case

โจทย :  จงเขยนโปรแกรมรบระดบผลการเรยนหรอเกรดมา จากแปนพมพ แลวนำามาพจารณาตรวจสอบวา เกรดทรบเขามานนตรง

กบตวอกษรใดแลวแสดงผลดงน                                ถาเปน A แสดงขอความ "Excellent"                                ถาเปน B แสดงขอความ "Good"                                ถาเปน C แสดงขอความ "So so"                                ถาเปน D แสดงขอความ "Fails"                                ถาเปน E แสดงขอความ "Get lost"                                ถาเปนตวอกษรอน ๆ แสดงขอความ "Invalid data"                      จากโจทยสามารถเขยน  ผงงาน (Flow chart) ไดดงน

4. คำาสงควบคมแบบมทางเลอก ลกษณะ Switch

Page 30: งาน อ.ทรงศักดิ์

4. คำาสงควบคมแบบมทางเลอก ลกษณะ Switch

Page 31: งาน อ.ทรงศักดิ์

5.กรณศกษาการใชคำาสงควบคมแบบมทางเลอก

Page 32: งาน อ.ทรงศักดิ์

กรณใชคำาสง switch       โจทย :  จงเขยนงานโปรแกรมในลกษณะเมนเลอกการทำางาน ดวยคำา

 สง switch    ดงน                  ขนตอนการพฒนางานโปรแกรม     1. การวเคราะหระบบงานเบองตน          1.1  สงทตองการ โปรแกรมเมนเลอกการคำานวณพนทสเหลยมและพนทสามเหลยม          1.2  สมการคำานวณ พนทสเหลยม =   กวาง x ยาว                                            พนทสามเหลยม =   ฐาน x  สง /2           1.3     ขอมลนำาเขา ตวเลอกเมน ความวาง ความยาว หรอฐานกบ

 สง           1.4 การแสดงผลตามโจทยกำาหนด           1.5    กำาหนดคณสมบตตวแปร

5.กรณศกษาการใชคำาสงควบคมแบบมทางเลอก

Page 33: งาน อ.ทรงศักดิ์

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.กรณศกษาการใชคำาสงควบคมแบบมทางเลอก

Page 34: งาน อ.ทรงศักดิ์

      2.แผนผงงาน

5.กรณศกษาการใชคำาสงควบคมแบบมทางเลอก

Page 35: งาน อ.ทรงศักดิ์

5.กรณศกษาการใชคำาสงควบคมแบบมทางเลอก

      3. คำาสงควบคมการทำางาน             กรณศกษาโปรแกรมระบบงาน ลกษณะเมนเลอก

การทำางาน ควบคมการเลอกการทำางานดวยคำาสงswitch 

Page 36: งาน อ.ทรงศักดิ์

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

อางอง

Page 37: งาน อ.ทรงศักดิ์

จดทำาโดย1. นางสาว ณสตรา สนทไทย เลขท 162. นางสาว สนสา มหาสด เลขท 17 3. นางสาว อรพรรณ ใหมละเอยด เลขท 184. นางสาว นาขวญ สอนใจ เลขท 285. นางสาว พรรณชนก ชตรรงค เลขท 296. นางสาว สขมาล สภยาหงสสกล เลขท 32

ชนมธยมศกษาปท 5/4