ใบความรู้ท่ ี 3
                              เรื่อง แนวคิดในการเขียนโปรแกรม
        การเขียนโปรแกรมเพื่อแก้ ปัญหาได้ ปัญหาหนึง จนได้ ผลลัพธ์ ตามที่ต้องการ หากผู้เขียนโปรแกรม
                                                 ่
มีแนวคิดในการเขียนโปรแกรมที่ดี และทาการเขียนโปรแกรมตามแนวคิดที่ได้ วางไว้

ขันตอนการพัฒนาโปรแกรม
  ้
       ในการพัฒนาโปรแกรมมีขนตอนหลัก 5 ขันตอน ซึงไม่วาจะทาการพัฒนาโปรแกรมครังใดจะต้ อง
                           ั้           ้      ่ ่                         ้
ปฏิบติตามขันตอนเหล่านี ้
    ั      ้

โจทย์ : จงเขียนโปรแกรมรับค่ าเลขจานวนเต็ม 2 จานวนและหาผลบวกของเลขทั้ง 2 จานวนนั้น

1. วิเคราะห์ ปัญหา (Analysis)
         ขันตอนนี ้ถือว่าเป็ นขันตอนที่สาคัญที่สด ผู้เขียนโปรแกรมต้ องวิเคราะห์ปัญหาให้ ออกว่าจะต้ องทา
            ้                     ้             ุ
การเขียนโปรแกรมเพื่อแก้ ปัญหาอะไร เพราะหากวิเคราะห์หรื อมองปั ญหาผิดแล้ ว จะทาให้ เขียนโปรแกรม
ได้ ผลลัพธ์ ออกมาผิดไปจากสิงที่ต้องการด้ วย และวิเคราะห์ข้อมูลที่จะนาเข้ ามาใช้ ในโปรแกรมมีอะไรบ้ าง
                                ่
จากโจทย์ข้างต้ น สามารถแตกปั ญหาได้ เป็ น 2 ส่วน คือ
         - ต้ องรับข้ อมูลเลขจานวนเต็ม 2 ตัวเข้ ามาในโปรแกรม
              วิเคราะห์ กาหนดให้ X เก็บเลขจานวนเต็มที่ 1
                            กาหนดให้ y เก็บเลขจานวนเต็มที่ 2
         - เลขจานวนเต็มที่ 1 + เลขจานวนเต็มที่ 2 มีคาเท่ากับเท่าไร
                                                          ่
              วิเคราะห์ กาหนดให้ sum เก็บค่าผลบวกของเลขจานวนเต็มทัง้ 2 จานวน นันคือ sum =  ่
x+y

2. วางแผนและออกแบบ (Planning & Design)
           การวางแผน คือ การนาปั ญหาที่วิเคราะห์ได้ จากขันตอนที่ 1 มาวางแผนอย่างเป็ นขันตอนว่า
                                                              ้                          ้
จะต้ องเขียนโปรแกรมเพื่อแก้ ปัญหาอย่างไร การวางแผนอย่างเป็ นขันตอนนี ้ เรี ยกว่า อัลกอริ ทม
                                                                 ้                         ึ
(Algorithm) ซึงอัลกอริ ทมแบ่งออกเป็ น 2 รูปแบบ คือ
                 ่        ึ                                                           START
            ซูโดโค้ ด (Pseudo code) คือ การเขียนอัลกอริ ทมโดย
                                                            ึ                         READ X
                                                                                      READ Y
ใช้ ประโยคภาษาอังกฤษที่สอความหมายง่าย ๆ สามารถอ่าน
                            ื่                                                        COMPUTE SUM = X+Y
แล้ วเข้ าใจได้ โดยทันที จากโจทย์สามารถเขียนซูโดโค้ ดได้ ดงนี ้
                                                          ั                           PRINT SUM
                                                                                        STOP
จะเห็นว่า เมื่ออ่านซูโดโค้ ดแล้ วสามารถเข้ าใจได้ ทนทีวาขันตอนการเขียนโปรแกรมเป็ นอย่างไร
                                                   ั ่ ้
         โฟลวชาร์ ต (Flowchart) คือการเขียนอัลกอริ ทมโดยใช้ สญลักษณ์ รูปภาพเป็ นตัวสือความหมาย
                                                          ึ      ั                      ่
จากโจทย์ สามารถเขียนโฟลวชาร์ ตได้ ดงนี ้
                                       ั

                                                START


                                            INPUT X,Y


                                         SUM = X + Y


                                          PRINT SUM


                                               STOP


3. เขียนโปรแกรม (Coding)
        เป็ นการนาอัลกอริ ทมจากขันตอนที่ 2 มาเขียนโปรแกรมให้ ถกต้ องตามหลักไวยากรณ์ (syntax)
                            ึ     ้                           ู
ของภาษาซี จากโจทย์สามาเขียนโปรแกรมได้ ดงนี ้    ั
ตัวอย่างแสดง ซอร์ สโค้ ด
  1: #inclue <stdio.h>
  2: Void main()
  3: {
  4:                int x,y,sum;
  5:                printf(“Value of x is : “);
  6:                scanf(“%d”,&x);
  7:                printf(“Value of y is : “);
  8:                scanf(“%d”,&y);
  9:                sum= x+y;
10:                 printf(“Sum of %d+%d is %d n”,x,y,sum);
11: }
หากนาโปรแกรม มาพิจารณา จะพบว่าการเขียนโปรแกรมมีขนตอนเป็ นไปตามขันตอนของ
                                                         ั้              ้
อัลกอริ ทมที่ได้ วิเคราะห์ขึ ้นทุกประการ
         ึ

 1:   #inclue <stdio.h>
 2:   Void main()
 3:   {
 4:                 int x,y,sum;
 5:                 printf(“Value of x is : “);
                                                                               INPUT X
 6:                 scanf(“%d”,&x);
 7:                 printf(“Value of y is : “);
                                                                               INPUT Y
 8:                 scanf(“%d”,&y);
 9:                 sum= x+y;                                                  SUM = X+Y
10:                 printf(“Sum of %d+%d is %d n”,x,y,sum);
                                                                               PRINT SUM
11:   }



4. ทดสอบโปรแกรม
          เป็ นการนาผลลัพธ์ จากขันตอนที่ 3 มาทาการรัน จากนันทดสอบโดยปอนค่า x และ y เข้ าไปใน
                                  ้                            ้              ้
โปรแกรม และตรวจสอบผลลัพธ์ ที่ได้ วาถูกต้ องหรื อไม่ โดยทดสอบหลาย ๆ ครัง หากผลลัพธ์ ที่ได้ ถกต้ อง
                                       ่                                        ้                ู
แสดงว่าโปรแกรมที่เขียนขึ ้นถูกต้ องแล้ ว แต่หากผลลัพธ์ ถกบ้ างผิดบ้ างหรื อผิดทุกครังแสดงว่าโปรแกรมที่
                                                        ู                           ้
เขียนขึ ้นผิดพลาด ผุ้เขียนต้ องกลับไปตรวจสอบโปรแกรม
          จากโจทย์สามารถทดสอบโปรแกรมได้ ดงนี ้ ั
ผลลัพธ์ ของโปรแกรม
รันครังที่ 1
      ้
Value of x is : 5
Value of y is : 7
Sum of 5 + 7 is 12

รันครังที่ 2
      ้
Value of x is : 50
Value of y is : 30
Sum of 50 + 30 is 80
5. จัดทาคู่มือ (Documentation)
           จุดประสงค์ที่สาคัญของการทาคูมือ คือ ช่วยให้ ผ้ ที่ศกษาซอร์ สโค้ ดของโปรแกรม (source code)
                                          ่               ู ึ
ได้ งายขึ ้น จะเป็ นประโยชน์มากสาหรับการพัฒนาโปรแกรมในอนาคต เพราะจะช่วยให้ ศกษาซอร์ สโค้ ดได้
     ่                                                                                ึ
ง่ายและรวดเร็ วขึ ้น การจัดทาคูมือไม่มีกฎเกณฑ์ระบุไว้ แน่นอน แต่ผ้ เู ขียนโปรแกรมควรจัดทาคูมือให้ มี
                                ่                                                          ่
รายละเอียดมากที่สด   ุ
           จากโจทย์ สามารถจัดทาคูมือได้ ดงนี ้
                                    ่       ั
ชื่อโปรแกรม              หาค่าผลบวกของเลขจานวนเต็ม 2 จานวน
ตัวแปรที่ใช้             x เก็บค่าจานวนเต็มตัวที่ 1
                         Y เก็บค่าจานวนเต็มตัวที่ 2
                         Sum เก็บค่าผลบวกของตัวเลขจานวนเต็มทัง้ 2
                         จานวน
ชนิดของข้ อมูล           x,y,sum เป็ นข้ อมูลชนิดเลขจานวนเต็ม (integer)
วิธีการแก้ ปัญหา ใช้ สมการ sum = x + y

Learn 3

  • 1.
    ใบความรู้ท่ ี 3 เรื่อง แนวคิดในการเขียนโปรแกรม การเขียนโปรแกรมเพื่อแก้ ปัญหาได้ ปัญหาหนึง จนได้ ผลลัพธ์ ตามที่ต้องการ หากผู้เขียนโปรแกรม ่ มีแนวคิดในการเขียนโปรแกรมที่ดี และทาการเขียนโปรแกรมตามแนวคิดที่ได้ วางไว้ ขันตอนการพัฒนาโปรแกรม ้ ในการพัฒนาโปรแกรมมีขนตอนหลัก 5 ขันตอน ซึงไม่วาจะทาการพัฒนาโปรแกรมครังใดจะต้ อง ั้ ้ ่ ่ ้ ปฏิบติตามขันตอนเหล่านี ้ ั ้ โจทย์ : จงเขียนโปรแกรมรับค่ าเลขจานวนเต็ม 2 จานวนและหาผลบวกของเลขทั้ง 2 จานวนนั้น 1. วิเคราะห์ ปัญหา (Analysis) ขันตอนนี ้ถือว่าเป็ นขันตอนที่สาคัญที่สด ผู้เขียนโปรแกรมต้ องวิเคราะห์ปัญหาให้ ออกว่าจะต้ องทา ้ ้ ุ การเขียนโปรแกรมเพื่อแก้ ปัญหาอะไร เพราะหากวิเคราะห์หรื อมองปั ญหาผิดแล้ ว จะทาให้ เขียนโปรแกรม ได้ ผลลัพธ์ ออกมาผิดไปจากสิงที่ต้องการด้ วย และวิเคราะห์ข้อมูลที่จะนาเข้ ามาใช้ ในโปรแกรมมีอะไรบ้ าง ่ จากโจทย์ข้างต้ น สามารถแตกปั ญหาได้ เป็ น 2 ส่วน คือ - ต้ องรับข้ อมูลเลขจานวนเต็ม 2 ตัวเข้ ามาในโปรแกรม วิเคราะห์ กาหนดให้ X เก็บเลขจานวนเต็มที่ 1 กาหนดให้ y เก็บเลขจานวนเต็มที่ 2 - เลขจานวนเต็มที่ 1 + เลขจานวนเต็มที่ 2 มีคาเท่ากับเท่าไร ่ วิเคราะห์ กาหนดให้ sum เก็บค่าผลบวกของเลขจานวนเต็มทัง้ 2 จานวน นันคือ sum = ่ x+y 2. วางแผนและออกแบบ (Planning & Design) การวางแผน คือ การนาปั ญหาที่วิเคราะห์ได้ จากขันตอนที่ 1 มาวางแผนอย่างเป็ นขันตอนว่า ้ ้ จะต้ องเขียนโปรแกรมเพื่อแก้ ปัญหาอย่างไร การวางแผนอย่างเป็ นขันตอนนี ้ เรี ยกว่า อัลกอริ ทม ้ ึ (Algorithm) ซึงอัลกอริ ทมแบ่งออกเป็ น 2 รูปแบบ คือ ่ ึ START ซูโดโค้ ด (Pseudo code) คือ การเขียนอัลกอริ ทมโดย ึ READ X READ Y ใช้ ประโยคภาษาอังกฤษที่สอความหมายง่าย ๆ สามารถอ่าน ื่ COMPUTE SUM = X+Y แล้ วเข้ าใจได้ โดยทันที จากโจทย์สามารถเขียนซูโดโค้ ดได้ ดงนี ้ ั PRINT SUM STOP
  • 2.
    จะเห็นว่า เมื่ออ่านซูโดโค้ ดแล้วสามารถเข้ าใจได้ ทนทีวาขันตอนการเขียนโปรแกรมเป็ นอย่างไร ั ่ ้ โฟลวชาร์ ต (Flowchart) คือการเขียนอัลกอริ ทมโดยใช้ สญลักษณ์ รูปภาพเป็ นตัวสือความหมาย ึ ั ่ จากโจทย์ สามารถเขียนโฟลวชาร์ ตได้ ดงนี ้ ั START INPUT X,Y SUM = X + Y PRINT SUM STOP 3. เขียนโปรแกรม (Coding) เป็ นการนาอัลกอริ ทมจากขันตอนที่ 2 มาเขียนโปรแกรมให้ ถกต้ องตามหลักไวยากรณ์ (syntax) ึ ้ ู ของภาษาซี จากโจทย์สามาเขียนโปรแกรมได้ ดงนี ้ ั ตัวอย่างแสดง ซอร์ สโค้ ด 1: #inclue <stdio.h> 2: Void main() 3: { 4: int x,y,sum; 5: printf(“Value of x is : “); 6: scanf(“%d”,&x); 7: printf(“Value of y is : “); 8: scanf(“%d”,&y); 9: sum= x+y; 10: printf(“Sum of %d+%d is %d n”,x,y,sum); 11: }
  • 3.
    หากนาโปรแกรม มาพิจารณา จะพบว่าการเขียนโปรแกรมมีขนตอนเป็นไปตามขันตอนของ ั้ ้ อัลกอริ ทมที่ได้ วิเคราะห์ขึ ้นทุกประการ ึ 1: #inclue <stdio.h> 2: Void main() 3: { 4: int x,y,sum; 5: printf(“Value of x is : “); INPUT X 6: scanf(“%d”,&x); 7: printf(“Value of y is : “); INPUT Y 8: scanf(“%d”,&y); 9: sum= x+y; SUM = X+Y 10: printf(“Sum of %d+%d is %d n”,x,y,sum); PRINT SUM 11: } 4. ทดสอบโปรแกรม เป็ นการนาผลลัพธ์ จากขันตอนที่ 3 มาทาการรัน จากนันทดสอบโดยปอนค่า x และ y เข้ าไปใน ้ ้ ้ โปรแกรม และตรวจสอบผลลัพธ์ ที่ได้ วาถูกต้ องหรื อไม่ โดยทดสอบหลาย ๆ ครัง หากผลลัพธ์ ที่ได้ ถกต้ อง ่ ้ ู แสดงว่าโปรแกรมที่เขียนขึ ้นถูกต้ องแล้ ว แต่หากผลลัพธ์ ถกบ้ างผิดบ้ างหรื อผิดทุกครังแสดงว่าโปรแกรมที่ ู ้ เขียนขึ ้นผิดพลาด ผุ้เขียนต้ องกลับไปตรวจสอบโปรแกรม จากโจทย์สามารถทดสอบโปรแกรมได้ ดงนี ้ ั ผลลัพธ์ ของโปรแกรม รันครังที่ 1 ้ Value of x is : 5 Value of y is : 7 Sum of 5 + 7 is 12 รันครังที่ 2 ้ Value of x is : 50 Value of y is : 30 Sum of 50 + 30 is 80
  • 4.
    5. จัดทาคู่มือ (Documentation) จุดประสงค์ที่สาคัญของการทาคูมือ คือ ช่วยให้ ผ้ ที่ศกษาซอร์ สโค้ ดของโปรแกรม (source code) ่ ู ึ ได้ งายขึ ้น จะเป็ นประโยชน์มากสาหรับการพัฒนาโปรแกรมในอนาคต เพราะจะช่วยให้ ศกษาซอร์ สโค้ ดได้ ่ ึ ง่ายและรวดเร็ วขึ ้น การจัดทาคูมือไม่มีกฎเกณฑ์ระบุไว้ แน่นอน แต่ผ้ เู ขียนโปรแกรมควรจัดทาคูมือให้ มี ่ ่ รายละเอียดมากที่สด ุ จากโจทย์ สามารถจัดทาคูมือได้ ดงนี ้ ่ ั ชื่อโปรแกรม หาค่าผลบวกของเลขจานวนเต็ม 2 จานวน ตัวแปรที่ใช้ x เก็บค่าจานวนเต็มตัวที่ 1 Y เก็บค่าจานวนเต็มตัวที่ 2 Sum เก็บค่าผลบวกของตัวเลขจานวนเต็มทัง้ 2 จานวน ชนิดของข้ อมูล x,y,sum เป็ นข้ อมูลชนิดเลขจานวนเต็ม (integer) วิธีการแก้ ปัญหา ใช้ สมการ sum = x + y