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

 แบบทดสอบก่อนเรียน
 หน่วยที่ 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.1 คำสั่ง while
หัวข้อย่อยที่ 6.2 คำสั่ง do - while และทบทวนเนื้อหาหน่วยที่ 3 ข้อมูลพื้นฐานและตัวดำเนินการ
ในหัวข้อย่อยที่ 3.5 ตัวดำเนินการ และ 3.6 นิพจน์ และทบทวนเนื้อหาหน่วยที่ 4 คำสั่งพื้นฐานในภาษาซี ในหัวข้อย่อยที่ 4.1 คำสั่งคำนวณ หรือสืบค้นจากอินเทอร์เน็ต ให้ได้ใจความสำคัญ ถูกต้องครบถ้วน
ตามหัวข้อที่กำหนดให้ต่อไปนี้
 
1. จงพิจารณานิพจน์ที่กำหนดให้ ประกอบการตอบคำถามต่อไปนี้ โดยกำหนดให้ x เป็นจำนวนเต็ม (ทบทวนเนื้อหา หน่วยที่ 3 ในหัวข้อย่อยที่ 3.5 ตัวดำเนินการ และ 3.6 นิพจน์)
   
  1) x >= 1 && x <= 5 จงหาค่า x ที่เป็นไปได้ทั้งหมด ที่ทำให้ค่านิพจน์เป็นจริง
  .............................................................................................................................................
  2) x > 5 && x < 10 จงหาค่า x ที่เป็นไปได้ทั้งหมด ที่ทำให้ค่านิพจน์เป็นจริง
  .............................................................................................................................................
  3) x >= 1 && x <= 8 && x != 5 จงหาค่า x ที่เป็นไปได้ทั้งหมด ที่ทำให้ค่านิพจน์เป็นจริง
  .............................................................................................................................................
 
2. จงพิจารณาโปรแกรมด้านล่าง ประกอบการตอบคำถามต่อไปนี้
   
 
   
บรรทัดที่ รหัสโปรแกรม
/*1*/ #include <stdio.h>
/*2*/ int main() {
/*3*/ int i = 1;
/*4*/ while (i <= 5) {
/*5*/ printf("Hello Thailand\n");
/*6*/ i++;
/*7*/ }
/*8*/ return 0;
/*9*/ }
   
   
  1) เมื่อทำงานถึงบรรทัดที่ 8 ข้อความ "Hello Thailand" จะถูกแสดงกี่บรรทัด
  ................................................................................................................................
  2) เมื่อทำงานถึงบรรทัดที่ 8 ค่า i มีค่าเท่าไร
  ................................................................................................................................
  3) ถ้าเปลี่ยนคำสั่ง บรรทัดที่ 3 เป็น int i = 6; จะเกิดผลเช่นใด
  ................................................................................................................................
  4) ถ้าเปลี่ยนคำสั่ง บรรทัดที่ 4 เป็น while (i >= 1) { จะเกิดผลเช่นใด
  ................................................................................................................................
 
3. จงพิจารณาโปรแกรมด้านล่าง ประกอบการตอบคำถามต่อไปนี้
   
 
   
บรรทัดที่ รหัสโปรแกรม
/*1*/ #include <stdio.h>
/*2*/ int main() {
/*3*/ int i = 1 , sum = 0;
/*4*/ while (i <= 10) {
/*5*/ sum += i;
/*6*/ i++;
/*7*/ }
/*8*/ printf("Sum 1 - 10 : %d" , sum);
/*9*/ return 0;
/*10*/ }
   
   
  1) เมื่อทำงานถึงบรรทัดที่ 8 ค่า i จะมีค่าเท่าไร
  ................................................................................................................................
  2) เมื่อโปรแกรมประมวลผลเสร็จ คำสั่งบรรทัดที่ 5 จะถูกทำกี่ครั้ง
  ................................................................................................................................
  3) ถ้าเปลี่ยนคำสั่ง บรรทัดที่ 3 เป็น int i = 11 , sum = 0 ; จะเกิดผลเช่นใด
และค่า sum ในบรรทัดที่ 8 จะเป็นเท่าใด
  ................................................................................................................................
  ................................................................................................................................
 
4. จงพิจารณาโปรแกรมด้านล่าง ประกอบการตอบคำถามต่อไปนี้
   
 
   
บรรทัดที่ รหัสโปรแกรม
/*1*/ #include <stdio.h>
/*2*/ int main() {
/*3*/ int i = 1 , sum = 0 , num;
/*4*/ while (i <= 5) {
/*5*/ printf("Input Number %d : ", i);
/*6*/ scanf("%d" , &num);
/*7*/ sum += num;
/*8*/ i++;
/*9*/ }
/*10*/ printf("Average of 5 Numbers : %.2f" , (float)sum/5);
/*11*/ return 0;
/*12*/ }
   
   
  1) เมื่อโปรแกรมประมวลผลเสร็จ คำสั่งบรรทัดที่ 6 จะถูกทำกี่ครั้ง
  ................................................................................................................................
  2) ข้อมูลค่าเฉลี่ยที่แสดงในบรรทัดที่ 10 เป็นข้อมูลชนิดใด
หากไม่ใส่ (float) ไว้หน้า sum/5 จะเกิดผลเช่นใด
  ................................................................................................................................
  3) ถ้าเปลี่ยนคำสั่ง บรรทัดที่ 4 เป็น while ( i <= 10 ) {
แล้วคำสั่งในบรรทัดที่ 10 ต้องแก้ไขเป็นอะไร โปรแกรมจึงจะทำงานได้ถูกต้อง
  ................................................................................................................................
 
5. จงพิจารณาโปรแกรมด้านล่าง ประกอบการตอบคำถามต่อไปนี้
   
 
   
บรรทัดที่ รหัสโปรแกรม
/*1*/ #include <stdio.h>
/*2*/ int main() {
/*3*/ int i = 1 , sum = 0 , num , N;
/*4*/ printf("Input last number : ");
/*5*/ scanf("%d" , &N);
/*6*/ while (i <= N) {
/*7*/ printf("Input Number %d : ", i);
/*8*/ scanf("%d" , &num);
/*9*/ sum += num;
/*10*/ i++;
/*11*/ }
/*12*/ printf("Average of %d Numbers : %.2f" , N , (float)sum/N);
/*13*/ return 0;
/*14*/ }
   
   
  1) เมื่อประมวลผลโปรแกรมนี้เสร็จ คำสั่งในบรรทัดที่ 8 จะถูกทำกี่ครั้ง
  ........................................................................................................................................
  2) เมื่อทำงานถึงบรรทัดที่ 12 ค่า i จะมีค่าเท่าไร
  ........................................................................................................................................
  3) ถ้าผู้ใช้ป้อนค่า N เป็น 3 และป้อนข้อมูลเข้ามาเป็น 8 , 3 และ 7 ตามลำดับ
แล้วคำสั่งในบรรทัดที่ 12 จะแสดงผลอย่างไร
  ........................................................................................................................................
  4) ถ้าผู้ใช้ป้อนค่า N เป็น 0 จะเกิดผลเช่นไร แล้วส่งผลให้คำสั่งบรรทัดที่ 12 แสดงผลอย่างไร
  ........................................................................................................................................
 
6. จงพิจารณาโปรแกรมด้านล่าง ประกอบการตอบคำถามต่อไปนี้
   
 
   
บรรทัดที่ รหัสโปรแกรม
/*1*/ #include <stdio.h>
/*2*/ int main() {
/*3*/ int i = 1;
/*4*/ do {
/*5*/ printf("Hello Thailand\n");
/*6*/ i++;
/*7*/ } while (i <= 5);
/*8*/ return 0;
/*9*/ }
   
   
  1) เมื่อทำงานถึงบรรทัดที่ 8 ข้อความ "Hello Thailand" จะถูกแสดงกี่บรรทัด
  ................................................................................................................................
  2) เมื่อทำงานถึงบรรทัดที่ 8 ค่า i มีค่าเท่าไร
  ................................................................................................................................
  3) ถ้าเปลี่ยนคำสั่ง บรรทัดที่ 3 เป็น int i = 6; จะเกิดผลเช่นใด
  ................................................................................................................................
  4) ถ้าเปลี่ยนคำสั่ง บรรทัดที่ 7 เป็น } while (i >= 1); จะเกิดผลเช่นใด
  ................................................................................................................................
 
7. จงพิจารณาโปรแกรมด้านล่าง ประกอบการตอบคำถามต่อไปนี้
   
 
   
บรรทัดที่ รหัสโปรแกรม
/*1*/ #include <stdio.h>
/*2*/ int main() {
/*3*/ int i = 5;
/*4*/ do {
/*5*/ printf("%d\n" , i);
/*6*/ i--;
/*7*/ } while (i >= 1);
/*8*/ return 0;
/*9*/ }
   
   
  1) โปรแกรมนี้ ทำอะไร จงอธิบาย
  ................................................................................................................................
  2) เมื่อทำงานถึงบรรทัดที่ 8 ค่า i มีค่าเท่าไร
  ................................................................................................................................
  3) เมื่อโปรแกรมนี้ทำงานเสร็จ จะได้สิ่งที่แสดงออกหน้าจอ กี่บรรทัด
  ................................................................................................................................
  4) ถ้าเปลี่ยนคำสั่ง บรรทัดที่ 3 เป็น int i = 0; จะเกิดผลเช่นใด
  ................................................................................................................................
 
8. จงเขียนโปรแกรมโดยใช้คำสั่ง do - while ในการแสดงผลรูปดาว ดังรูป



โดยมีข้อจำกัดให้ใช้คำสั่งแสดงผลได้แค่ 2 คำสั่งนี้เท่านั้น คือ printf("*") กับ printf(" ")
และใช้ได้เพียงคำสั่งละ 1 ครั้งเท่านั้น (เคล็ดลับอยู่ที่เลขคู่เลขคี่นะจ๊ะ....)
   
  รหัสคำสั่ง (Source Code)
   
 
   
  รหัสโปรแกรม
  #include <stdio.h>
  int main() {
  int i = 1;
  do {
  if (................)
  printf("*");
  else
  printf(" ");
  ......................;
  } while (.................);
  return 0;
  }