Top Banner
บทที6 การตัดสินใจ 6.1 โครงสร้างของการตัดสินใจ 6.2 ชนิดของโครงสร้างของการ ตัดสินใจ 6.3 บทสรุป
25

4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Jul 23, 2015

Download

Education

Know Mastikate
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

บทที่ 6 การตัดสนิใจ

6.1 โครงสร้างของการตัดสินใจ6.2 ชนดิของโครงสร้างของการตัดสินใจ6.3 บทสรุป

Page 2: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw2

COMPUTER PROGRAMMING AND ALGORITHM

โครงสร้างของการตัดสนิใจ

โครงสร ้างของการต ัดสนิใจ (Decision making) เป็นลักษณะของการเลือกทางเพื่อตัดสินใจ มสีัญลักษณ์ในผังงานดังนี้

Page 3: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw3

COMPUTER PROGRAMMING AND ALGORITHM

การตัดสินใจจากการเปรียบเทียบ• เครื่องหมายเปรียบเทียบ

(Operational Operator) ใช้ในการเปรียบเทียบค่า 2 คา่ ว่าเท่ากัน มากกว่า หรือน้อยกว่ากันหรือไม่ (โดยอาจเปน็การเปรียบเทียบระหว่างตัวแปรกับตัวเลข หรือระหว่างตัวแปรกับตัวแปรก็ได้) เช่น

• การกด ATM จะต้องมีการเปรียบเทียบรหัสผ่านว่ารหัสผา่นที่รับมา ตรงกับรหัสผา่นที่มีอยู่หรือไม่ เปน็ต้น

Page 4: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw4

COMPUTER PROGRAMMING AND ALGORITHM

ตัวอยา่ง

5>3 ผลเปน็จริง เพราะ 5 มากกว่า 3 จริง

10<34 ผลเปน็จริง เพราะ 10 น้อย กว่า 34 จริง

4>=3 ผลเปน็จริง เพราะ 4 มากกว่า3 จริง

4>=4 ผลเปน็จริง เพราะ 4 เท่ากับ4

6>=20 ผลเปน็เท็จ เพราะ 6 ไม่ได้ มากกว่าหรือเท่ากับ 20

ถา้ number=10แล้ว number>10 จริงไมค๊ะ

Page 5: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw5

COMPUTER PROGRAMMING AND ALGORITHM

สญัลักษณ์ทางคณิตศาสตร์ที่ใช้ในภาษาซี> มากกว ่าหร ือไม ่< นอ้ยกว ่าหร ือไม ่>= มากกว ่า

หร ือเท ่าก ันหร ือไม ่<= นอ้ยกว ่า

หร ือเท ่าก ันหร ือไม ่!= ไม ่เท ่าก ัน

หร ือไม ่== เท ่าก ันหร ือ

ไม ่

Page 6: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw6

COMPUTER PROGRAMMING AND ALGORITHM

โครงสร้างการตัดสนิใจแบบสองทางเลือก

โปรแกรมเมอร์เรียกโครงสร้างการตัดสินใจแบบน้ีว่า โครงสร้างการตัดสินใจแบบสองทางเลอืก(dual-alternative decision)

Page 7: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw7

COMPUTER PROGRAMMING AND ALGORITHM

ตัวอยา่งผังงานการตัดสินใจแบบสองทางเลือก

Grade>75

Print“Try Harder”

Print “Good Job”

No Yes

Page 8: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw8

COMPUTER PROGRAMMING AND ALGORITHM

//Program ifthenelse.cpp#include<stdio.h>#include<conio.h>void main(){

int Grade;printf(“Please input Grade = ”);scanf(“%d”,&Grade); //รับค่าตัวแปร Gradeif(Grade>75) //ตรวจสอบค่าตัวแปร Grade ว่ามากกว่า 75 จริงหรือไม่{

printf(“Good Job\n”); // หากเง่ือนไขข้างต้นเป็น “จริง” ทำาที่น่ี}else{

printf(“Try Harder\n”); // หากเง่ือนไขขา้งต้นเป็น “เท็จ” ทำาที่น่ี}

getch();}

โค้ดต้นฉบับภาษาซี

Page 9: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw9

COMPUTER PROGRAMMING AND ALGORITHM

โครงสร้างการตัดสนิใจแบบทางเลือกเดียว• โครงสร้างการตัดสินใจแบบทาง

เลือกเดียว (single-alternative decision) มทีางเลือกสำาหรับตัดสินใจเพยีงทางเดียวดังภาพ

Year=4 ?

GraduationRoutine

No Yes

Don’t DoAnything

Page 10: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw10

COMPUTER PROGRAMMING AND ALGORITHM

โปรแกรมภาษาซีทีม่ีทางเลือกเดียว#include<stdio.h>void main(){

int age;printf(“How old are you ”);scanf(“%d”,&age);if (age>=60)

printf(“You are old\n”);printf(“Good Bye ! ”);

}

Page 11: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw11

COMPUTER PROGRAMMING AND ALGORITHM

ชนิดของโครงสร้างของการตัดสนิใจ

1. การเชื่อมต่อโดยการใช้ “และ”2. การเชื่อมต่อโดยการใช้ “หรือ”3. การเชื่อมต่อโดยการใช้ทัง้สอง

วิธีร่วมกัน

Page 12: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw12

COMPUTER PROGRAMMING AND ALGORITHM

การเชื่อมต่อโดยการใช ้“และ”• เป็นการตัดสินใจทีม่มีากกว่า 1

เงื่อนไข เช่น• ต้องการให้เงินค่าล่วงเวลาสำาหรับ

พนกังานทีท่ำางานเกนิ 40 ชั่วโมง และเป็นพนกังานใน Class 1

• ม ี2 เงื่อนไขคือ– 1. ต้องทำางานเกิน 40 ช่ัวโมง– 2. ต้องเป็นพนักงานใน Class 1

Page 13: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw13

COMPUTER PROGRAMMING AND ALGORITHM

ผงังานแสดงเงื่อนไขแบบ “และ”

Hour>40 ?

Class=1 ?

Overtime

Yes

Yes

No

NoHour>40 ?

Class 1 ?

ข้อควรระวังในการสลับทีค่ือประสิทธิภาพของการทำางานข้อควรระวังในการสลับทีค่ือประสิทธิภาพของการทำางาน

Page 14: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw14

COMPUTER PROGRAMMING AND ALGORITHM

การเชื่อมต่อโดยการใช ้“หรือ”• จะทำางานก็ต่อเมือ่เงื่อนไขหนึ่ง

เงื่อนไขใดเป็นจริงหรือเป็นจริงทัง้สองเงื่อนไขก็ได้ เช่น

• บริษัทจะให้โบนสัแก่พนกังานที่เป็นพนกังานใน Class 1 หรือเป็นพนกังานใน Class 2

• โครงสร้างของผังงานแสดงเงื่อนไขแบบ “หรือ”

Page 15: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw15

COMPUTER PROGRAMMING AND ALGORITHM

โครงสร้างของผังงานที่มีเงื่อนไขแบบ “หรือ”

Class =1?

Bonus

Yes

Yes

No

NoClass =2 ?

Bonus

ข้อควรระวังในการสลับทีค่ือประสิทธิภาพของการทำางานเช่นเดียวกัน

ข้อควรระวังในการสลับที่คือประสิทธิภาพของการทำางานเช่นเดียวกัน

Page 16: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw16

COMPUTER PROGRAMMING AND ALGORITHM

การตัดสินใจโดยใช้ทั้งสองวิธรี่วมกัน• สำาหรับภาษาซสีามารถจะใช้ทัง้

สองวิธีทีก่ล่าวมาแล้วร่วมกันได้ • ใช้สัญลักษณ์ทางคณิตศาสตร์

ดังนี้• && หมายถงึ “และ” and• || หมายถึง “หรือ” or• ! หมายถึง “ไม”่ not

Page 17: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw17

COMPUTER PROGRAMMING AND ALGORITHM

ตัวอยา่งผังงานการตัดสินใจแบบใช้สองวิธีร่วมกัน

Hour>40 and Class

=1 ?

Overtime

YesNo Class =1 or Class=2 ?

Bonus

YesNo

Page 18: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw18

COMPUTER PROGRAMMING AND ALGORITHM

โค้ดต้นฉบับภาษาซี...

if((Hours >40) &&(Class=1)) //ตรวจสอบค่าตัวแปร {

overtime(); //หากเง่ือนไขข้างต้นทั้งหมดเป็น “จริง” เรียกฟังก์ชันOvertime}

...if((Class =1) || (Class=2)) //ตรวจสอบค่าตัวแปร {

bonus(); // หากเง่ือนไขข้างต้นอันใดอันหน่ึงเป็น “จริง” เรียกฟังก์ชัน bonus}

Page 19: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw19

COMPUTER PROGRAMMING AND ALGORITHM

ตัวอยา่ง…int a=20;int b=6;if((a>0) && (b>0)){ printf(“Yes!!

Ok.”);}…

…int a=20;int b=6;int c=8;if((a>0) && (b>0) && (c>5)){ printf(“Yes!! Ok.”);}…

Page 20: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw20

COMPUTER PROGRAMMING AND ALGORITHM

กิจกรรมฝึกปฏิบตัิ• ให้นกัศึกษาเขียนผังงานทีท่ำางาน

เหมอืนโปรแกรมดังกล่าวข้างต้น ทัง้สองโปรแกรม

• ส่งตัวแทนออกไปเขียนหน้าชั้นเรียนทั้งสองโปรแกรม

Page 21: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw21

COMPUTER PROGRAMMING AND ALGORITHM

แบบสั้น

a>0 && b>0 ?

YesNo

Print “Yes! Ok”

Page 22: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw22

COMPUTER PROGRAMMING AND ALGORITHM

แบบยาว

a>0 ?YesNo

a>0 ?No Yes

Print “Yes! Ok”

Page 23: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw23

COMPUTER PROGRAMMING AND ALGORITHM

บทสรุป• โครงสร้างแบบตัดสินใจ ซึง่แบ่งออกได้เป็น 3

แบบ คือ– การเชื่อมต่อโดยใช้ “และ” – การเชื่อมต่อโดยใช้ “หรือ” – และการเชื่อมต่อโดยใช้ทั้งสองวิธีร่วมกัน

• ซึง่หลักการออกแบบและเขียนโปรแกรมเชิงโครงสร้างส่วนใหญม่กัจะใช้ทัง้สองวิธีร่วมกนัอยูแ่ล้ว ยิง่ถ้าโปรแกรมมขีนาดใหญแ่ละมคีวามซบัซอ้น โครงสร้างทางเลือกก็อาจจะเป็นหลายชั้น นอกจากนี้นกัศึกษาควรศกึษาเพิม่เติมจากแบบฝึกหัดท้ายบทเรียน จะทำาให้เข้าใจรูปแบบการเขียนโปรแกรมโดยใช้โครงสร้างตัดสนิใจมากข้ึน

Page 24: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

Copyright (c) 2006 by Sasalak Tongkaw24

COMPUTER PROGRAMMING AND ALGORITHM

คน้คว้าเพิม่เติม• สไลด์ประกอบการเรียน

ดาวนโ์หลดได้ที ่LMS ของมหาวิทยาลัยรายวิชา 4121103 การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริทึม่

• เว็บไซต์วิชา 4121202 การเขียนโปรแกรมภาษาคอมพวิเตอร์ 1หรือยอูาร์แอล

http://samet.skru.ac.th/~tsasalak/c/c-index.htm

Page 25: 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 6/7

END OF CHEPTER 6

ANY QUESTION ?