อัลกอรึทึ่มครั้งที่ 2 - wathinee . reru . ac . th
Download
Report
Transcript อัลกอรึทึ่มครั้งที่ 2 - wathinee . reru . ac . th
บทที่ 6
ALGORITHM ตอนที่ 2:
การเขี ย น FLOWCHART
โดยสร้ างขั้ นตอนการทางานโปรแกรมแบบเลื อ กทา : DECISION
เนื ้อหาวันนี ้
Algorithm & Programming โดยสร้างขั้นตอนการทางาน
โปรแกรมแบบเลือกทา : Decision
if
if ..Else
if ซ้อน if
switch ..case
โอเปอร์ เรเตอร์ (Operator)
โอเปอร์ เรเตอร์ (Operator) คือเครื่ องหมายแทนการปฏิบตั ิการทาง
คณิ ตศาสตร์ หรื อเปรี ยบเทียบ ข้างล่างนี้จะแจกแจงตัว Operator ประเภท
ต่างๆ
รู้จกั กับ ++ ,--
x=x+1 มีความหมายเดียวกับ x++
x=x-1 มีความหมายเดียวกับ x-เช่น x=5
x++ คือ x= 6 (x=x+1)
y=10 y -- คือ y=9 (y=y-1)
แสดง การกาหนดค่า
ตัวอย่าง
กาหนดให้ X = 10
, Y= 5
X=X+Y
X=?
X=X-Y
X=?
X = X/Y
X=?
X = X*Y
X=?
X = X%2
X=?
แสดงเครื่ องหมายที่ใช้ ในการเปรี ยบเทียบข้ อมูล
ตัวอย่ าง
คาตอบจะมีได้ แค่
จริง กับ เท็จ
true , false
กาหนดให้ X = 10
X == Y
X>=Y
X <= Y
X>Y
X!= Y
, Y= 5
คาตอบคือ ?
คาตอบคือ ?
คาตอบคือ ?
คาตอบคือ ?
คาตอบคือ ?
แสดงเครื่ องหมายที่ใช้ ในการเปรี ยบเทียบข้ อมูล
เครื่องหมาย การเปรียบเทียบ
==
เท่ากับ
!=
ไม่เท่ากับ
>
<
>=
<=
มากกว่า
น้อยกว่า
มากกว่าหรื อเท่ากับ
น้อยกว่าหรื อเท่ากับ
ตัวอย่ าง
3 = =10
3!=10
ผลลัพธ์
false
true
3>10
3<10
3>=10
3<=10
false
true
false
true
แสดงตัวดาเนินการทางตรรกศาสตร์
แสดงตัวดาเนินการทางตรรกศาสตร์
เครื่องหมาย ความหมาย
&&
||
!
AND
OR
NOT
ตัวอย่ าง
a=10,b=5
(a>b)&&(b= =10)
(a<b)||(a= =10)
!(a= =b)
ผลลัพธ์
เท็จ
true
true
อัลกอริ ทึม (Algorithms)
การเขียนผังงาน : Flowchart
โครงสร้างควบคุม (Control Structure)
16
การควบคุมโปรแกรมให้ทางานได้ตามต้องการ เราจาเป็ นต้องมี
ความเข้าใจเกี่ยวกับโครงสร้างควบคุมของการเขียนภาษาโปรแกรม
ประกอบด้วย
ลาดับการทางาน (Sequence)
ทางเลือก,ตัดสิ นใจ (Decision)
การวนซ้ า (Iteration)
โครงสร้างควบคุม (Control Structure)
การเลือกกระทาตามเงื่อนไข(Decision)
คือ การเขียนโปรแกรมเพื่อนาค่าไปเลือกกระทา โดยปกติจะมีเหตุการณ์ให้ทา 2
กระบวนการ คือเงื่อนไขเป็ นจริ งจะกระทากระบวนการหนึ่ง และเป็ นเท็จจะกระทาอีก
กระบวนการหนึ่ง แต่ถา้ ซับซ้อนมากขึ้น จะต้องใช้เงื่อนไขหลายชั้น เช่นการตัดเกรด
นักศึกษา เป็ นต้น
การเลือกกระทาตามเงื่อนไข(Decision)
แสดงการตรวจสอบเงื่อนไขให้โปรแกรมเลือกทาอย่างใดอย่างหนึ่ง
ซึ่งมี 3 กรณี
1. การเลือกแบบ 1 เส้ นทาง
2. การเลือกแบบ 2 เส้ นทาง
3. การเลือกแบบหลายทางเลือก (N ทางเลือก)
การเลือกแบบ 1 เส้ นทาง
20
เท็จ
เงือ่ นไข
จริง
คาสั่ งเมื่อเป็ นจริง
รู ปแบบการสร้างทางเลือก เพื่อใช้ในการ
ตัดสิ นใจทางานอย่างเดียวเท่านั้น
ระบบไฟแดง
?
ตัวอย่ าง
ให้ กาหนดค่าตัวเลข 1 จานวน ถ้ าเป็ นเลขคูใ่ ห้ บวกค่าเพิ่มอีก 1
Start
22
x=3
false
true
(x%2)==0
x++
Stop
ตัวอย่ าง
Start
23
23
ให้ กาหนดค่าตัวเลข 1 ค่าถ้ าเป็ นเลขคู่
ให้ แสดงข้ อความบอกว่า เป็ นจานวนคู่
จากนัน้ บวกค่าเพิ่มอีก 1 ค่า
x=8
no
yes
(x%2)==0
x++
Stop
ตัวอย่ าง
24
ให้ รับข้ อมูลตัวเลข 1 ค่า
แล้ วแสดงผลตัวเลขนันออกทาง
้
หน้ าจอ แต่ ถ้ าตัวเลขไม่ใช่เลขคู่ให้ ทา
เป็ นเลขคูก่ ่อน
Start
24
Read x
no
yes
(x%2) !=0
x++
Stop
โจทย์สาหรับนักศึกษา
ให้รับค่าข้อมูลคะแนนเต็ม 10
ถ้าคะแนน 6 - 10ให้แสดงข้อมูลว่า “ท่านสอบผ่าน ,Pass”
การเลือกแบบ 2 เส้ นทาง
26
เท็จ
คาสั่ งเมื่อเป็ นเท็จ
เงือ่ นไข
จริง
คาสั่ งเมื่อเป็ นจริง
เมื่อเงื่อนไขเป็ น จริ ง จะทาอย่างหนึ่ง
เมื่อเงื่อนไขเป็ น เท็จ จะทาอีกอย่างหนึ่ง
ตัวอย่าง
ให้รับค่าข้อมูลคะแนน (เต็ม 100 ) โดยเกณฑ์ดงั นี้
1-50 แสดงข้อมูล “Fail”
51-100 แสดงข้อมูล “Pass”
Start
Read A
false
A<=51
print
“Fail”
true
print
“Pass”
Stop
โจทย์สาหรับนักศึกษา
รับค่าตัวเลขทาง keyboard
ถ้าเป็ นเลขคู่ให้ แสดงข้อความ Even number
ถ้าเป็ นเลขคี่ให้แสดงข้อความ Odd number
Start
Read A
จริง
(A%2)==1
print
“เลขคี่”
เท็จ
print
“เลขคู่”
Stop
การเลือกแบบหลาย (n) เส้ นทาง
เมือ่ เงื่อนไขเท่ ากับทางใดก็จะเลือกทาเฉพาะ
ทางนั้น
เงือ่ นไข 1
จริง
คาสั่ งเมือ่ เป็ นจริง
เท็จ
เงือ่ นไข 2
จริง
คาสั่ งเมือ่ เป็ นจริง
เท็จ
เงือ่ นไข 3
เท็จ
คาสั่ งเมือ่ เป็ นเท็จ
คาสั่ งถัดไป
จริง
คาสั่ งเมือ่ เป็ นจริง
ตัวอย่ าง
ออกแบบ Flowchart ให้คอมพิวเตอร์
รับคะแนนนักศึกษา (X) แล้วนามา
จัดกลุ่มตามเงื่อนไขและแสดงผล
ทางจอภาพ
เงื่อนไข
คะแนน 80-100 กลุ่ม G
คะแนน 50-79 กลุ่ม P
คะแนนต่ากว่า 50 กลุ่ม F
Start
Read X
X>=80
Yes
group = ‘G’
No
X>=50
No
group = ‘F’
group
Stop
Yes
group = ‘P’
Start
ตัวอย่าง
Read X
ออกแบบ Flowchart ให้รับค่าคะแนนนักศึกษา (X) X >= 80
แล้วนามาตัดเกรดตามเงื่อนไขและแสดงผลเกรดทางจอภาพ No
X >= 70
เงื่อนไข
No
คะแนน 80-100 เกรด A
X > =60
คะแนน 70-79 เกรด B
No
คะแนน 60-69 เกรด C
X > =50
คะแนน 50-59 เกรด D
No
คะแนนต่ากว่า 50 เกรด F
grade =‘F’
grade
Start
Yes
Yes
Yes
Yes
grade =‘A’
grade =‘B’
grade =‘C’
grade =‘D’
โจทย์ กรณีรับข้ อมูลทาง keyboard ( 1 เงื่อนไข)
ให้รับค่าข้อมูลคะแนนเต็ม 10 ถ้าคะแนนมากกว่า 5 คะแนน
ให้แสดงข้อมูลว่า “ท่านสอบผ่าน”
โจทย์สาหรับนักศึกษา
ให้กาหนดค่าตัวเลข 2 ตัว
โดยนาตัวแปร 2 ค่ามาเรี ยง มาก น้อย
โจทย์
ให้รับค่าข้อมูลคะแนนเต็ม 10
ถ้าคะแนน 6 - 10ให้แสดงข้อมูลว่า “ท่านสอบผ่าน ,Pass”
ถ้าคะแนน 1 – 5 ให้แสดงข้อมูล “ท่านสอบตก, Fail”
โจทย์ สาหรับนักศึกษา
โปรแกรมคานวณเกรด โดยรับคะแนนทาง keyboard โดยมีเงื่อนไขดังนี้
0-49 ได้เกรด F
50-59 ได้เกรด D
60-69 ได้เกรด C
70-79 ได้เกรด B
80-100 ได้เกรด A
ถ้านอกเหนือจากนั้นให้แสดงข้อความว่า “คะแนนจะต้องอยูร่ ะหว่าง 0-100 ”
Start
ตัวอย่าง
Read X
ออกแบบ Flowchart ให้รับค่าคะแนนนักศึกษา (X) X >=101
แล้วนามาตัดเกรดตามเงื่อนไขและแสดงผลเกรดทางจอภาพ No
X >= 80
เงื่อนไข
No
0-49 ได้เกรด F
X > =70
50-59 ได้เกรด D
No
60-69 ได้เกรด C
X > =60
70-79 ได้เกรด B
No
80-100 ได้เกรด A
X > =50
ถ้านอกเหนือจากนั้นให้แสดงข้อความว่า
ได้ เกรด E
“คะแนนจะต้องอยูร่ ะหว่าง 0-100 ”
Start
Yes
กรุ ณาระบุคะแนนในช่ วง 1-100
Yes
Yes
Yes
Yes
ได้ เกรด A
ได้ เกรด B
ได้ เกรด C
ได้ เกรด D
Start
ตัวอย่าง
Read X
Yes
X<=49
ออกแบบ Flowchart ให้รับค่าคะแนนนักศึกษา (X)
แล้วนามาตัดเกรดตามเงื่อนไขและแสดงผลเกรดทางจอภาพ No
Yes
X <=59
เงื่อนไข
No
0-49 ได้เกรด F
Yes
X <=69
50-59 ได้เกรด D
No
60-69 ได้เกรด C
Yes
X <=79
70-79 ได้เกรด B
No
80-100 ได้เกรด A
Yes
X <=100
ถ้านอกเหนือจากนั้นให้แสดงข้อความว่า
กรุ ณาระบุคะแนนในช่ วง 1-100
“คะแนนจะต้องอยูร่ ะหว่าง 0-100 ”
Start
ได้ เกรด E
ได้ เกรด D
ได้ เกรด C
ได้ เกรด B
ได้ เกรด A
โจทย์สาหรับนักศึกษา
ให้รับค่าตัวเลข 2 จานวน จากนั้นแสดงเมนูเพื่อให้ผใู ้ ช้เลือกดาเนินการกับ
ตัวเลข ดังนี้
กด 1 เพื่อหาผลรวมตัวเลข
กด 2 เพื่อหาผลคูณตัวเลข
กด 3 เพื่อหาค่าเฉลี่ย
นอกเหนือจากนี้ให้แสดงข้อความ “ให้เลือก 1,2,3 เท่านั้น”
โจทย์สาหรับนักศึกษา
ให้ระบุอกั ขระ 1 2 3 a A (5 อักขระ)
ถ้า ระบุตวั เลขให้แสดงข้อมูลว่า “The character is a digit ”
ถ้า ระบุ ตัว a ให้แสดงข้อมูลว่า “The character is a lowercase letter”
ถ้า ระบุ ตัว A ให้แสดงข้อมูลว่า “The character is a uppercase letter”
กรณี อื่น ๆ ให้แสดงข้อมูลว่า “Error ,Please input 1 2 3 a A ”
ตัวอย่าง
ให้ เขียนโปรแกรมเพือ่ ทาข้ อสอบ 1 ข้ อ ดังนี้
5+5=?
โจทย์ 5 + 5 ?
1. 5
กด 1 . 5
2. 10
กด 2 . 10
3. 15
4. 20
5. 25
ให้ เลือกตัวเลือก 1 – 5 โดย
- ถ้าเลือกข้อ 2 ให้แสดงข้อความว่า “Right”
- ถ้าเลือกข้อ 1 ,3,4,5 ให้แสดงข้อความว่า “Wrong”
- ถ้าไม่เลือกข้อ 1 - 5 ให้แสดงข้อความว่า “Error”
โจทย์ กรณีรับข้ อมูลเป็ น อักขระ
ให้ระบุ A,B,C,D หรื อ F
กรณี มีค่าเท่ากับ A ให้แสดงข้อความ Excellent
กรณี มีค่าเท่ากับ Bให้แสดงข้อความ Good
กรณี มีค่าเท่ากับ C ให้แสดงข้อความ OK
กรณี มีค่าเท่ากับ D ให้แสดงข้อความ Improved
กรณี มีค่าเท่ากับ F ให้แสดงข้อความ You must do better than this
ถ้าตัวแปรไม่ตรงกับกรณี ใดเลยให้ แสดงข้อความ What is your grade
การเขียนผังงาน : Flowchart