ค้นหาบล็อกนี้


19 มิถุนายน 2554

บทที่ 1 การออกแบบโปรแกรม (ทบทวน)

Objective (จุดประสงค์)

      1. บอกขั้นตอนการพัฒนาโปรแกรมได้
      2. เข้าใจหลักการพื้นฐานด้านกรรมวิธีการออกแบบโปรแกรมในรูปแบบต่างๆ
      3. บอกความแตกต่างระหว่างการเขียนโปรแกรมแบบ Procedural
         (วิธีการดำเนินการ) และ Object-Oriented (มุ่งเน้น วัตถุ) ได้

      4. ทราบวัตถุประสงค์ของเทคนิคการออกแบบโปรแกรมเชิงโครงสร้าง
      5. บอกความหมายของอัลกอลิทึ่ม และซูโดโค้ดได้
      6. เข้าใจหลักปฏิบัติการพื้นฐาน 6 ประการของคอมพิวเตอร์ เพื่อนำไปสู่
         การเขียนซูโดโค้ด
          ได้อย่างถูกหลักวิธี

Contents (เนื้อหา)

      - Steps in Program Development (ขั้นตอนการพัฒนาโปรแกรม)
      - Program Design Methodology (วิธีการออกแบบโปรแกรม)
      - การเขียนโปรแกรมแบบ Procedural (โมดูล) และ Object-Oriented (มุ่งเน้นวัตถุ)
      - Objective of Structured Program Design Techniques (วัตถุประสงค์
         ของการใช้เทคนิค
        การออกแบบโปรแกรมโครงสร้าง)

      - Introduction to Algorithm and Pseudo Code (ความรู้เบื้องต้นเกี่ยวกับ
        อัลกอริทึมและซูโดโค้ด)

      - Six Basic Computer Operations (การใช้งานคอมพิวเตอร์ขั้นพื้นฐาน 6 ประการ)
      - The Three Basic Control Structures (การควบคุมโครงสร้างพื้นฐาน 3 วิธี)
 

-Steps in Progarm Development (ขั้นตอนการพัฒนาโปรแกรม)

   1. Define the Problem (การกำหนดปัญหา) ประกอบด้วย
            - Inputs (การนำเข้า)
            - Outputs (การแสดงผล)
            - Processing (การประมวลผล)

 

   2. Outline the Solution (การร่างรายละเอียดแนวทางการแก้ไขปัญหา)
            - แตกงานให้เป็นชิ้นงานย่อยๆ หรือเป็นขั้นตอน (หลังจากกำหนดปัญหา)
            - การร่างรายละเอียดแนวทางการแก้ไขปัญหาต่างๆ ประกอบด้วย
                  * ขั้นตอนการประมวลผลส่วนหลักๆ
                  * ส่วนหลักของงานที่มีการแตกย่อย (Subtask)
                  * ส่วนความสัมพันธ์กับผู้ใช้งาน
                  * โครงสร้างที่ใช้ควบคุม เช่น การวนซ้ำ หรือการกำหนดทางเลือก
                  * ตัวแปรและโครงสร้างของเรคอร์ด
                  * ตรรกะโปรแกรม (Logic)
   3. Develop and Algorithm (การพัฒนาอัลกอริทึม)
            - ขั้นตอนที่ใช้อธิบายลำดับการทำงาน และหากได้ปฏิบัติตามขั้นตอนของ
              อัลกอริทึมที่ออกมา

            - ซูโดโค้ด (Pseudo Code) เป็นตัวแทนอัลกอริทึมเพื่อใช้แก้ไขปัญหา
              ทางคอมพิวเตอร์

   4. Test the Algorithm for Correctness (การตรวจสอบความถูกต้อง
        ของอัลกอริทึม)

            - เป็นขั้นตอนที่สำคัญที่สุด
            - ตรวจสอบทั้งตรรกะของอัลกอริทึม ตัวแปรหลัก และการนำข้อมูลทดสอบ
              เข้าไปประมวลผลในแต่ละขั้นตอน

   5. Programming (การเขียนโปรแกรม)
            - นำอัลกอริทึมที่ได้รับการออกแบบอย่างสมบูรณ์มาพัฒนาด้วยการเขียนโปรแกรม
              (ชุดคำสั่ง)

            - เลือกใช้ภาษาระดับสูง (High Language) เพื่อเขียนโปรแกรม เช่น C, PASCAL
              เป็นต้น

  6. Testing (การทดสอบโปรแกรม)   
            - นำข้อมูลป้อนเข้าไปเพื่อทดสอบบนเครื่องกับโปรแกรมที่ได้เขียนขึ้น
              ว่าถูกต้องหรือไม่

            - การตรวจสอบ
                  * รูปแบบชุดคำสั่ง (Syntax Errors)
                  * โปรแกรม (Logic Errors)
            - ข้อมูลทดสอบต้องมีความแตกต่างกันออกไปตามแต่ละสถานการณ์
              และสภาพแวดล้อม

    7. Document and Maintain the Program (การจัดทำเอกสารและ
         บำรุงรักษาโปรแกรม)

             - การจัดทำเอกสารประกอบโปรแกรมจะต้องจัดทำตั้งแต่ขั้นต้นการกำหนดปัญหา
              จนถึงขั้นตอนสุดท้าย คือ การทดสอบผลลัพธ์

            - เอกสารประกอบโปรแกรมจะประกอบด้วย
                  * External Document(เอกสารภายนอก) เช่น ผังโครงสร้าง อัลกอริทึมที่ใช้
                     แก้ไขปัญหา และผลของการทดสอบข้อมูล

                  * เอกสารภายใน (Internal DocumentX) คือ ชุดคำสั่งในโปรแกรม
            - การบำรุงรักษาโปรแกรมจะเกี่ยวข้องกับงานดูแลและปรับปรุงโปรแกรม

-Program Design Methodology (วิธีการออกแบบโปรแกรม)

            - การออกแบบโปรแกรมแบบ Procedure-Driven
                  * แนวความคิด - มีกระบวนการ (Processes) หรือฟังก์ชัน (Function)
            - การออกแบบโปรแกรมแบบ Event-Driven
                  * แนวความคิด - เหตุการณ์หรือการโต้ตอบจากภายนอกเป็นสำคัญ ที่ส่งผล
                    ต่อโปรมแกรมในด้านของการเปลี่ยนแปลงในแต่ละสถานะ

            - การออกแบบโปรแกรมแบบ Data-Driven
                  * แนวความคิด - ข้อมูลในโปรมแกรมมากกว่ากระบวนการ โดยเริ่มต้นจาก
                    การวิเคราะห์ข้อมูลและความสัมพันธ์ระหว่างข้อมูล มีการกำหนดโครงสร้าง
                    ข้อมูลเบื้องต้น และเมื่อโครงสร้างข้อมูลได้ถูกกำหนดขึ้น ความต้องการ
                   
ในผลลัพธ์ของข้อมูลก็จะถูกพิจารณาในลำดับถัดไปว่ามีกระบวนการใด
                    ที่จะทำการแปลงข้อมูลนำเข้าเพื่อไปสู่ผลลัพธ์หรือเอาท์พุตที่ต้องการ

-การเขียนโปรแกรมแบบ Procedural (โมดูล) และ
Object-Oriented (มุ่งเน้นวัตถุ)

            - การเขียนโปรแกรมแบบ Procedural และ Object-Oriented แบ่งออกเป็น
                  1. Top-Down Development (การเขียนโปรแกรมแบบบนลงล่าง) 
                  2. Modular Design (การออกแบบโปรแกรมในลักษณะโมดูล



                  3. Object-Oriented Programming (การออกแบบโปรแกรมเชิงวัตถุ)คือ
                      หนึ่งในรูปแบบการเขียนโปรแกรมคอมพิวเตอร์ ที่ให้ความสำคัญกับ วัตถุ
                      ซึ่งสามารถนำมาประกอบกันและนำมาทำงานรวมกันได้ โดยการแลก
                      เปลี่ยนข่าวสารเพื่อนำมาประมวลผลและส่งข่าวสารที่ได้ไปให้ วัตถุ อื่นๆ
                      ที่เกี่ยวข้องเพื่อให้ทำงานต่อไป



ความแตกต่างของการเขียนโปรแกรมเชิงโครงสร้าง และโปรแกรมเชิงวัตถุ

- Objective of Structured Program Design Techniques
  (วัตถุประสงค์ของการใช้เทคนิคการออกแบบโปรแกรมโครงสร้าง)

             1. ต้องการให้โปรแกรมมีคุณภาพและคาดหมายพฤติกรรมการทำงานของ
                 โปรแกรมได้ว่าจะเกิดผลลัพธ์อะไรขึ้นในเงื่อนไขกรณีต่างๆ

             2. โปรแกรมสามารถที่จะแก้ไข ปรับปรุง หรือดัดแปลงให้ง่ายในอนาคต
             3. ทำให้ขั้นตอนของการเขียนโปรแกรมเป็นไปอย่างมีระบบ มีความสะดวก
                 และง่ายขึ้น

             4. ลดเวลาในการพัฒนาโปรแกรม

- Introduction to Algorithm and Pseudo Code
  (ความรู้เบื้องต้นเกี่ยวกับอัลกอริทึมและซูโดโค้ด)


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


           * ตัวอย่าง
                       อัลกอริทึ่มการต้มบะหมี่กึ่งสำเร็จรูป
                            1. จัดเตรียมบะหมี่กึ่งสำเร็จรูป
                            2. ต้มน้ำสะอาดให้เดือด
                            3. นำบะหมี่กึ่งสำเร็จรูปใส่ลงในชาม
                            4. ฉีกซองเทเครื่องปรุงลงในชาม
                            5. นำน้ำที่ต้มเดือดเทลงในชาม
                            6. ปิดฝา
                            7. รอประมาณ 3 นาที


      - คุณสมบัติของ Algorithm ที่ดีในการแก้ปัญหาทางคอมพิวเตอร์
            1. ต้องไม่กำกวม อ่านแล้วเข้าใจได้ง่าย
            2. ต้องมีความถูกต้องในผลลัพธ์ที่แก้ไขปัญหาในกรณีต่างๆ
            3. กระบวนการหรือขั้นตอนที่ระบุไว้ในอัลกอริทึมต้องมีความเรียบง่าย เพียงพอต่อ
                การดำเนินงานเพื่อประมวลผลในคอมพิวเตอร์ได้
            4. ต้องมีจุดสิ้นสุด


      Pseudo Code (ซูโดโค้ด) สามารถ…?

               - นำมาใช้แทนอัลกอริทึม
               - โปรแกรมเมอร์สามารถนำอัลกอริทึมที่นำเสนอในรูปแบบซูโดโค้ด
                 ไปเขียนเป็นชุดคำสั่งภาษาโปรแกรมได้ทันที

      หลักวิธีการเขียนซูโดโค้ด

               1. ถ้อยคำหรือประโยคคำสั่ง (Statement) ให้เขียนอยู่ในรูปของ
                   ภาษาอังกฤษอย่างง่าย

               2. ในหนึ่งบรรทัด ให้เขียนประโยคคำสั่งเพียงคำสั่งเดียว
               3. ควรใช้ย่อหน้าให้เป็นประโยชน์เพื่อแยกคำเฉพาะ (Keywords) ได้ชัดเจน
                   รวมถึงจัดโครงสร้าง การควบคุมเป็นสัดส่วน ซึ่งการกระทำดังกล่าวทำให้
                   อ่านง่าย

               4. แต่ละประโยคคำสั่งให้เขียนลำดับจากบนลงล่าง โดยมีทางเข้าและ
                   ทางออกทางเดียวเท่านั้น

               5. กลุ่มของประโยคคำสั่งต่างๆ อาจรวมกลุ่มเข้าด้วยกันในรูปของโมดูล
                   แต่ต้องกำหนดชื่อโมดูลด้วย เพื่อสามารถเรียกใช้งานโมดูลนั้นได้


- Six Basic Computer Operations (การใช้งานคอมพิวเตอร์
  ขั้นพื้นฐาน 6 ประการ)

      ได้แก่…
            1. คอมพิวเตอร์สามารถรับข้อมูลได้
                  - อุปกรณ์รับข้อมูล (อินพุต) เช่น เทอร์มินัล คีย์บอร์ด หรือการอ่านไฟล์ข้อมูล
                    บนสื่อจัดเก็บข้อมูลได้ เช่น การอ่านข้อมูลจากดิสก์ เป็นต้น

                  - การอ่านจะใช้คำกริยา “read” และ “get” เพื่อใช้เขียนซูโดโค้ด
                        * read ใช้เมื่อมีการับหรืออ่านเรคอร์ดจากไฟล์ข้อมูล
                        * get   ใช้สำหรับข้อมูลจากแป้นคีย์บอร์ด

             2. คอมพิวเตอร์สามารถแสดงผลลัพธ์ได้
                   - การแสดงผลลัพธ์จะใช้ “print, write, put, output หรือ display
                        * print ส่งผลลัพธ์ออกทางเครื่องพิมพ์
                        * write ส่งเอาท์พุตเพื่อเก้บบันทึกลงในไฟล์
                        * put, output หรือ display ส่งเอาท์พุตออกไปแสดงผลทางจอภาพ
                   - คำสั่ง prompt ใช้สำหรับแสดงข้อความก่อนที่จะใช้คำสั่ง get,
                     เพื่อสามารถสื่อสารกับยูสเซอร์ได้สมบูรณ์มากขึ้น


             3. คอมพิวเตอร์สามารถคำนวณได้
                   - สัญลักษณ์ที่ใช้ในการคำนวณ
                          +      ใช้แทนการบวก (add)
                          -       ใช้แทนการลบ (subtract)
                          *       ใช้แทนการคูณ (multiply)
                          /      ใช้แทนการหาร (divide)
                         ()      ใช้แทนเครื่องหมายวงเล็บเปิด/ปิด
                   - คำกริยาที่ใช้ในการคำนวณจะใช้คำว่า compute และ calculate

             4. คอมพิวเตอร์สามารถกำหนดค่าตัวแปรได้ 
                   - ใช้ initialze หรือคำว่า set เพื่อกำหนดค่าเริ่มต้นให้กับตัวแปร    
                   - ใช้ = เพื่อกำหนดค่าตัวแปร
                   - ใช้ store จัดเก็บข้อมูลให้ตัวแปร
                 
               5. คอมพิวเตอร์สามารถเปรียบเทียบและเลือกการทำงานได้
                   - ใช้คำว่า if…then…glse และจบด้วย end if เสมอ

             6. คอมพิวเตอร์สามารถทำงานซ้ำๆ ได้
                   - ใช้คำว่า dowhile…enddo หรือ repeat…until


- The Three Basic Control Structures
  (การควบคุมโครงสร้างพื้นฐาน 3 วิธี)

            - Sequence (ลำดับและอนุกรม) มีรูปแบบดังนี้…

statement a
statement b
statement c
:
:

            - Selection (การเลือก) มีรูปแบบดังนี้…

                                 if condition p is true then
                                     statement(s) in true case
                                 else
                                     statement(s) in false case
                                 end if

            - Repetition (การทำซ้ำ) มีรูปแบบดังนี้…

                                 dowhile

                                 dowhile condition p is ture
                                      statement block
                                 enddo



--------------------จบบทที่ 1--------------------

ไม่มีความคิดเห็น:

แสดงความคิดเห็น