ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
บทที่ 9 การทำซ้ำ (Loop)
2
จุดประสงค์การเรียนรู้
เข้าใจการทำงานแบบวนซ้ำ เข้าใจการทำงานแบบวนซ้ำและมีเงื่อนไข สามารถเขียนผังงานแบบมีการทำงานวนซ้ำได้ สามารถเขียนผังงานแบบมีการวนซ้ำและมีเงื่อนไขได้
3
หัวข้อเรื่อง การทำซ้ำคืออะไร รูปแบบของการทำซ้ำ ผังงานแบบการทำซ้ำ
ตัวอย่าง
4
การทำซ้ำคืออะไร การทำซ้ำ หรือ Loop คือการทำงานแบบวนซ้ำ เช่น เครื่องเล่นเพลง MP3 หากเราเรียกใช้ฟังก์ชั่นเล่นเพลงซ้ำซึ่งอาจเลือกเฉพาะเพลงหรือเลือกเล่นซ้ำ ทั้งหมดก็ได้ เมื่อเราเลือกการใช้งานดังกล่าว เปรียบได้กับเราเรียกใช้ฟังก์ชั่น Loop จะทำให้เล่นเพลงซ้ำรอบใหม่หลังจากที่เล่นเพลงสุดท้าย หรือเล่นซ้ำเพลง เดิม ส่วนในการเขียนโปรแกรม Loop จะเป็นการทำขั้นตอนต่างๆ ซ้ำตามที่ ผู้เขียนโปรแกรมต้องการ
5
รูปแบบของการทำซ้ำ การทำซ้ำแบบจำนวนรอบที่แน่นอน เป็นการทำซ้ำที่มีการกำหนดรอบไว้ชัดเจน เช่นการคัดลายมือจำนวน 10 คำ การทำซ้ำแบบจำนวนรอบไม่แน่นอน เป็นการทำซ้ำแบบมีเงื่อนไข ซึ่งรูปแบบนี้จะกำหนดรอบในการทำซ้ำตายตัวไม่ได้ โปรแกรมจะทำการทำซ้ำจนกว่าเงื่อนไขจะไม่เป็นจริง เช่น การวิ่งรอบสนามจนกว่าจะเหนื่อย การทำซ้ำแบบไม่รู้จบ เป็นการทำซ้ำไปเรื่อย ๆ แบบไม่รู้จบ เช่น โลกหมุนรอบตัวเอง
6
ผังงานแบบการทำซ้ำ เป็นรูปแบบที่มีการกระทำกระบวนการหนึ่งหลายครั้ง โดยมีเงื่อนไขในการควบคุม การทำซ้ำเป็นหลักการที่ทำความเข้าใจยากกว่า 2 รูปแบบแรก คือ 1) การทำงานตามลำดับ (sequence) และ 2) การทำงานแบบมีเงื่อนไข (conditional statement หรือ if…else) ที่ได้ศึกษาผ่านมา
7
ตัวอย่างผังงานการทำซ้ำ
ในวิชา Exercise for health จะต้อง วิ่งรอบสวนนันทนาการเป็นจำนวน 5 รอบ จึงจะสามารถหยุดวิ่งได้ เริ่มต้น รอบ = 0 วิ่งเพิ่ม 1 รอบ รอบ >= 5 เท็จ จริง สิ้นสุด
8
2, 4, 90, 52 ตัวอย่างที่ 1 ผลรวม จากตัวเลขต่อไปนี้
จงแสดงวิธีคิดผลรวม โดยใช้วิธีการทำซ้ำและเก็บค่าผลบวกในตัวแปร sum โดยกำหนดให้ค่า sum เริ่มต้นมีค่าเท่ากับ 0 และ กำหนดให้ตัวแปร count เป็นตัวแปรสำหรับนับรอบการทำงาน
9
รอบที่ 1 2 4 90 52 sum = sum + 2 sum = 0 + 2 sum = 2
10
รอบที่ 2 2 4 90 52 sum = sum + 4 sum = 2 + 4 sum = 6
11
รอบที่ 3 2 4 90 52 sum = sum + 90 sum = sum = 96
12
รอบที่ 4 2 4 90 52 sum = sum + 52 sum = sum = 148
13
2, 4, 90, 52 ดังนั้น ผลรวมของ มีค่าเท่ากับ 148
โดยทำการบวกซ้ำทั้งหมด 4 รอบ
14
เริ่มต้น sum = 0, count = 1 sum=0, count=1 รับค่า num รับค่า num=2
sum = sum + num count = count + 1 count<=4 จริง 1<=4 เท็จ แสดงค่า sum count=1+1 สิ้นสุด
15
เริ่มต้น sum = 0, count = 1 sum=0, count=1 รับค่า num รับค่า num=4
sum = sum + num count = count + 1 count<=4 จริง 2<=4 เท็จ แสดงค่า sum count=2+1 สิ้นสุด
16
เริ่มต้น sum = 0, count = 1 sum=0, count=1 รับค่า num รับค่า num=90
sum = sum + num count = count + 1 count<=4 จริง 3<=4 เท็จ แสดงค่า sum count=3+1 สิ้นสุด
17
เริ่มต้น sum = 0, count = 1 sum=0, count=1 รับค่า num รับค่า num=52
sum = sum + num count = count + 1 count<=4 จริง 4<=4 เท็จ แสดงค่า sum แสดงค่า 148 สิ้นสุด
18
ตัวอย่างที่ 2 แสดงเฉพาะเลขคู่
จงแสดงผลเลขคู่ที่อยู่ในช่วง 1-10 โดยกำหนดให้ตัวแปร N เป็นตัวแปรสำหรับการนับจำนวนรอบการทำงาน และ มีค่าเริ่มต้นเท่ากับ 1 และตัวแปร n จะเพิ่มขึ้น 1 เมื่อผ่านทุก ๆ 1 รอบ
19
แสดงผล N = 1 N = 1 เลขคู่ เลขคี่ เลขคี่ แสดงผล N = N+1 N = N+1
20
2 N = 2 N = 2 เลขคู่ เลขคู่ เลขคี่ แสดงผล แสดงผล N = N+1 N = N+1
21
แสดงผล N = 3 N = 3 2 เลขคู่ เลขคี่ เลขคี่ แสดงผล N = N+1 N = N+1
22
2 4 N = 4 N = 4 เลขคู่ เลขคู่ เลขคี่ แสดงผล แสดงผล N = N+1 N = N+1
23
แสดงผล N = 5 N = 5 2 4 เลขคู่ เลขคี่ เลขคี่ แสดงผล N = N+1 N = N+1
24
2 4 6 N = 6 N = 6 เลขคู่ เลขคู่ เลขคี่ แสดงผล แสดงผล N = N+1 N = N+1
25
แสดงผล N = 7 N = 7 2 4 เลขคู่ เลขคี่ เลขคี่ 6 แสดงผล N = N+1 N = N+1
26
2 4 6 8 N = 8 N = 8 เลขคู่ เลขคู่ เลขคี่ แสดงผล แสดงผล N = N+1 N = N+1
27
แสดงผล N = 9 N = 9 2 4 เลขคู่ เลขคี่ เลขคี่ 6 แสดงผล 8 N = N+1 N = N+1
28
2 4 6 8 10 N = 10 N = 10 เลขคู่ เลขคู่ เลขคี่ แสดงผล แสดงผล N = N+1
29
1-10 ดังนั้น เลขคู่ที่อยู่ในช่วง คือ 2, 4, 6, 8, 10
และทำการวนซ้ำจำนวน 10 รอบ
30
เริ่มต้น N = 1 N = 1 N%2=0 1%2 = 0 แสดงค่า N N = N+1 N<=10
จริง แสดงค่า N เท็จ N = N+1 จริง N<=10 1 <= 10 เท็จ สิ้นสุด N = 1+1
31
เริ่มต้น N = 1 N = 1 N%2=0 2%2 = 0 แสดงค่า N N = N+1 แสดงค่า 2
จริง แสดงค่า N เท็จ N = N+1 แสดงค่า 2 จริง N<=10 2 <= 10 เท็จ สิ้นสุด N = 2+1
32
เริ่มต้น N = 1 N = 1 N%2=0 3%2 = 0 แสดงค่า N N = N+1 N<=10
จริง แสดงค่า N เท็จ N = N+1 จริง N<=10 3 <= 10 เท็จ สิ้นสุด N = 3+1
33
เริ่มต้น N = 1 N = 1 N%2=0 4%2 = 0 แสดงค่า N N = N+1 แสดงค่า 4
จริง แสดงค่า N เท็จ N = N+1 แสดงค่า 4 จริง N<=10 4 <= 10 เท็จ สิ้นสุด N = 4+1
34
เริ่มต้น N = 1 N = 1 N%2=0 5%2 = 0 แสดงค่า N N = N+1 N<=10
จริง แสดงค่า N เท็จ N = N+1 จริง N<=10 5 <= 10 เท็จ สิ้นสุด N = 5+1
35
เริ่มต้น N = 1 N = 1 N%2=0 6%2 = 0 แสดงค่า N N = N+1 แสดงค่า 6
จริง แสดงค่า N เท็จ N = N+1 แสดงค่า 6 จริง N<=10 6 <= 10 เท็จ สิ้นสุด N = 6+1
36
เริ่มต้น N = 1 N = 1 N%2=0 7%2 = 0 แสดงค่า N N = N+1 N<=10
จริง แสดงค่า N เท็จ N = N+1 จริง N<=10 7 <= 10 เท็จ สิ้นสุด N = 7+1
37
เริ่มต้น N = 1 N = 1 N%2=0 8%2 = 0 แสดงค่า N N = N+1 แสดงค่า 8
จริง แสดงค่า N เท็จ N = N+1 แสดงค่า 8 จริง N<=10 8 <= 10 เท็จ สิ้นสุด N = 8+1
38
เริ่มต้น N = 1 N = 1 N%2=0 9%2 = 0 แสดงค่า N N = N+1 N<=10
จริง แสดงค่า N เท็จ N = N+1 จริง N<=10 9 <= 10 เท็จ สิ้นสุด N = 9+1
39
เริ่มต้น N = 1 N = 1 N%2=0 10%2 = 0 แสดงค่า N N = N+1 แสดงค่า 10
จริง แสดงค่า N เท็จ N = N+1 แสดงค่า 10 จริง N<=10 10 <= 10 เท็จ สิ้นสุด N = 10+1
40
เริ่มต้น N = 1 N = 1 N%2=0 11%2 = 0 แสดงค่า N N = N+1 N<=10
จริง แสดงค่า N เท็จ N = N+1 จริง N<=10 11 <= 10 เท็จ สิ้นสุด
41
1-10 ดังนั้น เลขคู่ที่อยู่ในช่วง คือ 2, 4, 6, 8, 10
และทำการวนซ้ำจำนวน 11 รอบ
43
แนะนำบล็อคคำสั่งการวนซ้ำ
วนซ้ำโดยระบุจำนวนรอบแน่ชัด วนซ้ำตลอด จนกว่าผู้ใช้จะกดปุ่ม วนซ้ำ ถ้าเงื่อนไขเป็นเท็จ เมื่อเงื่อนไขเป็นจริง จะออกจากการวนซ้ำ
44
ตัวอย่าง Scratch ที่ 1 กำหนดให้ผู้ใช้สามารถป้อนตัวเลขเข้าโปรแกรมได้ 10 จำนวน โปรแกรมทำหน้าที่แสดงจำนวนจัวเลขคู่ทั้งหมดที่ผู้ใช้ป้อนเข้ามา ตัวอย่าง ผู้ใช้ป้อนตัวเลข 1, 0, 9, 12, 23, 10, 3, 8, 99, 11
45
“มีจำนวนคู่ทั้งหมด” + count
เริ่มต้น round = 1 , count = 0 number เท็จ number%2=0 จริง round = round+1 count = count+1 จริง round ≤ 10 เท็จ “มีจำนวนคู่ทั้งหมด” + count สิ้นสุด
46
“มีจำนวนคู่ทั้งหมด” + count
เริ่มต้น round = 1 , count = 0 number เท็จ number%2=0 จริง round = round+1 count = count+1 จริง round ≤ 10 เท็จ “มีจำนวนคู่ทั้งหมด” + count สิ้นสุด
47
“มีจำนวนคู่ทั้งหมด” + count
เริ่มต้น round = 1 , count = 0 number เท็จ number%2=0 จริง round = round+1 count = count+1 จริง round ≤ 10 เท็จ “มีจำนวนคู่ทั้งหมด” + count สิ้นสุด
48
“มีจำนวนคู่ทั้งหมด” + count
เริ่มต้น round = 1 , count = 0 number เท็จ number%2=0 จริง round = round+1 count = count+1 จริง round ≤ 10 เท็จ “มีจำนวนคู่ทั้งหมด” + count สิ้นสุด
49
“มีจำนวนคู่ทั้งหมด” + count
เริ่มต้น round = 1 , count = 0 number เท็จ number%2=0 จริง round = round+1 count = count+1 จริง round ≤ 10 เท็จ “มีจำนวนคู่ทั้งหมด” + count สิ้นสุด
50
“มีจำนวนคู่ทั้งหมด” + count
เริ่มต้น round = 1 , count = 0 number เท็จ number%2=0 จริง round = round+1 count = count+1 จริง round ≤ 10 เท็จ “มีจำนวนคู่ทั้งหมด” + count สิ้นสุด
51
“มีจำนวนคู่ทั้งหมด” + count
เริ่มต้น round = 1 , count = 0 number เท็จ number%2=0 จริง round = round+1 count = count+1 จริง round ≤ 10 เท็จ “มีจำนวนคู่ทั้งหมด” + count สิ้นสุด
52
“มีจำนวนคู่ทั้งหมด” + count
เริ่มต้น round = 1 , count = 0 number เท็จ number%2=0 จริง round = round+1 count = count+1 จริง round ≤ 10 เท็จ “มีจำนวนคู่ทั้งหมด” + count สิ้นสุด
53
ชมตัวอย่างได้ที่ https://scratch.mit.edu/projects/132147193/
54
ตัวอย่าง Scratch ที่ 2 กำหนดให้ผู้ใช้ป้อนตัวเลข N
ตัวอย่าง ผู้ใช้ป้อน 5 และป้อน 0, 9, 10, 2, 5 ผลลัพธ์ที่แสดงคือ 26
55
เริ่มต้น n round = n , count = 1 , sum = 0 number count = count + 1
sum = sum + number จริง count < round เท็จ “ผลบวกคือ” sum สิ้นสุด
56
เริ่มต้น n round = n , count = 1 , sum = 0 number count = count + 1
sum = sum + number จริง count < round เท็จ “ผลบวกคือ” sum สิ้นสุด
57
เริ่มต้น n round = n , count = 1 , sum = 0 number count = count + 1
sum = sum + number จริง count < round เท็จ “ผลบวกคือ” sum สิ้นสุด
58
เริ่มต้น n round = n , count = 1 , sum = 0 number count = count + 1
sum = sum + number จริง count < round เท็จ “ผลบวกคือ” sum สิ้นสุด
59
เริ่มต้น n round = n , count = 1 , sum = 0 number count = count + 1
sum = sum + number จริง count < round เท็จ “ผลบวกคือ” sum สิ้นสุด
60
เริ่มต้น n round = n , count = 1 , sum = 0 number count = count + 1
sum = sum + number จริง count < round เท็จ “ผลบวกคือ” sum สิ้นสุด
61
เริ่มต้น n round = n , count = 1 , sum = 0 number count = count + 1
sum = sum + number จริง count < round เท็จ “ผลบวกคือ” sum สิ้นสุด
62
เริ่มต้น n round = n , count = 1 , sum = 0 number count = count + 1
sum = sum + number จริง count < round เท็จ “ผลบวกคือ” sum สิ้นสุด
63
ชมตัวอย่างได้ที่ https://scratch.mit.edu/projects/111933616/
64
แหล่งอ้างอิง
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.