Nested loop.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
อัลกอริทึ่มทำงานวนซ้ำ
Advertisements

โจทย์ หาราคาค่าเช่าห้องพัก โดยมีเงื่อนไขว่า ถ้าพักไม่เกิน5วัน จะไม่มีส่วนลด ถ้าพัก5-8วัน จะมีส่วนลด 5% แต่ถ้าพักมากกว่า8วันขึ้นไป จะมีส่วนลด 10%
คำสั่ง while และ คำสั่ง do..while
การเขียนโปรแกรม แบบมีโครงสร้าง (ต่อ)
Control Statement for while do-while.
การเขียนผังงาน.
Lecture 11: อาร์เรย์แบบหลายมิติ
Lecture 9: การวนซ้ำแบบมีโครงสร้างการวนซ้ำซ้อนกัน
คำสั่ง while ควบคุมการทำงานวนซ้ำ กรณีระบบงานมีลักษณะตรวจสอบเงื่อนไขก่อน แล้วเข้าสู่ส่วนลำดับงานคำสั่งที่กำหนดไว้ การเขียนคำสั่ง while ต้องกำหนดนิพจน์แบบตรรกะเป็นเงื่อนไขมีค่าในหน่วยความจำเป็น.
ผังงานโปรแกรม (Program Flowchart)
บทที่ 4 การตัดสินใจในการเขียนโปรแกรม
CE 112 บทที่ 5 การทำซ้ำในภาษา C
แผนผัง FlowChart Flow Chart คือ ขั้นตอนที่นำผลที่ได้จากการกำหนดและการ วิเคราะห์ปัญหามาเขียนเป็นแผนภาพหรือสัญลักษณ์ ประโยชน์ของผังงาน -ช่วยลำดับขั้นตอนการทำงานของโปรแกรม.
หน่วยที่ 1 ระบบคอมพิวเตอร์
Microsoft Office Excel
วิชา การออกแบบและพัฒนาซอฟต์แวร์
อ.อรวรรณ เชาวลิต For คำสั่งวนซ้ำ อ.อรวรรณ เชาวลิต
สมการเชิงอนุพันธ์อย่างง่าย
คำสั่งควบคุมการทำงาน
การจำลองความคิด
การควบคุมทิศทางการทำงานของโปรแกรม
ตัวอย่างคำสั่ง FOR.
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
Looping การวนรอบ บทที่ 4.
Computer Architecture and Assembly Language
Relational Operators by Accords (IT SMART CLUB 2006) by Accords 1.
คำสั่งควบคุมเงื่อนไข และการทำงานเป็นรอบ
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงานลักษณะของฟังก์ชั่นมีความรอบรัดสั้นกว่าแบบวนลูป.
คำสั่งควบคุมการทำงาน
รูปแบบ if-else if if (เงื่อนไข1) {
Flow Control.
การเขียนโปรแกรมภาษาซี
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
บทที่ 8 อาร์เรย์.
Chapter 5 คำสั่งควบคุมการทำซ้ำ
การทำซ้ำด้วยคำสั่ง while
คำสั่ง for ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
Chapter V : แสดงรายการจากฐานข้อมูล
คำสั่งควบคุมการทำงานของ ActionScripts
Week 6 การทำซ้ำโดย for loop
Week 6 การทำซ้ำโดย for loop
การเขียนโปรแกรมเบื้องต้น
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
การเขียนผังงาน (Flowchart)
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
LOOPLOOP. LOOP คืออะไร ? - วงรอบการทำงาน - ทำงานแบบซ้ำๆ ไปเรื่อยๆตามเงื่อนไข เช่น - การแพ๊คของ 50 ชิ้นใส่กล่อง ทำไปเรื่อยๆ จนกว่า ของจะหมด - ตีดอทไปเรื่อยๆ.
PHP การตรวจสอบเงื่อนไข.
บทที่ 7 การวิเคราะห์งานและการโปรแกรม แบบมีโครงสร้าง
คำสั่งทำซ้ำ for คำสั่ง for เป็นคำสั่งทำซ้ำในลักษณะ Definite loop คือทราบจำนวนรอบที่แน่นอนในการทำงาน ซึ่งจะใช้ตัวแปร 1 ตัวในการนับจำนวนรอบว่าครบตามกำหนดหรือไม่
อัลกอริทึ่มทำงานวนซ้ำ
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
Nested loop and its applications.
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
การเขียน แบบวนซ้ำ , วนลูป
คำสั่งวนซ้ำ.
การกระทำทางคณิตศาสตร์
Flowchart การเขียนผังงาน.
การเขียนโปรแกรมแบบลำดับ
การเขียนโปรแกรมบนเว็บ (Web Programming) บทที่ 2: ทบทวนการเขียน ภาษา Java ใช้ร่วมกับ Html และการรับข้อมูลจาก Form.
การทำซ้ำ Pisit Nakjai.
การทำงานแบบวนซ้ำ (Iteration).
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
การทำซ้ำ (for).
ค31212 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 2
การสร้าง function ( โปรแกรมย่อย ) function output = FunctionName (input1, input2, …) การทำงานภายในฟังก์ชัน Editor วิธีเขียน - ต้องขึ้นต้นด้วยคำว่า function.
ใบสำเนางานนำเสนอ:

Nested loop

Nested Loop ในบทก่อนหน้านี้เราได้เรียนการเขียนโปรแกรมแบบที่ใช้ if ซ้อนกัน ในทำนองเดียวกันในงานที่ซับซ้อน การทำซ้ำก็อาจจะต้อง implement ในรูปแบบของ loop ซ้อนกัน การประมวลผลในลักษณะที่เป็นตาราง loop ซ้อน มันจะเกิดขึ้นโดยธรรมชาติ Loop นอกเป็นตัวควบคุม แถว ทั้งหมด Loop ในเป็นตัวควบคุม คอลัมน์ ในแต่ละแถว

โจทย์ จงเขียนโปรแกรมรับค่า m และ n แล้วแสดงผลลัพธ์ ดังตัวอย่าง Input 3 2 Output ** Input 2 5 Output *****

มองผลลัพธ์ในลักษณะของตาราง จงเขียนโปรแกรมรับค่า m และ n แล้วแสดงผลลัพธ์ ดังตัวอย่าง Input1 Input2 3 2 2 5 * *

Nested loop การเขียน loop ซ้อน จะง่ายขึ้นถ้าเรามองผลลัพธ์ของโปรแกรมในลักษณะตาราง จำนวนแถว ใช้ loop นอกเป็นตัวกำหนด จำนวนคอลัมน์ ใช้ loop ในเป็นตัวกำหนด for(int i = 1 ; i < row ; i++) { for(int j = 1 ; j < col ; j++ ) { //คำสั่งในการทำซ้ำ }

โจทย์ จงเขียนโปรแกรมรับค่า m และ n แล้วแสดงผลลัพธ์ ดังตัวอย่าง Input 3 2 Output ** จำนวนแถว = 3 จำนวนคอลัมน์ = 2 Loop นอกวนให้ครบ 3 รอบ Loop ในวนให้ครบ 2 รอบ แต่ละรอบวนปริ้น “*” จำนวนแถว และ จำนวนคอลัมน์ ขึ้นอยู่กับตัวแปร m และ n for(int i = 0 ; i < 3 ; i++) { for(int j = 0 ; j < 2 ; j++ ) { System.out.print(“*”); } System.out.println(); }

ตัวอย่าง : การแสดงผลสัญลักษณ์ต่าง ๆ ตามรูปแบบที่กำหนด

ตัวอย่าง 1 เขียนโปรแกรมรับค่า n และแสดงผลลัพธ์ ดังนี้ จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j)ขึ้นอยู่กับ n for(int i = 1 ;i <= n ;i++){ for(int j=1 ; j <= n; j++){ System.out.print(“A”); } System.out.println();

ตัวอย่าง 2 เขียนโปรแกรมรับค่า n และแสดงผลลัพธ์ ดังนี้ จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j)ขึ้นอยู่กับ i for(int i = 1 ;i <= n ;i++){ for(int j=1 ; j <= i; j++){ System.out.print(“A”); } System.out.println();

กิจกรรมที่ 1 เขียนโปรแกรมรับค่า n และแสดงผลลัพธ์ ดังนี้ จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j)ขึ้นอยู่กับ i

ตัวอย่าง : การแสดงผลค่าของตัวแปร

ตัวอย่าง 3 เขียนโปรแกรมรับค่า n และแสดงผลลัพธ์ ดังนี้ จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j)ขึ้นอยู่กับ i for(int i = 1 ;i <= n ;i++){ for(int j=1 ; j <= i; j++){ System.out.print(j); }System.out.println(); }

กิจกรรมที่ 2 เขียนโปรแกรมรับค่า n และแสดงผลลัพธ์ ดังนี้ จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j)ขึ้นอยู่กับ i

ตัวอย่าง 4 เขียนโปรแกรมรับค่า n และแสดงผลลัพธ์ ดังนี้ จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j)ขึ้นอยู่กับ i for(int i = n ;i >= 1 ;i++){ for(int j=1 ; j <= i; j++){ System.out.print(i); }System.out.println(); }

กิจกรรมที่ 3 เขียนโปรแกรมรับค่า n และแสดงผลลัพธ์ ดังนี้ จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j)ขึ้นอยู่กับ i

กิจกรรมที่ 4 เขียนโปรแกรมรับค่า n และแสดงผลลัพธ์ ดังนี้ จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j)ขึ้นอยู่กับ n

ตัวอย่าง : การแสดงผลค่าของสัญลักษณ์แบบมีทางเลือก

ตัวอย่าง 5 เขียนโปรแกรมรับค่า n จากนั้นแสดงผลทั้งหมด n บรรทัด บรรทัดอื่น ๆ แสดง A จำนวน n ตัว for i from 1 to n for j from 1 to n if i = 1 or i = n print * else print A end if end for n จำนวนแถว (i) ขึ้นอยู่กับ จำนวนคอลัมน์ (j)ขึ้นอยู่กับ n

ตัวอย่าง 6 เขียนโปรแกรมรับค่า n จากนั้นแสดงผลทั้งหมด n บรรทัด ถ้าเป็นบรรทัดคู่ แสดง v จำนวน n ตัว for i from 1 to n for j from 1 to n if i is odd print ^ else print v end if end for n จำนวนแถว (i) ขึ้นอยู่กับ จำนวนคอลัมน์ (j)ขึ้นอยู่กับ n

กิจกรรมที่ 5 เขียนโปรแกรมรับค่า n จากนั้นแสดงผลทั้งหมด n บรรทัด ถ้าเป็นบรรทัดคี่ แสดง [] จำนวนเท่ากับ หมายเลขบรรทัด ถ้าเป็นบรรทัดคู่ แสดง () จำนวนเท่ากับ หมายเลขบรรทัด n จำนวนแถว (i) ขึ้นอยู่กับ จำนวนคอลัมน์ (j)ขึ้นอยู่กับ i

ตัวอย่าง : การใช้หลายๆ loop ซ้อน

ตัวอย่าง 7 เขียนโปรแกรมรับค่า n และแสดงผลลัพธ์ ดังนี้ i ช่องว่าง ตัวเลข 1 3 2 4 for(int i = 1 ;i <= n ;i++){ for(int j=1;j<=n -i;j++){ System.out.print(“ “); } for( ; j <=n ; j++){ System.out.print(i); System.out.println();

ตัวอย่าง 8 เขียนโปรแกรมรับค่า n และแสดงผลลัพธ์ ดังนี้ i ช่องว่าง ตัวเลข 4 1 3 2 for(int i = 0 ;i < n ;i++){ for(int j=0;j<i;j++){ System.out.print(“ “); } for(j=i ; j <n ; j++){ System.out.print(n-i); System.out.println();

กิจกรรมที่ 6 เขียนโปรแกรมรับค่า n และแสดงผลลัพธ์ ดังนี้

โจทย์ เขียนโปรแกรมรับจำนวนเต็มบวก 1 จำนวนและแสดงรูปดังตัวอย่างต่อไปนี้ Input 4 Output * * *** ***** ******* ช่องว่าง ดอกจัน ดอกจัน ช่องว่าง

โจทย์ ช่องว่าง แถวที่ 1 ช่องว่าง 3 ดอกจัน 1 แถวที่ 2 ช่องว่าง 2 ดอกจัน 2 แถวที่ 3 ช่องว่าง 1 ดอกจัน 3 แถวที่ 4 ช่องว่าง 0 ดอกจัน 4 * หมายเลขแถวส่งผลต่อจำนวนดอกจัน จำนวนช่องว่าง = n - จำนวนดอกจัน

โจทย์ ช่องว่าง แถวที่ 1 ช่องว่าง 3 ดอกจัน 1 for(int I =1 ; i<=n ; i++) { for(int j = 1; j<=n-i;j++) { System.out.print(“ ”); } for(; j<=n; j++) { System.out.print(“*”); ช่องว่าง แถวที่ 1 ช่องว่าง 3 ดอกจัน 1 แถวที่ 2 ช่องว่าง 2 ดอกจัน 2 แถวที่ 3 ช่องว่าง 1 ดอกจัน 3 แถวที่ 4 ช่องว่าง 0 ดอกจัน 4 จำนวนดอกจัน = หมายเลขแถว จำนวนช่องว่าง = n - จำนวนดอกจัน

โจทย์ * ดอกจัน (กลุ่มสุดท้าย) แถวที่ 1 ดอกจัน 0 แถวที่ 2 ดอกจัน 1 แถวที่ 3 ดอกจัน 2 แถวที่ 4 ดอกจัน 3 จำนวนดอกจัน = หมายเลขแถว - 1 for(j = 1; j<=i-1 ; j++){ System.out.print(“*”); } *

โจทย์ * for(int i =1 ; i<= n ; i++){ for(j=1 ; j <=n-i; j++){ System.out.print(" "); } for( ; j <=n ; j++){ System.out.print("*"); for(j=1 ; j<=i-1;j++){ System.out.println(); *