ขั ้ น ตอนในการพั ฒ นา Software
  วิธีการในการพัฒนา Software จะมีรูปแบบ (Model) ในการพัฒนาสองแบบ
ใหญ่ ๆ คือ Waterfall model และ Iterative model

1. Waterfall model

 R e q u ir e m e n t


                                    A n a ly s is &
                                       D e s ig n


                                                      C o d in g



                                                                   T e s t in g



                        M a in t a in a c e                                       P ro d u ct



   เหมาะสมสำาหรับการพัฒนาโปรแกรมสำาเร็จรูปที่เป็นลักษณะ Mass product
กล่าวคือผลิตออกมาทีละเยอะ ๆ เช่น MS Windows, MS Office ขั้นตอนต่าง ๆ
มีรายละเอียดดังนี้
   1.1 Requirement เป็นขั้นตอนในการเก็บความต้องการของผู้ใช้โปรแกรม
       ว่า ผู้ใช้โปรแกรมต้องการโปรแกรมอะไร ทำางานอย่างไร
   1.2 Analysis and design เป็นขั้นตอนในการเอาความต้องการของผู้ใช้มา
       วิเคราะห์ถึงความเป็นไปได้และความเหมาะสม เลือกเครื่องมือที่จะ
       ทำาการพัฒนาโปรแกรม แล้วทำาการออกแบบ (Design) โปรแกรม
   1.3 Coding เป็นขั้นตอนของการเขียนโปรแกรมตามที่เราออกแบบมา
   1.4 Testing เป็นขั้นตอนในการเอาโปรแกรมที่เขียนเสร็จแล้วมาทำาการ
       ทดสอบหาข้อผิดพลาด
   1.5 Product เมื่อทำาการทดสอบจนแน่ใจแล้วว่าไม่มีข้อผิดพลาดก็นำา
       โปรแกรมไปใช้งานจริง
   1.6 Maintenance เป็นขั้นตอนในการดูแลผู้ใช้โปรแกรมว่ามีปัญหาในการ
       ใช้งานหรือไม่อย่างไร พร้อมให้คำาปรึกษาและรับฟังข้อคิดเห็นเพื่อจะ
       นำามาพัฒนาโปรแกรมในรุ่นถัดไป

2. Iterative model
   เนื่องจาก Waterfall model ขาดการรับฟังข้อคิดเห็นจากผู้ใช้โปรแกรม
(Feedback) เพื่อที่จะนำามาปรับปรุงโปแกรมโดยทันที ทำาให้โปรแกรมที่ออกมา
ไม่ตรงกับความต้องการของผู้ใช้โปรแกรมอย่างแท้จริง จึงทำาให้เกิด Model
ในการพัฒนาโปรแกรมแบบใหม่ที่เรียก Iterative model ซึ่งมีรายละเอียดดังนี้
I n it ia l
                            r e q u ir e m e n t
                            a n d a n a ly s is




                                                        D e s ig n



                                        M o re
 M a in t a in a c e             r e q u ir e m e n t                  C o d in g
                                 a n d a n a ly s is



                                                        T e s t in g



                                                                                    C o m p le t e
                                                                                     P ro d u c t


       2.1 Initial requirement and analysis เป็นการเก็บความต้องการของผู้ใช้
           โปรแกรมครั้งแรกแล้วนำามาวิเคราะห์ พร้อมทั้งหาเครื่องมือที่จะนำา
           มาพัฒนาโปรแกรม
       2.2 Design ทำาการออกแบบโปรแกรมตามที่ได้วิเคราะห์ไว้
       2.3 Coding ทำาการเขียนโปรแกรมตามที่ได้ออกแบบไว้
       2.4 Testing ทำาการหาข้อผิดพลาดของโปรแกรม ซึ่งผู้ที่จะทำาการตรวจ
           สอบโปรแกรมจะมีทั้งการตรวจสอบภายในทีมเขียนโปรแกรมและ
           การตรวจสอบจากผู้ใช้โปรแกรม
       2.5 More requirement and analysis ถ้าผู้ใช้โปรแกรมตรวจสอบโปรแกรม
           แล้วยังไม่เป็นที่น่าพอใจหรือยังพบข้อผิดพลาดของโปรแกรม ให้จะ
           นำาเอาข้อเสนอเหล่านั้นมาทำาการแก้ไขเพิ่มเติม โดยทำาการ Design
           ใหม่อีกรอบหนึ่ง
       2.6 Product ถ้าการทดสอบเป็นที่น่าพอใจแล้วจึงเริ่มใช้ผลิตภัณฑ์กับงาน
           ระบบจริง
       2.7 Maintenance ถึงกระนั้นผลิตภัณฑ์ที่ใช้งานจริงย่อมมีปัญหาเกิดขึ้น
           เสมอ ผู้ใช้งานอาจมีความต้องการเพิ่ม จึงนำาเอาความต้องการเหล่า
           นั้นเข้าสู่ขั้นตอนการพัฒนาโปรแกรมอีกครั้งในขั้นตอนของ More
              requirement and analysis

   นอกจากนั้นแล้วยังมีการพัฒนา Model สำาหรับการพัฒนา Software อีก
หลายแบบเช่น Spiral model เป็นต้น

คำ า ถาม
    1. จงอธิบายการวิธีการพัฒนาโปรแกรมแบบ Waterfall model และ
          Iterative model
2. จงอธิบายข้อดีข้อเสียของการพัฒนาโปรแกรมแบบ Waterfall model
   และ Iterative model
ชนิ ด ของภาษาและเครื ่ อ งมื อ ที ่ ใ ช้ ใ นการพั ฒ นา
โปรแกรม
1.   ตระกู ล ภาษาคอมพิ ว เตอร์ ท ี ่ น ิ ย มใช้ ใ นปั จ จุ บ ั น ได้ แ ก่
     1.1. ภาษาสัญลักษณ์ (Assembly หรือ Symbolic language) เป็นภาษาที่ติดต่อ
          กับเครื่องคอมพิวเตอร์ได้โดยตรงโดยไม่ต้องแปลความหมายแต่
          อย่างใด จุดเด่นของภาษานี้คือขนาดของโปรแกรมมีขนาดเล็กจึง
          เป็นที่นิยมใช้ในงานควบคุมอุตสาหกรรม หรืองานที่ต้องการความ
          รวดเร็วในการทำางานเช่นส่วนติดต่อกับ Hardware ของระบบปฎิบัติ
          การ ข้อเสียของภาษาสัญลักษณ์นี้ก็คือทำาความเข้าใจได้ยากทำาให้
          การพัฒนาโปรแกรมยากตามไปด้วย และโปรแกรมขึ้นอยู่กับ
          Hardware มากเกินไป
     1.2. ภาษาซี (C Language) เป็นภาษาที่ได้รับความนิยมมากภาษาหนึ่ง
          เพราะสามารถเขียนโปรแกรมที่มีลักษณะเป็นโครงสร้าง (Structure
          program) โปรแกรมที่เขียนขึ้นขึ้นอยู่กับ Hardware น้อยกว่าภาษา
          สัญลักษณ์ทำาให้สามารถเขียนโปแกรมครั้งเดียวสามารถใช้ได้หลาก
          หลายอุปกรณ์ โปรแกรมที่เขียนขึ้นมีความเร็วเป็นรองแค่ภาษา
          สัญลักษณ์เท่านั้น ภาษาซีแตกแขนงออกเป็นภาษา C++, Java, C#
          เป็นต้น
     1.3. ภาษาปาสกาล (Pascal) เป็นภาษาที่เหมาะสมสำาหรับการเรียนรู้การ
          เขียน สามารถเขียนโปรแกรมที่มีลักษณะเป็น Black-box ได้อย่าง
          แท้จริงทำาให้เหมาะสมกับงานทางด้าน Real-time และการจำาลองการ
          ทำางานข้อเสียคือโปรแกรมที่ออกมาทำางานช้ากว่าภาษาซี ภาษาปาส
          คาลแตกแขนงออกไปเป็น Ada, Delphi, Kylix เป็นต้น
     1.4. ภาษาเบสิก (BASIC : Beginners All-purpose Symbolic Instruction Code)
          เป็นภาษาแรกที่มีใช้ในไมโครคอมพิวเตอร์ เหมาะสมสำาหรับผู้เขียน
          โปรแกรมเบื้องต้น งานที่ไม่ซับซ้อนมากนัก ไม่เหมาะสมสำาหรับงาน
          ในขนาดใหญ่ แต่ก็ได้ถูกปรับปรุงอย่างมากในจนกลายเป็นภาษา
          Visual Basic ที่เป็นต้นแบบของการพัฒนาโปรแกรมแบบ Visual

  นอกจากนั้นยังมีภาษาอื่น ๆ ที่ไม่ได้กล่าวถึง ซึ่งแต่ละภาษาใช้งานเฉพาะ
ทางแตกต่างกันไปเช่น PERL, PHP, LISP, LabView, Tcl/Tk, COBAL,
FORTRAN, SQL

2. เครื ่ อ งมื อ ที ่ ใ ช้ ใ นการพั ฒ นาโปรแกรม
   หลังจากที่เลือกภาษาที่จะใช้ในการพัฒนาโปรแกรมแล้ว การเลือก
เครื่องมือที่ใช้ในการพัฒนาโปรแกรมก็สำาคัญเช่นกัน ถ้าเลือกเครื่องมือที่มี
ลักษณะเข้าใจยาก หาข้อผิดพลาดของโปรแกรมเมื่อเกิด Error ขึ้นยาก ก็จะ
ทำาให้ระยะเวลาการพัฒนาโปรแกรมใช้เวลานาน ในขั้นตอนนี้เราต้องเลือก
สองสิ่งได้แก่
   2.1 เลือกตัวแปลภาษา (Complier) ที่จะใช้
   2.2 เลือกโปรแกรมที่ใช้เขียน Code (Editor) ที่ใช้ในการเขียนโปรแกรม
ตั ว อย่ า งการเลื อ กชนิ ด ของภาษาและเครื ่ อ งมื อ ที ่ ใ ช้ ใ นการ
พั ฒ นาโปรแกรม
ตั ว อย่ า ง ١ ต้องการเขียนโปรแกรมสั่งงานไมโครคอนโทรลเลอร์ตระกูล
68HC11 ไปควบคุมอุณภูมิเตาอบ
    1. ทำาการเลือกภาษาที่จะใช้ในการเขียนโปรแกรม ส่วนมากในงาน
       ควบคุมแล้วภาษาซี เหมาะสมที่สุด เพราะเป็นภาษาสูง เข้าใจง่าย ไม่
       ต้องเสียเวลาศึกษาภาษา Assembly
    2. ทำาการเลือก Complier ซึ่งมีหลายตัวมาก (สามารถหาได้จาก Internet)
       เช่น GCC, Cosmic C
    3. ทำาการเลือก Editor ที่ใช้เขียนโปรแกรมอาจจะเป็น Notepad ที่แถมมา
       กับ Windows หรือจะใช้ Editor สำาเร็จรูปเช่นถ้าเลือก Cosmic C ก็จะมี
       Editor สำาเร็จรูปมาให้เลย

ตั ว อย่ า ง ٢ ต้องการสอนนักศึกษาเขียนโปรแกรมเป็นอย่างน้อนหนึ่งภาษา
    1. ทำาการเลือกภาษาที่จะใช้ในการเขียนโปรแกรม เนื่องจากว่า
       คอมพิวเตอร์ที่ใช้เป็นตระกูล x86 ทั้งหมดและเพื่อให้นักศึกษาสามาร
       ทำาโปรเจคทางด้าน Control ได้ดังนั้นภาษาซีจึงเป็นภาษาที่เหมาะสม
    2. ทำาการเลือก Complier เนื่องจากระบบปฎิบัติการที่ใช้เป็น MS Windows
       จึงเลือก Turbo C 2.0 ซึงมีข้อดีคือแจกฟรี (สามารถ Download ได้จาก
       Borland) และเป็นที่นิยมใช้อย่างมาก
    3. ทำาการเลือก Editor ใช้ Editor ที่แถมมาพร้อมกับ Turbo C

คำ า ถาม
    1. จงเปรียบเทียบข้อดีของภาษาในตระกูล ภาษาสัญลักษณ์ ภาษาซี
       ภาษาปาสคาล และภาษาเบสิก
    2. จากตัวอย่างที่ ١ และตัวอย่างที่ ٢ จงบอกขั้นตอนของการเลือกชนิด
       ของภาษาและเครื่องมือที่ใช้ในการพัฒนาโปรแกรมมาอย่างคร่าว ๆ

Algorithm, Flowchart and Pseudo code
แนวคิ ด การเขี ย นโปรแกรม (Algorithms)
         คือ แผนการสั่งงานให้คอมพิวเตอร์ทำาตามที่เราต้องการ ตัวอย่างเช่น
ต้องการหาผลรวมของตัวเลข ٢ จำานวน จะต้องทำาอย่างไร? เป็นต้น ถ้าจะ
เปรียบเทียบแนวความคิดของมนุษย์กับเครื่องคอมพิวเตอร์ในการแก้ปัญหา
เรื่องนี้ อาจเป็นไปดังนี้คือ

แนวความคิดของมนุษย์                   แนวความคิดของเครื่องคอมพิวเตอร์
١. บอกตัวเลขทั้ง ٢ จำานวนนั้นมา       ١. ต้องมีตัวแปร ٣ ตัวเพื่อจดจำาค่าตัว
ก่อน                                  เลข ٢ จำานวนและรองรับผลการ
٢. ถ้าง่ายมากก็คิดในใจ คือ บวก        คำานวณที่เกิดขึ้นอีก ١ จำานวน
เสร็จแล้วก็บอกคำาตอบได้เลย            ٢. ต้องกรอกค่าตัวเลขใส่ตัวแปรที่ ١
٣. ถ้ายากนักก็ใช้เครื่องคิดเลขช่วย    ٣. ต้องกรอกค่าตัวเลขใส่ตัวแปรที่ ٢
แล้วถึงจะได้คำาตอบ                    ٤. สั่งให้นำาค่าจากตัวแปรที่ ١ มาบวก
กับตัวแปรที่ ٢ โดยนำาผลลัพธ์ใส่
                                                        ตัวแปรที่ ٣
                                                        ٥. สั่งให้แสดงผลลัพธ์จากตัวแปรที่ ٣

 เ ริ่ ม ต้ น ก า ร ทำา ง า น            จะเห็นได้ว่าแนวคิดของมนุษย์จะเป็นแบบง่าย ๆ
                                  ไม่มีระเบียบอะไรมากนัก แต่ถ้าเป็นคอมพิวเตอร์ต้องมีการ
                                  คิดอย่างเป็นขั้นตอน มีตัวแปรสำาหรับข้อมูลต่างๆ
                                         ต่อจากนั้นก็ทำา Algorithm ที่ยังเป็นเพียงแค่แนวคิดที่
  รั บ ตั ว เ ล ข ตั ว แ ร ก
 เ ก็ บ ไ ว้ ที่ ตั ว แ ป ร A     เป็นนามธรรม มาทำาเป็นสิ่งที่เป็นรูปธรรมได้แก่ ผัง
                                  งาน(Flowchart) และรหัสเทียม (Pseudocode)

  รั บ ตั ว เ ล ข ตั ว แ ร ก      ผั ง งาน (Flowchart)
 เ ก็ บ ไ ว้ ที่ ตั ว แ ป ร B
                                          คือแผนภาพใช้สำาหรับอธิบายขั้นตอนการทำางาน
                                  ของโปรแกรมคอมพิวเตอร์ โดยอาศัยสัญลักษณ์และความ
นำา ผ ล ลั พ ธ์ เ ก็ บ ไ ว้ ที่   สั้น ๆ ในการสื่อความหาย ใช้เป็นโครงร่างก่อนการเขียน
 ตั ว แ ป ร C โ ด ย ที่ C
   มี ค่ า เ ท่ า กั บ A + B
                                  โปรแกรมคอมพิวเตอร์ เพื่อให้ผู้เขียนโปรแกรมมองเห็น
                                  ภาพรวมทั้งหมดของโปรแกรม Flowchart แบ่งออกเป็นสอง
                                  แบบได้แก่
                                          ١. ผั ง งานระบบ (System flowchart) เป็นผังงานที่
     แ ส ด งผ ล ก าร
         บ วก C                   เขียนขึ้นเพื่อแสดงให้เห็นถึงความสัมพันธ์ระหว่างโปรแก
                                  รมต่ง ๆ ได้รับข้อมูลเข้ามาประมวลผลจากทางใด ประมวล
                                  ผลเสร็จแล้วจะส่งไปที่ไหน และผลลัพธ์ที่เกิดขึ้นจะ
                                  แสดงออกในรูปใด
 สิ้ น สุ ด ก า ร ทำา ง า น               ٢. ผั ง งานโปรแกรม (Program flowchart หรือ Detail
                                  flowchart) เป็นผังงานที่เขียนขึ้นเพื่อแสดงขั้นตอนคำาสั่ง
                                  อย่างละเอียด ซึ่งตามปกติแล้วผู้เขียนโปรแกรมจะเขียน
                                  Program flowchart ขึ้นมาก่อน ต่อจากนั้นจะตรวจสอบขั้น
                                  ตอนคำาสั่งงานแต่ละขั้นในผังงานว่าไม่มีผิดพลาดแล้วจึง
                                  ลงมือเขียนโปรแกรม ตัวอย่าง Flowchart ของการบวกสอง
                                  สองจำานวนแสดงดังรูปด้านข้าง

กลุ่มสัญลักณ์ของ Flowchart

   สั ญ ลั ก ษณ์                     ความหมาย             สั ญ ลั ก ษณ์       ความหมาย
                                                                           พิมพ์ผลลัพธ์ออก
                                   เริ่มต้นและสิ้น                         ทางกระดาษ
                                   สุดโปรแกรม



                                   รับข้อมูลาทาง                           ประมวลผลทั่วๆ
                                   คีย์บอร์ด                               ไป
อ่านเขียนข้อมูล                         ตัดสินใจเลือก
                  ลงดิกส์


                  อ่านเขียนข้อมูล
                  จากเทปแม่                               รอยต่อของเส้น
                  เหล็ก                                   เชื่อม


                  อ่านเขียนข้อมูล
                  ลงฐานข้อมูล                             ไปหน้าถัดไป



                  แสดงผลลัพธ์                             เส้นเชื่อม
                  ออกทางหน้าจอ



รหั ส เที ย ม (Pseudo code)
เป็นการเขียนโปรแกรมที่ไม่ขึ้นอยู่กับภาษา ทำาให้โปรแกรมเมอร์สามารถนำา
เอา Pseudo code ไปเขียนโปรแกรมเป็นภาษาใด ๆ ตัวอย่างการเขียน Pseudo
code สำาหรับโปรแกรมบวกเลขมีดังนี้
       Read (A)      ทำาการอ่านค่าแรก
       Read (B)      ทำาการอ่านค่าที่สอง
       C ← Α + Β คำานวณผลรวมไว้ที่ตัวแปรที่สาม
       Write ( C )   แสดงผลลลัพธ์
ตั ว อย่ า ง Algorithm, Flowchart และ          Pseudo code


ตั ว อย่ า ง١ จงเขียน Algorithm, Flowchart และ Pseudo code สำาหรับหาพื้นที่
สี่เหลี่ยมผืนผ้า โดยรับขนาดความกว้างและความยาวของสี่เหลี่ยมผ่านทาง
คีย์บอร์ดแล้วแสดงผลทางหน้าจอ

Flowchart           Algorithm
                    ١. รับค่าความสูงของสี่เหลี่ยนผ่านทางคีย์บอร์ด
                    ٢. รับค่าความกว้างของสี่เหลี่ยนมผ่านทางเคีย์บอร์ด
                    ٣. คำานวนค่าพื้นที่เก็บไว้ที่ตัวแปรพื้นที่ = ฐาน * สูง
                    ٤. แสดงพื้นที่ที่ได้ผ่านทางหน้าจอ

                    Pseudo code
                    Read (ความสูง)
                    Read (ความกว้าง)
                    พื้นที่ ← ความสูง * ความกว้าง
                    Write ( พื้นที่ )
เ ริ่ ม ต้ น



        รั บ ค่ า ค ว า ม สู ง



       รั บ ค่ า ค ว า ม ก ว้ า ง



     พื้ น ที่ = สู ง * ก ว้ า ง




                พื้ น ที่




                  จบ



ตั ว อย่ า ง ٢ จงเขียน Algorithm, Flowchart และ Pseudo code เพื่อหาพื้นที่สาม
เหลียมโดยรับค่าต่าง ๆ ผ่านทางคีย์บอร์ดและแสดงผลทางด้านหน้าจอ
       ในตัวอย่างนี้โจทย์ไม่ได้ระบุว่าค่าที่รับมาเป็นอะไร ค่าที่จะรับนั้นเป็น
อะไรก็ขึ้นอยู่กับสูตรที่เราจะใช้ ตัวอย่างของสูตรหาพื้นที่สามเหลี่ยม ดัง
แสดงข้างล่างนี้ ในที่นี้ขอเลือกใช้สูตรที่ ٣


                                          สูตรที่ ١                                       สูตรที่ ٢
                                                                            a
                                          ½ * ฐาน * สูง                                   ½ * a * b * sin θ
                                    สูง




                                                                                θ
         ฐาน                                                                        b

                                          สูตรที่ ٣
 a                            c            s ( s − a )( s − b )( s − c )
                                                a +b +c
                                          s =
           b                                       2

Flowchart                                             Algorithm
                                                      ١. รับค่า a,b และ c ผ่านทางคีย์บอร์ด
                                                                                               a +b +c
                                                      ٢. ทำาการคำานวณหาค่า s ตามสูตร s =
                                                                                                  2
                                                      ٣. ทำาการหาค่าพื้นที่ตามสูตร พื้นที่ =
                                                        s ( s − a )( s − b )( s − c )
                                                      ٤. แสดงผลพื้นที่ทางหน้าจอ

                                                      Pseudo code
                                                      Read ( a,b,c )
เ ริ่ ม ต้ น       S ← (a + b + c) / 2
                                  พื้นที่ ← root( s * (s-a) * (s-b) * (s-c) )
                                  Write ( พื้นที่ )
        รั บ ค่ า a , b แ ล ะ c



              a +b +c
      s =
                 2


  s ( s − a )( s − b )( s − c )



            แ ส ด ง ค่ า S



          จ บ ก า ร ทำา ง า น



ตั ว อย่ า ง ٣ จงเขียน Algorithm, Flowchart และ Pseudo code เพื่อตัวคะแนน
แบบอิงเกณฑ์โดยมีเกณฑ์การให้คะแนนดังนี้
       ได้คะแนน 0 - 49 เกรดที่ได้คือ F          ได้คะแนน 70 - 79 เกรดที่ได้
คือ B
       ได้คะแนน 50 - 59 เกรดที่ได้คือ D         ได้คะแนน 80 - 100 เกรดที่ได้
คือ A
       ได้คะแนน 60 - 69 เกรดที่ได้คือ C
โดยรับคะแนนผ่านทางคีย์บอร์ดและแสดงผลการตัดเกรดทาง Printer
Flowchart                                    Algorithm
                                             ١. รับคะแนนที่ต้องการหาเกรดผ่านทางคีย์บอร์ด
        เ ริ่ ม ต้ น                         ٢. ถ้าคะแนนตำ่ากว่า ٥٠ เกรดคือ F แล้วไปข้อ ٧
                                             ٣. ถ้าคะแนนระหว่าง ٥٩ - ٥٠ เกรดคือ D แล้วไป
                                             ข้อ ٧
     รั บ ค ะ แ น น
                                             ٤. ถ้าคะแนนระหว่าง ٦٩ - ٦٠ เกรดคือ C แล้วไป
                                             ข้อ ٧
                                             ٥. ถ้าคะแนนระหว่าง ٧٩ - ٧٠ เกรดคือ B แล้วไป
   ค ะแ น น < 50           Yes   เก รด = F   ข้อ ٧
                                             ٦. เกรดที่ได้คือ A
           No                                ٧. พิมพ์เกรดทางเครื่องพิมพ์

  ค ะ แ น น ร ะ ห ว่ า ง
                                             Pseudo code
       50 - 59
                           Yes   เก รด = D
                                             Read (คะแนน )
                                             If คะแนน < 50 then เกรด ← F
           No                                Elseif ( 50 <= คะแนน ) and ( คะแนน < 59 ) then
                                             เกรด ← D
  ค ะ แ น น ร ะ ห ว่ า ง
                           Yes   เก รด = C   Elseif ( 60 <= คะแนน ) and ( คะแนน < 69 ) then
       60 - 69
                                             เกรด ← C
                                             Elseif ( 70 <= คะแนน ) and ( คะแนน < 79 ) then
           No
                                             เกรด ← B
  ค ะ แ น น ร ะ ห ว่ า ง
                                             Else เกรด ← A
                           Yes   เก รด = B   End if
       70 - 79
                                             Print (เกรด)
           No


     เก รด = A




     พิ ม พ์ เ ก ร ด




   จ บ ก า ร ทำา ง า น
ตั ว อย่ า งที ่ ٤ จงเขียนโปรแกรมบวกเลขจำานวนเต็มตั้งแต่ ١ ถึง ١٠٠ แล้ว
แสดงผลลัพธ์ทางหน้าจอ

Flowchart 1                             Algorithm 1
                                        ١. กำาหนดตัวแปรสำาหรับนับค่าให้ชื่อว่า i มีค่าเริ่ม
                   เ ริ่ ม ต้ น         ต้นเป็น ١
                                        ٢. กำาหนดตัวแปรเก็บผลลัพธ์ชื่อว่า y มีค่าเริ่มต้น
                     i= 1
                    y = 0               เป็น ٠
                                        ٣. ดูว่า i มีค่ามากกว่า ١٠٠ หรือยัง ถ้ายังไม่ถึงให้ทำา
                                        ข้อ ٤ ถ้าถึงแล้วให้ทำาข้อ ٧
                  i> 100                ٤. y = y + i
                                        ٥. เพิ่มค่าตัวนับขึ้นอีกหนึ่ง (i = i + ١ )
                         No             ٦. กลับไปทำาข้อ ٣
                y = y + i
                                        ٧. แสดงค่า y ทางจอภาพ
                 i= i+ 1          Yes
                                        Pseudo code 1
                                        i←١
                   พิ ม พ์ y            y←٠
                                        Repeat while i <= ١٠٠
                                          y←y+i
                   เ ริ่ ม ต้ น
                                          i ←i +١
                                        End repeat
                                        Print ( i )

Flowchart                               Algorithm 2
                                                                    n
                                                                                  n (n + 1)
          เ ริ่ ม ต้ น                  จากสูตรคณิตศาสตร์ที่ว่า    ∑x
                                                                   i =1
                                                                          i   =
                                                                                      2
                                                                                            ดังนั้น
                                        ถ้ากำาหนดค่า n = 100 ก็สามารถหาผลรวมตั้งแต่ ١
         n = 100                        ถึง ١٠٠ ได้
                                        ١. กำาหนดค่า n = 100
                                                                        n (n + 1)
 ผ รวม =
  ล
         n ( n + 1)                     ٢. แทนค่าในสูตร ผลรวม =
                                                                            2
              2
                                        ٣. พิมพ์ค่าผลรวม

      พิ ม พ์ ผ ล ร ว ม                 Pseudo code ٢
                                        n ← ١٠٠
                                                   n (n + 1)
          เ ริ่ ม ต้ น                  ผลรวม ←
                                                       2
                                        Print (ผลรวม)

จากตัวอย่างนี้จะเห็นได้ว่า Algorithm ทีต่างกันจะส่งผลต่อความเร็วของการ
                                       ่
ทำางานโปรแกรม จะเห็นได้ชัดว่าโปรแกรมที่เขียนขึ้นจาก Algorithm 2 เขียน
ง่ายกว่าและทำางานเร็วกว่าโปรแกรมที่เขียนขึ้นจาก Algorithm 1
คำ า ถาม
1. จงอธิบายว่า Algorithm, Flowchart และ Pseudo code คืออะไร
2. จงเขียน Algorithm, Flowchart และ Pseudo code สำาหรับหาพื้นที่สามเหลี่ยม
    ของอีกสองสูตรที่เหลือในตัวอย่างที่ ٢ พร้อมทั้งแสดงผลลัพธ์ทางหน้าจอ
3. จงเขียน Algorithm, Flowchart และ Pseudo code สำาหรับหาพื้นที่และความ
    ยาวเส้นรอบวงของวงกลม พร้อมทั้งแสดงผลลัพธ์ทางหน้าจอ
4. จากสูตรการหาผลรวมของตัวต้านทานที่ต่อแบบขนานสามตัวดังนี้
                              1      1   1   1
                                   =   +   +
                             R รวม   R1 R 2 R 3
   จงเขียน Algorithm, Flowchart และ Pseudo code เพื่อหาค่า R รวม โดยรับค่า
   R1 R2 และ R3 ทางคีย์บอร์ดพร้อมทั้งแสดงผลลัพธ์ทางหน้าจอ
5. จงเขียน Algorithm, Flowchart และ Pseudo code หาผลรวมตั้งแต่ ١٠١ ถึง ٢
   ٠٠ พร้อมทั้งแสดงผลลัพธ์ทางหน้าจอ
6. จงเขียน Algorithm, Flowchart และ Pseudo code สำาหรับหาค่าสูงสุดและตำ่า
   สุดของจำานวน ١٠ จำานวนที่รับเข้ามาทางคีย์บอร์ดพร้อมทั้งแสดงค่า
   สูงสุดและตำ่าสุดทางหน้าจอ

3 software deverlop

  • 1.
    ขั ้ นตอนในการพั ฒ นา Software วิธีการในการพัฒนา Software จะมีรูปแบบ (Model) ในการพัฒนาสองแบบ ใหญ่ ๆ คือ Waterfall model และ Iterative model 1. Waterfall model R e q u ir e m e n t A n a ly s is & D e s ig n C o d in g T e s t in g M a in t a in a c e P ro d u ct เหมาะสมสำาหรับการพัฒนาโปรแกรมสำาเร็จรูปที่เป็นลักษณะ Mass product กล่าวคือผลิตออกมาทีละเยอะ ๆ เช่น MS Windows, MS Office ขั้นตอนต่าง ๆ มีรายละเอียดดังนี้ 1.1 Requirement เป็นขั้นตอนในการเก็บความต้องการของผู้ใช้โปรแกรม ว่า ผู้ใช้โปรแกรมต้องการโปรแกรมอะไร ทำางานอย่างไร 1.2 Analysis and design เป็นขั้นตอนในการเอาความต้องการของผู้ใช้มา วิเคราะห์ถึงความเป็นไปได้และความเหมาะสม เลือกเครื่องมือที่จะ ทำาการพัฒนาโปรแกรม แล้วทำาการออกแบบ (Design) โปรแกรม 1.3 Coding เป็นขั้นตอนของการเขียนโปรแกรมตามที่เราออกแบบมา 1.4 Testing เป็นขั้นตอนในการเอาโปรแกรมที่เขียนเสร็จแล้วมาทำาการ ทดสอบหาข้อผิดพลาด 1.5 Product เมื่อทำาการทดสอบจนแน่ใจแล้วว่าไม่มีข้อผิดพลาดก็นำา โปรแกรมไปใช้งานจริง 1.6 Maintenance เป็นขั้นตอนในการดูแลผู้ใช้โปรแกรมว่ามีปัญหาในการ ใช้งานหรือไม่อย่างไร พร้อมให้คำาปรึกษาและรับฟังข้อคิดเห็นเพื่อจะ นำามาพัฒนาโปรแกรมในรุ่นถัดไป 2. Iterative model เนื่องจาก Waterfall model ขาดการรับฟังข้อคิดเห็นจากผู้ใช้โปรแกรม (Feedback) เพื่อที่จะนำามาปรับปรุงโปแกรมโดยทันที ทำาให้โปรแกรมที่ออกมา ไม่ตรงกับความต้องการของผู้ใช้โปรแกรมอย่างแท้จริง จึงทำาให้เกิด Model ในการพัฒนาโปรแกรมแบบใหม่ที่เรียก Iterative model ซึ่งมีรายละเอียดดังนี้
  • 2.
    I n itia l r e q u ir e m e n t a n d a n a ly s is D e s ig n M o re M a in t a in a c e r e q u ir e m e n t C o d in g a n d a n a ly s is T e s t in g C o m p le t e P ro d u c t 2.1 Initial requirement and analysis เป็นการเก็บความต้องการของผู้ใช้ โปรแกรมครั้งแรกแล้วนำามาวิเคราะห์ พร้อมทั้งหาเครื่องมือที่จะนำา มาพัฒนาโปรแกรม 2.2 Design ทำาการออกแบบโปรแกรมตามที่ได้วิเคราะห์ไว้ 2.3 Coding ทำาการเขียนโปรแกรมตามที่ได้ออกแบบไว้ 2.4 Testing ทำาการหาข้อผิดพลาดของโปรแกรม ซึ่งผู้ที่จะทำาการตรวจ สอบโปรแกรมจะมีทั้งการตรวจสอบภายในทีมเขียนโปรแกรมและ การตรวจสอบจากผู้ใช้โปรแกรม 2.5 More requirement and analysis ถ้าผู้ใช้โปรแกรมตรวจสอบโปรแกรม แล้วยังไม่เป็นที่น่าพอใจหรือยังพบข้อผิดพลาดของโปรแกรม ให้จะ นำาเอาข้อเสนอเหล่านั้นมาทำาการแก้ไขเพิ่มเติม โดยทำาการ Design ใหม่อีกรอบหนึ่ง 2.6 Product ถ้าการทดสอบเป็นที่น่าพอใจแล้วจึงเริ่มใช้ผลิตภัณฑ์กับงาน ระบบจริง 2.7 Maintenance ถึงกระนั้นผลิตภัณฑ์ที่ใช้งานจริงย่อมมีปัญหาเกิดขึ้น เสมอ ผู้ใช้งานอาจมีความต้องการเพิ่ม จึงนำาเอาความต้องการเหล่า นั้นเข้าสู่ขั้นตอนการพัฒนาโปรแกรมอีกครั้งในขั้นตอนของ More requirement and analysis นอกจากนั้นแล้วยังมีการพัฒนา Model สำาหรับการพัฒนา Software อีก หลายแบบเช่น Spiral model เป็นต้น คำ า ถาม 1. จงอธิบายการวิธีการพัฒนาโปรแกรมแบบ Waterfall model และ Iterative model
  • 3.
  • 4.
    ชนิ ด ของภาษาและเครื่ อ งมื อ ที ่ ใ ช้ ใ นการพั ฒ นา โปรแกรม 1. ตระกู ล ภาษาคอมพิ ว เตอร์ ท ี ่ น ิ ย มใช้ ใ นปั จ จุ บ ั น ได้ แ ก่ 1.1. ภาษาสัญลักษณ์ (Assembly หรือ Symbolic language) เป็นภาษาที่ติดต่อ กับเครื่องคอมพิวเตอร์ได้โดยตรงโดยไม่ต้องแปลความหมายแต่ อย่างใด จุดเด่นของภาษานี้คือขนาดของโปรแกรมมีขนาดเล็กจึง เป็นที่นิยมใช้ในงานควบคุมอุตสาหกรรม หรืองานที่ต้องการความ รวดเร็วในการทำางานเช่นส่วนติดต่อกับ Hardware ของระบบปฎิบัติ การ ข้อเสียของภาษาสัญลักษณ์นี้ก็คือทำาความเข้าใจได้ยากทำาให้ การพัฒนาโปรแกรมยากตามไปด้วย และโปรแกรมขึ้นอยู่กับ Hardware มากเกินไป 1.2. ภาษาซี (C Language) เป็นภาษาที่ได้รับความนิยมมากภาษาหนึ่ง เพราะสามารถเขียนโปรแกรมที่มีลักษณะเป็นโครงสร้าง (Structure program) โปรแกรมที่เขียนขึ้นขึ้นอยู่กับ Hardware น้อยกว่าภาษา สัญลักษณ์ทำาให้สามารถเขียนโปแกรมครั้งเดียวสามารถใช้ได้หลาก หลายอุปกรณ์ โปรแกรมที่เขียนขึ้นมีความเร็วเป็นรองแค่ภาษา สัญลักษณ์เท่านั้น ภาษาซีแตกแขนงออกเป็นภาษา C++, Java, C# เป็นต้น 1.3. ภาษาปาสกาล (Pascal) เป็นภาษาที่เหมาะสมสำาหรับการเรียนรู้การ เขียน สามารถเขียนโปรแกรมที่มีลักษณะเป็น Black-box ได้อย่าง แท้จริงทำาให้เหมาะสมกับงานทางด้าน Real-time และการจำาลองการ ทำางานข้อเสียคือโปรแกรมที่ออกมาทำางานช้ากว่าภาษาซี ภาษาปาส คาลแตกแขนงออกไปเป็น Ada, Delphi, Kylix เป็นต้น 1.4. ภาษาเบสิก (BASIC : Beginners All-purpose Symbolic Instruction Code) เป็นภาษาแรกที่มีใช้ในไมโครคอมพิวเตอร์ เหมาะสมสำาหรับผู้เขียน โปรแกรมเบื้องต้น งานที่ไม่ซับซ้อนมากนัก ไม่เหมาะสมสำาหรับงาน ในขนาดใหญ่ แต่ก็ได้ถูกปรับปรุงอย่างมากในจนกลายเป็นภาษา Visual Basic ที่เป็นต้นแบบของการพัฒนาโปรแกรมแบบ Visual นอกจากนั้นยังมีภาษาอื่น ๆ ที่ไม่ได้กล่าวถึง ซึ่งแต่ละภาษาใช้งานเฉพาะ ทางแตกต่างกันไปเช่น PERL, PHP, LISP, LabView, Tcl/Tk, COBAL, FORTRAN, SQL 2. เครื ่ อ งมื อ ที ่ ใ ช้ ใ นการพั ฒ นาโปรแกรม หลังจากที่เลือกภาษาที่จะใช้ในการพัฒนาโปรแกรมแล้ว การเลือก เครื่องมือที่ใช้ในการพัฒนาโปรแกรมก็สำาคัญเช่นกัน ถ้าเลือกเครื่องมือที่มี ลักษณะเข้าใจยาก หาข้อผิดพลาดของโปรแกรมเมื่อเกิด Error ขึ้นยาก ก็จะ ทำาให้ระยะเวลาการพัฒนาโปรแกรมใช้เวลานาน ในขั้นตอนนี้เราต้องเลือก สองสิ่งได้แก่ 2.1 เลือกตัวแปลภาษา (Complier) ที่จะใช้ 2.2 เลือกโปรแกรมที่ใช้เขียน Code (Editor) ที่ใช้ในการเขียนโปรแกรม
  • 5.
    ตั ว อย่า งการเลื อ กชนิ ด ของภาษาและเครื ่ อ งมื อ ที ่ ใ ช้ ใ นการ พั ฒ นาโปรแกรม ตั ว อย่ า ง ١ ต้องการเขียนโปรแกรมสั่งงานไมโครคอนโทรลเลอร์ตระกูล 68HC11 ไปควบคุมอุณภูมิเตาอบ 1. ทำาการเลือกภาษาที่จะใช้ในการเขียนโปรแกรม ส่วนมากในงาน ควบคุมแล้วภาษาซี เหมาะสมที่สุด เพราะเป็นภาษาสูง เข้าใจง่าย ไม่ ต้องเสียเวลาศึกษาภาษา Assembly 2. ทำาการเลือก Complier ซึ่งมีหลายตัวมาก (สามารถหาได้จาก Internet) เช่น GCC, Cosmic C 3. ทำาการเลือก Editor ที่ใช้เขียนโปรแกรมอาจจะเป็น Notepad ที่แถมมา กับ Windows หรือจะใช้ Editor สำาเร็จรูปเช่นถ้าเลือก Cosmic C ก็จะมี Editor สำาเร็จรูปมาให้เลย ตั ว อย่ า ง ٢ ต้องการสอนนักศึกษาเขียนโปรแกรมเป็นอย่างน้อนหนึ่งภาษา 1. ทำาการเลือกภาษาที่จะใช้ในการเขียนโปรแกรม เนื่องจากว่า คอมพิวเตอร์ที่ใช้เป็นตระกูล x86 ทั้งหมดและเพื่อให้นักศึกษาสามาร ทำาโปรเจคทางด้าน Control ได้ดังนั้นภาษาซีจึงเป็นภาษาที่เหมาะสม 2. ทำาการเลือก Complier เนื่องจากระบบปฎิบัติการที่ใช้เป็น MS Windows จึงเลือก Turbo C 2.0 ซึงมีข้อดีคือแจกฟรี (สามารถ Download ได้จาก Borland) และเป็นที่นิยมใช้อย่างมาก 3. ทำาการเลือก Editor ใช้ Editor ที่แถมมาพร้อมกับ Turbo C คำ า ถาม 1. จงเปรียบเทียบข้อดีของภาษาในตระกูล ภาษาสัญลักษณ์ ภาษาซี ภาษาปาสคาล และภาษาเบสิก 2. จากตัวอย่างที่ ١ และตัวอย่างที่ ٢ จงบอกขั้นตอนของการเลือกชนิด ของภาษาและเครื่องมือที่ใช้ในการพัฒนาโปรแกรมมาอย่างคร่าว ๆ Algorithm, Flowchart and Pseudo code แนวคิ ด การเขี ย นโปรแกรม (Algorithms) คือ แผนการสั่งงานให้คอมพิวเตอร์ทำาตามที่เราต้องการ ตัวอย่างเช่น ต้องการหาผลรวมของตัวเลข ٢ จำานวน จะต้องทำาอย่างไร? เป็นต้น ถ้าจะ เปรียบเทียบแนวความคิดของมนุษย์กับเครื่องคอมพิวเตอร์ในการแก้ปัญหา เรื่องนี้ อาจเป็นไปดังนี้คือ แนวความคิดของมนุษย์ แนวความคิดของเครื่องคอมพิวเตอร์ ١. บอกตัวเลขทั้ง ٢ จำานวนนั้นมา ١. ต้องมีตัวแปร ٣ ตัวเพื่อจดจำาค่าตัว ก่อน เลข ٢ จำานวนและรองรับผลการ ٢. ถ้าง่ายมากก็คิดในใจ คือ บวก คำานวณที่เกิดขึ้นอีก ١ จำานวน เสร็จแล้วก็บอกคำาตอบได้เลย ٢. ต้องกรอกค่าตัวเลขใส่ตัวแปรที่ ١ ٣. ถ้ายากนักก็ใช้เครื่องคิดเลขช่วย ٣. ต้องกรอกค่าตัวเลขใส่ตัวแปรที่ ٢ แล้วถึงจะได้คำาตอบ ٤. สั่งให้นำาค่าจากตัวแปรที่ ١ มาบวก
  • 6.
    กับตัวแปรที่ ٢ โดยนำาผลลัพธ์ใส่ ตัวแปรที่ ٣ ٥. สั่งให้แสดงผลลัพธ์จากตัวแปรที่ ٣ เ ริ่ ม ต้ น ก า ร ทำา ง า น จะเห็นได้ว่าแนวคิดของมนุษย์จะเป็นแบบง่าย ๆ ไม่มีระเบียบอะไรมากนัก แต่ถ้าเป็นคอมพิวเตอร์ต้องมีการ คิดอย่างเป็นขั้นตอน มีตัวแปรสำาหรับข้อมูลต่างๆ ต่อจากนั้นก็ทำา Algorithm ที่ยังเป็นเพียงแค่แนวคิดที่ รั บ ตั ว เ ล ข ตั ว แ ร ก เ ก็ บ ไ ว้ ที่ ตั ว แ ป ร A เป็นนามธรรม มาทำาเป็นสิ่งที่เป็นรูปธรรมได้แก่ ผัง งาน(Flowchart) และรหัสเทียม (Pseudocode) รั บ ตั ว เ ล ข ตั ว แ ร ก ผั ง งาน (Flowchart) เ ก็ บ ไ ว้ ที่ ตั ว แ ป ร B คือแผนภาพใช้สำาหรับอธิบายขั้นตอนการทำางาน ของโปรแกรมคอมพิวเตอร์ โดยอาศัยสัญลักษณ์และความ นำา ผ ล ลั พ ธ์ เ ก็ บ ไ ว้ ที่ สั้น ๆ ในการสื่อความหาย ใช้เป็นโครงร่างก่อนการเขียน ตั ว แ ป ร C โ ด ย ที่ C มี ค่ า เ ท่ า กั บ A + B โปรแกรมคอมพิวเตอร์ เพื่อให้ผู้เขียนโปรแกรมมองเห็น ภาพรวมทั้งหมดของโปรแกรม Flowchart แบ่งออกเป็นสอง แบบได้แก่ ١. ผั ง งานระบบ (System flowchart) เป็นผังงานที่ แ ส ด งผ ล ก าร บ วก C เขียนขึ้นเพื่อแสดงให้เห็นถึงความสัมพันธ์ระหว่างโปรแก รมต่ง ๆ ได้รับข้อมูลเข้ามาประมวลผลจากทางใด ประมวล ผลเสร็จแล้วจะส่งไปที่ไหน และผลลัพธ์ที่เกิดขึ้นจะ แสดงออกในรูปใด สิ้ น สุ ด ก า ร ทำา ง า น ٢. ผั ง งานโปรแกรม (Program flowchart หรือ Detail flowchart) เป็นผังงานที่เขียนขึ้นเพื่อแสดงขั้นตอนคำาสั่ง อย่างละเอียด ซึ่งตามปกติแล้วผู้เขียนโปรแกรมจะเขียน Program flowchart ขึ้นมาก่อน ต่อจากนั้นจะตรวจสอบขั้น ตอนคำาสั่งงานแต่ละขั้นในผังงานว่าไม่มีผิดพลาดแล้วจึง ลงมือเขียนโปรแกรม ตัวอย่าง Flowchart ของการบวกสอง สองจำานวนแสดงดังรูปด้านข้าง กลุ่มสัญลักณ์ของ Flowchart สั ญ ลั ก ษณ์ ความหมาย สั ญ ลั ก ษณ์ ความหมาย พิมพ์ผลลัพธ์ออก เริ่มต้นและสิ้น ทางกระดาษ สุดโปรแกรม รับข้อมูลาทาง ประมวลผลทั่วๆ คีย์บอร์ด ไป
  • 7.
    อ่านเขียนข้อมูล ตัดสินใจเลือก ลงดิกส์ อ่านเขียนข้อมูล จากเทปแม่ รอยต่อของเส้น เหล็ก เชื่อม อ่านเขียนข้อมูล ลงฐานข้อมูล ไปหน้าถัดไป แสดงผลลัพธ์ เส้นเชื่อม ออกทางหน้าจอ รหั ส เที ย ม (Pseudo code) เป็นการเขียนโปรแกรมที่ไม่ขึ้นอยู่กับภาษา ทำาให้โปรแกรมเมอร์สามารถนำา เอา Pseudo code ไปเขียนโปรแกรมเป็นภาษาใด ๆ ตัวอย่างการเขียน Pseudo code สำาหรับโปรแกรมบวกเลขมีดังนี้ Read (A) ทำาการอ่านค่าแรก Read (B) ทำาการอ่านค่าที่สอง C ← Α + Β คำานวณผลรวมไว้ที่ตัวแปรที่สาม Write ( C ) แสดงผลลลัพธ์ ตั ว อย่ า ง Algorithm, Flowchart และ Pseudo code ตั ว อย่ า ง١ จงเขียน Algorithm, Flowchart และ Pseudo code สำาหรับหาพื้นที่ สี่เหลี่ยมผืนผ้า โดยรับขนาดความกว้างและความยาวของสี่เหลี่ยมผ่านทาง คีย์บอร์ดแล้วแสดงผลทางหน้าจอ Flowchart Algorithm ١. รับค่าความสูงของสี่เหลี่ยนผ่านทางคีย์บอร์ด ٢. รับค่าความกว้างของสี่เหลี่ยนมผ่านทางเคีย์บอร์ด ٣. คำานวนค่าพื้นที่เก็บไว้ที่ตัวแปรพื้นที่ = ฐาน * สูง ٤. แสดงพื้นที่ที่ได้ผ่านทางหน้าจอ Pseudo code Read (ความสูง) Read (ความกว้าง) พื้นที่ ← ความสูง * ความกว้าง Write ( พื้นที่ )
  • 8.
    เ ริ่ มต้ น รั บ ค่ า ค ว า ม สู ง รั บ ค่ า ค ว า ม ก ว้ า ง พื้ น ที่ = สู ง * ก ว้ า ง พื้ น ที่ จบ ตั ว อย่ า ง ٢ จงเขียน Algorithm, Flowchart และ Pseudo code เพื่อหาพื้นที่สาม เหลียมโดยรับค่าต่าง ๆ ผ่านทางคีย์บอร์ดและแสดงผลทางด้านหน้าจอ ในตัวอย่างนี้โจทย์ไม่ได้ระบุว่าค่าที่รับมาเป็นอะไร ค่าที่จะรับนั้นเป็น อะไรก็ขึ้นอยู่กับสูตรที่เราจะใช้ ตัวอย่างของสูตรหาพื้นที่สามเหลี่ยม ดัง แสดงข้างล่างนี้ ในที่นี้ขอเลือกใช้สูตรที่ ٣ สูตรที่ ١ สูตรที่ ٢ a ½ * ฐาน * สูง ½ * a * b * sin θ สูง θ ฐาน b สูตรที่ ٣ a c s ( s − a )( s − b )( s − c ) a +b +c s = b 2 Flowchart Algorithm ١. รับค่า a,b และ c ผ่านทางคีย์บอร์ด a +b +c ٢. ทำาการคำานวณหาค่า s ตามสูตร s = 2 ٣. ทำาการหาค่าพื้นที่ตามสูตร พื้นที่ = s ( s − a )( s − b )( s − c ) ٤. แสดงผลพื้นที่ทางหน้าจอ Pseudo code Read ( a,b,c )
  • 9.
    เ ริ่ มต้ น S ← (a + b + c) / 2 พื้นที่ ← root( s * (s-a) * (s-b) * (s-c) ) Write ( พื้นที่ ) รั บ ค่ า a , b แ ล ะ c a +b +c s = 2 s ( s − a )( s − b )( s − c ) แ ส ด ง ค่ า S จ บ ก า ร ทำา ง า น ตั ว อย่ า ง ٣ จงเขียน Algorithm, Flowchart และ Pseudo code เพื่อตัวคะแนน แบบอิงเกณฑ์โดยมีเกณฑ์การให้คะแนนดังนี้ ได้คะแนน 0 - 49 เกรดที่ได้คือ F ได้คะแนน 70 - 79 เกรดที่ได้ คือ B ได้คะแนน 50 - 59 เกรดที่ได้คือ D ได้คะแนน 80 - 100 เกรดที่ได้ คือ A ได้คะแนน 60 - 69 เกรดที่ได้คือ C โดยรับคะแนนผ่านทางคีย์บอร์ดและแสดงผลการตัดเกรดทาง Printer
  • 10.
    Flowchart Algorithm ١. รับคะแนนที่ต้องการหาเกรดผ่านทางคีย์บอร์ด เ ริ่ ม ต้ น ٢. ถ้าคะแนนตำ่ากว่า ٥٠ เกรดคือ F แล้วไปข้อ ٧ ٣. ถ้าคะแนนระหว่าง ٥٩ - ٥٠ เกรดคือ D แล้วไป ข้อ ٧ รั บ ค ะ แ น น ٤. ถ้าคะแนนระหว่าง ٦٩ - ٦٠ เกรดคือ C แล้วไป ข้อ ٧ ٥. ถ้าคะแนนระหว่าง ٧٩ - ٧٠ เกรดคือ B แล้วไป ค ะแ น น < 50 Yes เก รด = F ข้อ ٧ ٦. เกรดที่ได้คือ A No ٧. พิมพ์เกรดทางเครื่องพิมพ์ ค ะ แ น น ร ะ ห ว่ า ง Pseudo code 50 - 59 Yes เก รด = D Read (คะแนน ) If คะแนน < 50 then เกรด ← F No Elseif ( 50 <= คะแนน ) and ( คะแนน < 59 ) then เกรด ← D ค ะ แ น น ร ะ ห ว่ า ง Yes เก รด = C Elseif ( 60 <= คะแนน ) and ( คะแนน < 69 ) then 60 - 69 เกรด ← C Elseif ( 70 <= คะแนน ) and ( คะแนน < 79 ) then No เกรด ← B ค ะ แ น น ร ะ ห ว่ า ง Else เกรด ← A Yes เก รด = B End if 70 - 79 Print (เกรด) No เก รด = A พิ ม พ์ เ ก ร ด จ บ ก า ร ทำา ง า น
  • 11.
    ตั ว อย่า งที ่ ٤ จงเขียนโปรแกรมบวกเลขจำานวนเต็มตั้งแต่ ١ ถึง ١٠٠ แล้ว แสดงผลลัพธ์ทางหน้าจอ Flowchart 1 Algorithm 1 ١. กำาหนดตัวแปรสำาหรับนับค่าให้ชื่อว่า i มีค่าเริ่ม เ ริ่ ม ต้ น ต้นเป็น ١ ٢. กำาหนดตัวแปรเก็บผลลัพธ์ชื่อว่า y มีค่าเริ่มต้น i= 1 y = 0 เป็น ٠ ٣. ดูว่า i มีค่ามากกว่า ١٠٠ หรือยัง ถ้ายังไม่ถึงให้ทำา ข้อ ٤ ถ้าถึงแล้วให้ทำาข้อ ٧ i> 100 ٤. y = y + i ٥. เพิ่มค่าตัวนับขึ้นอีกหนึ่ง (i = i + ١ ) No ٦. กลับไปทำาข้อ ٣ y = y + i ٧. แสดงค่า y ทางจอภาพ i= i+ 1 Yes Pseudo code 1 i←١ พิ ม พ์ y y←٠ Repeat while i <= ١٠٠ y←y+i เ ริ่ ม ต้ น i ←i +١ End repeat Print ( i ) Flowchart Algorithm 2 n n (n + 1) เ ริ่ ม ต้ น จากสูตรคณิตศาสตร์ที่ว่า ∑x i =1 i = 2 ดังนั้น ถ้ากำาหนดค่า n = 100 ก็สามารถหาผลรวมตั้งแต่ ١ n = 100 ถึง ١٠٠ ได้ ١. กำาหนดค่า n = 100 n (n + 1) ผ รวม = ล n ( n + 1) ٢. แทนค่าในสูตร ผลรวม = 2 2 ٣. พิมพ์ค่าผลรวม พิ ม พ์ ผ ล ร ว ม Pseudo code ٢ n ← ١٠٠ n (n + 1) เ ริ่ ม ต้ น ผลรวม ← 2 Print (ผลรวม) จากตัวอย่างนี้จะเห็นได้ว่า Algorithm ทีต่างกันจะส่งผลต่อความเร็วของการ ่ ทำางานโปรแกรม จะเห็นได้ชัดว่าโปรแกรมที่เขียนขึ้นจาก Algorithm 2 เขียน ง่ายกว่าและทำางานเร็วกว่าโปรแกรมที่เขียนขึ้นจาก Algorithm 1
  • 12.
    คำ า ถาม 1.จงอธิบายว่า Algorithm, Flowchart และ Pseudo code คืออะไร 2. จงเขียน Algorithm, Flowchart และ Pseudo code สำาหรับหาพื้นที่สามเหลี่ยม ของอีกสองสูตรที่เหลือในตัวอย่างที่ ٢ พร้อมทั้งแสดงผลลัพธ์ทางหน้าจอ 3. จงเขียน Algorithm, Flowchart และ Pseudo code สำาหรับหาพื้นที่และความ ยาวเส้นรอบวงของวงกลม พร้อมทั้งแสดงผลลัพธ์ทางหน้าจอ 4. จากสูตรการหาผลรวมของตัวต้านทานที่ต่อแบบขนานสามตัวดังนี้ 1 1 1 1 = + + R รวม R1 R 2 R 3 จงเขียน Algorithm, Flowchart และ Pseudo code เพื่อหาค่า R รวม โดยรับค่า R1 R2 และ R3 ทางคีย์บอร์ดพร้อมทั้งแสดงผลลัพธ์ทางหน้าจอ 5. จงเขียน Algorithm, Flowchart และ Pseudo code หาผลรวมตั้งแต่ ١٠١ ถึง ٢ ٠٠ พร้อมทั้งแสดงผลลัพธ์ทางหน้าจอ 6. จงเขียน Algorithm, Flowchart และ Pseudo code สำาหรับหาค่าสูงสุดและตำ่า สุดของจำานวน ١٠ จำานวนที่รับเข้ามาทางคีย์บอร์ดพร้อมทั้งแสดงค่า สูงสุดและตำ่าสุดทางหน้าจอ