Page 82 - การพัฒานาหนังสืออิเล็กทรอนิกส์เรื่องวิวัฒนาการภาษาของคอมพิวเตอร์
P. 82

ํ
                                                             �
                                                             หน่วยที6 คาสั�งควบคุมแบบวนซา                   76                                                                      หน่วยที6 คาสั�งควบคุมแบบวนซา                   77
                                                                                         ํ�
                                                                                                                                                                                        ํ
                                                                                                                                                                                                                ํ�
                                                                                                                                                                                   �
        .......................................................................................................................................................  .........................................................................................................................................................
        อธิบาย                                                                                                                 จากผังงาน เขียนโปรแกรมได้ดังนี้

        เงื่อนไขการวนซ้ำา หมายถึง นิพจน์ที่สามารถประเมินค่าได้ เขียนอยู่ในเครื่องหมาย ()

        ให้ค่าเป็นจริงหรือเท็จ                                                                                                     บรรทด           รหัสตนฉบบ (Source Code)                              อธิบายคําส�ง ั
                                                                                                                                       ั
                                                                                                                                                       ้
                                                                                                                                                          ั
          คำาสั่่ง do - while จะเริ่มต้นประมวลผลคำาสั่งที่ต้องการทำาซ้ำาก่อน แล้วจึง ตรวจ                                                                                          /* เปนคําสังของตัวประมวลผลกอนซ จะมผลให้แฟ้ม stdio.h ซึ�งเปนแฟ้มส่วน
                                                                                                                                                                                                                              ็
                                                                                                                                                                                      ็
                                                                                                                                                                                                       ่
                                                                                                                                                                                                             ี
                                                                                                                                                                                                          ี
                                                                                                                                                                                          �
        สอบ เงื่อนไขการวนซ้ำา ขณะที่เงื่อนไขการวนซ้ำามีค่าเป็นจริง จะวนกลับไปทำาคำาสั่งที่                                          /*1*/  #include <stdio.h>                      หัวทใช้เกบรวบรวมคําสังเกยวกับการรับและแสดงผลข้อมูล ถูกอานเข้ามาเพอ � ื
                                                                                                                                                                                      ี
                                                                                                                                                                                      �
                                                                                                                                                                                         ็
                                                                                                                                                                                                    ี
                                                                                                                                                                                                  �
                                                                                                                                                                                                    �
                                                                                                                                                                                                                          ่
                                                                                                                                                                                                      ี
        ต้องการทำาซ้ำาอีก จนกระทั่ง                                                                                                                                                ประมวลผลร่วมกับโปรแกรมน� */
                                                                                                                                                                                                 ็
                                                                                                                                                                                                   ั
                                                                                                                                                                                                                        �
        การตรวจสอบค่า เงื่อนไขการวนซ้ำา มีค่าเป็นเท็จ ก็จะออกจากการวนซ้ำา (ออกจาก                                                   /*2*/  int main() {                            /* ประกาศ main เปนฟงก์ชันหลัก ชนิดจํานวนเต็ม และเริมต้น block ของ
                                                                                                                                                                                    ั
                                                                                                                                                                                   ฟงก์ชัน main (เริ�มต้นโปรแกรม) */
        คำาสั่ง do - while) และไปทำาคำาสั่งถัดไป                                                                                    /*3*/  int i = 10;                             /* ประกาศตัวแปร i เปนชนิดจํานวนเต็ม พร้อมกําหนดค่าเริมต้นเปน 10 */
                                                                                                                                                                                                 ็
                                                                                                                                                                                                                            ็
                                                                                                                                                                                                                        �
                                                                                                                                                                                                            �
                                                                                                                                                                                                  �
                                                                                                                                                                                                    ี
                                                                                                                                                                                                               ี
                                                                                                                                                                                                    �
                                                                                                                                                                                                                              �
                                                                                                                                                                                                                 �
                                                                                                                                                                                             �
                                                                                                                                                                                                                                    ี
          คำาสั่งที่ต้องการทำาซ้ำา ในคำาสั่ง do - while จะถูกทำาอย่างน้อย 1 รอบเสมอ แม้                                             /*4*/  do {                                    /* ขอบเขตให้เริมทํา คําสังทต้องการทําซํา (มคําสังย่อยมากกว่า 1 คําสัง ต้องเขยน
                                                                                                                                                                                   คําสังภายใต้เครืองหมาย { }) */
                                                                                                                                                                                      �
                                                                                                                                                                                             �
        เงื่อนไขการวนซ้ำาจะเป็นเท็จก็ตาม                                                                                            /*5*/  printf("%d\n" , i);                     /* แสดงข้อความ "%d" โดยแสดงค่า i ใน %d เสร็จแล้วขึ�นบรรทัดใหม่ */
                                                                                                                                                                                                             ี
                                                                                                                                                                                                                   �
          คำาสั่งภายใต้คำาสั่ง do - while อาจเป็นคำาสั่งง่าย ๆ หรือ คำาสั่งเชิงประกอบ                                               /*6*/  i--;                                    /* ลดค่าตัวนับ i ครั�งละ 1 (ความหมายเดยวกับคําสัง i = i - 1 หรือ i -=
        หากมีมากกว่า 1 คำาสั่ง ต้องเขียนคำาสั่งภายใต้เครื่องหมาย {}                                                                                                                1) */    ่
                                                                                                                                                                                   /* ตรวจสอบวา ค่า i มากกว่าหรือเท่ากับ 1 จริงหรือไม่ ถ้าจริง วนกลับไปทํา
                                                                                                                                                                                                                     �
                                                                                                                                                                                                                  ี
                                                                                                                                                                                                                 �
                                                                                                                                                                                      ั�
                                                                                                                                                                                                  �
                                                                                                                                                                                            �
                                                                                                                                                                                            ี
                                                                                                                                    /*7*/  } while (i >= 1);                       คําสงบรรทัดท 4 แล้วเริมทํา คําสังทต้องการทําซําอกครัง ถาเท็จ สิ�นสุดการวนซํ�า
                                                                                                                                                                                                         ี
                                                                                                                                                                                                         �
                                                                                                                                                                                                       �
                                                                                                                                                                                                                       ้
        ตัวอย่างที่ 3 จงเขียนโปรแกรมแสดงตัวเลขจาด 10 ถึง 1 ทางจอภาพ ( ex6-06.c )                                                                                                   ด้วยคําสง do - while และไปทําคําสงบรรทัดท 8 */
                                                                                                                                                                                         ั�
                                                                                                                                                                                                             ั�
                                                                                                                                                                                                                   ี
                                                                                                                                                                                                                   �
        จากโจทย์ เขียนผังงาน แสดงการแก้ปัญหา ได้ดังนี้                                                                              /*8*/  return 0;                               /* คนค่า 0 ให้ฟงก์ชัน main โปรแกรมทํางานถูกต้องสมบูรณ์ */
                                                                                                                                                                                             ั
                                                                                                                                                                                      ื
                                                                                                                                    /*9*/  }                                       /* สิ�นสุด block ของฟงก์ชัน main (สิ�นสุดโปรแกรม) */
                                                                                                                                                                                                   ั
                                                                                                                               ผลการรันโปรแกรม
   77   78   79   80   81   82   83   84   85   86   87