Lecture 9: การวนซ้ำแบบมีโครงสร้างการวนซ้ำซ้อนกัน

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Advertisements

Introduction to C Introduction to C.
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
อัลกอริทึ่มทำงานวนซ้ำ
Lecture 5: ทางเลือกแบบหลายทาง
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงาน.
คำสั่ง while และ คำสั่ง do..while
เริ่มต้นเขียนโปรแกรมภาษา C++
Control Statement for while do-while.
บทที่ ๖ หลักการแก้ปัญหาด้วยคอมพิวเตอร์
หลักการโปรแกรม 1 Lecture 3: ตัวแปร, นิพจน์คณิตศาสตร์, การคำนวณทางคณิตศาสตร์,การดำเนินการกับสายอักขระ.
Lecture 11: อาร์เรย์แบบหลายมิติ
Lecture 4: ทางเลือก, เงื่อนไขของทางเลือก
Lecture 6: ทางเลือกแบบมีโครงสร้างซ้อนใน
Lecture 10: อาร์เรย์หนึ่งมิติ
หลักการโปรแกรม 1 Lecture 1: ความรู้เบื้องต้นเกี่ยวกับ การโปรแกรม.
Lecture 13: ฟังก์ชันเรียกตัวเอง
LAB # 4 Computer Programming 1 1. พิจารณาโปรแกรมต่อไปนี้
ลักษณะการทำงานของ Stack
LAB # 4.
คำสั่ง while ควบคุมการทำงานวนซ้ำ กรณีระบบงานมีลักษณะตรวจสอบเงื่อนไขก่อน แล้วเข้าสู่ส่วนลำดับงานคำสั่งที่กำหนดไว้ การเขียนคำสั่ง while ต้องกำหนดนิพจน์แบบตรรกะเป็นเงื่อนไขมีค่าในหน่วยความจำเป็น.
บทที่ 5 การทำงานแบบวนซ้ำ
CE 112 บทที่ 5 การทำซ้ำในภาษา C
Lab 8: คำสั่ง Do-While อ.ณัฐพงศ์ พยัฆคิน.
อ.อรวรรณ เชาวลิต For คำสั่งวนซ้ำ อ.อรวรรณ เชาวลิต
คำสั่งวนซ้ำ (Looping)
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
การควบคุมทิศทางการทำงานของโปรแกรม
หน่วยที่ 8 อาร์กิวเมนต์ของ main
ตัวอย่างโปรแกรมคำนวณหาพื้นที่สี่เหลี่ยม
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงานลักษณะของฟังก์ชั่นมีความรอบรัดสั้นกว่าแบบวนลูป.
Lecture 7 ฟังก์ชัน To do: Hand back assignments
การทดลองที่ 9 Loops (วงวน) การทดลองที่ 9 Loops (วงวน)
Chapter 7 Iteration Statement
โปรแกรมการคำนวณพื้นที่สามเหลี่ยมมุมฉาก
Charter 8 1 Chapter 8 การจัดการฐานข้อมูล Database Management.
คำสั่ง while และ do…while
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
คำสั่ง for ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
เรื่องการออกแบบฐานข้อมูล
Week 10 การเขียนโปรแกรมเบื้องต้น #2
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
การเขียนโปรแกรมเบื้องต้น
หลักการเขียนโปรแกรม ( )
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
บทที่ 7 การวิเคราะห์งานและการโปรแกรม แบบมีโครงสร้าง
อัลกอริทึ่มทำงานวนซ้ำ
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
Nested loop and its applications.
หลักการเขียนโปรแกรม ( )
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
โครงสร้างข้อมูลแบบลิงก์ลิสต์
การเขียน แบบวนซ้ำ , วนลูป
คำสั่งวนซ้ำ.
การเขียนโปรแกรมแบบลำดับ
การทำซ้ำ Pisit Nakjai.
การทำงานแบบวนซ้ำ (Iteration).
การทำซ้ำ (for).
Nested loop.
Introduction to Flowchart
หลักการโปรแกรม 1 Lecture 14: โปรแกรมย่อย ( การส่งพารามิเตอร์ แบบ pass by reference)
ส่วนการทะเบียนทั่วไป สำนักบริหารการทะเบียน
Lecture 7: ทางเลือกแบบมีโครงสร้างซ้อนใน
ใบสำเนางานนำเสนอ:

Lecture 9: การวนซ้ำแบบมีโครงสร้างการวนซ้ำซ้อนกัน 886201 หลักการโปรแกรม 1 Lecture 9: การวนซ้ำแบบมีโครงสร้างการวนซ้ำซ้อนกัน

Nested Loops Nested loop มักจะถูกใช้กับข้อมูลที่มีลักษณะเป็นตาราง มีแถวและคอลัมน์ การประมวลผลข้อมูลแต่ละแถวแต่ละหลักจะเป็นลักษณะ loop ซ้อน loop มี loop นอก และ loop ใน สำหรับวนประมวลผลข้อมูลแต่ละแถวแต่ละหลัก

ลองเขียนโปรแกรมเพื่อแสดงข้อมูลดังตารางต่อไปนี้ Nested Loops ลองเขียนโปรแกรมเพื่อแสดงข้อมูลดังตารางต่อไปนี้

Nested Loops จากโจทย์ข้างต้น จะเห็นว่าข้อมูลมี 4 คอลัมน์ สำหรับแสดงค่า x1 ถึง x4 ข้อมูลแต่ละแถวในตาราง เป็นค่า x ตั้งแต่ 1 ถึง 10

Nested Loops ข้อมูลแต่ละแถวในตาราง เป็นค่า x ตั้งแต่ 1 ถึง 10

Nested Loops

The Complete Program for Table of Powers #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main() { const int NMAX = 4; const double XMAX = 10; // Print table header for (int n = 1; n <= NMAX; n++) cout << setw(10) << n; } cout << endl; cout << setw(10) << "x "; cout << endl << endl;

for (double x = 1; x <= XMAX; x++) { // Print table row // Print table body for (double x = 1; x <= XMAX; x++) { // Print table row for (int n = 1; n <= NMAX; n++) cout << setw(10) << pow(x, n); } cout << endl; return 0; The program run would be:

ตัวอย่าง 1 จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j) ขึ้นอยู่กับ n for i from 1 to n for j from 1 to n print “A” end for for ( int i = 1; i <= n; i++ ) { for ( int j = 1; j <= n; j++ ) { cout << “A”; } cout << endl;

ตัวอย่าง 2 จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j) ขึ้นอยู่กับ i for i from 1 to n for j from 1 to i print “A” end for for ( int i = 1; i <= n; i++ ) { for ( int j = 1; j <= i; j++ ) { cout << “A”; } cout << endl;

แบบฝึกหัดที่ 1 n จำนวนแถว (i) ขึ้นอยู่กับ i จำนวนคอลัมน์ (j) ขึ้นอยู่กับ i

แบบฝึกหัดที่ 2 n จำนวนแถว (i) ขึ้นอยู่กับ i จำนวนคอลัมน์ (j) ขึ้นอยู่กับ i

แบบฝึกหัดที่ 3 n จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j) ขึ้นอยู่กับ n

ตัวอย่าง 3 จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j)ขึ้นอยู่กับ n เขียนโปรแกรมรับค่า n จากนั้นแสดงผลทั้งหมด 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 จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j)ขึ้นอยู่กับ n

ตัวอย่าง 4 n จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j)ขึ้นอยู่กับ เขียนโปรแกรมรับค่า n จากนั้นแสดงผลทั้งหมด 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 จำนวนแถว (i) ขึ้นอยู่กับ n จำนวนคอลัมน์ (j)ขึ้นอยู่กับ n

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

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

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

แบบฝึกหัดที่ 5 ลองเขียนโปรแกรมเพื่อรับค่า n และแสดงผลลัพธ์ ดังนี้

แบบฝึกหัดที่ 6 โปรแกรมต่อไปนี้ให้ผลลัพธ์อย่างไร for (i = 1; i <= 4; i++) for (j = 1; j <= i; j++) cout << "*"; cout << endl;

โปรแกรมต่อไปนี้ให้ผลลัพธ์อย่างไร for (i = 1; i <= 4; i++) for (j = 1; j <= i; j++) cout << "*"; cout << endl; * * * * * * * * * *

แบบฝึกหัดที่ 7 โปรแกรมต่อไปนี้ให้ผลลัพธ์อย่างไร for (i = 1; i <= 3; i++) { for (j = 1; j <= 5; j++) { if (i + j % 2 == 0) { cout << "*"; } else { cout << " "; } cout << endl;

โปรแกรมต่อไปนี้ให้ผลลัพธ์อย่างไร for (i = 1; i <= 3; i++) { for (j = 1; j <= 5; j++) { if (i + j % 2 == 0) { cout << "*"; } else { cout << " "; } cout << endl; The output will be: * * * * *