SlideShare ist ein Scribd-Unternehmen logo
1 von 25
บทที่ 6 การตัดสินใจ
6.1 โครงสร้างของการตัดสินใจ
6.2 ชนิดของโครงสร้างของการ
ตัดสินใจ
6.3 บทสรุป
Copyright (c) 2006 by Sasalak Tongkaw2
COMPUTER PROGRAMMING AND ALGORITH
โครงสร้างของการตัดสินใจ
โครงสร้างของการตัดสินใจ
(Decision making) เป็นลักษณะของการ
เลือกทางเพื่อตัดสินใจ มีสัญลักษณ์ใน
ผังงานดังนี้
Copyright (c) 2006 by Sasalak Tongkaw3
COMPUTER PROGRAMMING AND ALGORITH
การตัดสินใจจากการเปรียบเทียบ
• เครื่องหมายเปรียบเทียบ
(Operational Operator)
ใช้ในการเปรียบเทียบค่า 2
ค่า ว่าเท่ากัน มากกว่า หรือ
น้อยกว่ากันหรือไม่ (โดยอาจ
เป็นการเปรียบเทียบระหว่าง
ตัวแปรกับตัวเลข หรือระหว่าง
ตัวแปรกับตัวแปรก็ได้) เช่น
• การกด ATM จะต้องมีการ
เปรียบเทียบรหัสผ่านว่ารหัส
ผ่านที่รับมา ตรงกับรหัสผ่านที่
Copyright (c) 2006 by Sasalak Tongkaw4
COMPUTER PROGRAMMING AND ALGORITH
ตัวอย่าง
5>3 ผลเป็นจริง เพราะ 5 มากกว่า 3
จริง
10<34 ผลเป็นจริง เพราะ 10 น้อย
กว่า 34 จริง
4>=3 ผลเป็นจริง เพราะ 4 มากกว่า
3 จริง
4>=4 ผลเป็นจริง เพราะ 4 เท่ากับ
4
6>=20 ผลเป็นเท็จ เพราะ 6 ไม่ได้
มากกว่าหรือเท่ากับ 20
ถ้า number=10
แล้ว number>10 จริงไม๊คะ
Copyright (c) 2006 by Sasalak Tongkaw5
COMPUTER PROGRAMMING AND ALGORITH
สัญลักษณ์ทางคณิตศาสตร์ที่ใช้ใน
ภาษาซี
> มากกว่าหรือไม่
< น้อยกว่าหรือไม่
>= มากกว่า
หรือเท่ากันหรือไม่
<= น้อยกว่า
หรือเท่ากันหรือไม่
!= ไม่เท่ากัน
หรือไม่
== เท่ากันหรือ
Copyright (c) 2006 by Sasalak Tongkaw6
COMPUTER PROGRAMMING AND ALGORITH
โครงสร้างการตัดสินใจแบบสองทาง
เลือก
กรมเมอร์เรียกโครงสร้างการตัดสินใจแบบนี้ว่า โครงสร้างการตัดสินใจแบบสอ
ลือก(dual-alternative decision)
Copyright (c) 2006 by Sasalak Tongkaw7
COMPUTER PROGRAMMING AND ALGORITH
ตัวอย่างผังงานการตัดสินใจแบบสอง
ทางเลือก
Grade>75
Print
“Try Harder”
Print
“Good Job”
No Yes
Copyright (c) 2006 by Sasalak Tongkaw8
COMPUTER PROGRAMMING AND ALGORITH
//Program ifthenelse.cpp
#include<stdio.h>
#include<conio.h>
void main()
{
int Grade;
printf(“Please input Grade = ”);
scanf(“%d”,&Grade); //รับค่าตัวแปร Grade
if(Grade>75) //ตรวจสอบค่าตัวแปร Grade ว่ามากกว่า
75 จริงหรือไม่
{
printf(“Good Jobn”); // หากเงื่อนไขข้างต้นเป็น “จริง” ทำาที่
นี่
}
else
{
printf(“Try Hardern”); // หากเงื่อนไขข้างต้นเป็น “เท็จ” ทำาที่
นี่
}
getch();
}
โค้ดต้นฉบับภาษาซี
Copyright (c) 2006 by Sasalak Tongkaw9
COMPUTER PROGRAMMING AND ALGORITH
โครงสร้างการตัดสินใจแบบทางเลือก
เดียว
• โครงสร้างการตัดสินใจแบบทาง
เลือกเดียว (single-alternative
decision) มีทางเลือกสำาหรับ
ตัดสินใจเพียงทางเดียวดังภาพ
Year=4 ?
Graduation
Routine
No Yes
Don’t Do
Anything
Copyright (c) 2006 by Sasalak Tongkaw10
COMPUTER PROGRAMMING AND ALGORITH
โปรแกรมภาษาซีที่มีทางเลือกเดียว
#include<stdio.h>
void main()
{
int age;
printf(“How old are you ”);
scanf(“%d”,&age);
if (age>=60)
printf(“You are oldn”);
printf(“Good Bye ! ”);
}
Copyright (c) 2006 by Sasalak Tongkaw11
COMPUTER PROGRAMMING AND ALGORITH
ชนิดของโครงสร้างของการตัดสินใจ
1. การเชื่อมต่อโดยการใช้ “และ”
2. การเชื่อมต่อโดยการใช้ “หรือ”
3. การเชื่อมต่อโดยการใช้ทั้งสอง
วิธีร่วมกัน
Copyright (c) 2006 by Sasalak Tongkaw12
COMPUTER PROGRAMMING AND ALGORITH
การเชื่อมต่อโดยการใช้ “และ”
• เป็นการตัดสินใจที่มีมากกว่า 1
เงื่อนไข เช่น
• ต้องการให้เงินค่าล่วงเวลาสำาหรับ
พนักงานที่ทำางานเกิน 40 ชั่วโมง
และเป็นพนักงานใน Class 1
• มี 2 เงื่อนไขคือ
– 1. ต้องทำางานเกิน 40 ชั่วโมง
– 2. ต้องเป็นพนักงานใน Class 1
Copyright (c) 2006 by Sasalak Tongkaw13
COMPUTER PROGRAMMING AND ALGORITH
ผังงานแสดงเงื่อนไขแบบ “และ”
Hour>40 ?
Class=1 ?
Overtime
Yes
Yes
No
No
Hour>40 ?
Class 1 ?
ข้อควรระวังในการสลับที่คือ
ประสิทธิภาพของการทำางาน
ข้อควรระวังในการสลับที่คือ
ประสิทธิภาพของการทำางาน
Copyright (c) 2006 by Sasalak Tongkaw14
COMPUTER PROGRAMMING AND ALGORITH
การเชื่อมต่อโดยการใช้ “หรือ”
• จะทำางานก็ต่อเมื่อเงื่อนไขหนึ่ง
เงื่อนไขใดเป็นจริงหรือเป็นจริงทั้ง
สองเงื่อนไขก็ได้ เช่น
• บริษัทจะให้โบนัสแก่พนักงานที่
เป็นพนักงานใน Class 1 หรือ
เป็นพนักงานใน Class 2
• โครงสร้างของผังงานแสดง
เงื่อนไขแบบ “หรือ”
Copyright (c) 2006 by Sasalak Tongkaw15
COMPUTER PROGRAMMING AND ALGORITH
โครงสร้างของผังงานที่มีเงื่อนไขแบบ
“หรือ”
Class =1?
Bonus
Yes
Yes
No
No
Class =2 ?
Bonus
ข้อควรระวังในการ
สลับที่คือ
ประสิทธิภาพของ
การทำางาน
เช่นเดียวกัน
ข้อควรระวังในการ
สลับที่คือ
ประสิทธิภาพของ
การทำางาน
เช่นเดียวกัน
Copyright (c) 2006 by Sasalak Tongkaw16
COMPUTER PROGRAMMING AND ALGORITH
การตัดสินใจโดยใช้ทั้งสองวิธีร่วมกัน
• สำาหรับภาษาซีสามารถจะใช้ทั้ง
สองวิธีที่กล่าวมาแล้วร่วมกันได้
• ใช้สัญลักษณ์ทางคณิตศาสตร์
ดังนี้
• && หมายถึง “และ” and
• || หมายถึง “หรือ” or
• ! หมายถึง “ไม่” not
Copyright (c) 2006 by Sasalak Tongkaw17
COMPUTER PROGRAMMING AND ALGORITH
ตัวอย่างผังงานการตัดสินใจแบบใช้
สองวิธีร่วมกัน
Hour>40
and Class
=1 ?
Overtime
YesNo Class =1 or
Class=2 ?
Bonus
YesNo
Copyright (c) 2006 by Sasalak Tongkaw18
COMPUTER PROGRAMMING AND ALGORITH
โค้ดต้นฉบับภาษาซี
...
if((Hours >40) &&(Class=1)) //ตรวจสอบค่าตัวแปร
{
overtime(); //หากเงื่อนไขข้างต้นทั้งหมดเป็น “จริง” เรียก
ฟังก์ชันOvertime
}
...
if((Class =1) || (Class=2)) //ตรวจสอบค่าตัวแปร
{
bonus(); // หากเงื่อนไขข้างต้นอันใดอันหนึ่งเป็น “จริง” เรียก
ฟังก์ชัน bonus
}
Copyright (c) 2006 by Sasalak Tongkaw19
COMPUTER PROGRAMMING AND ALGORITH
ตัวอย่าง
…
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.”);
}
…
Copyright (c) 2006 by Sasalak Tongkaw20
COMPUTER PROGRAMMING AND ALGORITH
กิจกรรมฝึกปฏิบัติ
• ให้นักศึกษาเขียนผังงานที่ทำางาน
เหมือนโปรแกรมดังกล่าวข้างต้น
ทั้งสองโปรแกรม
• ส่งตัวแทนออกไปเขียนหน้าชั้น
เรียนทั้งสองโปรแกรม
Copyright (c) 2006 by Sasalak Tongkaw21
COMPUTER PROGRAMMING AND ALGORITH
แบบสั้น
a>0
&& b>0 ?
YesNo
Print “Yes! Ok”
Copyright (c) 2006 by Sasalak Tongkaw22
COMPUTER PROGRAMMING AND ALGORITH
แบบยาว
a>0 ?
YesNo
a>0 ?
No Yes
Print “Yes! Ok”
Copyright (c) 2006 by Sasalak Tongkaw23
COMPUTER PROGRAMMING AND ALGORITH
บทสรุป
• โครงสร้างแบบตัดสินใจ ซึ่งแบ่งออกได้เป็น 3
แบบ คือ
– การเชื่อมต่อโดยใช้ “และ”
– การเชื่อมต่อโดยใช้ “หรือ”
– และการเชื่อมต่อโดยใช้ทั้งสองวิธีร่วมกัน
• ซึ่งหลักการออกแบบและเขียนโปรแกรมเชิง
โครงสร้างส่วนใหญ่มักจะใช้ทั้งสองวิธีร่วมกัน
อยู่แล้ว ยิ่งถ้าโปรแกรมมีขนาดใหญ่และมีความ
ซับซ้อน โครงสร้างทางเลือกก็อาจจะเป็นหลาย
ชั้น นอกจากนี้นักศึกษาควรศึกษาเพิ่มเติมจาก
แบบฝึกหัดท้ายบทเรียน จะทำาให้เข้าใจรูปแบบ
Copyright (c) 2006 by Sasalak Tongkaw24
COMPUTER PROGRAMMING AND ALGORITH
ค้นคว้าเพิ่มเติม
• สไลด์ประกอบการเรียน
ดาวน์โหลดได้ที่ LMS ของ
มหาวิทยาลัยรายวิชา 4121103
การเขียนโปรแกรมคอมพิวเตอร์
และอัลกอริทึ่ม
• เว็บไซต์วิชา 4121202 การเขียน
โปรแกรมภาษาคอมพิวเตอร์ 1
หรือยูอาร์แอล
http://samet.skru.ac.th/
~tsasalak/c/c-index.htm
END OF CHEPTER 6
ANY QUESTION ?

Weitere ähnliche Inhalte

Andere mochten auch

Cpwk14 screen and sound
Cpwk14 screen and soundCpwk14 screen and sound
Cpwk14 screen and soundKnow Mastikate
 
การใช้ Turbo C ชุดที่ 6 condition
การใช้ Turbo C ชุดที่ 6 conditionการใช้ Turbo C ชุดที่ 6 condition
การใช้ Turbo C ชุดที่ 6 conditionKnow Mastikate
 
การใช้ Turbo C ชุดที่ 8 Array
การใช้ Turbo C ชุดที่ 8 Arrayการใช้ Turbo C ชุดที่ 8 Array
การใช้ Turbo C ชุดที่ 8 ArrayKnow Mastikate
 
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 3/7
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 3/74121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 3/7
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 3/7Know Mastikate
 
การใช้ Turbo C ชุดที่ 7 Loop
การใช้ Turbo C ชุดที่ 7 Loopการใช้ Turbo C ชุดที่ 7 Loop
การใช้ Turbo C ชุดที่ 7 LoopKnow Mastikate
 
การใช้ Turbo C ชุดที่ 5 IO
การใช้ Turbo C ชุดที่ 5 IOการใช้ Turbo C ชุดที่ 5 IO
การใช้ Turbo C ชุดที่ 5 IOKnow Mastikate
 
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 7/7
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 7/74121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 7/7
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 7/7Know Mastikate
 
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 4/7
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 4/74121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 4/7
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 4/7Know Mastikate
 
การใช้ Turbo C ชุดที่ 13 File IO
การใช้ Turbo C ชุดที่ 13 File IOการใช้ Turbo C ชุดที่ 13 File IO
การใช้ Turbo C ชุดที่ 13 File IOKnow Mastikate
 
การใช้ Turbo C ชุดที่ 12 structure
การใช้ Turbo C ชุดที่ 12 structureการใช้ Turbo C ชุดที่ 12 structure
การใช้ Turbo C ชุดที่ 12 structureKnow Mastikate
 
C Programming
C ProgrammingC Programming
C ProgrammingWarawut
 
Structured Programming and Algorithm
Structured Programming and AlgorithmStructured Programming and Algorithm
Structured Programming and AlgorithmSatipattan Oband
 
การประกาศตัวแปรในภาษาซี
การประกาศตัวแปรในภาษาซีการประกาศตัวแปรในภาษาซี
การประกาศตัวแปรในภาษาซีmycomc55
 
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++Naowarat Jaikaroon
 
ตัวแปรในภาษาซี
ตัวแปรในภาษาซีตัวแปรในภาษาซี
ตัวแปรในภาษาซีboky_peaw
 
บทที่1 พื้นฐานโปรแกรมภาษาซี
บทที่1 พื้นฐานโปรแกรมภาษาซีบทที่1 พื้นฐานโปรแกรมภาษาซี
บทที่1 พื้นฐานโปรแกรมภาษาซีKomkai Pawuttanon
 

Andere mochten auch (19)

Cpwk14 screen and sound
Cpwk14 screen and soundCpwk14 screen and sound
Cpwk14 screen and sound
 
การใช้ Turbo C ชุดที่ 6 condition
การใช้ Turbo C ชุดที่ 6 conditionการใช้ Turbo C ชุดที่ 6 condition
การใช้ Turbo C ชุดที่ 6 condition
 
การใช้ Turbo C ชุดที่ 8 Array
การใช้ Turbo C ชุดที่ 8 Arrayการใช้ Turbo C ชุดที่ 8 Array
การใช้ Turbo C ชุดที่ 8 Array
 
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 3/7
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 3/74121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 3/7
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 3/7
 
การใช้ Turbo C ชุดที่ 7 Loop
การใช้ Turbo C ชุดที่ 7 Loopการใช้ Turbo C ชุดที่ 7 Loop
การใช้ Turbo C ชุดที่ 7 Loop
 
การใช้ Turbo C ชุดที่ 5 IO
การใช้ Turbo C ชุดที่ 5 IOการใช้ Turbo C ชุดที่ 5 IO
การใช้ Turbo C ชุดที่ 5 IO
 
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 7/7
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 7/74121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 7/7
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 7/7
 
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 4/7
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 4/74121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 4/7
4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 4/7
 
การใช้ Turbo C ชุดที่ 13 File IO
การใช้ Turbo C ชุดที่ 13 File IOการใช้ Turbo C ชุดที่ 13 File IO
การใช้ Turbo C ชุดที่ 13 File IO
 
Introduction of C++
Introduction of C++Introduction of C++
Introduction of C++
 
การใช้ Turbo C ชุดที่ 12 structure
การใช้ Turbo C ชุดที่ 12 structureการใช้ Turbo C ชุดที่ 12 structure
การใช้ Turbo C ชุดที่ 12 structure
 
C Programming
C ProgrammingC Programming
C Programming
 
Structured Programming and Algorithm
Structured Programming and AlgorithmStructured Programming and Algorithm
Structured Programming and Algorithm
 
การประกาศตัวแปรในภาษาซี
การประกาศตัวแปรในภาษาซีการประกาศตัวแปรในภาษาซี
การประกาศตัวแปรในภาษาซี
 
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
 
ตัวแปรในภาษาซี
ตัวแปรในภาษาซีตัวแปรในภาษาซี
ตัวแปรในภาษาซี
 
บทที่1 พื้นฐานโปรแกรมภาษาซี
บทที่1 พื้นฐานโปรแกรมภาษาซีบทที่1 พื้นฐานโปรแกรมภาษาซี
บทที่1 พื้นฐานโปรแกรมภาษาซี
 
อสมการ
อสมการอสมการ
อสมการ
 
Chapter 02 Flowchart
Chapter 02 FlowchartChapter 02 Flowchart
Chapter 02 Flowchart
 

Mehr von Know Mastikate

MK380-SQL ระบบสารสนเทศทางการตลาด - ภาษา SQL
MK380-SQL ระบบสารสนเทศทางการตลาด - ภาษา SQLMK380-SQL ระบบสารสนเทศทางการตลาด - ภาษา SQL
MK380-SQL ระบบสารสนเทศทางการตลาด - ภาษา SQLKnow Mastikate
 
การใช้ Turbo C ชุดที่ 10 Pointer
การใช้ Turbo C ชุดที่ 10 Pointerการใช้ Turbo C ชุดที่ 10 Pointer
การใช้ Turbo C ชุดที่ 10 PointerKnow Mastikate
 
การใช้ Turbo C ชุดที่ 3 arithematic
การใช้ Turbo C ชุดที่ 3 arithematicการใช้ Turbo C ชุดที่ 3 arithematic
การใช้ Turbo C ชุดที่ 3 arithematicKnow Mastikate
 
เอกสาร Program C for Pc-Digital
เอกสาร Program C for Pc-Digitalเอกสาร Program C for Pc-Digital
เอกสาร Program C for Pc-DigitalKnow Mastikate
 
แบบฟอร์มใบสมัครงาน แบบที่ 1
แบบฟอร์มใบสมัครงาน แบบที่ 1แบบฟอร์มใบสมัครงาน แบบที่ 1
แบบฟอร์มใบสมัครงาน แบบที่ 1Know Mastikate
 
แบบฟอร์มใบสมัครงาน แบบที่ 2
แบบฟอร์มใบสมัครงาน แบบที่ 2แบบฟอร์มใบสมัครงาน แบบที่ 2
แบบฟอร์มใบสมัครงาน แบบที่ 2Know Mastikate
 
ไฟล์ Presentation ประกอบรายงาน PHP - Know2Pro.co.cc
ไฟล์ Presentation ประกอบรายงาน PHP - Know2Pro.co.ccไฟล์ Presentation ประกอบรายงาน PHP - Know2Pro.co.cc
ไฟล์ Presentation ประกอบรายงาน PHP - Know2Pro.co.ccKnow Mastikate
 
รายงาน Google Android - Know2pro.com
รายงาน Google Android - Know2pro.comรายงาน Google Android - Know2pro.com
รายงาน Google Android - Know2pro.comKnow Mastikate
 
รายงาน PHP - Know2pro.com
รายงาน PHP - Know2pro.comรายงาน PHP - Know2pro.com
รายงาน PHP - Know2pro.comKnow Mastikate
 

Mehr von Know Mastikate (9)

MK380-SQL ระบบสารสนเทศทางการตลาด - ภาษา SQL
MK380-SQL ระบบสารสนเทศทางการตลาด - ภาษา SQLMK380-SQL ระบบสารสนเทศทางการตลาด - ภาษา SQL
MK380-SQL ระบบสารสนเทศทางการตลาด - ภาษา SQL
 
การใช้ Turbo C ชุดที่ 10 Pointer
การใช้ Turbo C ชุดที่ 10 Pointerการใช้ Turbo C ชุดที่ 10 Pointer
การใช้ Turbo C ชุดที่ 10 Pointer
 
การใช้ Turbo C ชุดที่ 3 arithematic
การใช้ Turbo C ชุดที่ 3 arithematicการใช้ Turbo C ชุดที่ 3 arithematic
การใช้ Turbo C ชุดที่ 3 arithematic
 
เอกสาร Program C for Pc-Digital
เอกสาร Program C for Pc-Digitalเอกสาร Program C for Pc-Digital
เอกสาร Program C for Pc-Digital
 
แบบฟอร์มใบสมัครงาน แบบที่ 1
แบบฟอร์มใบสมัครงาน แบบที่ 1แบบฟอร์มใบสมัครงาน แบบที่ 1
แบบฟอร์มใบสมัครงาน แบบที่ 1
 
แบบฟอร์มใบสมัครงาน แบบที่ 2
แบบฟอร์มใบสมัครงาน แบบที่ 2แบบฟอร์มใบสมัครงาน แบบที่ 2
แบบฟอร์มใบสมัครงาน แบบที่ 2
 
ไฟล์ Presentation ประกอบรายงาน PHP - Know2Pro.co.cc
ไฟล์ Presentation ประกอบรายงาน PHP - Know2Pro.co.ccไฟล์ Presentation ประกอบรายงาน PHP - Know2Pro.co.cc
ไฟล์ Presentation ประกอบรายงาน PHP - Know2Pro.co.cc
 
รายงาน Google Android - Know2pro.com
รายงาน Google Android - Know2pro.comรายงาน Google Android - Know2pro.com
รายงาน Google Android - Know2pro.com
 
รายงาน PHP - Know2pro.com
รายงาน PHP - Know2pro.comรายงาน PHP - Know2pro.com
รายงาน PHP - Know2pro.com
 

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

  • 1. บทที่ 6 การตัดสินใจ 6.1 โครงสร้างของการตัดสินใจ 6.2 ชนิดของโครงสร้างของการ ตัดสินใจ 6.3 บทสรุป
  • 2. Copyright (c) 2006 by Sasalak Tongkaw2 COMPUTER PROGRAMMING AND ALGORITH โครงสร้างของการตัดสินใจ โครงสร้างของการตัดสินใจ (Decision making) เป็นลักษณะของการ เลือกทางเพื่อตัดสินใจ มีสัญลักษณ์ใน ผังงานดังนี้
  • 3. Copyright (c) 2006 by Sasalak Tongkaw3 COMPUTER PROGRAMMING AND ALGORITH การตัดสินใจจากการเปรียบเทียบ • เครื่องหมายเปรียบเทียบ (Operational Operator) ใช้ในการเปรียบเทียบค่า 2 ค่า ว่าเท่ากัน มากกว่า หรือ น้อยกว่ากันหรือไม่ (โดยอาจ เป็นการเปรียบเทียบระหว่าง ตัวแปรกับตัวเลข หรือระหว่าง ตัวแปรกับตัวแปรก็ได้) เช่น • การกด ATM จะต้องมีการ เปรียบเทียบรหัสผ่านว่ารหัส ผ่านที่รับมา ตรงกับรหัสผ่านที่
  • 4. Copyright (c) 2006 by Sasalak Tongkaw4 COMPUTER PROGRAMMING AND ALGORITH ตัวอย่าง 5>3 ผลเป็นจริง เพราะ 5 มากกว่า 3 จริง 10<34 ผลเป็นจริง เพราะ 10 น้อย กว่า 34 จริง 4>=3 ผลเป็นจริง เพราะ 4 มากกว่า 3 จริง 4>=4 ผลเป็นจริง เพราะ 4 เท่ากับ 4 6>=20 ผลเป็นเท็จ เพราะ 6 ไม่ได้ มากกว่าหรือเท่ากับ 20 ถ้า number=10 แล้ว number>10 จริงไม๊คะ
  • 5. Copyright (c) 2006 by Sasalak Tongkaw5 COMPUTER PROGRAMMING AND ALGORITH สัญลักษณ์ทางคณิตศาสตร์ที่ใช้ใน ภาษาซี > มากกว่าหรือไม่ < น้อยกว่าหรือไม่ >= มากกว่า หรือเท่ากันหรือไม่ <= น้อยกว่า หรือเท่ากันหรือไม่ != ไม่เท่ากัน หรือไม่ == เท่ากันหรือ
  • 6. Copyright (c) 2006 by Sasalak Tongkaw6 COMPUTER PROGRAMMING AND ALGORITH โครงสร้างการตัดสินใจแบบสองทาง เลือก กรมเมอร์เรียกโครงสร้างการตัดสินใจแบบนี้ว่า โครงสร้างการตัดสินใจแบบสอ ลือก(dual-alternative decision)
  • 7. Copyright (c) 2006 by Sasalak Tongkaw7 COMPUTER PROGRAMMING AND ALGORITH ตัวอย่างผังงานการตัดสินใจแบบสอง ทางเลือก Grade>75 Print “Try Harder” Print “Good Job” No Yes
  • 8. Copyright (c) 2006 by Sasalak Tongkaw8 COMPUTER PROGRAMMING AND ALGORITH //Program ifthenelse.cpp #include<stdio.h> #include<conio.h> void main() { int Grade; printf(“Please input Grade = ”); scanf(“%d”,&Grade); //รับค่าตัวแปร Grade if(Grade>75) //ตรวจสอบค่าตัวแปร Grade ว่ามากกว่า 75 จริงหรือไม่ { printf(“Good Jobn”); // หากเงื่อนไขข้างต้นเป็น “จริง” ทำาที่ นี่ } else { printf(“Try Hardern”); // หากเงื่อนไขข้างต้นเป็น “เท็จ” ทำาที่ นี่ } getch(); } โค้ดต้นฉบับภาษาซี
  • 9. Copyright (c) 2006 by Sasalak Tongkaw9 COMPUTER PROGRAMMING AND ALGORITH โครงสร้างการตัดสินใจแบบทางเลือก เดียว • โครงสร้างการตัดสินใจแบบทาง เลือกเดียว (single-alternative decision) มีทางเลือกสำาหรับ ตัดสินใจเพียงทางเดียวดังภาพ Year=4 ? Graduation Routine No Yes Don’t Do Anything
  • 10. Copyright (c) 2006 by Sasalak Tongkaw10 COMPUTER PROGRAMMING AND ALGORITH โปรแกรมภาษาซีที่มีทางเลือกเดียว #include<stdio.h> void main() { int age; printf(“How old are you ”); scanf(“%d”,&age); if (age>=60) printf(“You are oldn”); printf(“Good Bye ! ”); }
  • 11. Copyright (c) 2006 by Sasalak Tongkaw11 COMPUTER PROGRAMMING AND ALGORITH ชนิดของโครงสร้างของการตัดสินใจ 1. การเชื่อมต่อโดยการใช้ “และ” 2. การเชื่อมต่อโดยการใช้ “หรือ” 3. การเชื่อมต่อโดยการใช้ทั้งสอง วิธีร่วมกัน
  • 12. Copyright (c) 2006 by Sasalak Tongkaw12 COMPUTER PROGRAMMING AND ALGORITH การเชื่อมต่อโดยการใช้ “และ” • เป็นการตัดสินใจที่มีมากกว่า 1 เงื่อนไข เช่น • ต้องการให้เงินค่าล่วงเวลาสำาหรับ พนักงานที่ทำางานเกิน 40 ชั่วโมง และเป็นพนักงานใน Class 1 • มี 2 เงื่อนไขคือ – 1. ต้องทำางานเกิน 40 ชั่วโมง – 2. ต้องเป็นพนักงานใน Class 1
  • 13. Copyright (c) 2006 by Sasalak Tongkaw13 COMPUTER PROGRAMMING AND ALGORITH ผังงานแสดงเงื่อนไขแบบ “และ” Hour>40 ? Class=1 ? Overtime Yes Yes No No Hour>40 ? Class 1 ? ข้อควรระวังในการสลับที่คือ ประสิทธิภาพของการทำางาน ข้อควรระวังในการสลับที่คือ ประสิทธิภาพของการทำางาน
  • 14. Copyright (c) 2006 by Sasalak Tongkaw14 COMPUTER PROGRAMMING AND ALGORITH การเชื่อมต่อโดยการใช้ “หรือ” • จะทำางานก็ต่อเมื่อเงื่อนไขหนึ่ง เงื่อนไขใดเป็นจริงหรือเป็นจริงทั้ง สองเงื่อนไขก็ได้ เช่น • บริษัทจะให้โบนัสแก่พนักงานที่ เป็นพนักงานใน Class 1 หรือ เป็นพนักงานใน Class 2 • โครงสร้างของผังงานแสดง เงื่อนไขแบบ “หรือ”
  • 15. Copyright (c) 2006 by Sasalak Tongkaw15 COMPUTER PROGRAMMING AND ALGORITH โครงสร้างของผังงานที่มีเงื่อนไขแบบ “หรือ” Class =1? Bonus Yes Yes No No Class =2 ? Bonus ข้อควรระวังในการ สลับที่คือ ประสิทธิภาพของ การทำางาน เช่นเดียวกัน ข้อควรระวังในการ สลับที่คือ ประสิทธิภาพของ การทำางาน เช่นเดียวกัน
  • 16. Copyright (c) 2006 by Sasalak Tongkaw16 COMPUTER PROGRAMMING AND ALGORITH การตัดสินใจโดยใช้ทั้งสองวิธีร่วมกัน • สำาหรับภาษาซีสามารถจะใช้ทั้ง สองวิธีที่กล่าวมาแล้วร่วมกันได้ • ใช้สัญลักษณ์ทางคณิตศาสตร์ ดังนี้ • && หมายถึง “และ” and • || หมายถึง “หรือ” or • ! หมายถึง “ไม่” not
  • 17. Copyright (c) 2006 by Sasalak Tongkaw17 COMPUTER PROGRAMMING AND ALGORITH ตัวอย่างผังงานการตัดสินใจแบบใช้ สองวิธีร่วมกัน Hour>40 and Class =1 ? Overtime YesNo Class =1 or Class=2 ? Bonus YesNo
  • 18. Copyright (c) 2006 by Sasalak Tongkaw18 COMPUTER PROGRAMMING AND ALGORITH โค้ดต้นฉบับภาษาซี ... if((Hours >40) &&(Class=1)) //ตรวจสอบค่าตัวแปร { overtime(); //หากเงื่อนไขข้างต้นทั้งหมดเป็น “จริง” เรียก ฟังก์ชันOvertime } ... if((Class =1) || (Class=2)) //ตรวจสอบค่าตัวแปร { bonus(); // หากเงื่อนไขข้างต้นอันใดอันหนึ่งเป็น “จริง” เรียก ฟังก์ชัน bonus }
  • 19. Copyright (c) 2006 by Sasalak Tongkaw19 COMPUTER PROGRAMMING AND ALGORITH ตัวอย่าง … 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.”); } …
  • 20. Copyright (c) 2006 by Sasalak Tongkaw20 COMPUTER PROGRAMMING AND ALGORITH กิจกรรมฝึกปฏิบัติ • ให้นักศึกษาเขียนผังงานที่ทำางาน เหมือนโปรแกรมดังกล่าวข้างต้น ทั้งสองโปรแกรม • ส่งตัวแทนออกไปเขียนหน้าชั้น เรียนทั้งสองโปรแกรม
  • 21. Copyright (c) 2006 by Sasalak Tongkaw21 COMPUTER PROGRAMMING AND ALGORITH แบบสั้น a>0 && b>0 ? YesNo Print “Yes! Ok”
  • 22. Copyright (c) 2006 by Sasalak Tongkaw22 COMPUTER PROGRAMMING AND ALGORITH แบบยาว a>0 ? YesNo a>0 ? No Yes Print “Yes! Ok”
  • 23. Copyright (c) 2006 by Sasalak Tongkaw23 COMPUTER PROGRAMMING AND ALGORITH บทสรุป • โครงสร้างแบบตัดสินใจ ซึ่งแบ่งออกได้เป็น 3 แบบ คือ – การเชื่อมต่อโดยใช้ “และ” – การเชื่อมต่อโดยใช้ “หรือ” – และการเชื่อมต่อโดยใช้ทั้งสองวิธีร่วมกัน • ซึ่งหลักการออกแบบและเขียนโปรแกรมเชิง โครงสร้างส่วนใหญ่มักจะใช้ทั้งสองวิธีร่วมกัน อยู่แล้ว ยิ่งถ้าโปรแกรมมีขนาดใหญ่และมีความ ซับซ้อน โครงสร้างทางเลือกก็อาจจะเป็นหลาย ชั้น นอกจากนี้นักศึกษาควรศึกษาเพิ่มเติมจาก แบบฝึกหัดท้ายบทเรียน จะทำาให้เข้าใจรูปแบบ
  • 24. Copyright (c) 2006 by Sasalak Tongkaw24 COMPUTER PROGRAMMING AND ALGORITH ค้นคว้าเพิ่มเติม • สไลด์ประกอบการเรียน ดาวน์โหลดได้ที่ LMS ของ มหาวิทยาลัยรายวิชา 4121103 การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอริทึ่ม • เว็บไซต์วิชา 4121202 การเขียน โปรแกรมภาษาคอมพิวเตอร์ 1 หรือยูอาร์แอล http://samet.skru.ac.th/ ~tsasalak/c/c-index.htm
  • 25. END OF CHEPTER 6 ANY QUESTION ?