SlideShare una empresa de Scribd logo
1 de 87
Descargar para leer sin conexión
บทที่ 2
อัลกอริธึมและการวิเคราะห์ ปัญหา


                                  อ.ชนิดา เรืองศิริวฒนกุล
                                                    ั
  สาขาวิชาเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ และเทคโนโลยี


                                                            1
นิยามอัลกอริธึม

   อัลกอริธึม (Algorithm) หมายถึง ลาดับขั้นตอนวิธีในการทางานของ
    โปรแกรมเพื่อแก้ปัญหาใดปัญหาหนึ่ง ซึ่งถ้าปฏิบติตามขั้นตอนอย่าง
                                                  ั
    ถูกต้องแล้ว จะต้องสามารถช่วยแก้ปัญหาหรื อประมวลผลตามความ
    ต้องการได้สาเร็ จ
   ในการเขียนอธิ บายอัลกอริ ธึมนั้น เราสามารถคิดอัลกอริ ธึมเพื่อมา
    แก้ปัญหาได้หลายแบบ




                                                                      2
ตัวอย่าง
    การต้ มไข่ ไก่
     วัตถุดิบ : ไข่ไก่    ผลลัพธ์ : ไข่ตมสุ ก
                                         ้
     Algorithm 1                 Algorithm 2
        ต้มน้ าให้เดือด             - ต้มน้ าให้เดือด
        ใส่ ไข่
                                     - ใส่ ไข่
                                     - รอ 5 นาที
        รอ 10 นาที
                                     - ดับไฟ / ปิ ดเตา
        ดับไฟ / ปิ ดเตา

        ปอกไข่
Algotithm 1 Vs Algotithm 2
    ผลที่ได้เหมือนกันคือ ไข่ตม
                              ้
    ผลลัพธ์อลกอริ ธึม 1 สามารถทานได้เลย ส่ วนอัลกอริ ธึม 2 ต้อง
               ั
     ปอกก่อนทาน
    สรุ ปคือ เราได้ผลลัพธ์ตามที่โจทย์ตองการคือ ไข่ตม
                                       ้            ้
Algotithm 3

 การต้มไข่ไก่ทาน
  วัตถุดิบ : ไข่ไก่     ผลลัพธ์ : ไข่ตมสุ ก
                                       ้
  Algorithm
      ต้มน้ าให้เดือด
      รอ 10 นาที                       What’s up?
      ดับไฟ / ปิ ดเตา

      ปอกไข่
Algotithm 3

 การต้มไข่ไก่ทาน
  วัตถุดิบ : ไข่ไก่     ผลลัพธ์ : ไข่ตมสุ ก
                                       ้
  Algorithm
      ต้มน้ าให้เดือด               Algorithm นีจะไม่ ได้ ไข่ ต้ม
                                                 ้
      รอ 10 นาที
                                             เพราะ....
      ดับไฟ / ปิ ดเตา

      ปอกไข่
การวิเคราะห์ปัญหา
    กระบวนการทางานของคอมพิวเตอร์

           Input                     Process                        Output

       องค์ประกอบของงาน
           Input , Process , Output

     การพิจารณา
      ขั้นตอนการทางานเป็ นการนาเข้า ป้ อนเข้าระบบ ถือเป็ น Input
      ขั้นตอนเกี่ยวกับการกระทา(กริ ยา) ถือเป็ น Process
      ขั้นตอนการนาข้อมูลออกจากระบบ แสดงผล ถือเป็ น Output

                                                                             7
Example

    เราลองนาขั้นตอนการต้มไข่มาวิเคราะห์
      ต้มน้ าให้เดือด   => การกระทา(Process)
      ใส่ ไข่           => การป้ อนข้อมูล(Input)
      รอ 10 นาที        => การกระทา(Process)
      ดับไฟ             => การกระทา(Process)
      ปอกไข่            => การกระทา(Process)
      ไข่ตมสุ ก
            ้            => ผลลัพธ์ (Output)
การวิเคราะห์ ปัญหา
                               ข้อมูลที่นาเข้าสู่ ระบบคอมพิวเตอร์
    การวิเคราะห์ปัญหา         ประกอบด้วยอะไรบ้าง




     วิเคราะห์ผลลัพธ์    วิเคราะห์                            Process
         (Output)           Input                    เขียนขั้นตอนการแก้ปัญหา




                                                                               9
การวิเคราะห์ ปัญหา
  ตัวอย่ าง ต้ องการคานวณหาพืนทีของสามเหลียมรูปหนึ่ง
                                ้ ่          ่
  1. วิเคราะห์ ผลลัพธ์ พื้นที่สามเหลี่ยม
  กาหนดวัตถุประสงค์ การคานวณหาพื้นที่สามเหลี่ยม
  รูปแบบผลลัพธ์
                       ความยาวฐาน = ………………
                       ความสูง           = ………………
                       พื้นที่สามเหลี่ยม = ……………
   2.กาหนดข้ อมูลเข้ า
                       1. ความยาวฐาน
                       2. ความสูง
                                                       10
การวิเคราะห์ ปัญหา
  3. ขั้นตอนการประมวลผล
  1.ป้ อนความยาวฐาน
  2.ป้ อนความสูง
  3.คานวณพื้นที่สามเหลี่ยม จากสู ตร
  พื้นที่สามเหลี่ยม =     1
                              ความยาวฐาน  ความสู ง
                         2


                                                       11
ตัวอย่ าง อัลกอริธึมเพือทาการบวกราคาโดยใช้ เครื่องคิดเลข
                       ่

   1. เปิ ดเครื่ องคิดเลข
   2. พิมพ์ยอดเงิน
   3. กดเครื่ องหมาย (+)
   4. กลับไปที่ขอ 2 ทาจนกระทังราคาทั้งหมดถูกพิมพ์เข้าเครื่ องและกด
                    ้        ่
   เครื่ องหมาย =
   5. เขียนยอดรวมราคา
   6. ปิ ดเครื่ องคิดเลข

                                                                     12
การวิเคราะห์ อลกอริธึมเพือทาการบวกราคาโดยใช้ เครื่องคิดเลข
              ั          ่

     1. วิเคราะห์ผลลัพธ์ : ยอดรวมราคา
    2. กาหนดข้อมูลเข้า : ยอดเงิน
    3. ขั้นตอนการประมวลผล
           3.1 พิมพ์ยอดเงิน
      3.2 กดเครื่ องหมาย +

      3.3 วนการทางาน

      3.4 กดเครื่ องหมาย =

      3.5 คานวณยอดรวมราคา



                                                             13
ตัวอย่าง 4
      การโยนเหรี ยญเสี่ ยงทายเพื่อตัดสิ นใจว่าจะกินขนมปั งหรื อผลไม้ โดยมี
       เงื่อนไขว่า ถ้าออกหัวกินขนมปั ง ถ้าออกก้อยกินผลไม้
      วัตถุดิบ : ผลการโยน ผลลัพธ์ : กินอะไร(ผลไม้/ขนมปั ง)
             1. โยนเหรี ยญ =>             การกระทา
             2. ดูเหรี ยญ      => รับข้อมูล
             3. ถ้าออกหัว      => ไปขั้นตอนที่ 5
             4. ถ้าออกก้อย => ไปขั้นตอนที่ 6

             5. กินขนมปั ง => ไปขั้นตอนที่ 7

             6. กินผลไม้       => ไปขั้นตอนที่ 7
             7. หยุด
การออกแบบอัลกอริธึม
  ในการเขียนอธิบายอัลกอริ ธึมนั้น เราสามารถคิดอัลกอริ ธึมเพื่อมา
                                                            ็
   แก้ปัญหาได้หลายแบบ ซึ่งในแต่ละแบบเครื่ องคอมพิวเตอร์กจะใช้ใน
   หน่วยความจา และเวลาในการประมวลผลไม่เท่ากัน ดังนั้น การจะ
   เปรี ยบเทียบว่าโปรแกรมคอมพิวเตอร์ใครเก่งกว่ากันนั้นจึงใช้การ
   เปรี ยบเทียบและประสิ ทธิภาพของอัลกอริ ธึมนันเอง
                                              ่
  อัลกอริ ธึมของใครใช้เวลาในการประมวลผลและหน่วยความจาน้อย
   กว่า ถือว่าอัลกอริ ธึมนั้นฉลาดกว่า




                                                                    15
ประสิ ทธิภาพของอัลกอริธึม

     จะพิจารณาอยู่ 2 ส่ วนหลักๆ ดังนี้
        หน่ วยความจา(memory)ที่จะต้องใช้ในการประมวลผล

        เวลา(time)ที่ใช้ในการประมวลผล




                                                         16
อัลกอริ ธึมต้มมาม่า




                 5
                      5




                          17
อัลกอริ ธึมที่ดีจะประกอบด้วยคุณสมบัติต่างๆดังนี้

   อัลกอริ ธึมที่ดีตองมีความถูกต้อง (correctness)
                     ้
   อัลกอริ ธึมที่ดีตองง่ายต่อการอ่าน(readability)
                         ้
   อัลกอริ ธึมที่ดีตองสามารถปรับปรุ งได้ง่ายต่ออนาคต(ease of
                           ้
    modification)
   อัลกอริ ธึมที่ดีสามารถนากลับมาใช้ใหม่ได้(Reusability)
   อัลกอริ ธึมที่ดีตองมีประสิ ทธิ ภาพ (efficiency)
                       ้



                                                                18
การควบคุมการทางานของโปรแกรม (Program Control Flow)

   การควบคุมการทางานของโปรแกรม เป็ นเครื่ องมือที่ผพฒนาโปรแกรมใช้
                                                    ู้ ั
    ในการแสดงลาดับการทางานของโปรแกรมหรื อใช้อธิบายอัลกอริ ธึม ให้เป็ น
                                                 ่
    ระบบและง่ายต่อความเข้าใจ โดยโครงสร้างอาจจะอยูในรู ปแบบดังนี้คือ
    1. ผังงาน (Flowchart) ซึ่งเป็ น Flow Diagram ชนิดหนึ่งสาหรับใช้
    อธิบายขั้นตอนการทางานของโปรแกรมในลักษณะรู ปภาพ
    2. ชุ ดคาสั่ งเทียม (Pseudocode) จะมีสญลักษณ์คล้ายกับภาษาอังกฤษ
                                          ั
    ก้ ากึ่งระหว่างภาษาอังกฤษกับภาษาคอมพิวเตอร์ใช้ในการอธิบาย
    ลักษณะโครงสร้างข้อมูล และการทางานของอัลกอริ ธึมที่เราเขียนขึ้น
Flow Chart และ Pseudo Code

               Algorithm Summation
               1.      Sum = 0
               2.      Input (value1)
               3.      Input (value2)
               4.      Input (value3)
               5. Sum = value1 + value2 + value3
               6.      Output (sum)
                       End .
               การเขียนอัลกอริ ธึมการบวกเลข 3 ตัว ในรู ปแบบ Pseudo Code




                                                                  20
สั ญลักษณ์ ในผังงาน (Flow Chart)




                                   21
สั ญลักษณ์ ในผังงาน (Flow Chart)




                                   22
สั ญลักษณ์ ในผังงาน




                      23
ตัวอย่ างการเขียนผังงาน

    จงเขียนผังงานแสดงการเขียน
     และส่ งจดหมาย




                                 24
ตัวอย่างผังงาน
การถอนเงินจาก ATM
ตัวอย่างผังงาน
การทานยา
วิธีการเขียนผังงานที่ดี
 1. ใช้สญลักษณ์ตามที่กาหนดไว้
          ั
 2. ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรื อจาก
  ซ้ายไปขวา
 3. คาอธิ บายในภาพสัญลักษณ์ผงงานควรสั้นกะทัดรัด และเข้าใจง่าย
                                 ั
 4. ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก
                                    ่
 5. ไม่ควรโยงเส้นเชื่อมผังงานที่อยูไกลมาก ๆ ควรใช้สัญลักษณ์
  จุดเชื่อมต่อแทน
 6. ผังงานควรมีการทดสอบความถูกต้องของการทางานก่อนนาไป
  เขียนโปรแกรมจริ ง
โครงสร้ างพืนฐานที่ใช้ ในการเขียนโปรแกรม
            ้
 1. โครงสร้ างแบบลาดับ (Sequence Structure)
 2. โครงสร้ างแบบเลือก (Selection Structure)
 3. โครงสร้ างแบบทาซ้าหรือวนรอบ (Repetition or
     Looping Structure)


                                                 28
1. โครงสร้ างแบบลาดับ (Sequence Structure)

  ทางานตามลาดับ
  ทางานจากบนลงล่าง (จุดเริมต้นถึงสินสุด)
                           ่        ้
  มีจุดเริมต้นจุดเดียว – จุดสินสุดจุดเดียว
           ่                   ้
  อาจเรียกใช้โมดูลอื่นได้



                                              29
ผังงานโปรแกรมโครงสร้ างแบบลาดับ
                  START


                  คาสัง 1
                      ่



                  คาสัง 2
                      ่



                  คาสัง 3
                      ่




                   STOP

                                  30
ตัวอย่ าง โปรแกรมรับข้ อมูลจานวนสิ นค้ าและราคาสิ นค้ า
             START


              ราคา = 0               Input   Process   Output
                                       ?        ?        ?
       รับจานวนสินค้า และราคา


        ราคา = จานวนชิ้น*ราคา


              พิมพ์ราคา


              STOP
                                31
ตัวอย่ าง โปรแกรมรับข้ อมูลจานวนสิ นค้ าและราคาสิ นค้ า
               อัลกอริธึม                 รหัสเทียม (Pseudo Code)
1.   เริ่มต้ นทางาน                   Begin
2.   กาหนดค่ า จานวนเงินทีชาระ่          Price = 0
     (Price) เท่ ากับศูนย์               Read Amt, Cost
3.   รับข้ อมูล จานวนสิ นค้ า (Amt)
     และ ราคา (Cost)
4.   คานวณจานวนเงินทีชาระ จาก
                           ่             Price = Amt x Cost
     Price = Amt x Cost
5.   แสดงผล จานวนที่ต้องชาระ             Write Price
6.   จบการทางาน                       End
                                                                    32
แบบฝึ กหัด โปรแกรมคานวณพื้นที่สามเหลี่ยม

การแสดงผล : พื้นที่สามเหลี่ยม
การรับข้ อมูล : ความสูงและฐาน
การประมวลผล : คานวณพื้นที่สามเหลี่ยม =½ x สูง x ฐาน



จงเขียน Algorithm, Pseudo code, Flowchart



                                                      33
ตัวอย่ าง โปรแกรมคานวณพืนทีสามเหลียม
                              ้ ่       ่
                  อัลกอริธึม             รหัสเทียม (Pseudo Code)
1.   เริ่มต้ นทางาน                    Begin
2.   กาหนดค่ า พืนที่สามเหลียม
                     ้           ่
     (Area) = 0
3.   รับข้ อมูล ความสู ง(Height) และ
     ฐาน (Base)
4.   คานวณพืนที่สามเหลียม จาก
                ้            ่
     Area = Height x Base
5.   แสดงผล พืนที่สามเหลียม
                   ้           ่
6.   จบการทางาน                        End

                                                                   34
ตัวอย่ าง โปรแกรมคานวณพืนทีสามเหลียม
                        ้ ่       ่
             Flowchart




                                       35
แบบฝึ กหัด โปรแกรมคานวณพื้นที่วงกลม

การแสดงผล : พื้นที่วงกลม
การรับข้ อมูล :
การประมวลผล :



จงเขียน Algorithm, Pseudo code, Flowchart



                                            36
แบบฝึ กหัด โปรแกรมคานวณอายุปัจจุบน
                                 ั

การแสดงผล : อายุปัจจุบน
                      ั
การรับข้ อมูล :
การประมวลผล :



จงเขียน Algorithm, Pseudo code, Flowchart



                                            37
2. โครงสร้ างแบบเลือก (Selection Structure)

 มีเงือนไขทีตองตัดสินใจเลือกการทางาน
      ่      ่ ้
 ผลลัพธ์ของเงือนไขคือ จริง หรือ เท็จ เท่านัน
              ่                             ้




                                                38
2.1 Flowchart แบบหนึ่งทางเลือก
   แบบ 1 ทางเลือก หรือ โครงสร้ าง IF….THEN
   เป็ นโครงสร้างที่ทดสอบเงื่อนไข แล้วเลือกว่าจะทาหรื อไม่ทา ก่อนที่จะ
    ไปทางานอื่นต่อไป

                 ใช่
      เงื่อนไข         งานที่ตองทา
                              ้
  ไม่ใช่

     งานต่อไป
2.1 Flowchart แบบหนึ่งทางเลือก
- แบบ 1 ทางเลือก หรือ โครงสร้ าง IF….THEN จะทางานเมื่อ
เงื่อนไขเป็ นจริง
                เท็จ/FALSE              จริง/TRUE
                             เงือนไข
                               ่


  รหัสเทียม                                   คาสัง่ A

  IF        ……………
  THEN …(คำสังA)…
               ่


                                                         40
2.1 Flowchart แบบหนึ่งทางเลือก

 ตัวอย่าง โครงสร้าง IF….THEN
      แม่ถามว่าหิ วข้าวหรื อไม่ ถ้าหิ วก็ให้กิน ถ้าไม่หิวไม่ตองกิน แล้วจึง
                                                              ้
       เดินงานไปโรงเรี ยน (งานต่อไป)


                                ใช่
                  หิวใช่ไหม?          กินข้าว
                ไม่ใช่

                  เดินทางมาเรี ยน

                                                                              41
ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ

  เงือนไข
     ่
  - ถ้าได้คะแนนสอบ 50 คะแนนขึนไป ให้
                               ้
  พิมพ์ขอความความ ‘You pass’
         ้
  - ถ้าได้คะแนนต่ากว่า 50 คะแนน ให้จบ
  การทางาน

                                          42
ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ
    START                              Input   Process   Output
                                         ?        ?        ?
   Read Score




   Score>=50
                Y   Print ‘You pass’


     N


     STOP
ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ
               อัลกอริธึม      รหัสเทียม (Pseudo Code)
1.   เริ่มต้ นทางาน            Begin
2.   รับค่ า คะแนนสอบ(Score)       Read Score
3.   ถ้ าคะแนนสอบตั้งแต่ 50        IF Score >= 50
     คะแนนขึนไป ให้ พมพ์ทาง
                 ้        ิ        THEN Write ‘You pass’
     หน้ าจอว่ า ‘You pass’
4.   จบการทางาน                End



                                                           44
ตัวอย่ าง รับค่ าอายุนักศึกษา ถ้ าอายุนักศึกษาน้ อยกว่ า 20 ปี
ให้ แสดงคาว่ า ‚you are so young‛




      จงเขียน Algorithm, Pseudo code, Flowchart




                                                                 45
2.2 Flowchart แบบสองทางเลือก
แบบ 2 ทางเลือก หรือ โครงสร้ าง IF…THEN...ELSE


 ไม่ใช่              ใช่
          เงื่อนไข

  งาน 2              งาน 1
2.2 Flowchart แบบสองทางเลือก
แบบ 2 ทางเลือก หรือ โครงสร้ าง IF…THEN...ELSE

                  เท็จ/FALSE             จริง/TRUE
                               เงือนไข
                                 ่

             คาสัง่ A                          คาสัง่ B

  รหัสเทียม
  IF        ……………..
  THEN …..(คำสังB)…..
                ่
  ELSE ..…(คำสังA)...…
                  ่
  END IF                                                  47
ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ

  เงือนไข
     ่
  -ถ้าได้คะแนนสอบ 50 คะแนนขึนไป ้
  ให้พิมพ์ข้อความว่า ‘Pass’
  - ถ้าได้คะแนนตากว่า 50 คะแนน ให้
                 ่
  พิมพ์ข้อความว่า ‘Fail’
  - ตัวแปร Grade เก็บค่าผลลัพธ์
                                          48
ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ
                  START


               Read Score


                                Y
                Score>=50           Grade = ‘Pass’
                N
               Grade = ‘Fail’




                Print Grade


                  STOP
ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ
               อัลกอริธึม             รหัสเทียม (Pseudo Code)
1.   เริ่มต้ นทางาน                   Begin
2.   รับค่ า คะแนนสอบ (Score)             Read Score
3.   ถ้ าคะแนนสอบตั้งแต่ 50 คะแนน
                                          IF Score >= 50
     ขึนไป ให้ ทานิพจน์
        ้
     Grade=‘Pass’ ถ้ าน้ อยกว่ า 50       THEN Grade = ‘Pass’
     คะแนน ให้ ทานิพจน์                   ELSE Grade = ‘Fail’
     Grade=‘Fail’                         END IF
4.   แสดงผล เกรด (Grade)                  Write Grade
5.   จบการทางาน                       End

                                                                50
ตัวอย่ าง ให้รับค่า A,B ถ้า A>B ให้หาค่าผลต่าง แต่ถาไม่ใช่ให้หา
                                                   ้
ค่าผลรวม



          จงเขียน Algorithm, Pseudo code, Flowchart




                                                                  51
2.2 Flowchart แบบหลายทางเลือก
แบบหลายทางเลือก หรือ โครงสร้ าง ELSE…IF
                                      เริ่ มต้น

                                                           ใช่
  รหัสเทียม
  IF        …เงื่อนไข 1…..          เงื่อนไข 1                    คาสั่งเมื่อเป็ นจริ ง

   THEN …คำสั่ งเมื่อเป็ นจริ ง..             ไม่ใช่
  ELSE IF …เงื่อนไข 2…..                                    ใช่

   THEN …คำสั่ งเมื่อเป็ นจริ ง..   เงื่อนไข 2                     คาสั่งเมื่อเป็ นจริ ง

  ….                                              ไม่ใช่
  ….                                 เงื่อนไข 3
  ELSE …เมื่อไม่เข้าเงื่อนไขใดๆ

                                     จบงาน
                                                                                           52
ตัวอย่ าง โปรแกรมประมวลผลการเรียน

  เงือนไข
     ่
  -คะแนนสอบสูงกว่า 80 คะแนน ได้เกรด A
  -คะแนนสอบ 70-79 คะแนนขึนไป ได้เกรด B
                            ้
  -คะแนนสอบ 60-69 คะแนนขึนไป ได้เกรด C
                          ้
  -คะแนนสอบ 50-59 คะแนนขึนไป ได้เกรด D
                              ้
  -คะแนนสอบตากว่า 50 คะแนน ได้เกรด F
             ่

                                         53
START

ตัวอย่าง                 Read Score

            Y                               N
                          Score>=80

  Grade = ‘A’                 Y                          N
                                      Score>=70

                                                Y                   N
                    Grade = ‘B’                      Score>=60


                                      Grade = ‘C’        Y                     N
                                                                 Score>=50



                                                Grade = ‘D’             Grade = ‘F’




                Write Grade           STOP                                      54
Start




       Read Score




                      Y
       Score >= 80               Grade = ‘A’




หรือ              N


                       Y
       Score >= 70               Grade = ‘B’



                  N


                       Y
       Score >= 60               Grade = ‘C’



                  N


                       Y
       Score >= 50               Grade = ‘D’



                  N



       Grade = ‘F’




       Write Grade




                      BC320 Introduction to Computer
          Stop
                              Programming              55
ตัวอย่าง โปรแกรมประมวลผลการเรียน
                อัลกอริธึม                       รหัสเทียม (Pseudo Code)
1. เริ่มต้ นทางาน                                Begin
2. รับค่ า คะแนนสอบ (Score)                        READ Score
3. เปรียบเทียบคะแนนสอบ>=80 ถ้ าเป็ นจริง ให้       IF Score >= 80
   ทานิพจน์ Grade=‘A’ ถ้ าเป็ นเท็จ ให้            THEN Grade = ‘A’
   เปรียบเทียบคะแนนสอบ >=70 ถ้ าเป็ นจริง ให้      ELSE IF Score >=70
   ทานิพจน์ Grade=‘B’ ถ้ าเป็ นเท็จ ให้                   THEN Grade = ‘B’
   เปรียบเทียบคะแนนสอบ >=60 ถ้ าเป็ นจริง ให้      ELSE IF Score >=60
   ทานิพจน์ Grade=‘C’ ถ้ าเป็ นเท็จ ให้                   THEN Grade = ‘C’
   เปรียบเทียบคะแนนสอบ >=50 ถ้ าเป็ นจริง ให้      ELSE IF Score >=50
   ทานิพจน์ Grade=‘D’ ถ้ าเป็ นเท็จ ให้ ให้ ทา            THEN Grade = ‘D’
   นิพจน์ Grade=‘F’                                ELSE Grade = ‘F’
4. แสดงผล เกรด (Grade)                             WRITE Grade
5. จบการทางาน                                    End
                                                                             56
ตัวอย่ าง คานวณหายอดเงินที่ลูกค้าต้องชาระ โดยตรวจสอบ
จากราคาสิ นค้า

     - ถ้าซื้ อสิ นค้า 0-100 บาท ได้ส่วนลด 5 บาท
     - ถ้าซื้ อสิ นค้า 101-200 บาท ได้ส่วนลด 10 บาท
     - ถ้าซื้ อสิ นค้าเกิน 200 บาท ได้ส่วนลด 20 บาท
  โดยแสดงผลลัพธ์เป็ นยอดเงินที่ลูกค้าต้องชาระ



                                                       57
ตัวอย่ างคานวณหายอดเงินที่ลูกค้าต้องชาระ โดยตรวจสอบจากราคา
สิ นค้า
                   อัลกอริธึม               รหัสเทียม (Pseudo Code)
1. เริ่มต้ นทางาน                           Begin
2. รับค่ า ราคาสิ นค้ า (price)
3. เปรียบเทียบราคาสิ นค้ า<=100 ถ้ าเป็ น
   จริง ให้ ทานิพจน์ price=price-5 ถ้ า
   เป็ นเท็จ ให้ เปรียบเทียบราคาสิ นค้ า
   <=200 ถ้ าเป็ นจริง ให้ ทานิพจน์
   price=price-10 ถ้ าเป็ นเท็จ ให้ ทา
   นิพจน์ price=price-20
4. แสดงผล ราคาสิ นค้ า (price)              End
5. จบการทางาน
                                                  Flowchart ?
                                                                      58
3. โครงสร้ างแบบทาซ้าหรือวนรอบ (Repetition or Looping Structure)


   1.   การวนซ้าแบบทดสอบเงื่อนไขก่ อน
   2.   การวนซ้าแบบทดสอบเงื่อนไขทีหลัง
   3.   การวนซ้าแบบวนซ้าแน่ นอน




                                                                   59
3. โครงสร้ างแบบทาซ้าหรือวนรอบ (Repetition or Looping Structure)


    3.1 การวนซ้าแบบทดสอบเงื่อนไขก่อน หรือ While
    ลูปแบบ While ในการทางานครั้งแรกจะตรวจสอบเงื่อนไขก่ อนทุกครั้ง
     ก่อนจะเข้ าลูปการทางาน แต่ เมื่อพบว่ าเงื่อนไขเป็ นเท็จจะออกจากลูป
     ทันที
                          While จริ ง   กลุ่มคาสังที่
                                                 ่
                        (เงื่อนไข)
                                         ต้องทาซ้ า
                       เท็จ
                     ออกจากวนรอบ(ลูป)


                                                                     60
WHILE Loop

  มีเงือนไขในการหยุดการทางาน
        ่
  ตรวจเงือนไขก่ อนการทางานทุกครั้ง ถ้ าใช่ ตามที่เงือนไข
          ่                                          ่
   ต้ องการ จะให้ ทางานต่ อไป
  อาจไม่ ได้ ทาเลยแม้ แต่ ครั้งเดียว




                                                            61
3.2 Flowchart แบบวนลูป ชนิด While
  ตัวอย่ าง จงเขียนผังงานแสดงการทางานของการแสดงค่ าตัวเลขจานวนเต็มบวก
  โดยเริ่มต้ นตั้งแต่ เลข 1-5
  วิเคราะห์
   เงือนไขในการหยุด
         ่                                   แสดงตัวเลขมากกว่ า 5
   ผลลัพธ์ คือ ค่ าตัวเลข <=5               แสดงตัวเลขจานวนเต็มบวก
   ข้ อมูลเข้ า คือ กาหนดค่ าเริ่มต้ นของตัวเลขจานวนเต็มบวก ใช้ ตัวแปรเป็ น number
   การประมวลผล คือ
          ตรวจสอบค่ าตัวเลข <=5
          พิมพ์ค่า
          วนรอบจนกว่ าเงือนไขจะเป็ นเท็จ
                          ่


                                                                                      62
ตัวอย่าง แสดงการทางานของ                   START
การแสดงค่ าตัวเลข
ตั้งแต่ เลข 1 ถึงเลข 5 โดยใช้           number = 1
While                           NO
                                      While number <= 5
                                               YES
                                        Print number


                                     number = number+1



                                            END
ตัวอย่ าง โปรแกรมแสดงเลข 1-5
               อัลกอริธึม                     รหัสเทียม (Pseudo Code)
1.   เริ่มต้ นทางาน                           Begin
2.   กาหนดค่ าเริ่มต้ นตัวเลข                     Number = 1
     Number=1
                                                  While Number <= 5
3.   ถ้ า Number ยังน้ อยกว่ าหรือ
     เท่ ากับ 5 ให้ พมพ์ค่าของ
                     ิ                                {
     Number และให้ เพิมค่ า Number
                            ่                           Write Number
     ครั้งละ 1 ค่ า แต่ ถ้าเป็ นเท็จให้ ออก              Number=Number+1
     จากการทางาน                                      }
4.   จบการทางาน                               End

                                                                      64
3.1 Flowchart แบบวนลูป ชนิด While Loop
                                             START
 ตัวอย่าง โปรแกรมบวกเลข 1 ถึง 5
 Sum = 1+2+3+4+5                       number = 1 , Sum=0
                                  NO
                                        While number <= 5
    เงือนไขในการหยุด ?
       ่                                         YES
                                       Sum = Sum+number


                                       number = number+1


                                            Print Sum

                                             END
ตัวอย่ าง โปรแกรมแสดงผลบวกเลข 1-5
                 อัลกอริธึม             รหัสเทียม (Pseudo Code)
1.   เริ่มต้ นทางาน                     Begin
2.   กาหนดค่ าเริ่มต้ นตัวเลข
     Number=1 และผลรวม Sum=0
3.   ถ้ า Number ยังน้ อยกว่ าหรือ
     เท่ ากับ 5 ให้ บวกค่ าของ Number
     เก็บไว้ ที่ Sum วนรอบจนกว่ า
     เงือนไขเป็ นเท็จให้ ออกจากการ
        ่
     ทางาน
4.   แสดงผลการบวก                       End
5.   จบการทางาน
                                                                  66
3.2 Flowchart แบบวนลูป ชนิด Do-While

   3.2 การวนซ้าแบบทดสอบเงื่อนไขทีหลัง หรือ ชนิด Do-While
   ลูปแบบ Do-While การทางานครั้งแรกจะไม่ มีการตรวจสอบเงื่อนไข
    แต่ จะเข้ าไปทางานในลูปอย่ างน้ อย 1 ครั้ง แล้วจึงไปตรวจสอบ
    เงื่อนไข
                        กลุ่มคาสั่ งทีต้องการวนซ้า
                                      ่


                               Do-While         Yes
                                เงือนไข
                                   ่
                               No
DO WHILE
   มีเงือนไขในการหยุดการทางาน
         ่
   ได้ ทางานอย่ างน้ อย 1 ครั้ง
   หลังจากนั้นในแต่ ละครั้งจะมีตรวจสอบเงือนไข
                                          ่
  ถ้ าเงือนไขเป็ นจริงก็จะวนรอบทางานต่ อ
         ่
  ถ้ าเป็ นเท็จจะออกจากลูป



                                                 68
3.2 Flowchart แบบวนลูป ชนิด Do-While
  ตัวอย่ าง จงเขียนผังงานแสดงการทางานของการแสดงค่ าตัวเลขจานวนเต็มบวก
  โดยเริ่มต้ นตั้งแต่ เลข 1-5 เมื่อหยุดแสดงผลค่ าตัวเลขแล้ วให้ แสดงข้ อความ “I Love URU”
  วิเคราะห์
   เงือนไขในการหยุด
         ่                                   แสดงตัวเลขมากกว่ า 5
   ผลลัพธ์ คือ ค่ าตัวเลข <= 5              แสดงตัวเลขจานวนเต็มบวก
                        ค่ าตัวเลข > 5       แสดงข้ อความ “I Love URU”
   ข้ อมูลเข้ า คือ กาหนดค่ าเริ่มต้ นของตัวเลขจานวนเต็มบวก ใช้ ตัวแปรเป็ น number
   การประมวลผล คือ
          พิมพ์ค่าตัวเลข
          ตรวจสอบค่ าตัวเลข <=5
          วนรอบจนกว่ าเงือนไขจะเป็ นเท็จ
                              ่
          ถ้ าค่ าตัวเลข > 5 แสดงข้ อความ “I Love URU”                                     69
START

ตัวอย่าง แสดงการทางานของ            number = 1
การแสดงค่ าตัวเลข
ตั้งแต่ เลข 1 ถึงเลข 5 โดยใช้
Do-While                           Print number

                                number = number+1

                                                     YES
                                 While number <= 5
                                             NO
                                      Display
                                   “I love URU”

                                       END
ตัวอย่ าง โปรแกรมแสดงเลข 1-5
               อัลกอริธึม                รหัสเทียม (Pseudo Code)
1.   เริ่มต้ นทางาน                      Begin
2.   กาหนดค่ าเริ่มต้ นตัวเลข                number = 0
     number=0
                                             Do
3.   เพิมค่ า number ทีละ 1 ค่ า
         ่
     number=number+1 และให้                  {
     พิมพ์ค่าของ number                          number = number+1
4.   ถ้ าค่ าของ number ยังน้ อยกว่ า            write Number
     หรือเท่ ากับ 5 ให้ ทาข้ อ 3 ไป          }
     เรื่อยๆ จนกว่ าเงือนไขจะเป็ นเท็จ
                       ่                     While number <=5
      และออกจากการทางาน                  End
5.   จบการทางาน                                                      71
3.2 Flowchart แบบวนลูป ชนิด Do-While
  ตัวอย่ าง จงเขียนผังงานแสดงการทางานของการแสดงการบวกเลข 1-10
  วิเคราะห์
   เงือนไขในการหยุด
         ่                                   แสดงตัวเลขมากกว่ า 10
   ผลลัพธ์ คือ ผลรวมของการบวกเลข 1-10
   ข้ อมูลเข้ า คือ กาหนดค่ าเริ่มต้ นของตัวเลขจานวนเต็มบวก และผลรวมการบวก
   การประมวลผล
         บวกค่ าเลขจานวนเต็มบวก
         ตรวจสอบค่ าของเลขจานวนเต็มบวก <= 10
         วนรอบจนกว่ าเงือนไขจะเป็ นเท็จ
                         ่
         พิมพ์ค่าผลรวม


                                                                              72
3.2 Flowchart แบบวนลูป ชนิด Do-While
 ตัวอย่าง โปรแกรมบวกเลข 1 ถึง 10
 Sum = 1+2+3+4+5+6+7+8+9+10                  START


                                           i=0 , Sum=0

    เงือนไขในการหยุด ?
       ่                                     i = i+1
                                           Sum=Sum+i
                                   จริ ง                 เท็จ
                                              i<=10             Print Sum




                                             STOP
ตัวอย่ าง โปรแกรมแสดงผลบวก 1-10
                อัลกอริธึม                 รหัสเทียม (Pseudo Code)
1.   เริ่มต้ นทางาน                        Begin
2.   กาหนดค่ าเริ่มต้ นตัวเลข i=0 และ
     ผลรวม sum=0
3.   เพิมค่ า i ทีละ 1 ค่ า i=i+1 และหา
          ่
     ผลรวมของการบวก
     sum=sum+i
4.   ถ้ า i ยังน้ อยกว่ าหรือเท่ ากับ 10
     ให้ ทาข้ อ 3 ไปเรื่อยๆ จนกว่ า
     เงือนไขจะเป็ นเท็จจึงออกจากลูป
        ่                                  End
5.   พิมพ์ค่าผลรวม
6.   จบการทางาน                                                      74
3.3 Flowchart แบบวนลูป ชนิด For
   3.3 การวนซ้าแบบวนซ้าแน่ นอน หรือ For
   ลูปแบบ For จะไม่ มีเงื่อนไขในการทางาน แต่ จะหยุดทางานเมื่อวนลูป
    ครบตามจานวนทีต้องการ
                   ่

                           For   จริ ง
                                         กลุ่มคาสังที่
                                                  ่
                      (เงื่อนไข)
                                          ต้องทาซ้ า
                     เท็จ
                   ออกจากวนรอบ(ลูป)


                                                                 75
FOR Loop

  งานที่ต้องทาซ้าเป็ นจานวนรอบที่แน่ นอน
  ไม่ มเงือนไขในการหยุดการทางาน
        ี ่
  หยุดทางานเมือทาครบเป็ นจานวนรอบที่ต้องการ
               ่
  มีตัวนับ (Counter) คอยควบคุมจานวนรอบ




                                               76
3.3 Flowchart แบบวนลูป ชนิด For

 ตัวอย่ าง จงเขียนผังงานแสดงการทางานของการแสดงค่าตัวเลข
 ตั้งแต่ เลข 1 ถึงเลข 10
 วิเคราะห์
  จานวนรอบ 10 รอบ
  ผลลัพธ์ คือ แสดงตัวเลข 10 จานวน ตั้งแต่ เลข 1 ถึงเลข 10
  ข้ อมูลเข้ า คือ การกาหนดค่ าเริ่มต้ นให้ ตัวแปรนับรอบใช้ ตัวแปรเป็ น i
  การประมวลผล คือ ทาการวนรอบแสดงตัวเลข 10 รอบ
 แสดงตัวเลข ตั้งแต่ เลข 1 ถึงเลข 10
                                                                             77
3.3 Flowchart แบบวนลูป ชนิด For
                                    START
 ตัวอย่ าง แสดงการทางานของการ
 แสดงค่ าตัวเลข                      i=1
 ตั้งแต่ เลข 1 ถึงเลข 10
 ถ้ าแสดงตัวเลขครบแล้ วให้ แสดง
 ข้ อความว่ า “Very Good”
                                                NO   Print ‚Very
                                  for i <= 10
                                                       Good‛
                                         YES
                                  Display i

                                    i = i+1



                                    END                       78
ตัวอย่ าง โปรแกรมแสดงผลบวก 1-10
                อัลกอริธึม                 รหัสเทียม (Pseudo Code)
1.   เริ่มต้ นทางาน                        Begin
2.   กาหนดค่ าเริ่มต้ นตัวเลข i=1
                                               i=1
3.   ถ้ า i ยังน้ อยกว่ าหรือเท่ ากับ 10
     ให้ พมพ์ค่า i และเพิมค่ า i ทีละ 1
            ิ               ่                  for i<=10
     ค่ า i=i+1                                     {
4.   ทาข้ อ 3 ไปเรื่อยๆ จนกว่ าค่ าของ                Write i
     i จะเป็ นเท็จ                                    i=i+1
5.   พิมพ์ข้อความ ‚Very Good‛                       }
6.   จบการทางาน                                Write ‚Very Good‛
                                           End
                                                                     79
ตัวอย่ าง กาหนดให้โปรแกรมแสดงคาว่า “Hello” จานวน 50
ครั้ง เมื่อแสดงครบแล้วให้แสดงคาว่า “Good buy”



        จงเขียน Algorithm, Pseudo code, Flowchart




                                                      80
ประโยชน์ของผังงาน
 1. ลาดับขั้นตอนการทางานของโปรแกรม และสามารถนาไปเขียน
  โปรแกรมได้โดยไม่สบสน  ั
 2. ตรวจสอบความถูกต้อง และแก้ไขโปรแกรมได้ง่าย เมื่อเกิด
  ข้อผิดพลาด
 3. การปรับปรุ ง เปลี่ยนแปลง แก้ไข ทาได้อย่างสะดวกและรวดเร็ ว
 4. ทาให้ผอื่นสามารถศึกษาการทางานของโปรแกรมได้อย่างง่าย
           ู้
  และรวดเร็ วมากขึ้น
โปรแกรมที่ช่วยในการเขียนผังงาน
                  Microsoft Visio




                                    82
โปรแกรมที่ช่วยในการเขียนผังงาน
                     SmartDraw




                                 83
โปรแกรมที่ช่วยในการเขียนผังงาน
                   Edraw Mind Map




                                    84
แบบฝึ กหัด
  1. จงเขียน Algorithm, Pseudo code, Flowchart ของโปรแกรมที่
      กาหนดให้ต่อไปนี้
      1.1 โปรแกรมคานวณหาค่า y ของสมการ y = x^2 + 2x +10
      1.2 โปรแกรมหาค่าน้ าหนักเฉลี่ยของนักศึกษา 3 คน
    1.3 โปรแกรมแสดงยอดขาย ถ้าซื้อสิ นค้ามากกว่า 1000 บาทมีส่วนลดให้
    100 บาท
    1.4โปรแกรมแสดงยอดขายของร้านค้าแห่งหนึ่งมีนโยบาย ลดราคาให้
    ลูกค้า ถ้าเป็ นชายจะลดให้ 50 บาท แต่ถาเป็ นหญิง จะลดให้ 100 บาท
                                         ้
แบบฝึ กหัด

  1.5 โปรแกรมแสดงขนาดของการใช้ยาตามอายุของผูใช้  ้
     อายุมากกว่า 10 ปี แสดงข้อความรับประทานครั้งละ 3 ช้อนชา
     อายุ       6-10 ปี แสดงข้อความรับประทานครั้งละ 2 ช้อนชา
     อายุ       2-5 ปี แสดงข้อความรับประทานครั้งละ 1 ช้อนชา
     เด็กอายุต่ากว่า 1 ปี ห้ามรับประทาน




                                                               86
แบบฝึ กหัด

  2. จงเขียน Flowchart สาหรับวนรอบรับค่าตัวเลข แล้วแสดงค่าตัวเลขที่
      รับเข้ามาออกทางจอภาพ โดยที่เมื่อรับค่าตัวเลขเป็ น -999 จะสิ้ นสุ ด
      การวนรอบและจบโปรแกรม
  3. จงเขียน Flowchart สาหรับวนรอบรับค่าตัวเลข และในระหว่างรับให้
      หาผลรวมของตัวเลขที่รับเข้ามา โปรแกรมจะหยุดรับค่าเมื่อใส่ ตวเลข ั
      -999 และจะแสดงผลรวมของตัวเลขทั้งหมดที่รับเข้ามาและหยุด
      ทางาน


                                                                       87

Más contenido relacionado

La actualidad más candente

แบบทดสอบอาเซียน 30 ข้อ
แบบทดสอบอาเซียน 30 ข้อแบบทดสอบอาเซียน 30 ข้อ
แบบทดสอบอาเซียน 30 ข้อKruthai Kidsdee
 
วิทย์ฯเพิ่มเติมเทอม1ม1
วิทย์ฯเพิ่มเติมเทอม1ม1วิทย์ฯเพิ่มเติมเทอม1ม1
วิทย์ฯเพิ่มเติมเทอม1ม1Niwat Yod
 
ชุดการเรียนรู้ พัฒนาความคิดสร้างสรรค์เรื่อง ซากดึกดำบรรพ์ โดยครูกอบวิทย์ พิร...
ชุดการเรียนรู้ พัฒนาความคิดสร้างสรรค์เรื่อง ซากดึกดำบรรพ์ โดยครูกอบวิทย์  พิร...ชุดการเรียนรู้ พัฒนาความคิดสร้างสรรค์เรื่อง ซากดึกดำบรรพ์ โดยครูกอบวิทย์  พิร...
ชุดการเรียนรู้ พัฒนาความคิดสร้างสรรค์เรื่อง ซากดึกดำบรรพ์ โดยครูกอบวิทย์ พิร...Kobwit Piriyawat
 
การวิจัยโดยใช้เกมมิฟิเคชั่นเป็นฐาน
การวิจัยโดยใช้เกมมิฟิเคชั่นเป็นฐานการวิจัยโดยใช้เกมมิฟิเคชั่นเป็นฐาน
การวิจัยโดยใช้เกมมิฟิเคชั่นเป็นฐานSurapon Boonlue
 
เนื้อหาแบบฝึกเสริมทักษะกระบวนการคิดตามวิธีการทางวิทยาศาสตร์
เนื้อหาแบบฝึกเสริมทักษะกระบวนการคิดตามวิธีการทางวิทยาศาสตร์เนื้อหาแบบฝึกเสริมทักษะกระบวนการคิดตามวิธีการทางวิทยาศาสตร์
เนื้อหาแบบฝึกเสริมทักษะกระบวนการคิดตามวิธีการทางวิทยาศาสตร์krupornpana55
 
เฉลยแบบทดสอบหลังเรียน วิชาอินเตอร์เนตกับการเรียนรู้ไร้พรมแดน ม.ต้น
เฉลยแบบทดสอบหลังเรียน วิชาอินเตอร์เนตกับการเรียนรู้ไร้พรมแดน  ม.ต้นเฉลยแบบทดสอบหลังเรียน วิชาอินเตอร์เนตกับการเรียนรู้ไร้พรมแดน  ม.ต้น
เฉลยแบบทดสอบหลังเรียน วิชาอินเตอร์เนตกับการเรียนรู้ไร้พรมแดน ม.ต้นpeter dontoom
 
เฉลยข้อสอบเพาเวอร์พ้อยท์
เฉลยข้อสอบเพาเวอร์พ้อยท์เฉลยข้อสอบเพาเวอร์พ้อยท์
เฉลยข้อสอบเพาเวอร์พ้อยท์peter dontoom
 
ใบงานที่ 1.1 เรื่อง สรุปลักษณะของโครงงานคอมพิวเตอร์
ใบงานที่ 1.1 เรื่อง สรุปลักษณะของโครงงานคอมพิวเตอร์ใบงานที่ 1.1 เรื่อง สรุปลักษณะของโครงงานคอมพิวเตอร์
ใบงานที่ 1.1 เรื่อง สรุปลักษณะของโครงงานคอมพิวเตอร์Thanawut Rattanadon
 
ข้อสอบปลายภาค50ข้อ โปรแกรมword
ข้อสอบปลายภาค50ข้อ โปรแกรมwordข้อสอบปลายภาค50ข้อ โปรแกรมword
ข้อสอบปลายภาค50ข้อ โปรแกรมwordpeter dontoom
 
วิจัยในชั้นเรียน ปี57
วิจัยในชั้นเรียน ปี57วิจัยในชั้นเรียน ปี57
วิจัยในชั้นเรียน ปี57Kongkrit Pimpa
 
IS1 - 1.2 การตั้งประเด็นปัญหาหรือคำถาม
IS1 - 1.2 การตั้งประเด็นปัญหาหรือคำถามIS1 - 1.2 การตั้งประเด็นปัญหาหรือคำถาม
IS1 - 1.2 การตั้งประเด็นปัญหาหรือคำถามPloykarn Lamdual
 
บทที่ 1-5 โครงงาน
บทที่ 1-5 โครงงานบทที่ 1-5 โครงงาน
บทที่ 1-5 โครงงานAriyaporn Suaekong
 
ข้อสอบอัตนัย
ข้อสอบอัตนัยข้อสอบอัตนัย
ข้อสอบอัตนัยNU
 

La actualidad más candente (20)

แบบทดสอบอาเซียน 30 ข้อ
แบบทดสอบอาเซียน 30 ข้อแบบทดสอบอาเซียน 30 ข้อ
แบบทดสอบอาเซียน 30 ข้อ
 
2ตัวอย่างนำเสนอโครงการ
2ตัวอย่างนำเสนอโครงการ2ตัวอย่างนำเสนอโครงการ
2ตัวอย่างนำเสนอโครงการ
 
วิทย์ฯเพิ่มเติมเทอม1ม1
วิทย์ฯเพิ่มเติมเทอม1ม1วิทย์ฯเพิ่มเติมเทอม1ม1
วิทย์ฯเพิ่มเติมเทอม1ม1
 
ข้อสอบการงานอาชีพและเทคโนโลยี ป.5
ข้อสอบการงานอาชีพและเทคโนโลยี ป.5ข้อสอบการงานอาชีพและเทคโนโลยี ป.5
ข้อสอบการงานอาชีพและเทคโนโลยี ป.5
 
หน่วย 2
หน่วย 2หน่วย 2
หน่วย 2
 
ชุดการเรียนรู้ พัฒนาความคิดสร้างสรรค์เรื่อง ซากดึกดำบรรพ์ โดยครูกอบวิทย์ พิร...
ชุดการเรียนรู้ พัฒนาความคิดสร้างสรรค์เรื่อง ซากดึกดำบรรพ์ โดยครูกอบวิทย์  พิร...ชุดการเรียนรู้ พัฒนาความคิดสร้างสรรค์เรื่อง ซากดึกดำบรรพ์ โดยครูกอบวิทย์  พิร...
ชุดการเรียนรู้ พัฒนาความคิดสร้างสรรค์เรื่อง ซากดึกดำบรรพ์ โดยครูกอบวิทย์ พิร...
 
การเขียนผังงาน (Flow Chart)
การเขียนผังงาน (Flow Chart)การเขียนผังงาน (Flow Chart)
การเขียนผังงาน (Flow Chart)
 
การวิจัยโดยใช้เกมมิฟิเคชั่นเป็นฐาน
การวิจัยโดยใช้เกมมิฟิเคชั่นเป็นฐานการวิจัยโดยใช้เกมมิฟิเคชั่นเป็นฐาน
การวิจัยโดยใช้เกมมิฟิเคชั่นเป็นฐาน
 
เนื้อหาแบบฝึกเสริมทักษะกระบวนการคิดตามวิธีการทางวิทยาศาสตร์
เนื้อหาแบบฝึกเสริมทักษะกระบวนการคิดตามวิธีการทางวิทยาศาสตร์เนื้อหาแบบฝึกเสริมทักษะกระบวนการคิดตามวิธีการทางวิทยาศาสตร์
เนื้อหาแบบฝึกเสริมทักษะกระบวนการคิดตามวิธีการทางวิทยาศาสตร์
 
เฉลยแบบทดสอบหลังเรียน วิชาอินเตอร์เนตกับการเรียนรู้ไร้พรมแดน ม.ต้น
เฉลยแบบทดสอบหลังเรียน วิชาอินเตอร์เนตกับการเรียนรู้ไร้พรมแดน  ม.ต้นเฉลยแบบทดสอบหลังเรียน วิชาอินเตอร์เนตกับการเรียนรู้ไร้พรมแดน  ม.ต้น
เฉลยแบบทดสอบหลังเรียน วิชาอินเตอร์เนตกับการเรียนรู้ไร้พรมแดน ม.ต้น
 
กิติกรรมประกาศ
กิติกรรมประกาศกิติกรรมประกาศ
กิติกรรมประกาศ
 
เฉลยข้อสอบเพาเวอร์พ้อยท์
เฉลยข้อสอบเพาเวอร์พ้อยท์เฉลยข้อสอบเพาเวอร์พ้อยท์
เฉลยข้อสอบเพาเวอร์พ้อยท์
 
บทที่ 5
บทที่ 5บทที่ 5
บทที่ 5
 
ใบงานที่ 1.1 เรื่อง สรุปลักษณะของโครงงานคอมพิวเตอร์
ใบงานที่ 1.1 เรื่อง สรุปลักษณะของโครงงานคอมพิวเตอร์ใบงานที่ 1.1 เรื่อง สรุปลักษณะของโครงงานคอมพิวเตอร์
ใบงานที่ 1.1 เรื่อง สรุปลักษณะของโครงงานคอมพิวเตอร์
 
ข้อสอบปลายภาค50ข้อ โปรแกรมword
ข้อสอบปลายภาค50ข้อ โปรแกรมwordข้อสอบปลายภาค50ข้อ โปรแกรมword
ข้อสอบปลายภาค50ข้อ โปรแกรมword
 
วิจัยในชั้นเรียน ปี57
วิจัยในชั้นเรียน ปี57วิจัยในชั้นเรียน ปี57
วิจัยในชั้นเรียน ปี57
 
IS1 - 1.2 การตั้งประเด็นปัญหาหรือคำถาม
IS1 - 1.2 การตั้งประเด็นปัญหาหรือคำถามIS1 - 1.2 การตั้งประเด็นปัญหาหรือคำถาม
IS1 - 1.2 การตั้งประเด็นปัญหาหรือคำถาม
 
กิตติกรรมประกาศ
กิตติกรรมประกาศกิตติกรรมประกาศ
กิตติกรรมประกาศ
 
บทที่ 1-5 โครงงาน
บทที่ 1-5 โครงงานบทที่ 1-5 โครงงาน
บทที่ 1-5 โครงงาน
 
ข้อสอบอัตนัย
ข้อสอบอัตนัยข้อสอบอัตนัย
ข้อสอบอัตนัย
 

Similar a อัลกอริทึมและการวิเคราะห์ปัญหา

Programming
ProgrammingProgramming
Programmingsa
 
การคำนวณในตารางทำงาน
การคำนวณในตารางทำงานการคำนวณในตารางทำงาน
การคำนวณในตารางทำงานMeaw Sukee
 
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศการแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศMeaw Sukee
 
กระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศกระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศJL'mind Chutimon
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอมnuknook
 
Algorithm Flowchart
Algorithm FlowchartAlgorithm Flowchart
Algorithm FlowchartWarawut
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอมnuknook
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอมPassawan' Koohar
 
Turing machine2
Turing machine2Turing machine2
Turing machine2ninewyuya
 
Turing Machine2
Turing Machine2Turing Machine2
Turing Machine2ninewyuya
 
การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)Fair Kung Nattaput
 
Turing machine
Turing machineTuring machine
Turing machineninewyuya
 
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้นC:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น-
 

Similar a อัลกอริทึมและการวิเคราะห์ปัญหา (20)

หลักการเขียนโปรแกรม
หลักการเขียนโปรแกรมหลักการเขียนโปรแกรม
หลักการเขียนโปรแกรม
 
11
1111
11
 
1
11
1
 
Programming
ProgrammingProgramming
Programming
 
การคำนวณในตารางทำงาน
การคำนวณในตารางทำงานการคำนวณในตารางทำงาน
การคำนวณในตารางทำงาน
 
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศการแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
 
1122
11221122
1122
 
Computer12
Computer12Computer12
Computer12
 
Chapter 04 Compare
Chapter 04 CompareChapter 04 Compare
Chapter 04 Compare
 
กระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศกระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศ
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
Problem solution
Problem solutionProblem solution
Problem solution
 
Algorithm Flowchart
Algorithm FlowchartAlgorithm Flowchart
Algorithm Flowchart
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
Turing machine2
Turing machine2Turing machine2
Turing machine2
 
Turing Machine2
Turing Machine2Turing Machine2
Turing Machine2
 
การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)
 
Turing machine
Turing machineTuring machine
Turing machine
 
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้นC:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
 

Más de skiats

การ Setup disk quota กับ user ทุกคน
การ Setup disk quota กับ user ทุกคนการ Setup disk quota กับ user ทุกคน
การ Setup disk quota กับ user ทุกคนskiats
 
รูปแบบโครงการ
รูปแบบโครงการรูปแบบโครงการ
รูปแบบโครงการskiats
 
ตัวแปรและค่าคงที่ basic data type
ตัวแปรและค่าคงที่ basic data typeตัวแปรและค่าคงที่ basic data type
ตัวแปรและค่าคงที่ basic data typeskiats
 
4 - statement
4  - statement4  - statement
4 - statementskiats
 
การใช้งาน phpMyadmin
การใช้งาน phpMyadminการใช้งาน phpMyadmin
การใช้งาน phpMyadminskiats
 
แบบจำลองข้อมูล
แบบจำลองข้อมูลแบบจำลองข้อมูล
แบบจำลองข้อมูลskiats
 
สถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูลสถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูลskiats
 
การรวบรวมความต้องการ
การรวบรวมความต้องการการรวบรวมความต้องการ
การรวบรวมความต้องการskiats
 
การกำหนดปัญหาและศึกษาความเป็นไปได้
การกำหนดปัญหาและศึกษาความเป็นไปได้การกำหนดปัญหาและศึกษาความเป็นไปได้
การกำหนดปัญหาและศึกษาความเป็นไปได้skiats
 
รวบรวมความต้องการ
รวบรวมความต้องการรวบรวมความต้องการ
รวบรวมความต้องการskiats
 
DFD ภาษาอังกฤษ
DFD ภาษาอังกฤษDFD ภาษาอังกฤษ
DFD ภาษาอังกฤษskiats
 
การเขียนแผนภาพ DFD
การเขียนแผนภาพ DFDการเขียนแผนภาพ DFD
การเขียนแผนภาพ DFDskiats
 
วงจรพัฒนาระบบ SDLC
วงจรพัฒนาระบบ SDLCวงจรพัฒนาระบบ SDLC
วงจรพัฒนาระบบ SDLCskiats
 
ความหมายการวิเคราะห์ระบบ
ความหมายการวิเคราะห์ระบบความหมายการวิเคราะห์ระบบ
ความหมายการวิเคราะห์ระบบskiats
 
อุปกรณ์รับและแสดงผล
อุปกรณ์รับและแสดงผลอุปกรณ์รับและแสดงผล
อุปกรณ์รับและแสดงผลskiats
 
ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์skiats
 
การ Normalization
การ Normalizationการ Normalization
การ Normalizationskiats
 
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลLecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลskiats
 
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์skiats
 
Lecture5 ฐานข้อมูลเชิงสัมพันธ์
Lecture5 ฐานข้อมูลเชิงสัมพันธ์Lecture5 ฐานข้อมูลเชิงสัมพันธ์
Lecture5 ฐานข้อมูลเชิงสัมพันธ์skiats
 

Más de skiats (20)

การ Setup disk quota กับ user ทุกคน
การ Setup disk quota กับ user ทุกคนการ Setup disk quota กับ user ทุกคน
การ Setup disk quota กับ user ทุกคน
 
รูปแบบโครงการ
รูปแบบโครงการรูปแบบโครงการ
รูปแบบโครงการ
 
ตัวแปรและค่าคงที่ basic data type
ตัวแปรและค่าคงที่ basic data typeตัวแปรและค่าคงที่ basic data type
ตัวแปรและค่าคงที่ basic data type
 
4 - statement
4  - statement4  - statement
4 - statement
 
การใช้งาน phpMyadmin
การใช้งาน phpMyadminการใช้งาน phpMyadmin
การใช้งาน phpMyadmin
 
แบบจำลองข้อมูล
แบบจำลองข้อมูลแบบจำลองข้อมูล
แบบจำลองข้อมูล
 
สถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูลสถาปัตยกรรมฐานข้อมูล
สถาปัตยกรรมฐานข้อมูล
 
การรวบรวมความต้องการ
การรวบรวมความต้องการการรวบรวมความต้องการ
การรวบรวมความต้องการ
 
การกำหนดปัญหาและศึกษาความเป็นไปได้
การกำหนดปัญหาและศึกษาความเป็นไปได้การกำหนดปัญหาและศึกษาความเป็นไปได้
การกำหนดปัญหาและศึกษาความเป็นไปได้
 
รวบรวมความต้องการ
รวบรวมความต้องการรวบรวมความต้องการ
รวบรวมความต้องการ
 
DFD ภาษาอังกฤษ
DFD ภาษาอังกฤษDFD ภาษาอังกฤษ
DFD ภาษาอังกฤษ
 
การเขียนแผนภาพ DFD
การเขียนแผนภาพ DFDการเขียนแผนภาพ DFD
การเขียนแผนภาพ DFD
 
วงจรพัฒนาระบบ SDLC
วงจรพัฒนาระบบ SDLCวงจรพัฒนาระบบ SDLC
วงจรพัฒนาระบบ SDLC
 
ความหมายการวิเคราะห์ระบบ
ความหมายการวิเคราะห์ระบบความหมายการวิเคราะห์ระบบ
ความหมายการวิเคราะห์ระบบ
 
อุปกรณ์รับและแสดงผล
อุปกรณ์รับและแสดงผลอุปกรณ์รับและแสดงผล
อุปกรณ์รับและแสดงผล
 
ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์
 
การ Normalization
การ Normalizationการ Normalization
การ Normalization
 
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลLecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
 
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
 
Lecture5 ฐานข้อมูลเชิงสัมพันธ์
Lecture5 ฐานข้อมูลเชิงสัมพันธ์Lecture5 ฐานข้อมูลเชิงสัมพันธ์
Lecture5 ฐานข้อมูลเชิงสัมพันธ์
 

อัลกอริทึมและการวิเคราะห์ปัญหา

  • 1. บทที่ 2 อัลกอริธึมและการวิเคราะห์ ปัญหา อ.ชนิดา เรืองศิริวฒนกุล ั สาขาวิชาเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ และเทคโนโลยี 1
  • 2. นิยามอัลกอริธึม  อัลกอริธึม (Algorithm) หมายถึง ลาดับขั้นตอนวิธีในการทางานของ โปรแกรมเพื่อแก้ปัญหาใดปัญหาหนึ่ง ซึ่งถ้าปฏิบติตามขั้นตอนอย่าง ั ถูกต้องแล้ว จะต้องสามารถช่วยแก้ปัญหาหรื อประมวลผลตามความ ต้องการได้สาเร็ จ  ในการเขียนอธิ บายอัลกอริ ธึมนั้น เราสามารถคิดอัลกอริ ธึมเพื่อมา แก้ปัญหาได้หลายแบบ 2
  • 3. ตัวอย่าง การต้ มไข่ ไก่  วัตถุดิบ : ไข่ไก่ ผลลัพธ์ : ไข่ตมสุ ก ้  Algorithm 1 Algorithm 2  ต้มน้ าให้เดือด - ต้มน้ าให้เดือด  ใส่ ไข่ - ใส่ ไข่ - รอ 5 นาที  รอ 10 นาที - ดับไฟ / ปิ ดเตา  ดับไฟ / ปิ ดเตา  ปอกไข่
  • 4. Algotithm 1 Vs Algotithm 2  ผลที่ได้เหมือนกันคือ ไข่ตม ้  ผลลัพธ์อลกอริ ธึม 1 สามารถทานได้เลย ส่ วนอัลกอริ ธึม 2 ต้อง ั ปอกก่อนทาน  สรุ ปคือ เราได้ผลลัพธ์ตามที่โจทย์ตองการคือ ไข่ตม ้ ้
  • 5. Algotithm 3 การต้มไข่ไก่ทาน  วัตถุดิบ : ไข่ไก่ ผลลัพธ์ : ไข่ตมสุ ก ้  Algorithm  ต้มน้ าให้เดือด  รอ 10 นาที What’s up?  ดับไฟ / ปิ ดเตา  ปอกไข่
  • 6. Algotithm 3 การต้มไข่ไก่ทาน  วัตถุดิบ : ไข่ไก่ ผลลัพธ์ : ไข่ตมสุ ก ้  Algorithm  ต้มน้ าให้เดือด Algorithm นีจะไม่ ได้ ไข่ ต้ม ้  รอ 10 นาที เพราะ....  ดับไฟ / ปิ ดเตา  ปอกไข่
  • 7. การวิเคราะห์ปัญหา  กระบวนการทางานของคอมพิวเตอร์ Input Process Output  องค์ประกอบของงาน  Input , Process , Output การพิจารณา  ขั้นตอนการทางานเป็ นการนาเข้า ป้ อนเข้าระบบ ถือเป็ น Input  ขั้นตอนเกี่ยวกับการกระทา(กริ ยา) ถือเป็ น Process  ขั้นตอนการนาข้อมูลออกจากระบบ แสดงผล ถือเป็ น Output 7
  • 8. Example  เราลองนาขั้นตอนการต้มไข่มาวิเคราะห์  ต้มน้ าให้เดือด => การกระทา(Process)  ใส่ ไข่ => การป้ อนข้อมูล(Input)  รอ 10 นาที => การกระทา(Process)  ดับไฟ => การกระทา(Process)  ปอกไข่ => การกระทา(Process)  ไข่ตมสุ ก ้ => ผลลัพธ์ (Output)
  • 9. การวิเคราะห์ ปัญหา ข้อมูลที่นาเข้าสู่ ระบบคอมพิวเตอร์  การวิเคราะห์ปัญหา ประกอบด้วยอะไรบ้าง วิเคราะห์ผลลัพธ์ วิเคราะห์ Process (Output) Input เขียนขั้นตอนการแก้ปัญหา 9
  • 10. การวิเคราะห์ ปัญหา ตัวอย่ าง ต้ องการคานวณหาพืนทีของสามเหลียมรูปหนึ่ง ้ ่ ่ 1. วิเคราะห์ ผลลัพธ์ พื้นที่สามเหลี่ยม กาหนดวัตถุประสงค์ การคานวณหาพื้นที่สามเหลี่ยม รูปแบบผลลัพธ์ ความยาวฐาน = ……………… ความสูง = ……………… พื้นที่สามเหลี่ยม = …………… 2.กาหนดข้ อมูลเข้ า 1. ความยาวฐาน 2. ความสูง 10
  • 11. การวิเคราะห์ ปัญหา 3. ขั้นตอนการประมวลผล 1.ป้ อนความยาวฐาน 2.ป้ อนความสูง 3.คานวณพื้นที่สามเหลี่ยม จากสู ตร พื้นที่สามเหลี่ยม = 1  ความยาวฐาน  ความสู ง 2 11
  • 12. ตัวอย่ าง อัลกอริธึมเพือทาการบวกราคาโดยใช้ เครื่องคิดเลข ่ 1. เปิ ดเครื่ องคิดเลข 2. พิมพ์ยอดเงิน 3. กดเครื่ องหมาย (+) 4. กลับไปที่ขอ 2 ทาจนกระทังราคาทั้งหมดถูกพิมพ์เข้าเครื่ องและกด ้ ่ เครื่ องหมาย = 5. เขียนยอดรวมราคา 6. ปิ ดเครื่ องคิดเลข 12
  • 13. การวิเคราะห์ อลกอริธึมเพือทาการบวกราคาโดยใช้ เครื่องคิดเลข ั ่  1. วิเคราะห์ผลลัพธ์ : ยอดรวมราคา  2. กาหนดข้อมูลเข้า : ยอดเงิน  3. ขั้นตอนการประมวลผล  3.1 พิมพ์ยอดเงิน  3.2 กดเครื่ องหมาย +  3.3 วนการทางาน  3.4 กดเครื่ องหมาย =  3.5 คานวณยอดรวมราคา 13
  • 14. ตัวอย่าง 4  การโยนเหรี ยญเสี่ ยงทายเพื่อตัดสิ นใจว่าจะกินขนมปั งหรื อผลไม้ โดยมี เงื่อนไขว่า ถ้าออกหัวกินขนมปั ง ถ้าออกก้อยกินผลไม้  วัตถุดิบ : ผลการโยน ผลลัพธ์ : กินอะไร(ผลไม้/ขนมปั ง) 1. โยนเหรี ยญ => การกระทา 2. ดูเหรี ยญ => รับข้อมูล 3. ถ้าออกหัว => ไปขั้นตอนที่ 5 4. ถ้าออกก้อย => ไปขั้นตอนที่ 6 5. กินขนมปั ง => ไปขั้นตอนที่ 7 6. กินผลไม้ => ไปขั้นตอนที่ 7 7. หยุด
  • 15. การออกแบบอัลกอริธึม  ในการเขียนอธิบายอัลกอริ ธึมนั้น เราสามารถคิดอัลกอริ ธึมเพื่อมา ็ แก้ปัญหาได้หลายแบบ ซึ่งในแต่ละแบบเครื่ องคอมพิวเตอร์กจะใช้ใน หน่วยความจา และเวลาในการประมวลผลไม่เท่ากัน ดังนั้น การจะ เปรี ยบเทียบว่าโปรแกรมคอมพิวเตอร์ใครเก่งกว่ากันนั้นจึงใช้การ เปรี ยบเทียบและประสิ ทธิภาพของอัลกอริ ธึมนันเอง ่  อัลกอริ ธึมของใครใช้เวลาในการประมวลผลและหน่วยความจาน้อย กว่า ถือว่าอัลกอริ ธึมนั้นฉลาดกว่า 15
  • 16. ประสิ ทธิภาพของอัลกอริธึม  จะพิจารณาอยู่ 2 ส่ วนหลักๆ ดังนี้  หน่ วยความจา(memory)ที่จะต้องใช้ในการประมวลผล  เวลา(time)ที่ใช้ในการประมวลผล 16
  • 18. อัลกอริ ธึมที่ดีจะประกอบด้วยคุณสมบัติต่างๆดังนี้  อัลกอริ ธึมที่ดีตองมีความถูกต้อง (correctness) ้  อัลกอริ ธึมที่ดีตองง่ายต่อการอ่าน(readability) ้  อัลกอริ ธึมที่ดีตองสามารถปรับปรุ งได้ง่ายต่ออนาคต(ease of ้ modification)  อัลกอริ ธึมที่ดีสามารถนากลับมาใช้ใหม่ได้(Reusability)  อัลกอริ ธึมที่ดีตองมีประสิ ทธิ ภาพ (efficiency) ้ 18
  • 19. การควบคุมการทางานของโปรแกรม (Program Control Flow)  การควบคุมการทางานของโปรแกรม เป็ นเครื่ องมือที่ผพฒนาโปรแกรมใช้ ู้ ั ในการแสดงลาดับการทางานของโปรแกรมหรื อใช้อธิบายอัลกอริ ธึม ให้เป็ น ่ ระบบและง่ายต่อความเข้าใจ โดยโครงสร้างอาจจะอยูในรู ปแบบดังนี้คือ 1. ผังงาน (Flowchart) ซึ่งเป็ น Flow Diagram ชนิดหนึ่งสาหรับใช้ อธิบายขั้นตอนการทางานของโปรแกรมในลักษณะรู ปภาพ 2. ชุ ดคาสั่ งเทียม (Pseudocode) จะมีสญลักษณ์คล้ายกับภาษาอังกฤษ ั ก้ ากึ่งระหว่างภาษาอังกฤษกับภาษาคอมพิวเตอร์ใช้ในการอธิบาย ลักษณะโครงสร้างข้อมูล และการทางานของอัลกอริ ธึมที่เราเขียนขึ้น
  • 20. Flow Chart และ Pseudo Code Algorithm Summation 1. Sum = 0 2. Input (value1) 3. Input (value2) 4. Input (value3) 5. Sum = value1 + value2 + value3 6. Output (sum) End . การเขียนอัลกอริ ธึมการบวกเลข 3 ตัว ในรู ปแบบ Pseudo Code 20
  • 24. ตัวอย่ างการเขียนผังงาน  จงเขียนผังงานแสดงการเขียน และส่ งจดหมาย 24
  • 27. วิธีการเขียนผังงานที่ดี  1. ใช้สญลักษณ์ตามที่กาหนดไว้ ั  2. ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรื อจาก ซ้ายไปขวา  3. คาอธิ บายในภาพสัญลักษณ์ผงงานควรสั้นกะทัดรัด และเข้าใจง่าย ั  4. ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก ่  5. ไม่ควรโยงเส้นเชื่อมผังงานที่อยูไกลมาก ๆ ควรใช้สัญลักษณ์ จุดเชื่อมต่อแทน  6. ผังงานควรมีการทดสอบความถูกต้องของการทางานก่อนนาไป เขียนโปรแกรมจริ ง
  • 28. โครงสร้ างพืนฐานที่ใช้ ในการเขียนโปรแกรม ้ 1. โครงสร้ างแบบลาดับ (Sequence Structure) 2. โครงสร้ างแบบเลือก (Selection Structure) 3. โครงสร้ างแบบทาซ้าหรือวนรอบ (Repetition or Looping Structure) 28
  • 29. 1. โครงสร้ างแบบลาดับ (Sequence Structure)  ทางานตามลาดับ  ทางานจากบนลงล่าง (จุดเริมต้นถึงสินสุด) ่ ้  มีจุดเริมต้นจุดเดียว – จุดสินสุดจุดเดียว ่ ้  อาจเรียกใช้โมดูลอื่นได้ 29
  • 30. ผังงานโปรแกรมโครงสร้ างแบบลาดับ START คาสัง 1 ่ คาสัง 2 ่ คาสัง 3 ่ STOP 30
  • 31. ตัวอย่ าง โปรแกรมรับข้ อมูลจานวนสิ นค้ าและราคาสิ นค้ า START ราคา = 0 Input Process Output ? ? ? รับจานวนสินค้า และราคา ราคา = จานวนชิ้น*ราคา พิมพ์ราคา STOP 31
  • 32. ตัวอย่ าง โปรแกรมรับข้ อมูลจานวนสิ นค้ าและราคาสิ นค้ า อัลกอริธึม รหัสเทียม (Pseudo Code) 1. เริ่มต้ นทางาน Begin 2. กาหนดค่ า จานวนเงินทีชาระ่ Price = 0 (Price) เท่ ากับศูนย์ Read Amt, Cost 3. รับข้ อมูล จานวนสิ นค้ า (Amt) และ ราคา (Cost) 4. คานวณจานวนเงินทีชาระ จาก ่ Price = Amt x Cost Price = Amt x Cost 5. แสดงผล จานวนที่ต้องชาระ Write Price 6. จบการทางาน End 32
  • 33. แบบฝึ กหัด โปรแกรมคานวณพื้นที่สามเหลี่ยม การแสดงผล : พื้นที่สามเหลี่ยม การรับข้ อมูล : ความสูงและฐาน การประมวลผล : คานวณพื้นที่สามเหลี่ยม =½ x สูง x ฐาน จงเขียน Algorithm, Pseudo code, Flowchart 33
  • 34. ตัวอย่ าง โปรแกรมคานวณพืนทีสามเหลียม ้ ่ ่ อัลกอริธึม รหัสเทียม (Pseudo Code) 1. เริ่มต้ นทางาน Begin 2. กาหนดค่ า พืนที่สามเหลียม ้ ่ (Area) = 0 3. รับข้ อมูล ความสู ง(Height) และ ฐาน (Base) 4. คานวณพืนที่สามเหลียม จาก ้ ่ Area = Height x Base 5. แสดงผล พืนที่สามเหลียม ้ ่ 6. จบการทางาน End 34
  • 36. แบบฝึ กหัด โปรแกรมคานวณพื้นที่วงกลม การแสดงผล : พื้นที่วงกลม การรับข้ อมูล : การประมวลผล : จงเขียน Algorithm, Pseudo code, Flowchart 36
  • 37. แบบฝึ กหัด โปรแกรมคานวณอายุปัจจุบน ั การแสดงผล : อายุปัจจุบน ั การรับข้ อมูล : การประมวลผล : จงเขียน Algorithm, Pseudo code, Flowchart 37
  • 38. 2. โครงสร้ างแบบเลือก (Selection Structure)  มีเงือนไขทีตองตัดสินใจเลือกการทางาน ่ ่ ้  ผลลัพธ์ของเงือนไขคือ จริง หรือ เท็จ เท่านัน ่ ้ 38
  • 39. 2.1 Flowchart แบบหนึ่งทางเลือก  แบบ 1 ทางเลือก หรือ โครงสร้ าง IF….THEN  เป็ นโครงสร้างที่ทดสอบเงื่อนไข แล้วเลือกว่าจะทาหรื อไม่ทา ก่อนที่จะ ไปทางานอื่นต่อไป ใช่ เงื่อนไข งานที่ตองทา ้ ไม่ใช่ งานต่อไป
  • 40. 2.1 Flowchart แบบหนึ่งทางเลือก - แบบ 1 ทางเลือก หรือ โครงสร้ าง IF….THEN จะทางานเมื่อ เงื่อนไขเป็ นจริง เท็จ/FALSE จริง/TRUE เงือนไข ่ รหัสเทียม คาสัง่ A IF …………… THEN …(คำสังA)… ่ 40
  • 41. 2.1 Flowchart แบบหนึ่งทางเลือก  ตัวอย่าง โครงสร้าง IF….THEN  แม่ถามว่าหิ วข้าวหรื อไม่ ถ้าหิ วก็ให้กิน ถ้าไม่หิวไม่ตองกิน แล้วจึง ้ เดินงานไปโรงเรี ยน (งานต่อไป) ใช่ หิวใช่ไหม? กินข้าว ไม่ใช่ เดินทางมาเรี ยน 41
  • 42. ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ เงือนไข ่ - ถ้าได้คะแนนสอบ 50 คะแนนขึนไป ให้ ้ พิมพ์ขอความความ ‘You pass’ ้ - ถ้าได้คะแนนต่ากว่า 50 คะแนน ให้จบ การทางาน 42
  • 43. ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ START Input Process Output ? ? ? Read Score Score>=50 Y Print ‘You pass’ N STOP
  • 44. ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ อัลกอริธึม รหัสเทียม (Pseudo Code) 1. เริ่มต้ นทางาน Begin 2. รับค่ า คะแนนสอบ(Score) Read Score 3. ถ้ าคะแนนสอบตั้งแต่ 50 IF Score >= 50 คะแนนขึนไป ให้ พมพ์ทาง ้ ิ THEN Write ‘You pass’ หน้ าจอว่ า ‘You pass’ 4. จบการทางาน End 44
  • 45. ตัวอย่ าง รับค่ าอายุนักศึกษา ถ้ าอายุนักศึกษาน้ อยกว่ า 20 ปี ให้ แสดงคาว่ า ‚you are so young‛ จงเขียน Algorithm, Pseudo code, Flowchart 45
  • 46. 2.2 Flowchart แบบสองทางเลือก แบบ 2 ทางเลือก หรือ โครงสร้ าง IF…THEN...ELSE ไม่ใช่ ใช่ เงื่อนไข งาน 2 งาน 1
  • 47. 2.2 Flowchart แบบสองทางเลือก แบบ 2 ทางเลือก หรือ โครงสร้ าง IF…THEN...ELSE เท็จ/FALSE จริง/TRUE เงือนไข ่ คาสัง่ A คาสัง่ B รหัสเทียม IF …………….. THEN …..(คำสังB)….. ่ ELSE ..…(คำสังA)...… ่ END IF 47
  • 48. ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ เงือนไข ่ -ถ้าได้คะแนนสอบ 50 คะแนนขึนไป ้ ให้พิมพ์ข้อความว่า ‘Pass’ - ถ้าได้คะแนนตากว่า 50 คะแนน ให้ ่ พิมพ์ข้อความว่า ‘Fail’ - ตัวแปร Grade เก็บค่าผลลัพธ์ 48
  • 49. ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ START Read Score Y Score>=50 Grade = ‘Pass’ N Grade = ‘Fail’ Print Grade STOP
  • 50. ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ อัลกอริธึม รหัสเทียม (Pseudo Code) 1. เริ่มต้ นทางาน Begin 2. รับค่ า คะแนนสอบ (Score) Read Score 3. ถ้ าคะแนนสอบตั้งแต่ 50 คะแนน IF Score >= 50 ขึนไป ให้ ทานิพจน์ ้ Grade=‘Pass’ ถ้ าน้ อยกว่ า 50 THEN Grade = ‘Pass’ คะแนน ให้ ทานิพจน์ ELSE Grade = ‘Fail’ Grade=‘Fail’ END IF 4. แสดงผล เกรด (Grade) Write Grade 5. จบการทางาน End 50
  • 51. ตัวอย่ าง ให้รับค่า A,B ถ้า A>B ให้หาค่าผลต่าง แต่ถาไม่ใช่ให้หา ้ ค่าผลรวม จงเขียน Algorithm, Pseudo code, Flowchart 51
  • 52. 2.2 Flowchart แบบหลายทางเลือก แบบหลายทางเลือก หรือ โครงสร้ าง ELSE…IF เริ่ มต้น ใช่ รหัสเทียม IF …เงื่อนไข 1….. เงื่อนไข 1 คาสั่งเมื่อเป็ นจริ ง THEN …คำสั่ งเมื่อเป็ นจริ ง.. ไม่ใช่ ELSE IF …เงื่อนไข 2….. ใช่ THEN …คำสั่ งเมื่อเป็ นจริ ง.. เงื่อนไข 2 คาสั่งเมื่อเป็ นจริ ง …. ไม่ใช่ …. เงื่อนไข 3 ELSE …เมื่อไม่เข้าเงื่อนไขใดๆ จบงาน 52
  • 53. ตัวอย่ าง โปรแกรมประมวลผลการเรียน เงือนไข ่ -คะแนนสอบสูงกว่า 80 คะแนน ได้เกรด A -คะแนนสอบ 70-79 คะแนนขึนไป ได้เกรด B ้ -คะแนนสอบ 60-69 คะแนนขึนไป ได้เกรด C ้ -คะแนนสอบ 50-59 คะแนนขึนไป ได้เกรด D ้ -คะแนนสอบตากว่า 50 คะแนน ได้เกรด F ่ 53
  • 54. START ตัวอย่าง Read Score Y N Score>=80 Grade = ‘A’ Y N Score>=70 Y N Grade = ‘B’ Score>=60 Grade = ‘C’ Y N Score>=50 Grade = ‘D’ Grade = ‘F’ Write Grade STOP 54
  • 55. Start Read Score Y Score >= 80 Grade = ‘A’ หรือ N Y Score >= 70 Grade = ‘B’ N Y Score >= 60 Grade = ‘C’ N Y Score >= 50 Grade = ‘D’ N Grade = ‘F’ Write Grade BC320 Introduction to Computer Stop Programming 55
  • 56. ตัวอย่าง โปรแกรมประมวลผลการเรียน อัลกอริธึม รหัสเทียม (Pseudo Code) 1. เริ่มต้ นทางาน Begin 2. รับค่ า คะแนนสอบ (Score) READ Score 3. เปรียบเทียบคะแนนสอบ>=80 ถ้ าเป็ นจริง ให้ IF Score >= 80 ทานิพจน์ Grade=‘A’ ถ้ าเป็ นเท็จ ให้ THEN Grade = ‘A’ เปรียบเทียบคะแนนสอบ >=70 ถ้ าเป็ นจริง ให้ ELSE IF Score >=70 ทานิพจน์ Grade=‘B’ ถ้ าเป็ นเท็จ ให้ THEN Grade = ‘B’ เปรียบเทียบคะแนนสอบ >=60 ถ้ าเป็ นจริง ให้ ELSE IF Score >=60 ทานิพจน์ Grade=‘C’ ถ้ าเป็ นเท็จ ให้ THEN Grade = ‘C’ เปรียบเทียบคะแนนสอบ >=50 ถ้ าเป็ นจริง ให้ ELSE IF Score >=50 ทานิพจน์ Grade=‘D’ ถ้ าเป็ นเท็จ ให้ ให้ ทา THEN Grade = ‘D’ นิพจน์ Grade=‘F’ ELSE Grade = ‘F’ 4. แสดงผล เกรด (Grade) WRITE Grade 5. จบการทางาน End 56
  • 57. ตัวอย่ าง คานวณหายอดเงินที่ลูกค้าต้องชาระ โดยตรวจสอบ จากราคาสิ นค้า - ถ้าซื้ อสิ นค้า 0-100 บาท ได้ส่วนลด 5 บาท - ถ้าซื้ อสิ นค้า 101-200 บาท ได้ส่วนลด 10 บาท - ถ้าซื้ อสิ นค้าเกิน 200 บาท ได้ส่วนลด 20 บาท โดยแสดงผลลัพธ์เป็ นยอดเงินที่ลูกค้าต้องชาระ 57
  • 58. ตัวอย่ างคานวณหายอดเงินที่ลูกค้าต้องชาระ โดยตรวจสอบจากราคา สิ นค้า อัลกอริธึม รหัสเทียม (Pseudo Code) 1. เริ่มต้ นทางาน Begin 2. รับค่ า ราคาสิ นค้ า (price) 3. เปรียบเทียบราคาสิ นค้ า<=100 ถ้ าเป็ น จริง ให้ ทานิพจน์ price=price-5 ถ้ า เป็ นเท็จ ให้ เปรียบเทียบราคาสิ นค้ า <=200 ถ้ าเป็ นจริง ให้ ทานิพจน์ price=price-10 ถ้ าเป็ นเท็จ ให้ ทา นิพจน์ price=price-20 4. แสดงผล ราคาสิ นค้ า (price) End 5. จบการทางาน Flowchart ? 58
  • 59. 3. โครงสร้ างแบบทาซ้าหรือวนรอบ (Repetition or Looping Structure) 1. การวนซ้าแบบทดสอบเงื่อนไขก่ อน 2. การวนซ้าแบบทดสอบเงื่อนไขทีหลัง 3. การวนซ้าแบบวนซ้าแน่ นอน 59
  • 60. 3. โครงสร้ างแบบทาซ้าหรือวนรอบ (Repetition or Looping Structure)  3.1 การวนซ้าแบบทดสอบเงื่อนไขก่อน หรือ While  ลูปแบบ While ในการทางานครั้งแรกจะตรวจสอบเงื่อนไขก่ อนทุกครั้ง ก่อนจะเข้ าลูปการทางาน แต่ เมื่อพบว่ าเงื่อนไขเป็ นเท็จจะออกจากลูป ทันที While จริ ง กลุ่มคาสังที่ ่ (เงื่อนไข) ต้องทาซ้ า เท็จ ออกจากวนรอบ(ลูป) 60
  • 61. WHILE Loop  มีเงือนไขในการหยุดการทางาน ่  ตรวจเงือนไขก่ อนการทางานทุกครั้ง ถ้ าใช่ ตามที่เงือนไข ่ ่ ต้ องการ จะให้ ทางานต่ อไป  อาจไม่ ได้ ทาเลยแม้ แต่ ครั้งเดียว 61
  • 62. 3.2 Flowchart แบบวนลูป ชนิด While ตัวอย่ าง จงเขียนผังงานแสดงการทางานของการแสดงค่ าตัวเลขจานวนเต็มบวก โดยเริ่มต้ นตั้งแต่ เลข 1-5 วิเคราะห์  เงือนไขในการหยุด ่ แสดงตัวเลขมากกว่ า 5  ผลลัพธ์ คือ ค่ าตัวเลข <=5 แสดงตัวเลขจานวนเต็มบวก  ข้ อมูลเข้ า คือ กาหนดค่ าเริ่มต้ นของตัวเลขจานวนเต็มบวก ใช้ ตัวแปรเป็ น number  การประมวลผล คือ  ตรวจสอบค่ าตัวเลข <=5  พิมพ์ค่า  วนรอบจนกว่ าเงือนไขจะเป็ นเท็จ ่ 62
  • 63. ตัวอย่าง แสดงการทางานของ START การแสดงค่ าตัวเลข ตั้งแต่ เลข 1 ถึงเลข 5 โดยใช้ number = 1 While NO While number <= 5 YES Print number number = number+1 END
  • 64. ตัวอย่ าง โปรแกรมแสดงเลข 1-5 อัลกอริธึม รหัสเทียม (Pseudo Code) 1. เริ่มต้ นทางาน Begin 2. กาหนดค่ าเริ่มต้ นตัวเลข Number = 1 Number=1 While Number <= 5 3. ถ้ า Number ยังน้ อยกว่ าหรือ เท่ ากับ 5 ให้ พมพ์ค่าของ ิ { Number และให้ เพิมค่ า Number ่ Write Number ครั้งละ 1 ค่ า แต่ ถ้าเป็ นเท็จให้ ออก Number=Number+1 จากการทางาน } 4. จบการทางาน End 64
  • 65. 3.1 Flowchart แบบวนลูป ชนิด While Loop START ตัวอย่าง โปรแกรมบวกเลข 1 ถึง 5 Sum = 1+2+3+4+5 number = 1 , Sum=0 NO While number <= 5 เงือนไขในการหยุด ? ่ YES Sum = Sum+number number = number+1 Print Sum END
  • 66. ตัวอย่ าง โปรแกรมแสดงผลบวกเลข 1-5 อัลกอริธึม รหัสเทียม (Pseudo Code) 1. เริ่มต้ นทางาน Begin 2. กาหนดค่ าเริ่มต้ นตัวเลข Number=1 และผลรวม Sum=0 3. ถ้ า Number ยังน้ อยกว่ าหรือ เท่ ากับ 5 ให้ บวกค่ าของ Number เก็บไว้ ที่ Sum วนรอบจนกว่ า เงือนไขเป็ นเท็จให้ ออกจากการ ่ ทางาน 4. แสดงผลการบวก End 5. จบการทางาน 66
  • 67. 3.2 Flowchart แบบวนลูป ชนิด Do-While  3.2 การวนซ้าแบบทดสอบเงื่อนไขทีหลัง หรือ ชนิด Do-While  ลูปแบบ Do-While การทางานครั้งแรกจะไม่ มีการตรวจสอบเงื่อนไข แต่ จะเข้ าไปทางานในลูปอย่ างน้ อย 1 ครั้ง แล้วจึงไปตรวจสอบ เงื่อนไข กลุ่มคาสั่ งทีต้องการวนซ้า ่ Do-While Yes เงือนไข ่ No
  • 68. DO WHILE  มีเงือนไขในการหยุดการทางาน ่  ได้ ทางานอย่ างน้ อย 1 ครั้ง  หลังจากนั้นในแต่ ละครั้งจะมีตรวจสอบเงือนไข ่ ถ้ าเงือนไขเป็ นจริงก็จะวนรอบทางานต่ อ ่ ถ้ าเป็ นเท็จจะออกจากลูป 68
  • 69. 3.2 Flowchart แบบวนลูป ชนิด Do-While ตัวอย่ าง จงเขียนผังงานแสดงการทางานของการแสดงค่ าตัวเลขจานวนเต็มบวก โดยเริ่มต้ นตั้งแต่ เลข 1-5 เมื่อหยุดแสดงผลค่ าตัวเลขแล้ วให้ แสดงข้ อความ “I Love URU” วิเคราะห์  เงือนไขในการหยุด ่ แสดงตัวเลขมากกว่ า 5  ผลลัพธ์ คือ ค่ าตัวเลข <= 5 แสดงตัวเลขจานวนเต็มบวก ค่ าตัวเลข > 5 แสดงข้ อความ “I Love URU”  ข้ อมูลเข้ า คือ กาหนดค่ าเริ่มต้ นของตัวเลขจานวนเต็มบวก ใช้ ตัวแปรเป็ น number  การประมวลผล คือ  พิมพ์ค่าตัวเลข  ตรวจสอบค่ าตัวเลข <=5  วนรอบจนกว่ าเงือนไขจะเป็ นเท็จ ่  ถ้ าค่ าตัวเลข > 5 แสดงข้ อความ “I Love URU” 69
  • 70. START ตัวอย่าง แสดงการทางานของ number = 1 การแสดงค่ าตัวเลข ตั้งแต่ เลข 1 ถึงเลข 5 โดยใช้ Do-While Print number number = number+1 YES While number <= 5 NO Display “I love URU” END
  • 71. ตัวอย่ าง โปรแกรมแสดงเลข 1-5 อัลกอริธึม รหัสเทียม (Pseudo Code) 1. เริ่มต้ นทางาน Begin 2. กาหนดค่ าเริ่มต้ นตัวเลข number = 0 number=0 Do 3. เพิมค่ า number ทีละ 1 ค่ า ่ number=number+1 และให้ { พิมพ์ค่าของ number number = number+1 4. ถ้ าค่ าของ number ยังน้ อยกว่ า write Number หรือเท่ ากับ 5 ให้ ทาข้ อ 3 ไป } เรื่อยๆ จนกว่ าเงือนไขจะเป็ นเท็จ ่ While number <=5 และออกจากการทางาน End 5. จบการทางาน 71
  • 72. 3.2 Flowchart แบบวนลูป ชนิด Do-While ตัวอย่ าง จงเขียนผังงานแสดงการทางานของการแสดงการบวกเลข 1-10 วิเคราะห์  เงือนไขในการหยุด ่ แสดงตัวเลขมากกว่ า 10  ผลลัพธ์ คือ ผลรวมของการบวกเลข 1-10  ข้ อมูลเข้ า คือ กาหนดค่ าเริ่มต้ นของตัวเลขจานวนเต็มบวก และผลรวมการบวก  การประมวลผล  บวกค่ าเลขจานวนเต็มบวก  ตรวจสอบค่ าของเลขจานวนเต็มบวก <= 10  วนรอบจนกว่ าเงือนไขจะเป็ นเท็จ ่  พิมพ์ค่าผลรวม 72
  • 73. 3.2 Flowchart แบบวนลูป ชนิด Do-While ตัวอย่าง โปรแกรมบวกเลข 1 ถึง 10 Sum = 1+2+3+4+5+6+7+8+9+10 START i=0 , Sum=0 เงือนไขในการหยุด ? ่ i = i+1 Sum=Sum+i จริ ง เท็จ i<=10 Print Sum STOP
  • 74. ตัวอย่ าง โปรแกรมแสดงผลบวก 1-10 อัลกอริธึม รหัสเทียม (Pseudo Code) 1. เริ่มต้ นทางาน Begin 2. กาหนดค่ าเริ่มต้ นตัวเลข i=0 และ ผลรวม sum=0 3. เพิมค่ า i ทีละ 1 ค่ า i=i+1 และหา ่ ผลรวมของการบวก sum=sum+i 4. ถ้ า i ยังน้ อยกว่ าหรือเท่ ากับ 10 ให้ ทาข้ อ 3 ไปเรื่อยๆ จนกว่ า เงือนไขจะเป็ นเท็จจึงออกจากลูป ่ End 5. พิมพ์ค่าผลรวม 6. จบการทางาน 74
  • 75. 3.3 Flowchart แบบวนลูป ชนิด For  3.3 การวนซ้าแบบวนซ้าแน่ นอน หรือ For  ลูปแบบ For จะไม่ มีเงื่อนไขในการทางาน แต่ จะหยุดทางานเมื่อวนลูป ครบตามจานวนทีต้องการ ่ For จริ ง กลุ่มคาสังที่ ่ (เงื่อนไข) ต้องทาซ้ า เท็จ ออกจากวนรอบ(ลูป) 75
  • 76. FOR Loop  งานที่ต้องทาซ้าเป็ นจานวนรอบที่แน่ นอน  ไม่ มเงือนไขในการหยุดการทางาน ี ่  หยุดทางานเมือทาครบเป็ นจานวนรอบที่ต้องการ ่  มีตัวนับ (Counter) คอยควบคุมจานวนรอบ 76
  • 77. 3.3 Flowchart แบบวนลูป ชนิด For ตัวอย่ าง จงเขียนผังงานแสดงการทางานของการแสดงค่าตัวเลข ตั้งแต่ เลข 1 ถึงเลข 10 วิเคราะห์  จานวนรอบ 10 รอบ  ผลลัพธ์ คือ แสดงตัวเลข 10 จานวน ตั้งแต่ เลข 1 ถึงเลข 10  ข้ อมูลเข้ า คือ การกาหนดค่ าเริ่มต้ นให้ ตัวแปรนับรอบใช้ ตัวแปรเป็ น i  การประมวลผล คือ ทาการวนรอบแสดงตัวเลข 10 รอบ แสดงตัวเลข ตั้งแต่ เลข 1 ถึงเลข 10 77
  • 78. 3.3 Flowchart แบบวนลูป ชนิด For START ตัวอย่ าง แสดงการทางานของการ แสดงค่ าตัวเลข i=1 ตั้งแต่ เลข 1 ถึงเลข 10 ถ้ าแสดงตัวเลขครบแล้ วให้ แสดง ข้ อความว่ า “Very Good” NO Print ‚Very for i <= 10 Good‛ YES Display i i = i+1 END 78
  • 79. ตัวอย่ าง โปรแกรมแสดงผลบวก 1-10 อัลกอริธึม รหัสเทียม (Pseudo Code) 1. เริ่มต้ นทางาน Begin 2. กาหนดค่ าเริ่มต้ นตัวเลข i=1 i=1 3. ถ้ า i ยังน้ อยกว่ าหรือเท่ ากับ 10 ให้ พมพ์ค่า i และเพิมค่ า i ทีละ 1 ิ ่ for i<=10 ค่ า i=i+1 { 4. ทาข้ อ 3 ไปเรื่อยๆ จนกว่ าค่ าของ Write i i จะเป็ นเท็จ i=i+1 5. พิมพ์ข้อความ ‚Very Good‛ } 6. จบการทางาน Write ‚Very Good‛ End 79
  • 80. ตัวอย่ าง กาหนดให้โปรแกรมแสดงคาว่า “Hello” จานวน 50 ครั้ง เมื่อแสดงครบแล้วให้แสดงคาว่า “Good buy” จงเขียน Algorithm, Pseudo code, Flowchart 80
  • 81. ประโยชน์ของผังงาน  1. ลาดับขั้นตอนการทางานของโปรแกรม และสามารถนาไปเขียน โปรแกรมได้โดยไม่สบสน ั  2. ตรวจสอบความถูกต้อง และแก้ไขโปรแกรมได้ง่าย เมื่อเกิด ข้อผิดพลาด  3. การปรับปรุ ง เปลี่ยนแปลง แก้ไข ทาได้อย่างสะดวกและรวดเร็ ว  4. ทาให้ผอื่นสามารถศึกษาการทางานของโปรแกรมได้อย่างง่าย ู้ และรวดเร็ วมากขึ้น
  • 85. แบบฝึ กหัด 1. จงเขียน Algorithm, Pseudo code, Flowchart ของโปรแกรมที่ กาหนดให้ต่อไปนี้ 1.1 โปรแกรมคานวณหาค่า y ของสมการ y = x^2 + 2x +10 1.2 โปรแกรมหาค่าน้ าหนักเฉลี่ยของนักศึกษา 3 คน 1.3 โปรแกรมแสดงยอดขาย ถ้าซื้อสิ นค้ามากกว่า 1000 บาทมีส่วนลดให้ 100 บาท 1.4โปรแกรมแสดงยอดขายของร้านค้าแห่งหนึ่งมีนโยบาย ลดราคาให้ ลูกค้า ถ้าเป็ นชายจะลดให้ 50 บาท แต่ถาเป็ นหญิง จะลดให้ 100 บาท ้
  • 86. แบบฝึ กหัด 1.5 โปรแกรมแสดงขนาดของการใช้ยาตามอายุของผูใช้ ้ อายุมากกว่า 10 ปี แสดงข้อความรับประทานครั้งละ 3 ช้อนชา อายุ 6-10 ปี แสดงข้อความรับประทานครั้งละ 2 ช้อนชา อายุ 2-5 ปี แสดงข้อความรับประทานครั้งละ 1 ช้อนชา เด็กอายุต่ากว่า 1 ปี ห้ามรับประทาน 86
  • 87. แบบฝึ กหัด 2. จงเขียน Flowchart สาหรับวนรอบรับค่าตัวเลข แล้วแสดงค่าตัวเลขที่ รับเข้ามาออกทางจอภาพ โดยที่เมื่อรับค่าตัวเลขเป็ น -999 จะสิ้ นสุ ด การวนรอบและจบโปรแกรม 3. จงเขียน Flowchart สาหรับวนรอบรับค่าตัวเลข และในระหว่างรับให้ หาผลรวมของตัวเลขที่รับเข้ามา โปรแกรมจะหยุดรับค่าเมื่อใส่ ตวเลข ั -999 และจะแสดงผลรวมของตัวเลขทั้งหมดที่รับเข้ามาและหยุด ทางาน 87