หน้าแรก
คำชี้แจงก่อนเรียน
รายละเอียดรายวิชา

 แบบทดสอบก่อนเรียน
 หน่วยที่ 1 ภาษาคอมพิวเตอร์เบื้องต้น
 หน่วยที่ 2 เริ่มต้นกับภาษาซี
 หน่วยที่ 3 ข้อมูลพื้นฐานและตัวดำเนินการ
 หน่วยที่ 4 คำสั่งพื้นฐานในภาษาซี
 หน่วยที่ 5 คำสั่งควบคุมแบบทางเลือก
 หน่วยที่ 6 คำสั่งควบคุมแบบวนซ้ำ
แบบทดสอบก่อนเรียนประจำหน่วย
6.1 คำสั่ง while
6.2 คำสั่ง do - while
แบบฝึกหัดที่ 6.1
6.3 คำสั่ง for
6.4 คำสั่ง continue และ คำสั่ง break
6.5 คำสั่งวนซ้ำเชิงซ้อน
แบบฝึกหัดที่ 6.2
แบบทดสอบหลังเรียนประจำหน่วย
 แบบทดสอบหลังเรียน
 บรรณานุกรม

แจ้งข่าว
 แหล่งเรียนรู้เพิ่มเติม
 ติดต่อครูผู้สอน
 ผู้พัฒนาบทเรียน
 

 
 
คำชี้แจง
ให้นักเรียนสรุปเนื้อหาความรู้ที่ได้จากการศึกษาค้นคว้า บทเรียนบนเครือข่ายอินเทอร์เน็ต
เรื่องการโปรแกรมเบื้องต้น หน่วยที่ 6 คำสั่งควบคุมแบบวนซ้ำ หัวข้อย่อยที่ 6.3 คำสั่ง for
หัวข้อย่อยที่ 6.4 คำสั่ง continue และ คำสั่ง break และ 6.5 คำสั่งวนซ้ำเชิงซ้อน หรือสืบค้น
จากอินเทอร์เน็ต ให้ได้ใจความสำคัญ ถูกต้องครบถ้วน ตามหัวข้อที่กำหนดให้ต่อไปนี้
 
1. จากรูปที่กำหนดให้ข้างล่างนี้ จงอธิบายขั้นตอนการทำงานของคำสั่ง for
   
 
   
  ................................................................................................................................
  ................................................................................................................................
  ................................................................................................................................
  ................................................................................................................................
  ................................................................................................................................
  ................................................................................................................................
  ................................................................................................................................
 
2. จงพิจารณาโปรแกรมด้านล่าง ประกอบการตอบคำถามต่อไปนี้
   
 
   
บรรทัดที่ รหัสโปรแกรม
/*1*/ #include <stdio.h>
/*2*/ int main() {
/*3*/ int i ;
/*4*/ for (i=1 ; i<=5 ; i++) {
/*5*/ printf("Hello Thailand\n");
/*6*/ }
/*7*/ return 0;
/*8*/ }
   
   
  1) เมื่อทำงานถึงบรรทัดที่ 7 ข้อความ "Hello Thailand" จะถูกแสดงกี่บรรทัด
  ................................................................................................................................
  2) เมื่อทำงานถึงบรรทัดที่ 7 ค่า i มีค่าเท่าไร
  ................................................................................................................................
  3) ถ้าเปลี่ยนคำสั่ง บรรทัดที่ 4 เป็น for (i=6 ; i <= 5 ; i++ ) { จะเกิดผลเช่นใด
  ................................................................................................................................
  4) ถ้าเปลี่ยนคำสั่ง บรรทัดที่ 4 เป็น for (i=1 ; i >= 1 ; i++ ) { จะเกิดผลเช่นใด
  ................................................................................................................................
 
3. จงเขียนโปรแกรมโดยใช้คำสั่ง for ในการหาค่าสูงสุด จากข้อมูลเลขจำนวนเต็มที่ผู้ใช้ป้อนเข้ามา
ทางแป้นพิมพ์ โดยขั้นแรกให้ผู้ใช้ป้อนจำนวนข้อมูล เก็บไว้ในตัวแปร m
ขั้นที่ 2 ให้วนรับค่าข้อมูลจำนวนเต็มจากแป้นพิมพ์ พร้อมตรวจสอบหาค่าสูงสุดไปเรื่อย ๆ
ขั้นที่ 3 เมื่อครบจำนวน m ข้อมูล ให้แสดงผลจำนวนสูงสุดทางจอภาพ
   
  ภาพตัวอย่าง การรันโปรแกรม เมื่อ m = 3 และข้อมูลเป็น 78 , 65 และ 71
   
  หน้าจอแรก เมื่อรันโปรแกรมขึ้นมา รอรับค่าจำนวนข้อมูล m ทางแป้นพิมพ์


หน้าจอ แสดงการป้อนจำนวน m เป็น 3 แล้วกดแป้น Enter

จะได้หน้าจอให้ป้อนค่าจำนวนเต็มที่ 1

หน้าจอ แสดงการป้อนค่าจำนวนเต็มที่ 1 เป็น 78 แล้วกดแป้น Enter

จะได้หน้าจอให้ป้อนค่าจำนวนเต็มที่ 2

หน้าจอ แสดงการป้อนค่าจำนวนเต็มที่ 2 เป็น 65 แล้วกดแป้น Enter

จะได้หน้าจอให้ป้อนค่าจำนวนเต็มที่ 3

หน้าจอ แสดงการป้อนค่าจำนวนที่ 3 เป็น 71 แล้วกดแป้น Enter

จะได้หน้าจอแสดงค่าสูงสุดออกมา ในตัวอย่าง ค่าสูงสุด คือ 78
   
  รหัสคำสั่ง (Source Code)
   
 
   
  รหัสโปรแกรม
  #include <stdio.h>
  int main() {
  int i , m , num , max = -9999 ;
  printf("Input m : ");
  scanf("%....." , &......);
  for (i =...... ; i <= ...... ; ........) {
  printf("Input Number %d : " , i);
  scanf("%d" , &num);
  if (.................)
  max = ..........;
  }
  printf("Max : %d : " , .........);
  return 0;
  }
   
 
4. จงพิจารณาโครงสร้างโปรแกรมด้านล่าง ประกอบการตอบคำถามต่อไปนี้
   
 
   
บรรทัดที่ ส่วนโครงสร้างโปรแกรม
   
1 while (เงื่อนไขที่ 1) {
2 คำสั่งที่ 1;
3 if (เงื่อนไขที่ 2)
4 continue;
5 คำสั่งที่ 2;
6 }
   
   
  1) ถ้าเงื่อนไขที่ 2 เป็นจริง คำสั่งบรรทัดใดจะถูกข้ามไป
  ................................................................................................................................
  2) ถ้าเงื่อนไขที่ 2 เป็นจริงในทุกรอบของการวนซ้ำ จะเกิดผลอย่างไร
  ................................................................................................................................
 
5. จงพิจารณาโครงสร้างโปรแกรมด้านล่าง ประกอบการตอบคำถามต่อไปนี้
   
 
   
บรรทัดที่ ส่วนโครงสร้างโปรแกรม
   
1 while (เงื่อนไขที่ 1) {
2 คำสั่งที่ 1;
3 if (เงื่อนไขที่ 2)
4 break;
5 คำสั่งที่ 2;
6 }
   
   
  1) ถ้าเงื่อนไขที่ 2 เป็นจริง คำสั่งบรรทัดใดจะถูกข้ามไป
  ................................................................................................................................
  2) การวนซ้ำในโครงสร้างนี้ จะสิ้นสุดได้ ในกรณีใดบ้าง
  ................................................................................................................................
 
6. จงพิจารณาโครงสร้างโปรแกรมด้านล่าง ประกอบการตอบคำถามต่อไปนี้
   
 
   
บรรทัดที่ ส่วนโครงสร้างโปรแกรม
   
1 for (i = 1 ; i <= M ; i++) {
2 คำสั่งที่ 1;
3 for ( j = 1 ; j <= N ; j++)
4 คำสั่งที่ 2;
5 }
   
   
  1) กำหนดให้ M = 3 และ N = 2 จงตอบคำถามต่อไปนี้
  คำสั่งที่ 1 จะถูกทำทั้งหมด.............ครั้ง และ คำสั่งที่ 2 จะถูกทำทั้งหมด ...............ครั้ง
   
  2) กำหนดให้ M = 4 และ N = 3 จงตอบคำถามต่อไปนี้
  คำสั่งที่ 1 จะถูกทำทั้งหมด.............ครั้ง และ คำสั่งที่ 2 จะถูกทำทั้งหมด ...............ครั้ง
   
  3) จากโครงสร้างโปรแกรมที่กำหนดให้ จงตอบคำถามต่อไปนี้
  คำสั่งที่ 1 จะถูกทำทั้งหมด.............ครั้ง และ คำสั่งที่ 2 จะถูกทำทั้งหมด ...............ครั้ง
 
7. จงเขียนโปรแกรมแสดงข้อความตัวเลข "0" และ "1"
โดยให้ใช้คำสั่งแสดงผลได้เพียง 2 คำสั่ง คือ printf("1") และ printf("0") เท่านั้น
มีเงื่อนไขการแสดงผลดังนี้
แถวที่ 1 และ คอลัมน์ที่ 1 แสดง "0"
แถวที่ 1 และ คอลัมน์ที่ 2 แสดง "1"
แถวที่ 1 และ คอลัมน์ที่ 3 แสดง "0"
.
.
แถวที่ 2 และ คอลัมน์ที่ 1 แสดง "1"
แถวที่ 2 และ คอลัมน์ที่ 2 แสดง "0"
แถวที่ 2 และ คอลัมน์ที่ 3 แสดง "1"
.
.
แถวที่ 5 และ คอลัมน์ที่ 1 แสดง "0"
แถวที่ 5 และ คอลัมน์ที่ 2 แสดง "1"
แถวที่ 5 และ คอลัมน์ที่ 3 แสดง "0"
.
.
แถวที่ 5 และ คอลัมน์ที่ 40 แสดง "1"

สรุป วิธีคิด คือ เอา (แถว + คอลัมน์) ถ้าเป็นเลขคู่ แสดง "0" ถ้าเป็นเลขคี่ แสดง "1"
ดังภาพข้างล่าง
   
  ภาพตัวอย่างการรันโปรแกรม
 
   
  รหัสคำสั่ง (Source Code)
   
 
   
  รหัสโปรแกรม
  #include <stdio.h>
  int main() {
  int i , j ;
  for (i = ..... ; i <= ..... ; .........) {
  for (j = ..... ; j <= ..... ; .........) {
  if ( ............ )
  printf("0");
  else
  printf("1");
  }
 

printf(".....");

  }
  return 0;
  }
   
/* หมายเหต { } ในคำสั่ง for ที่ 2 ไม่จำเป็นต้องมีก็ได้
เพราะมีคำสั่งเชิงประกอบ if - else เพียงคำสั่งเดียว */