Week 6 For loop, break and continue (Control Structure 3)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
คำสั่งควบคุมในโปรแกรม Interactive C
Advertisements

อัลกอริทึ่มทำงานวนซ้ำ
ครั้งที่ 4 “for statement”
คำสั่ง while และ คำสั่ง do..while
การเขียนโปรแกรม แบบมีโครงสร้าง (ต่อ)
ขอความคำสั่งควบคุม แบงเปนกลุมใหญ ๆ ได 2 กลุม คือ
Control Statement for while do-while.
การโปรแกรมควบคุมแบบทำงานซ้ำ
Lecture no. 5 Control Statements
ตัวอย่าง Flowchart.
การควบคุมทิศทางการทำงาน
คำสั่ง while ควบคุมการทำงานวนซ้ำ กรณีระบบงานมีลักษณะตรวจสอบเงื่อนไขก่อน แล้วเข้าสู่ส่วนลำดับงานคำสั่งที่กำหนดไว้ การเขียนคำสั่ง while ต้องกำหนดนิพจน์แบบตรรกะเป็นเงื่อนไขมีค่าในหน่วยความจำเป็น.
ผังงานโปรแกรม (Program Flowchart)
บทที่ 5 การทำงานแบบวนซ้ำ
Week 15 C Programming.
CE 112 บทที่ 5 การทำซ้ำในภาษา C
Lab 8: คำสั่ง Do-While อ.ณัฐพงศ์ พยัฆคิน.
Repetitive Statements (Looping)
อ.อรวรรณ เชาวลิต For คำสั่งวนซ้ำ อ.อรวรรณ เชาวลิต
Repetitive Instruction
โครงสร้างควบคุม 1. โครงสร้างควบคุมแบบวนทางเลือก
การควบคุมทิศทางการทำงานของโปรแกรม
WHILE..DO คำสั่งควบคุมให้ทำงานซ้ำ โดยที่ต้องตรวจสอบเงื่อนไขก่อนที่จะทำ
คำสั่ง Repeat...Until คำสั่งควบคุมให้ทำงานซ้ำ
Repetitive Or Iterative
คำสั่งควบคุม (Control Statement)
คำสั่งควบคุมเงื่อนไข และการทำงานเป็นรอบ
หน่วยที่ 4: คำสั่งควบคุมโปรแกรม (Control Flow Command)
คำสั่งควบคุมการทำงาน
สุพจน์ สวัตติวงศ์ gamepad.pigcanfly.com
Chapter 7 Iteration Statement
ครูรัตติยา บุญเกิด.
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
การทำซ้ำด้วยคำสั่ง while
คำสั่ง while และ do…while
การเขียนเว็บเพจด้วยภาษา php ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
คำสั่งควบคุมการทำงานของ ActionScripts
Week 3 Flow Control in PHP
การเขียนผังงานแบบทำซ้ำ
Week 6 การทำซ้ำโดย for loop
Week 5 การทำซ้ำโดย while loop และ do while loop
เสรี ชิโนดม ข้อความสั่งควบคุม เสรี ชิโนดม
Week 6 การทำซ้ำโดย for loop
Chapter 5 การทำซ้ำโดย while loop และ do while loop
Week 5 การทำซ้ำโดย while loop และ do while loop
บทที่ 10 คำสั่งควบคุม OUTLINE 1. คำสั่งแบบเรียงลำดับ (Sequence)
คำสั่งควบคุมขั้นตอน Flow control statements
CHAPTER 4 Control Statements
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรที่ ๑ ทักษะการโปรแกรม เบื้องต้น วันที่สาม.
คำสั่งวนซ้ำ นายมาโนชญ์ แสงศิริ ครูผู้ช่วย โรงเรียนพิจิตรพิทยาคม
อัลกอริทึ่มทำงานวนซ้ำ
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
Chapter 6 Repetition Structure[2] ผู้สอน อ. ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยี คอมพิวเตอร์เคลื่อนที่ ng.
อ. วชิระ หล่อประดิษฐ์. ตัว ดำเนินกา ร ศัพท์เฉพาะตัวอย่ าง ผลลัพธ์ ให้ a=3; b=2; Greater thana > b;True
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
การเขียน แบบวนซ้ำ , วนลูป
คำสั่งวนซ้ำ.
การทำงานแบบวนซ้ำ (Iteration).
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
Computer Programming การเขียนโปรแกรม คอมพิวเตอร์ สัปดาห์ที่ 6 คำสั่งควบคุมการทำงานแบบ เงื่อนไขและคำสั่งควบคุมการ ทำงานแบบวนซ้ำ.
Week 5 While and Do-While loop (Control Structure 2)
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
รูปแบบของการใช้คำสั่ง for for( ตัวแปร = ค่าเริ่มต้น ; นิพจน์ตรรกะ ; ค่าเพิ่มหรือค่าลด ) { statement(s); } ตัวอย่าง กรณีกำหนดการวนซ้ำเป็นค่าคงที่ For(n=1;n
ผังงานโปรแกรม (Program Flowchart)
PHP: [5] คำสั่งควบคุม (Control statement)
การวนซ้ำโดยใช้โครงสร้าง for
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop) Part1
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop) Part2
ใบสำเนางานนำเสนอ:

Week 6 For loop, break and continue (Control Structure 3)

Outline ส่วนประกอบของการทำซ้ำ ( ทบทวน ) for statement break และ continue statements 2

Review the components of Iteration ส่วนประกอบของการทำซ้ำ มี 3 อย่าง ได้แก่ การกำหนดค่าเริ่มต้น (Initialization) กำหนดค่าตั้งต้นให้กับตัวแปร ซึ่งจะใช้เป็นเงื่อนไขในการ ทำงาน เช่น x = 0, y = 100, … การทดสอบเงื่อนไข (Condition Testing) ทดสอบเงื่อนไขในการทำซ้ำ ว่ายังเป็นจริงหรือไม่ จะมีการวนเข้าไปทำซ้ำในคำสั่งหรือกลุ่มคำสั่งที่กำหนด ตราบใดที่เงื่อนไขยังเป็น true จะจบการทำซ้ำ เมื่อผลการทดสอบเงื่อนไขเป็น false เช่น x -5, x <= 99, … การปรับปรุงค่า (Increment / Decrement) การเพิ่มค่า (increment) หรือลดค่า (decrement) ตัวแปรซึ่ง ใช้เป็นเงื่อนไขในการทำงาน เช่น x=x+1, x+=10, x++, x--, ++x, --x, x*=2, … 3

Reviewing increment and decrement Increment และ Decrement Operators (++, --) Increment operator (++) ใช้เพิ่มค่าให้กับตัวแปรขึ้นที ละ 1 เหมือนกับ +=1 Decrement operator (--) ใช้ลดค่าตัวแปรลงทีละ 1 เหมือนกับ -=1 ดังนั้น ++x; มีค่าเหมือนกัน x+=1; และ x=x+1; สามารถวาง operator ไว้ได้ทั้งก่อนหน้า (prefix) หรือ ด้านหลัง (suffix) ตัวแปร y=++x; หรือ y=--x; (prefix) : เพิ่มหรือลดค่า x ก่อนกำหนดค่า x ให้ y y=x++; หรือ y=x--; (suffix) : กำหนดค่า x ให้ y ก่อนเพิ่มหรือ ลดค่า x 4

for statement นิยมใช้งานเมื่อทราบจำนวนรอบของการทำซ้ำล่วงหน้า สามารถใช้ทดแทน while และ do-while statement ได้ init - กำหนดค่าเริ่มต้นให้กับตัวแปรควบคุม cond - การทดสอบเงื่อนไขการทำซ้ำ update - การเปลี่ยนแปลงค่าตัวแปรควบคุม 5 for (init; cond; update) { statement1; statement2;... } next-statement; cond Statement 1 Statement 2 Entry True False Exit update init

for statement for มีลักษณะการทำงานคล้ายคลึง while เพียงแต่... มีการกำหนดค่าเริ่มต้น เงื่อนไข และการปรับปรุงค่าตัวแปร ควบคุม รวมอยู่ด้วยกัน ในขณะที่ while จะมีการ... แยกเอาส่วนกำหนดค่าเริ่มต้นไว้ก่อนเข้าลูป กำหนดส่วนปรับปรุงค่าตัวแปรควบคุม (increment หรือ decrement) ไว้ภายในลูป 6 for (init; cond; update) { statement1; statement2;... } next-statement; cond Statement 1 Statement 2 Entry True False Exit update init

Example: for statement Example 6.1: แสดงเลข 1 ถึง N 7 Initialization: i=1; Testing: i<=n; Update: i+=1; whilefor

Example: for statement Example 6.2: แสดงสูตรคูณแม่ N 8 Initialization: i=1; Testing: i<13; Update: i++; whilefor Note: ประกาศตัวแปร ควบคุม i และกำหนดค่า เริ่มต้น ภายใน for statement

Example: for statement Example 6.3: หาค่าผลบวกกำลังสอง ของเลข คี่ระหว่าง 0 ถึง N 9 Initialization: cin >> n; Testing: n > 0; Update: n--; while for Note: ประกาศตัวแปร ควบคุม n และกำหนดค่า เริ่มต้น ภายนอก for statement

Example: for statement Example 6.4: หาค่าผลรวมของจำนวนที่อยู่ระหว่าง M ถึง N ซึ่งหารด้วย X ลงตัว 10 Initialization: i=m; Testing: i<=n; Update: i++; น้อย => มาก !!!

Example: for statement Example 6.5: หาค่าเฉลี่ย (average) ของข้อมูล N ตัว จบการทำงานเมื่อง N<=0 11 Outer while-loop Initialization: n; Testing: n>0; Update: cin>>n; Inner for-loop Initialization: i=0; Testing: i<n; Update: i++; ควรจบการทำงานของ โปรแกรม ? รับข้อมูลจากผูัใช้กี่ตัว ?

Example: for statement Example 6.6: การใช้งานลูปซ้อนกัน (nested loop) 12 Outer for-loop Initialization: i=0; Testing: i<n; Update: i++; Inner for-loop Initialization: j=0; Testing: j<n; Update: j++; Row counting - นับจำนวน แถว Column counting - นับ จำนวนคอลัมภ์ ทุกๆ 1 รอบการทำงานของ outer loop จะมีการทำงาน ของ inner loop จำนวน n รอบ

break statement break เป็นคำสั่งที่ใช้บอกให้ โปรแกรมจบการทำงานใน 2 กรณี คือ จบการทำงานของ case ในคำสั่ง switch ( ดังที่ได้กล่าวถึงไปแล้ว ) เมื่อใช้กับส่วนทำซ้ำ จะจบการ ทำงานของส่วนทำซ้ำทันที แล้ว ไปทำงานต่อในส่วนของ next- statement หากมีส่วนทำซ้ำซ้อนกัน (nested loop) คำสั่ง break จะหยุดการ ทำงานเฉพาะของลูปที่มีคำสั่ง break อยู่เท่านั้น นิยมใช้เมื่อต้องการให้จบการ ทำงานของลูปเมื่อพบเงื่อนไขที่ ต้องการ 13 รูปจาก

Example: break statement Example 6.7: 14 Initialization: a=10; Testing: a<20; Update: a=a+1; Break: a>15 Note: จำนวนรอบในการเข้าไป ทำงานในลูป ? ค่าของ a เมื่อจบการทำงาน ของลูป ?

Example: break statement Example 6.8: การใช้งานลูปซ้อนกัน (nested loop) พร้อมคำสั่ง break 15 Outer for-loop Initialization: i=0; Testing: i<n; Update: i++; Inner for-loop Initialization: j=0; Testing: j<n; Update: j++; Break: i==j Row counting - นับจำนวน แถว Column counting - นับ จำนวนคอลัมภ์

Infinity loop with break statement บางครั้งอาจตั้งใจใช้งาน infinity loop ร่วมกับ คำสั่ง break 16 ในความเป็นจริง ส่วนใหญ่เราสามารถแปลงเอา cond มาใช้เป็นเงื่อนไข สำหรับใชักับ while, do-while และ for ได้เช่นกัน

continue statement 17 continue เป็นคำสั่งที่ใช้บอก ให้โปรแกรมจบการทำงานใน ลูป ลักษณะการใช้งานคล้ายกับ break เมื่อใชักับส่วนทำซ้ำ จบการ ทำงานในรอบนั้นของส่วน ทำซ้ำทันที แล้วโปรแกรมจะ วนไปตรวจสอบ condition สำหรับ รอบการทำงานถัดไป นิยมใช้เมื่อต้องการยกเว้น (skip) การทำงานในบางกรณี รูปจาก

Example: continue statement Example 6.9: 18 Initialization: a=10; Testing: a<20; Update: a=a+1; Continue(skip): a==15 Note: จำนวนรอบในการเข้าไป ทำงานในลูป ? ค่าของ a เมื่อจบการทำงาน ของลูป ? ทำไมต้องมี a = a+1; สอง แห่งในลูป ?

Example: continue statement Example 6.10: การใช้งานลูปซ้อนกัน (nested loop) พร้อมคำสั่ง continue 19 Outer for-loop Initialization: i=0; Testing: i<n; Update: i++; Inner for-loop Initialization: j=0; Testing: j<n; Update: j++; Continue(skip): i==j Row counting - นับจำนวน แถว Column counting - นับ จำนวนคอลัมภ์

Example: break and continue Example 6.11: การใช้งานลูปซ้อนกัน (nested loop) 20 Outer for-loop Initialization: i=0; Testing: i<n; Update: i++; Continue(skip): even Inner for-loop Initialization: j=0; Testing: j<n; Update: j++; Break: i==j Row counting - นับจำนวน แถว Column counting - นับ จำนวนคอลัมภ์

Summary สามารถใช้งานแทน while และ do-while ได้ นิยมใช้ for เมื่อทราบจำนวนรอบของการทำซ้ำ ล่วงหน้า รวมเอาส่วน กำหนดค่าเริ่มต้น เงื่อนไขการทำซ้ำ และ การปรับปรุงค่าตัวแปรควบคุม ไว้ด้วยกัน เราสามารถใช้คำสั่งในการทำซ้ำแบบซ้อนๆกันได้ (nested-loop) ลูปใน (inner loop) จะจบการทำงานก่อน ลูปนอก (outer loop) จะจบการทำงานทีหลัง 21

Summary เมื่อใช้คำสั่ง break กับการทำซ้ำ จะทำให้ โปรแกรมจบการทำงาน ของลูปทันที แล้วโปรแกรมจะข้ามไปทำ next- statement เมื่อใช้คำสั่ง continue กับการทำซ้ำ จะทำให้ โปรแกรมจบการทำงานลูปในรอบนั้นๆทันที แล้ว โปรแกรมจะวนกลับไปตรวจสอบ condition สำหรับ การทำงานในรอบถัดไป เมื่อใช้คำสั่ง break หรือ continue กับการทำซ้ำแบบ ซ้อนๆกัน (nest-loop) คำสั่งเหล่านี้จะมีผลเฉพาะ กับลูปที่มีคำสั่งเท่านั้น 22

Lab Lab 6.1 – เขียนโปรแกรมเพื่อหาค่าต่อไปนี้ จาก ข้อมูล N จำนวน ผลรวม (summation) ค่าเฉลี่ย (average) ค่าสูงสุด (maximum) และ ค่าต่ำสุด (minimum) Lab 6.2 – เขียนโปรแกรมเพื่อรับค่าผลรวม เป้าหมาย (target summation) จากผู้ใช้ แล้วให้โปรแกรมทำการวนรับค่าจากผู้ใช้ทีละ ค่า และเมื่อผลรวมของค่าที่ป้อนทั้งหมด มากกว่าหรือเท่ากับค่าผลรวมเป้าหมาย ให้ โปรแกรมแสดงค่าต่อไปนี้ ผลรวม (summation) จำนวนข้อมูลที่ได้รับ ( รวมข้อมูลค่าสุดท้ายที่ทำให้ เกิน target) ค่าเฉลี่ย (average) ค่าสูงสุด (maximum) ค่าต่ำสุด (minimum) 23

Lab Lab 6.3 – เขียนโปรแกรมเพื่อรับค่าต่อไปนี้จากผู้ใช้ จำนวนเต็มบวก - สำหรับกำหนดจำนวนบรรทัด และคอลัมภ์ ในการแสดงผลลัพธ์ อักขระ - สำหรับประกอบการแสดงผล จากนั้นให้โปรแกรมแสดงผลในรูปแบบดังตัวอย่าง ต่อไปนี้ 24