SlideShare uma empresa Scribd logo
1 de 87
บทที่ 2
อัล กอริธ ึม และการ
 วิเ คราะห์ป ัญ หา

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

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

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

                                               2
ตัวอย่าง
  การต้ม ไข่ไ ก่
   วัตถุดิบ : ไข่ไก่  ผลลัพธ์ : ไข่ต้มสุก
   Algorithm 1       Algorithm 2
     ต้มนำ้าให้เดือด   - ต้มนำ้าให้
     ใส่ไข่            เดือด
     รอ 10 นาที
                        - ใส่ไข่
                        - รอ 5 นาที
     ดับไฟ / ปิดเตา
                        - ดับไฟ / ปิด
     ปอกไข่            เตา
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
   ขั้นตอนการนำาข้อมูลออกจากระบบ แสดงผล ถือเป็น
                                                          7
Example

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



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


                          งง   าน
                  สง ค์ขอ
             ถุประ ธ์
     หน  ดวัต ผลลัพ
- กำา บบของ
       แ
 - รูป

                                                                  9
การวิเ คราะห์ป ัญ หา
  ตัว อย่า ง ต้อ งการคำา นวณหาพื้น ที่ข อง
สามเหลี่ย มรูป หนึง่
  1. วิเ คราะห์ผ ลลัพ ธ์      พื้นที่สามเหลี่ยม
  กำา หนดวัต ถุป ระสงค์ การคำานวณหาพื้นที่
สามเหลี่ยม
  รูป แบบผลลัพ ธ์
                ความยาวฐาน = ………………
                ความสูง = ………………
                พื้นที่สามเหลี่ยม = ……………
   2.กำา หนดข้อ มูล เข้า
                1. ความยาวฐาน
                        2. ความสูง
                                                  10
การวิเ คราะห์ป ัญ หา
. ขั้น ตอนการประมวลผล
.ป้อนความยาวฐาน
.ป้อนความสูง
.คำานวณพืนที่สามเหลี่ยม จากสูตร
          ้
นที่สามเหลี่ยม =   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
การออกแบบอัล กอริธ ึม
 ในการเขียนอธิบายอัลกอริธมนัน
                          ึ ้     เราสามารถ
  คิดอัลกอริธึมเพื่อมาแก้ปัญหาได้หลายแบบ
  ซึ่งในแต่ละแบบเครื่องคอมพิวเตอร์ก็จะใช้ใน
  หน่วยความจำา และเวลาในการประมวลผลไม่
  เท่ากัน ดังนั้น การจะเปรียบเทียบว่าโปรแกรม
  คอมพิวเตอร์ใครเก่งกว่ากันนันจึงใช้การ
                              ้
  เปรียบเทียบและประสิทธิภาพของอัลกอริธึ
  มนั่นเอง
 อัลกอริธึมของใครใช้เวลาในการประมวลผล
  และหน่วยความจำาน้อยกว่า ถือว่าอัลกอริธึ
  มนั้นฉลาดกว่า
                                               15
ประสิท ธิภ าพของอัล กอริธ ึม

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




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




                     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             Inp Proces Out
                              ut    s   put
รับ จำา นวนสิน ค้า และราคา   ?     ?     ?

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


       พิม พ์ร าคา


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



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

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




                                    35
แบบฝึก หัด โปรแกรมคำานวณพื้นที่
วงกลม
การแสดงผล : พื้นที่วงกลม
การรับ ข้อ มูล :
การประมวลผล :



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


                                            36
แบบฝึก หัด โปรแกรมคำานวณอายุ
ปัจจุบัน
การแสดงผล : อายุปจจุบน
                 ั   ั
การรับ ข้อ มูล :
การประมวลผล :



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


                                            37
งสร้า งแบบเลือ ก (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                               Inp Process Out
                                        ut         put
  Read Score                           ?     ?      ?
    Score>=50




                Y   Print ‘You pass’


      N
     STOP
ตัว อย่า ง โปรแกรมแสดงผลการ
สอบทางหน้า จอ
         อัล กอริธ ึม     รหัส เทีย ม (Pseudo
1.   เริ่ม ต้น ทำา งาน      Code)
2.   รับ ค่า คะแนน        Begin
     สอบ(Score)                 Read Score
3.   ถ้า คะแนนสอบ               IF Score >=
     ตัง แต่ 50 คะแนน
       ้                    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’                    48
ตัว อย่า ง โปรแกรมแสดงผลการ
สอบทางหน้า จอ
            START




              Read Score
                      Score>=50
                                  Y
                                      Grade = ‘Pass’

          N
         Grade = ‘Fail’




          Print Grade


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



ขียน Algorithm, Pseudo code, Flowcha




                                             51
2.2 Flowchart แบบ
     หลาย ทางเลือ ก
    แบบหลายทางเลือ ก หรือ โครงสร้า ง
                        เริ่มต้น
    ELSE…IF
                                                    ใช่
รหัส เทีย ม
 F       …เงื่อนไข 1…..          เงื่อนไข 1               คำาสั่งเมื่อเป็นจริง

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

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

….                                         ไม่ใช่

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

                                      จบงาน                                  52
ตัว อย่า ง โปรแกรมประมวล
ผลการเรีย น
 เงือ นไข
    ่
 -คะแนนสอบสูง กว่า 80
 คะแนน ได้เ กรด A
 -คะแนนสอบ 70-79 คะแนน
 ขึ้น ไป ได้เ กรด B
 -คะแนนสอบ 60-69 คะแนน
 ขึ้น ไป ได้เ กรด C
 -คะแนนสอบ 50-59 คะแนน     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
หรือ




       BC320 Introduction to Computer
               Programming              55
ตัว อย่า ง โปรแกรมประมวล
ผลการเรีย น
        อัล กอริธ ม
                  ึ             รหัส เทีย ม (Pseudo
1.เริ่ม ต้น ทำา งาน              Code)
2.รับ ค่า คะแนนสอบ              Begin
  (Score)                        READ Score
3.เปรีย บเทีย บคะแนน             IF Score >= 80
  สอบ>=80 ถ้า เป็น จริง ให้      THEN Grade = ‘A’
  ทำา นิพ จน์ Grade=‘A’ ถ้า      ELSE    IF Score >=70
  เป็น เท็จ ให้เ ปรีย บเทีย บ         THEN Grade = ‘B’
  คะแนนสอบ >=70 ถ้า เป็น         ELSE IF Score >=60
  จริง ให้ท ำา นิพ จน์                THEN Grade = ‘C’
  Grade=‘B’ ถ้า เป็น เท็จ ให้    ELSE IF Score >=50
  เปรีย บเทีย บคะแนนสอบ               THEN Grade = ‘D’
  >=60 ถ้า เป็น จริง ให้ท ำา     ELSE Grade = ‘F’
  นิพ จน์ Grade=‘C’ ถ้า เป็น     WRITE Grade         56
- ถ้าซือสินค้า 0-100 บาท ได้
           ้
ส่วนลด 5 บาท
    - ถ้าซือสินค้า 101-200 บาท ได้
             ้
ส่วนลด 10 บาท
    - ถ้าซือสินค้าเกิน 200 บาท ได้
               ้
ส่วนลด 20 บาท
   โดยแสดงผลลัพธ์เป็นยอดเงินที่
ลูกค้าต้องชำาระ
                                     57
ตัว อย่า ง คำานวณหายอดเงินที่ลูกค้าต้องชำาระ
โดยตรวจสอบจากราคาสินค้า
          อัล กอริธ ึม       รหัส เทีย ม (Pseudo
1.เริ่ม ต้น ทำา งาน           Code)
2.รับ ค่า ราคาสิน ค้า        Begin
 (price)
3.เปรีย บเทีย บราคา
 สิน ค้า <=100 ถ้า เป็น
 จริง ให้ท ำา นิพ จน์
 price=price-5 ถ้า เป็น
 เท็จ ให้เ ปรีย บเทีย บ
 ราคาสิน ค้า <=200 ถ้า
 เป็น จริง ให้ท ำา นิพ จน์   End
 price=price-10 ถ้า           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
การทำา งานของ
การแสดงค่า ตัว             numb
เลข                        er = 1
                     NO
ตั้ง แต่เ ลข 1 ถึง          While
                          number <=
                               YES
เลข 5 โดยใช้                  5
                            Print
While                      number
                          number =
                          number+1

                            END
ตัว อย่า ง โปรแกรมแสดงเลข
1-5
        อัล กอริธ ึม       รหัส เทีย ม (Pseudo
1. เริ่ม ต้น ทำา งาน         Code)
2. กำา หนดค่า เริ่ม ต้น    Begin
   ตัว เลข Number=1
                                 Number = 1
3. ถ้า Number ยัง
   น้อ ยกว่า หรือ                While
   เท่า กับ 5 ให้พ ม พ์
                     ิ       Number <= 5
   ค่า ของ Number                {
   และให้เ พิม ค่า
                 ่                  Write
   Number ครั้ง ละ 1         Number
   ค่า แต่ถ ้า เป็น เท็จ
   ให้อ อกจากการ
                             Number=Numb     64
3.1 Flowchart แบบวนลูป ชนิด
While Loop
                              START
 ตัวอย่าง โปรแกรมบวก
 เลข 1 ถึง 5                number =
 Sum = 1+2+3+4+5            1 , Sum=0
                       NO
                              While

   เงือ นไขใน
      ่                     number <=
                                 YES
                                 5
                              Sum =
   การหยุด ?                Sum+numb
                                er
                            number =
                            number+1

                               Print
                               Sum
                              END
ตัว อย่า ง โปรแกรมแสดงผลบวก
เลข 1-5
        อัล กอริธ ึม      รหัส เทีย ม (Pseudo
1. เริ่ม ต้น ทำา งาน        Code)
2. กำา หนดค่า เริ่ม ต้น   Begin
   ตัว เลข Number=1
   และผลรวม
   Sum=0
3. ถ้า Number ยัง
   น้อ ยกว่า หรือ
   เท่า กับ 5 ให้บ วก
   ค่า ของ Number
   เก็บ ไว้ท ี่ Sum วน    End
   รอบจนกว่า                                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”
  ข้อ มูล เข้า คือ กำา หนดค่า เริ่ม ต้น ของตัว เลข
                                                       69
START

ตัว อย่า ง แสดง         numb
การทำา งานของ           er = 1
การแสดงค่า ตัว
เลข                     Print
ตั้ง แต่เ ลข 1 ถึง     number

เลข 5 โดยใช้         number =
                     number+1
Do-While                             YES
                          While
                      numberNO  <=
                            5
                        Display
                     “I love URU”


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




                              STOP
ตัว อย่า ง โปรแกรมแสดงผลบวก
1-10
          อัล กอริธ ึม         รหัส เทีย ม (Pseudo
1.   เริ่ม ต้น ทำา งาน           Code)
2.   กำา หนดค่า เริ่ม ต้น
     ตัว เลข i=0 และผล
                               Begin
     รวม sum=0
3.   เพิ่ม ค่า i ทีล ะ 1 ค่า
     i=i+1 และหาผล
     รวมของการบวก
     sum=sum+i
4.   ถ้า i ยัง น้อ ยกว่า
     หรือ เท่า กับ 10 ให้
     ทำา ข้อ 3 ไปเรื่อ ยๆ
                               End
                                                 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
                                              77

3.3 Flowchart แบบวนลูป
ชนิด For
                         START
ตัว อย่า ง แสดงการ
ทำา งานของการ             i=1
แสดงค่า ตัว เลข
ตั้ง แต่เ ลข 1 ถึง เลข
10                                      Print
ถ้า แสดงตัว เลขครบ        for i    NO   “Very
แล้ว ให้แ สดง             <= YES
                              10        Good”
ข้อ ความว่า “Very        Displa
Good”                      yi
                         i = i+1



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



ขียน Algorithm, Pseudo code, Flowcha




                                         80
ประโยชน์ของ
ผังงาน
 1. ลำาดับขั้นตอนการทำางานของโปรแกรม
  และสามารถนำาไปเขียนโปรแกรมได้โดยไม่
  สับสน
 2. ตรวจสอบความถูกต้อง และแก้ไข
  โปรแกรมได้ง่าย เมื่อเกิดข้อผิดพลาด
 3. การปรับปรุง เปลี่ยนแปลง แก้ไข ทำาได้
  อย่างสะดวกและรวดเร็ว
 4. ทำาให้ผู้อื่นสามารถศึกษาการทำางานของ
  โปรแกรมได้อย่างง่าย และรวดเร็วมากขึ้น
โปรแกรมทีชวยในการเขียนผังงาน
         ่ ่
           Microsof
            t 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โปรแกรมแสดงยอดขายของร้านค้าแห่งหนึง
                                       ่
แบบฝึก หัด

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

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

Mais conteúdo relacionado

Mais procurados

รายงานโครงงานคอมพิวเตอร์ประเภทซอฟต์แวร์ เรื่อง การศึกษาความนิยมผลิตภัณฑ์จากช...
รายงานโครงงานคอมพิวเตอร์ประเภทซอฟต์แวร์ เรื่อง  การศึกษาความนิยมผลิตภัณฑ์จากช...รายงานโครงงานคอมพิวเตอร์ประเภทซอฟต์แวร์ เรื่อง  การศึกษาความนิยมผลิตภัณฑ์จากช...
รายงานโครงงานคอมพิวเตอร์ประเภทซอฟต์แวร์ เรื่อง การศึกษาความนิยมผลิตภัณฑ์จากช...Kanyanat Kate
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์Sarocha Makranit
 
การทดสอบประสิทธิภาพสื่อหรือชุดการสอน โดย ศาสตราจารย์ ดร.ชัยยงค์ พรหมวงศ์
การทดสอบประสิทธิภาพสื่อหรือชุดการสอน โดย ศาสตราจารย์ ดร.ชัยยงค์ พรหมวงศ์ การทดสอบประสิทธิภาพสื่อหรือชุดการสอน โดย ศาสตราจารย์ ดร.ชัยยงค์ พรหมวงศ์
การทดสอบประสิทธิภาพสื่อหรือชุดการสอน โดย ศาสตราจารย์ ดร.ชัยยงค์ พรหมวงศ์ Itt Bandhudhara
 
แผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office Excel
แผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office Excelแผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office Excel
แผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office ExcelKhon Kaen University
 
อินโฟกราฟิก (Infographic) และหลักการออกแบบ
อินโฟกราฟิก (Infographic) และหลักการออกแบบอินโฟกราฟิก (Infographic) และหลักการออกแบบ
อินโฟกราฟิก (Infographic) และหลักการออกแบบDr.Kridsanapong Lertbumroongchai
 
ใบงานที่ 10 การสร้างแผนภูมิ
ใบงานที่ 10  การสร้างแผนภูมิใบงานที่ 10  การสร้างแผนภูมิ
ใบงานที่ 10 การสร้างแผนภูมิMeaw Sukee
 
กากกาแฟสครับผิว
กากกาแฟสครับผิวกากกาแฟสครับผิว
กากกาแฟสครับผิวJitrapron Tongon
 
เครื่องมือ Sonyvegas
เครื่องมือ Sonyvegasเครื่องมือ Sonyvegas
เครื่องมือ Sonyvegasrungtip boontiengtam
 
การวางแผนและการควบคุมการผลิต
การวางแผนและการควบคุมการผลิตการวางแผนและการควบคุมการผลิต
การวางแผนและการควบคุมการผลิตKitipan Kitbamroong Ph.D. CISA
 
ใบงานที่ 1.1 เรื่อง ประเภทแหล่งข้อมูล
ใบงานที่  1.1  เรื่อง ประเภทแหล่งข้อมูลใบงานที่  1.1  เรื่อง ประเภทแหล่งข้อมูล
ใบงานที่ 1.1 เรื่อง ประเภทแหล่งข้อมูลThanawut Rattanadon
 
แผนการสอนวิชาการเขียนโปรแกรมภาษาซี
แผนการสอนวิชาการเขียนโปรแกรมภาษาซีแผนการสอนวิชาการเขียนโปรแกรมภาษาซี
แผนการสอนวิชาการเขียนโปรแกรมภาษาซีเทวัญ ภูพานทอง
 
การวิเคราะห์อัลกอริทึม(algorithm analysis)
การวิเคราะห์อัลกอริทึม(algorithm analysis)การวิเคราะห์อัลกอริทึม(algorithm analysis)
การวิเคราะห์อัลกอริทึม(algorithm analysis)tumetr
 
ขั้นตอนการเขียนโปรแกรม
ขั้นตอนการเขียนโปรแกรมขั้นตอนการเขียนโปรแกรม
ขั้นตอนการเขียนโปรแกรมbpatra
 
หน้าปกโครงงานคอมพิวเตอร์
หน้าปกโครงงานคอมพิวเตอร์หน้าปกโครงงานคอมพิวเตอร์
หน้าปกโครงงานคอมพิวเตอร์kand-2539
 

Mais procurados (20)

แบบฝึกหัดที่ 3 Microsoft PowerPoint
แบบฝึกหัดที่ 3 Microsoft PowerPointแบบฝึกหัดที่ 3 Microsoft PowerPoint
แบบฝึกหัดที่ 3 Microsoft PowerPoint
 
Flowchart
FlowchartFlowchart
Flowchart
 
รายงานโครงงานคอมพิวเตอร์ประเภทซอฟต์แวร์ เรื่อง การศึกษาความนิยมผลิตภัณฑ์จากช...
รายงานโครงงานคอมพิวเตอร์ประเภทซอฟต์แวร์ เรื่อง  การศึกษาความนิยมผลิตภัณฑ์จากช...รายงานโครงงานคอมพิวเตอร์ประเภทซอฟต์แวร์ เรื่อง  การศึกษาความนิยมผลิตภัณฑ์จากช...
รายงานโครงงานคอมพิวเตอร์ประเภทซอฟต์แวร์ เรื่อง การศึกษาความนิยมผลิตภัณฑ์จากช...
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์
 
การทดสอบประสิทธิภาพสื่อหรือชุดการสอน โดย ศาสตราจารย์ ดร.ชัยยงค์ พรหมวงศ์
การทดสอบประสิทธิภาพสื่อหรือชุดการสอน โดย ศาสตราจารย์ ดร.ชัยยงค์ พรหมวงศ์ การทดสอบประสิทธิภาพสื่อหรือชุดการสอน โดย ศาสตราจารย์ ดร.ชัยยงค์ พรหมวงศ์
การทดสอบประสิทธิภาพสื่อหรือชุดการสอน โดย ศาสตราจารย์ ดร.ชัยยงค์ พรหมวงศ์
 
แผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office Excel
แผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office Excelแผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office Excel
แผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office Excel
 
อินโฟกราฟิก (Infographic) และหลักการออกแบบ
อินโฟกราฟิก (Infographic) และหลักการออกแบบอินโฟกราฟิก (Infographic) และหลักการออกแบบ
อินโฟกราฟิก (Infographic) และหลักการออกแบบ
 
คำนำ
คำนำคำนำ
คำนำ
 
บทที่ 5
บทที่ 5บทที่ 5
บทที่ 5
 
มรนว ค่านิยม 12 ประการ
มรนว ค่านิยม 12 ประการมรนว ค่านิยม 12 ประการ
มรนว ค่านิยม 12 ประการ
 
ใบงานที่ 10 การสร้างแผนภูมิ
ใบงานที่ 10  การสร้างแผนภูมิใบงานที่ 10  การสร้างแผนภูมิ
ใบงานที่ 10 การสร้างแผนภูมิ
 
กากกาแฟสครับผิว
กากกาแฟสครับผิวกากกาแฟสครับผิว
กากกาแฟสครับผิว
 
เครื่องมือ Sonyvegas
เครื่องมือ Sonyvegasเครื่องมือ Sonyvegas
เครื่องมือ Sonyvegas
 
การวางแผนและการควบคุมการผลิต
การวางแผนและการควบคุมการผลิตการวางแผนและการควบคุมการผลิต
การวางแผนและการควบคุมการผลิต
 
ใบงานที่ 1.1 เรื่อง ประเภทแหล่งข้อมูล
ใบงานที่  1.1  เรื่อง ประเภทแหล่งข้อมูลใบงานที่  1.1  เรื่อง ประเภทแหล่งข้อมูล
ใบงานที่ 1.1 เรื่อง ประเภทแหล่งข้อมูล
 
แผนการสอนวิชาการเขียนโปรแกรมภาษาซี
แผนการสอนวิชาการเขียนโปรแกรมภาษาซีแผนการสอนวิชาการเขียนโปรแกรมภาษาซี
แผนการสอนวิชาการเขียนโปรแกรมภาษาซี
 
การวิเคราะห์อัลกอริทึม(algorithm analysis)
การวิเคราะห์อัลกอริทึม(algorithm analysis)การวิเคราะห์อัลกอริทึม(algorithm analysis)
การวิเคราะห์อัลกอริทึม(algorithm analysis)
 
ขั้นตอนการเขียนโปรแกรม
ขั้นตอนการเขียนโปรแกรมขั้นตอนการเขียนโปรแกรม
ขั้นตอนการเขียนโปรแกรม
 
ใบความรู้ Powerpoint 2010
ใบความรู้ Powerpoint 2010 ใบความรู้ Powerpoint 2010
ใบความรู้ Powerpoint 2010
 
หน้าปกโครงงานคอมพิวเตอร์
หน้าปกโครงงานคอมพิวเตอร์หน้าปกโครงงานคอมพิวเตอร์
หน้าปกโครงงานคอมพิวเตอร์
 

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

การคำนวณในตารางทำงาน
การคำนวณในตารางทำงานการคำนวณในตารางทำงาน
การคำนวณในตารางทำงานMeaw Sukee
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอมnuknook
 
บทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหาบทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหาjack4212
 
Programming
ProgrammingProgramming
Programmingsa
 
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศการแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศMeaw Sukee
 
หน่วยการเรียนรู้ที่ 3
หน่วยการเรียนรู้ที่ 3หน่วยการเรียนรู้ที่ 3
หน่วยการเรียนรู้ที่ 3SubLt Masu
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอมnuknook
 
ใบความรู้ที่2
ใบความรู้ที่2ใบความรู้ที่2
ใบความรู้ที่2Orapan Chamnan
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอมPassawan' Koohar
 
สัญลักษณ์ผังงาน
สัญลักษณ์ผังงานสัญลักษณ์ผังงาน
สัญลักษณ์ผังงานPannathat Champakul
 
กระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศกระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศJL'mind Chutimon
 
ม.3 รหัสจำลอง Pseudocode
ม.3 รหัสจำลอง Pseudocodeม.3 รหัสจำลอง Pseudocode
ม.3 รหัสจำลอง PseudocodeBansit Deelom
 

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

หลักการเขียนโปรแกรม
หลักการเขียนโปรแกรมหลักการเขียนโปรแกรม
หลักการเขียนโปรแกรม
 
การคำนวณในตารางทำงาน
การคำนวณในตารางทำงานการคำนวณในตารางทำงาน
การคำนวณในตารางทำงาน
 
1
11
1
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
Chapter 04 Compare
Chapter 04 CompareChapter 04 Compare
Chapter 04 Compare
 
11
1111
11
 
Chepter3
Chepter3Chepter3
Chepter3
 
บทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหาบทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหา
 
1122
11221122
1122
 
Programming
ProgrammingProgramming
Programming
 
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศการแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
 
หน่วยการเรียนรู้ที่ 3
หน่วยการเรียนรู้ที่ 3หน่วยการเรียนรู้ที่ 3
หน่วยการเรียนรู้ที่ 3
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
ใบความรู้ที่2
ใบความรู้ที่2ใบความรู้ที่2
ใบความรู้ที่2
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
Chapter 05 Loop
Chapter 05 LoopChapter 05 Loop
Chapter 05 Loop
 
Chapter 05 Loop
Chapter 05 LoopChapter 05 Loop
Chapter 05 Loop
 
สัญลักษณ์ผังงาน
สัญลักษณ์ผังงานสัญลักษณ์ผังงาน
สัญลักษณ์ผังงาน
 
กระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศกระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศ
 
ม.3 รหัสจำลอง Pseudocode
ม.3 รหัสจำลอง Pseudocodeม.3 รหัสจำลอง Pseudocode
ม.3 รหัสจำลอง Pseudocode
 

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

  • 1. บทที่ 2 อัล กอริธ ึม และการ วิเ คราะห์ป ัญ หา อ.ชนิด า เรือ งศิร ิว ัฒ นกุล สาขาวิช าเทคโนโลยีส ารสนเทศ คณะ วิท ยาศาสตร์แ ละเทคโนโลยี 1
  • 2. นิย ามอัล กอริธ ึม  อัล กอริธ ม ึ (Algorithm) หมายถึง ลำาดับ ขั้นตอนวิธีในการทำางานของโปรแกรมเพื่อแก้ ปัญหาใดปัญหาหนึ่ง ซึ่งถ้าปฏิบติตามขั้นตอน ั อย่างถูกต้องแล้ว จะต้องสามารถช่วยแก้ ปัญหาหรือประมวลผลตามความต้องการได้ สำาเร็จ  ในการเขียนอธิบายอัลกอริธมนัน เราสามารถ ึ ้ คิดอัลกอริธึมเพื่อมาแก้ปัญหาได้หลายแบบ 2
  • 3. ตัวอย่าง การต้ม ไข่ไ ก่  วัตถุดิบ : ไข่ไก่ ผลลัพธ์ : ไข่ต้มสุก  Algorithm 1 Algorithm 2 ต้มนำ้าให้เดือด - ต้มนำ้าให้ ใส่ไข่ เดือด รอ 10 นาที - ใส่ไข่ - รอ 5 นาที ดับไฟ / ปิดเตา - ดับไฟ / ปิด ปอกไข่ เตา
  • 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  ขั้นตอนการนำาข้อมูลออกจากระบบ แสดงผล ถือเป็น 7
  • 8. Example  เราลองนำาขั้นตอนการต้มไข่มาวิเคราะห์  ต้มนำ้าให้เดือด=> การกระทำา(Process)  ใส่ไข่ => การป้อนข้อมูล(Input)  รอ 10 นาที => การกระทำา(Process)  ดับไฟ => การกระทำา(Process)  ปอกไข่ => การกระทำา(Process)  ไข่ต้มสุก => ผลลัพธ์ (Output)
  • 9. การวิเ คราะห์ป ัญ หา ข้อมูลทีนำาเข้าสู่ระบบ ่ คอมพิวเตอร์ประกอบด้วย  การวิเคราะห์ปญหา ั อะไรบ้าง วิเคราะห์ผลลัพธ์ วิเคราะห์ Process (Output) Input เขียนขั้นตอนการแก้ปัญหา งง าน สง ค์ขอ ถุประ ธ์ หน ดวัต ผลลัพ - กำา บบของ แ - รูป 9
  • 10. การวิเ คราะห์ป ัญ หา ตัว อย่า ง ต้อ งการคำา นวณหาพื้น ที่ข อง สามเหลี่ย มรูป หนึง่ 1. วิเ คราะห์ผ ลลัพ ธ์ พื้นที่สามเหลี่ยม กำา หนดวัต ถุป ระสงค์ การคำานวณหาพื้นที่ สามเหลี่ยม รูป แบบผลลัพ ธ์ ความยาวฐาน = ……………… ความสูง = ……………… พื้นที่สามเหลี่ยม = …………… 2.กำา หนดข้อ มูล เข้า 1. ความยาวฐาน 2. ความสูง 10
  • 11. การวิเ คราะห์ป ัญ หา . ขั้น ตอนการประมวลผล .ป้อนความยาวฐาน .ป้อนความสูง .คำานวณพืนที่สามเหลี่ยม จากสูตร ้ นที่สามเหลี่ยม = 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
  • 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
  • 21. สัญ ลัก ษณ์ใ นผัง งาน (Flow Chart) 21
  • 22. สัญ ลัก ษณ์ใ นผัง งาน (Flow Chart) 22
  • 23. สัญ ลัก ษณ์ใ นผัง งาน 23
  • 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 Inp Proces Out ut s put รับ จำา นวนสิน ค้า และราคา ? ? ? ราคา = จำา นวนชิ้น *ราคา พิม พ์ร าคา STOP 31
  • 32. ตัว อย่า ง โปรแกรมรับ ข้อ มูล จำา นวนสิน ค้า และราคาสิน ค้า อัล กอริธ มึ รหัส เทีย ม (Pseudo 1. เริ่ม ต้น ทำา งาน Code) 2. กำา หนดค่า จำา นวน Begin เงิน ที่ช ำา ระ(Price) Price = 0 เท่า กับ ศูน ย์ Read Amt, 3. รับ ข้อ มูล จำา นวน Cost สิน ค้า (Amt) และ ราคา (Cost) 4. คำา นวณจำา นวน Price = Amt x เงิน ที่ช ำา ระ จาก Cost Price = Amt x 32
  • 33. แบบฝึก หัด โปรแกรมคำานวณพื้นที่ สามเหลี่ยม การแสดงผล : พื้นที่สามเหลี่ยม การรับ ข้อ มูล : ความสูงและฐาน การประมวลผล : คำานวณพื้นที่สามเหลี่ยม ½ x สูง x ฐาน จงเขียน Algorithm, Pseudo code, Flowchart 33
  • 34. ตัว อย่า ง โปรแกรมคำา นวณพื้น ที่ สามเหลีย ม ่ อัล กอริธ ึม รหัส เทีย ม 1. เริ่ม ต้น ทำา งาน 2. กำา หนดค่า พื้น ที่ (Pseudo สามเหลี่ย ม Code) (Area) = 0 Begin 3. รับ ข้อ มูล ความ สูง (Height) และ ฐาน (Base) 4. คำา นวณพื้น ที่ สามเหลี่ย ม จาก Area = Height x Base 34
  • 35. ตัว อย่า ง โปรแกรมคำา นวณพื้น ที่ สามเหลีย ม ่ Flowchart 35
  • 36. แบบฝึก หัด โปรแกรมคำานวณพื้นที่ วงกลม การแสดงผล : พื้นที่วงกลม การรับ ข้อ มูล : การประมวลผล : จงเขียน Algorithm, Pseudo code, Flowchart 36
  • 37. แบบฝึก หัด โปรแกรมคำานวณอายุ ปัจจุบัน การแสดงผล : อายุปจจุบน ั ั การรับ ข้อ มูล : การประมวลผล : จงเขียน Algorithm, Pseudo code, Flowchart 37
  • 38. งสร้า งแบบเลือ ก (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 Inp Process Out ut put Read Score ? ? ? Score>=50 Y Print ‘You pass’ N STOP
  • 44. ตัว อย่า ง โปรแกรมแสดงผลการ สอบทางหน้า จอ อัล กอริธ ึม รหัส เทีย ม (Pseudo 1. เริ่ม ต้น ทำา งาน Code) 2. รับ ค่า คะแนน Begin สอบ(Score) Read Score 3. ถ้า คะแนนสอบ IF Score >= ตัง แต่ 50 คะแนน ้ 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’ 48
  • 49. ตัว อย่า ง โปรแกรมแสดงผลการ สอบทางหน้า จอ START Read Score Score>=50 Y Grade = ‘Pass’ N Grade = ‘Fail’ Print Grade STOP
  • 50. ตัว อย่า ง โปรแกรมแสดงผลการ สอบทางหน้า จอ อัล กอริธ ึม รหัส เทีย ม (Pseudo 1. เริ่ม ต้น ทำา งาน Code) 2. รับ ค่า คะแนนสอบ Begin (Score) Read Score 3. ถ้า คะแนนสอบ ตัง แต่ 50 คะแนน ้ IF Score >= ขึ้น ไป ให้ท ำา นิพ จน์ 50 Grade=‘Pass’ ถ้า THEN Grade = น้อ ยกว่า 50 ‘Pass’ คะแนน ให้ท ำา ELSE Grade = นิพ จน์ ‘Fail’ Grade=‘Fail’ END IF 50
  • 51. ตัว อย่า ง ให้รับค่า A,B ถ้า A>B ให้หาค่า ผลต่าง แต่ถ้าไม่ใช่ให้หาค่าผลรวม ขียน Algorithm, Pseudo code, Flowcha 51
  • 52. 2.2 Flowchart แบบ หลาย ทางเลือ ก แบบหลายทางเลือ ก หรือ โครงสร้า ง เริ่มต้น ELSE…IF ใช่ รหัส เทีย ม F …เงื่อนไข 1….. เงื่อนไข 1 คำาสั่งเมื่อเป็นจริง THEN …คำาสั่งเมือเป็นจริง.. ่ ไม่ใช่ ELSE IF …เงื่อนไข 2….. ใช่ THEN …คำาสั่งเมือเป็นจริง..่อนไข 2 ่ เงื คำาสั่งเมือเป็นจริง ่ …. ไม่ใช่ …. เงื่อนไข 3 ELSE …เมือไม่เข้าเงื่อนไขใดๆ ่ จบงาน 52
  • 53. ตัว อย่า ง โปรแกรมประมวล ผลการเรีย น เงือ นไข ่ -คะแนนสอบสูง กว่า 80 คะแนน ได้เ กรด A -คะแนนสอบ 70-79 คะแนน ขึ้น ไป ได้เ กรด B -คะแนนสอบ 60-69 คะแนน ขึ้น ไป ได้เ กรด C -คะแนนสอบ 50-59 คะแนน 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. หรือ BC320 Introduction to Computer Programming 55
  • 56. ตัว อย่า ง โปรแกรมประมวล ผลการเรีย น อัล กอริธ ม ึ รหัส เทีย ม (Pseudo 1.เริ่ม ต้น ทำา งาน Code) 2.รับ ค่า คะแนนสอบ Begin (Score) READ Score 3.เปรีย บเทีย บคะแนน IF Score >= 80 สอบ>=80 ถ้า เป็น จริง ให้ THEN Grade = ‘A’ ทำา นิพ จน์ Grade=‘A’ ถ้า ELSE IF Score >=70 เป็น เท็จ ให้เ ปรีย บเทีย บ THEN Grade = ‘B’ คะแนนสอบ >=70 ถ้า เป็น ELSE IF Score >=60 จริง ให้ท ำา นิพ จน์ THEN Grade = ‘C’ Grade=‘B’ ถ้า เป็น เท็จ ให้ ELSE IF Score >=50 เปรีย บเทีย บคะแนนสอบ THEN Grade = ‘D’ >=60 ถ้า เป็น จริง ให้ท ำา ELSE Grade = ‘F’ นิพ จน์ Grade=‘C’ ถ้า เป็น WRITE Grade 56
  • 57. - ถ้าซือสินค้า 0-100 บาท ได้ ้ ส่วนลด 5 บาท - ถ้าซือสินค้า 101-200 บาท ได้ ้ ส่วนลด 10 บาท - ถ้าซือสินค้าเกิน 200 บาท ได้ ้ ส่วนลด 20 บาท โดยแสดงผลลัพธ์เป็นยอดเงินที่ ลูกค้าต้องชำาระ 57
  • 58. ตัว อย่า ง คำานวณหายอดเงินที่ลูกค้าต้องชำาระ โดยตรวจสอบจากราคาสินค้า อัล กอริธ ึม รหัส เทีย ม (Pseudo 1.เริ่ม ต้น ทำา งาน Code) 2.รับ ค่า ราคาสิน ค้า Begin (price) 3.เปรีย บเทีย บราคา สิน ค้า <=100 ถ้า เป็น จริง ให้ท ำา นิพ จน์ price=price-5 ถ้า เป็น เท็จ ให้เ ปรีย บเทีย บ ราคาสิน ค้า <=200 ถ้า เป็น จริง ให้ท ำา นิพ จน์ End price=price-10 ถ้า 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 การทำา งานของ การแสดงค่า ตัว numb เลข er = 1 NO ตั้ง แต่เ ลข 1 ถึง While number <= YES เลข 5 โดยใช้ 5 Print While number number = number+1 END
  • 64. ตัว อย่า ง โปรแกรมแสดงเลข 1-5 อัล กอริธ ึม รหัส เทีย ม (Pseudo 1. เริ่ม ต้น ทำา งาน Code) 2. กำา หนดค่า เริ่ม ต้น Begin ตัว เลข Number=1 Number = 1 3. ถ้า Number ยัง น้อ ยกว่า หรือ While เท่า กับ 5 ให้พ ม พ์ ิ Number <= 5 ค่า ของ Number { และให้เ พิม ค่า ่ Write Number ครั้ง ละ 1 Number ค่า แต่ถ ้า เป็น เท็จ ให้อ อกจากการ Number=Numb 64
  • 65. 3.1 Flowchart แบบวนลูป ชนิด While Loop START ตัวอย่าง โปรแกรมบวก เลข 1 ถึง 5 number = Sum = 1+2+3+4+5 1 , Sum=0 NO While เงือ นไขใน ่ number <= YES 5 Sum = การหยุด ? Sum+numb er number = number+1 Print Sum END
  • 66. ตัว อย่า ง โปรแกรมแสดงผลบวก เลข 1-5 อัล กอริธ ึม รหัส เทีย ม (Pseudo 1. เริ่ม ต้น ทำา งาน Code) 2. กำา หนดค่า เริ่ม ต้น Begin ตัว เลข Number=1 และผลรวม Sum=0 3. ถ้า Number ยัง น้อ ยกว่า หรือ เท่า กับ 5 ให้บ วก ค่า ของ Number เก็บ ไว้ท ี่ Sum วน End รอบจนกว่า 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”  ข้อ มูล เข้า คือ กำา หนดค่า เริ่ม ต้น ของตัว เลข 69
  • 70. START ตัว อย่า ง แสดง numb การทำา งานของ er = 1 การแสดงค่า ตัว เลข Print ตั้ง แต่เ ลข 1 ถึง number เลข 5 โดยใช้ number = number+1 Do-While YES While numberNO <= 5 Display “I love URU” END
  • 71. ตัว อย่า ง โปรแกรมแสดงเลข 1-5 อัล กอริธ ึม รหัส เทีย ม (Pseudo 1. เริ่ม ต้น ทำา งาน Code) 2. กำา หนดค่า เริ่ม ต้น Begin ตัว เลข number=0 number = 0 3. เพิ่ม ค่า number ที ละ 1 ค่า Do number=number { +1 และให้พ ิม พ์ค ่า number = ของ number number+1 4. ถ้า ค่า ของ number write Number ยัง น้อ ยกว่า หรือ } เท่า กับ 5 ให้ท ำา ข้อ While number 71
  • 72. 3.2 Flowchart แบบวนลูป ชนิด Do-While ตัว อย่า ง จงเขีย นผัง งานแสดงการทำา งานของการ แสดงการบวกเลข 1-10 วิเ คราะห์  เงือ นไขในการหยุด ่ แสดงตัว เลขมากกว่า 10  ผลลัพ ธ์ คือ ผลรวมของการบวกเลข 1-10  ข้อ มูล เข้า คือ กำา หนดค่า เริ่ม ต้น ของตัว เลข จำา นวนเต็ม บวก และผลรวมการบวก  การประมวลผล  บวกค่า เลขจำา นวนเต็ม บวก  ตรวจสอบค่า ของเลขจำา นวนเต็ม บวก <= 10  วนรอบจนกว่า เงือ นไขจะเป็น เท็จ ่ 72
  • 73. 3.2 Flowchart แบบวนลูป ชนิด Do-While ตัวอย่าง โปรแกรมบวก START เลข 1 ถึง 10 Sum = i=0 , Sum=0 1+2+3+4+5+6+7+8 +9+10 นไขใน เงือ่ i = i+1 การหยุด ? Sum=Sum+i จริง เท็จ i<=10 Print Sum STOP
  • 74. ตัว อย่า ง โปรแกรมแสดงผลบวก 1-10 อัล กอริธ ึม รหัส เทีย ม (Pseudo 1. เริ่ม ต้น ทำา งาน Code) 2. กำา หนดค่า เริ่ม ต้น ตัว เลข i=0 และผล Begin รวม sum=0 3. เพิ่ม ค่า i ทีล ะ 1 ค่า i=i+1 และหาผล รวมของการบวก sum=sum+i 4. ถ้า i ยัง น้อ ยกว่า หรือ เท่า กับ 10 ให้ ทำา ข้อ 3 ไปเรื่อ ยๆ End 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 77 
  • 78. 3.3 Flowchart แบบวนลูป ชนิด For START ตัว อย่า ง แสดงการ ทำา งานของการ i=1 แสดงค่า ตัว เลข ตั้ง แต่เ ลข 1 ถึง เลข 10 Print ถ้า แสดงตัว เลขครบ for i NO “Very แล้ว ให้แ สดง <= YES 10 Good” ข้อ ความว่า “Very Displa Good” yi i = i+1 END 78
  • 79. ตัว อย่า ง โปรแกรมแสดงผลบวก 1-10 อัล กอริธ ึม รหัส เทีย ม (Pseudo 1. เริ่ม ต้น ทำา งาน Code) 2. กำา หนดค่า เริ่ม ต้น ตัว เลข i=1 Begin 3. ถ้า i ยัง น้อ ยกว่า i=1 หรือ เท่า กับ 10 ให้ for i<=10 พิม พ์ค ่า i และเพิม่ { ค่า i ทีล ะ 1 ค่า Write i i=i+1 i=i+1 4. ทำา ข้อ 3 ไปเรื่อ ยๆ } จนกว่า ค่า ของ i จะ เป็น เท็จ Write “Very Good” 79
  • 80. ตัว อย่า ง กำาหนดให้โปรแกรมแสดงคำาว่า “Hello” จำานวน 50 ครั้ง เมือแสดงครบ ่ แล้วให้แสดงคำาว่า “Good buy” ขียน Algorithm, Pseudo code, Flowcha 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โปรแกรมแสดงยอดขายของร้านค้าแห่งหนึง ่
  • 86. แบบฝึก หัด 1.5 โปรแกรมแสดงขนาดของการใช้ยาตาม อายุของผูใช้ ้ อายุมากกว่า 10 ปี แสดงข้อความรับประทาน ครั้งละ 3 ช้อนชา อายุ 6-10 ปี แสดงข้อความรับ ประทานครั้งละ 2 ช้อนชา อายุ 2-5 ปี แสดงข้อความรับ ประทานครั้งละ 1 ช้อนชา เด็กอายุตำ่ากว่า 1 ปี ห้ามรับประทาน 86
  • 87. แบบฝึก หัด 2. จงเขียน Flowchart สำาหรับวนรอบรับค่าตัว เลข แล้วแสดงค่าตัวเลขที่รับเข้ามาออกทาง จอภาพ โดยที่เมื่อรับค่าตัวเลขเป็น -999 จะ สินสุดการวนรอบและจบโปรแกรม ้ 3. จงเขียน Flowchart สำาหรับวนรอบรับค่าตัว เลข และในระหว่างรับให้หาผลรวมของ ตัวเลขที่รับเข้ามา โปรแกรมจะหยุดรับค่าเมื่อ ใส่ตัวเลข -999 และจะแสดงผลรวมของ ตัวเลขทั้งหมดที่รับเข้ามาและหยุดทำางาน 87