05 loops

260 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
260
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

05 loops

  1. 1. คำำ สั่ง วนซำ้ำ
  2. 2. เนื้อ หำ     ทบทวนกำรไหลของโปรแกรม โปรแกรมทีทำำงำนแบบวนซำ้ำ ่ ลูปแบบ while ลูปแบบ do..while
  3. 3. กำรไหลของโปรแกรม แบบต่ำ ง ๆ  โปรแกรมอย่ำงง่ำย มีกำรไหลจำกบน ลงล่ำง START START START START Statement1 Statement1 Statement Statement Statement2 Statement2 END END Statement3 Statement3 โปรแกรมที่ม ีค ำำ สั่ง เดีย ว Statementn Statementn END END โปรแกรมที่ม ี หลำยคำำ สั่ง
  4. 4. กำรไหลของโปรแกรม แบบต่ำ ง ๆ  โปรแกรมแบบมีเงื่อนไข START START condition condition START START true true condition condition false Statement Statement Statementt Statementt Statementf Statementf Statement Statement false Statementt Statementt Statementf Statementf END END คำำ สั่ง if END END คำำ สั่ง if..else
  5. 5. การวนซำ้า   กิจกรรมหลายอย่างมีลกษณะการ ั ทำางานแบบซำ้าไปมา ตัวอย่างในชีวิตประจำาวัน     ก้าวไปข้างหน้า 10 ก้าว ขยีผ้าจนกว่าจะสะอาด ้ เรียนวิชาคอมพิวเตอร์จนกว่าจะผ่าน ตัวอย่างในการเขียนโปรแกรม  วนรับตัวเลขมา 10 ตัวเพือหาค่าเฉลี่ย ่
  6. 6. โปรแกรมแบบวนซำ้า ดีย ัง ไง?  เพือหลีกเลียงการเขียนโค้ดแบบ ่ ่ เดียวกันซำ้าหลายรอบ   โปรแกรมจะมีความยืดหยุ่นมากกว่า   ได้โปรแกรมที่สนและกระชับขึ้น ั้ เช่นรับข้อมูลได้หลากหลายขนาด โดย ไม่ต้องแก้โปรแกรม ลองนึกถึงโปรแกรมทีหาผลรวมของ ่ ตัวเลข 3 ตัว
  7. 7. ตัว อย่า ง: หาผลรวมของ ตัว เลข 3 ตัว เกิด โจทย์เ ปลี่ย นเป็น หา using System; using System; class Summing { class Summing { static void Main() { static void Main() { int n, sum = 0; int n, sum = 0;  ผลรวมของเลข 100 ตัว ? หรือ กี่ต ัว ก็ไ ด้จ นกว่า ผู้ใ ช้ จะป้อ นเลขลบ Console.Write("Enter a value: "); Console.Write("Enter a value: "); n = int.Parse(Console.ReadLine()); n = int.Parse(Console.ReadLine()); sum = sum + n; sum = sum + n; Console.Write("Enter a value: "); Console.Write("Enter a value: "); n = int.Parse(Console.ReadLine()); n = int.Parse(Console.ReadLine()); sum = sum + n; sum = sum + n; } } 2nd number Console.Write("Enter a value: "); Console.Write("Enter a value: "); n = int.Parse(Console.ReadLine()); n = int.Parse(Console.ReadLine()); sum = sum + n; sum = sum + n; } } 1st number 3rd number Console.WriteLine("The sum is {0}.", sum); Console.WriteLine("The sum is {0}.", sum);
  8. 8. หาผลรวมตัว เลข: โฟลว์ ชาร์ต START START Let sum = 00and i i= 11 Let sum = and = i i≤≤num num false true Read aavalue, n Read value, n Increment sum by n Increment sum by n Increment i iby 11 Increment by Print sum on screen Print sum on screen END END
  9. 9. ลูป แบบ  while ทำำ statement ตรำบเท่ำที่ condition เป็นจริง while (condition) while (condition) statement; statement; START START condition condition true  ทำำ stmt1,…,stmtN ตรำบเท่ำที่ condition เป็นจริง while (condition) { while (condition) { stmt1; stmt1; stmt2; stmt2; : : stmtN; stmtN; } } Statement Statement Statement Statement END END false
  10. 10. หำผลรวมตัว เลข: โปรแกรม using System; using System; class Summing { class Summing { static void Main() { static void Main() { int i, n, sum = 0, num; int i, n, sum = 0, num; Console.Write("How many values do you have: "); Console.Write("How many values do you have: "); num = int.Parse(Console.ReadLine()); num = int.Parse(Console.ReadLine()); i = 1; i = 1; while (i <= num) { while (i <= num) { Console.Write("Enter a value: "); Console.Write("Enter a value: "); n = int.Parse(Console.ReadLine()); n = int.Parse(Console.ReadLine()); sum = sum + n; sum = sum + n; i = i + 1; i = i + 1; } } } } } } Console.WriteLine("The sum is {0}.", sum); Console.WriteLine("The sum is {0}.", sum);
  11. 11. ลับ สมอง  เขียนโฟลว์ชำร์ตและโปรแกรมภำษำ C# เพือคำำนวณค่ำ sum โดยที่ sum นิยำมจำก ่ สูตร sum = ∑ i N 2 i =1    using System; using System; class Sum {{ class Sum static void Main() {{ static void Main() int sum == 0, ii == 1, N; int sum 0, 1, N; Console.Write("Enter N: "); Console.Write("Enter N: "); NN == int.Parse(Console.ReadLine()); int.Parse(Console.ReadLine()); ??? while (( ii <= NN )) {{ while <= โดยที่ค่ำ Nรับมำจำกผูใช้ ้ sum == sum ++ i*i; sum sum i*i; ii == i+1; เช่นถ้ำ N= 3, ??? i+1; sum = 1+4+9 = 14 } ตัวอย่ำ3งผลลัพธ์ Enter N: 3 Enter N: The sum is 14 The sum is 14 }} }} } Console.WriteLine("The sum is {0}.", Console.WriteLine("The sum is {0}.", sum); sum);
  12. 12. ลูป แบบดัก ค่ำ  ทีผ่ำนมำเป็นตัวอย่ำงของลูปวนนับ ่ (counter loop)     จำำนวนครั้งที่วนซ้ำ้ำขึนอยูกับค่ำที่ ้ ่ กำำหนดไว้แล้ว ทำำอย่ำงไรหำกเรำไม่ทรำบจำำนวน ล่วงหน้ำ  ใช้ลูปแบบดักค่ำ (sentinel loop)ดัก ลู ตัว นิยำมค่ำทีใช้ดัก เพือให้โปรแกรม ่ ่ หลุดออกจำกลูป ตัวอย่ำง Enter a number, or -1 to quit: 3 Enter a number, or -1 to quit: 3 Enter a number, or -1 to quit: 10 Enter a number, or -1 to quit: 10 Enter a number, or -1 to quit: 15 Enter a number, or -1 to quit: 15 Enter a number, or -1 to quit: -1 Enter a number, or -1 to quit: -1 The sum is 28 The sum is 28
  13. 13. ตัว อย่า ง: ลูป ดัก ค่า using System; using System; class Summing { class Summing { static void Main() { static void Main() { int n, sum = 0; int n, sum = 0; Console.Write("Enter a number, or -1 to quit: "); Console.Write("Enter a number, or -1 to quit: "); n = int.Parse(Console.ReadLine()); n = int.Parse(Console.ReadLine()); while (n != -1) { while (n != -1) { sum = sum + n; sum = sum + n; Console.Write("Enter a number, or -1 to quit: "); Console.Write("Enter a number, or -1 to quit: "); n = int.Parse(Console.ReadLine()); n = int.Parse(Console.ReadLine()); } } } } } } Console.WriteLine("The sum is {0}.", sum); Console.WriteLine("The sum is {0}.", sum);
  14. 14. ลูป แบบ  do...while ทำา stmt1...stmtN ตราบเท่าที่เงือนไข ่ ยั {{ doงเป็นจริง do stmt1; stmt1; stmt2; stmt2; : : stmtN; stmtN; } while (condition); } while (condition); START START Statement Statement Statement Statement true condition condition false  stmt1...stmtN จะถูกทำางานอย่าง น้อยหนึ่งครั้ง END END
  15. 15. ลูป แบบดัก ค่า แบบ do...while using System; using System; class Summing { class Summing { static void Main() { static void Main() { int n, sum = 0; int n, sum = 0; do { do { Console.Write("Enter a number, or -1 to quit: "); Console.Write("Enter a number, or -1 to quit: "); n = int.Parse(Console.ReadLine()); n = int.Parse(Console.ReadLine()); if (n != -1) sum = sum + n; if (n != -1) sum = sum + n; } while (n != -1); } while (n != -1); } } } } Console.WriteLine("The sum is {0}.", sum); Console.WriteLine("The sum is {0}.", sum);
  16. 16. สรุป      การเขียนโปรแกรมแบบวนซ้ำ้า ลูปวนนับ ลูปดักค่า โครงสร้างลูปแบบ while โครงสร้างลูปแบบ do..while

×