วันจันทร์ที่ 26 ธันวาคม พ.ศ. 2559

สรุปบทที่ 1- 5
สรุปบทที่ 1
เรื่อง  หลักการเขียนโปรแกรมเบื้องต้น
1ขั้นตอนการเขียนโปรแกรม สามารถแบ่งออกเป็น 5 ขั้นตอนด้วยกันคือ
1.1 การวิเคราะห์ปัญหา
1.2 การออกแบบโปรแกรม
1.3 การเขียนโปรแกรม
1.4 การทดสอบโปรแกรม
1.5 การจัดทำเอกสารประกอบโปรแกรม

2รูปแบบการเขียนโปรแกรม สามารถแบ่งออกเป็น 2 รูปแบบด้วยกันคือ                       2.1     การเขียนโปรแกรมเซิงโครงสร้าง 
      2.2  การเขียนโปรแกรมเชิงวัถตถุ



  3. การเขียนโปรแกรมเชิงโครงสร้าง ประกอบด้วย
    3.1 ชุดคำสั่งภายในโปรแกรม จะเป็นลำดับขั้นตอน ( Sequence )
    3.2 มีทางเลือกในการตัดสินใจทางใดทางหนึ่ง ( Decision )
    3.3 มีชุดคำสั่งเพื่อการทำซ้ำ ( Repetition )
      จุดประสงค์ของเทคนิคการออกแบบโปรแกรมเชิงโครงสร้างประกอบด้วย
    1 เพื่อสร้างโปรแกรมให้มีคุณภาพ และทำนายได้ว่าจะเกิดอะไรขึ้นในโปรแกรม
    2 เพื่อสร้างโปรแกรมที่ง่ายต่อการปรับปรุงและแก้ไข
    3 เพื่อให้ขั้นตอนการพัฒนาโปรแกรมมีระบบระเบียบยิ่งขึ้น


 อัลกอริทึมหรือขั้นตอนวิธี คือกระบวนการทำงานที่เป็นลำดับขั้นตอน ชัดเจน และมีการรับประกันว่า เมื่อได้ปฏิบัติถูกต้องตามขั้นตอนจนครบแล้ว จะได้ผลลัพธ์ที่ถูกต้องตามความต้องการ

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

  ตัวอย่าง

  4.คุณสมบัติของอัลกอริทึม ประกอบด้วย
     4.1 เป็นกระบวนการที่สร้างขึ้นจากกฏเกณฑ์
     4.2 กฎเกณที่สร้างอัลกอริทึมต้องไม่คลุมเครือ 
     4.3 การประมวลผลต้องเป็นลำดับขั้นตอน 
     4.4 กระบวนการต้องให้ผลลัพธ์ตามที่กำหนดในปัญหา
     4.5 อัลกอริทึมต้องมีจุดสิ้นสุด

    5. ในการพิจารณาถึงประสิทธิภาพของอัลกอริทึม จะพิจารณาถึงเกณฑ์พื้นทางต่อไปนี้
      5.1 อัลกอริทึมที่ดีต้องใช้เวลาในการดำเนินการน้อยที่สุด
      5.2 อัลกอริทึมที่ดีต้องใช้หน่วยความจำน้อยที่สุด
      5.3 อัลกอริทึมที่ดีต้องมีความยืดหยุ่น
      5.4 อัลกอริทึมที่ดีต้องใช้เวลาในการพัฒนาน้อยที่สุด
      5.5อัลกอริทึมที่ดีต้องง่ายต่อความเข้าใจ

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


ซูโดโค้ดมีรูปแบบเป็นโครงสร้างภาษาอังกฤษที่มีความคล้ายคลึงกับภาษาคอมพิวเตอร์ระดับสูง แต่อย่างไรก็ตามการเขียนซูโดโค้ดไม่ได้มีมาตรฐานการเขียนที่ชัดเจนอย่างภาษาระดับสูง ดังนั้น จึงจำเป็นต้องเรียนรู่ถึงหลักการ เพื่อสามารถเขียนซูโดโค้ดให้สามารถสื่อสารกับโปรแกรมเมอร์ได้อย่างเข้าใจ
   6.หลักการเขียนซูโดโค้ด
    6.1 ถ้อยคำหรือประโยคคำสั่ง ให้เขียนอยู่ในรูปแบบของภาษาอังกฤษอย่างง่าย
     6.2 ในหนึ่งบรรทัดให้เขียนประโยคคำสั่งเพียงคำสั่งเดียว
     6.3 ควรใช้ย่อหน้าให้เป็นประโยชน์ เพื่อแยกคำเฉพาะ รวมถึงจัดโครงสร้างการควบคุมให้เป็นสัดส่วน ซึ่งการกระทำดังกล่าวจะทำให้อ่านง่าย
     6.4 แต่ละประโยคคำสั่งให้เขียนลำดับจากบนลงล่าง โดยมีทางเข้าเพียงทางเดียวและมีทางออกทางเดียวเท่านั้น
     6.5 กลุ่มของประโยคคำสั่งต่างๆอาจจัดรวมกลุ่มเข้าด้วยกันในรูปแบบของโมดูล แต่ต้องกำหนดชื่อโมดูลเหล่านั้นด้วย เพื่อให้สามารถเรียกใช้งานโมดูลนั้นได้
      การที่จะลงมือเขียนโปรแกรม  ต้องออกแบบขั้นตอนการทำงาน  หรืออัลกอริทึม  (Algorithm)  ก่อน  ซึ่งเป็นเครื่องมือในการแสดงขั้นตอนการทำงานของระบบงานใด ๆ  เพื่อให้การเขียนโปรแกรมเป็นไปได้อย่างรวดเร็วและง่ายขึ้น  โดยเราจะเขียนอัลกอริทึมในลักษณะผังงาน  (Flowchart)  หรือรหัสจำลองที่เรียกว่า 
     ซูโดโค้ด  (Pseudocodes)  ก็ได้
    ซูโดโค้ด  (Pseudocodes)
    เป็นคำอธิบายขั้นตอนการทำงานของโปรแกรม  โดยใช้ถ้อยคำผสมระหว่างภาษาอังกฤษและภาษาการเขียนโปรแกรมแบบโครงสร้าง  จะช่วยให้ผู้เขียนโปรแกรมสามารถพัฒนาขั้นตอนต่าง ๆ  ให้เป็นโปรแกรมได้ง่ายขึ้น  ส่วนใหญ่มักใช้คำเฉพาะ  (Reserve Word)  ที่มีในภาษาการเขียนโปรแกรมและมักเขียนด้วยตัวอักษรตัวใหญ่  ซูโดโค้ดที่ดี  จะต้องมีความชัดเจน  สั้น  และได้ใจความ  ข้อมูลต่าง ๆ  ที่ใช้จะถูกเขียนอยู่ในรูปของตัวแปร
     รูปแบบ
     Algorithm  <ชื่อของอัลกอริทึม>
1……………………………….
2……………………………….
3…………………………………
END
    ตัวอย่างที่ 1 การเขียนซูโดโค้ด สำหรับให้คอมพิวเตอร์หาค่าเฉลี่ยจากข้อมูลที่รับเข้าทางแป้นพิมพ์ ถ้าใส่ค่าศูนย์แสดงว่าหยุดป้อนข้อมูล เขียนได้ดังนี้

    Algorithm การหาค่าเฉลี่ย
    1. เริ่มต้น
    2. ตัวนับ = 0
    3. ผลรวม = 0
    4. รับค่าทางแป้นพิมพ์เก็บไว้ในตัวแปร (ข้อมูล)
    5. ถ้า ข้อมูล มากกว่า 0
        เพิ่มค่าตัวนับขึ้นหนึ่งค่า
        ผลรวม = ผลรวม + ค่าข้อมูล
        ย้อนกลับไปทำขั้นตอนที่ 3
        ถ้าไม่มากกว่าไปทำขั้นตอนที่ 5
    6. ค่าเฉลี่ย = ผลรวมหารด้วยตัวนับ
    7. แสดงค่าเฉลี่ยทางจอภาพ (ทศนิยมสองตำแหน่ง)
จบAlgorithm Average_Sum
    1. START
    2. count =0
    3. sum = 0
    4. INPUT (value)
    5. IF value > 0 THEN
        count = count +1
        sum = sum + value
        GOTO 3
        ELSE GOTO 5
    6. average = sum / count
    7. OUTPUT (average)
END    ตัวอย่างที่ 2 การเขียนซูโดโค้ด คำนวณหาพื้นที่สามเหลี่ยม หรือเขียนเป็นภาษาอังกฤษได้ดังนี้

Algorithm การหาพื้นที่สามเหลี่ยม
    1. เริ่มต้น
    2. รับค่าความยาวของฐานมาเก็บในตัวแปร X
    3. รับค่าความยาวของสูงมาเก็บในตัวแปร Y
    4. คำนวณหาพื้นที่ ARRAY = ( X*Y ) / 2
    5. แสดงผลพื้นที่
จบAlgorithm Average_Sum
    1. START
    2. READ X
    3. READ Y
    4. Compute ARRAY = ( X*Y ) / 2
    5. Print ARRAY
END

2. การเขียนผังงาน (Flowchart)

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

    ประโยชน์ของผังงาน
1.           ช่วยอธิบายลำดับขั้นตอนการทำงานของโปรแกรม
2.           ทำให้ตรวจสอบข้อผิดพลาดของโปรแกรมได้ง่าย
3.           ทำให้ผู้อื่นสามารถศึกษาการทำงานของโปรแกรมและแก้ไขโปรแกรมได้ง่าย


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

    การเขียนผังงาน สามารถแบ่งออกเป็น ประเภท คือ
1.           ผังงานระบบ (System Flowchart) ใช้แสดงขั้นตอนการทำงานในระบบงานหนึ่ง ๆ โดยกล่าวถึงข้อมูลต่าง ๆ ที่เกี่ยวข้องทั้งหมด เช่น เอกสารเบื้องต้นคืออะไร วัสดุที่ใช้คืออะไร หน่วยความจำประเภทใด จะต้องส่งผ่านไปยังหน่วยงานใด วิธีการประมวลผลและการแสดงผลลัพธ์ โดยอาจจะกล่าวอย่างกว้าง ๆ ไม่สามารถนำมาเขียนเป็นโปรแกรมได้
2.           ผังงานโปรแกรม (Program Flowchart) ผังงานประเภทนี้ จะแสดงถึงขั้นตอนของคำสั่งที่ในโปรแกรม การรับข้อมูล การประมวลผล การแสดงข้อมูล บางครั้งเรียกว่าผังการเขียนโปรแกรม
     เครื่องหมาย = จะนำมาใช้เพื่อการกำหนดค่าและการคำนวณ เช่น x=0,sum = x+y
    การอ่านหรือรับข้อมูล สามารถใช้คำสั่ง PRINT,PROMPT และ WPITE แต่ PRINT และ PROMPT มักกูกนำไปใช้สำหรับการพิมพ์ค่าข้อมูล หรือข้อความ ในขณะที่ WIRITE จะนำไปใช้สำหรับการบันทึกข้อมูลลงในแฟ้มข้อมูล 
    การแสดงผลข้อมูล สามารถใช้คำสั่ง PRINT PROMPT , และ WRITE แต่ PRINT และPROMPT มักถูกนำไปใช้สำหรับการพิมพ์ค่าข้อมูล หรือข้อความในขณะที่ WRITE จะรำไปใช้สำหรับการบันทึกข้อมูลลงในแฟ้มข้อมูล
    การกำหนดเงื่อนไข จะใช้ประโยคIF…THEN…ELSE โดยหากเงื่อนไขที่ตรวจสอบเป็นจริง ก็จะทำกิจกรรมหลัง THEN แต่ถ้าเงื่อนไขเป็นเท็จก็จะทำกิจกรรมหลังELSE กรณีที่มีการตรวจสอบเงื่อนไข IF ซ้อนกันหลายๆ ชั้น อาจทำให้แลดูยุ่งเหยิงและตรวจสอบยาก ดังนั้น จึงสามารถใช้คำสั่ง CASE…ENDCASE แทนได้        
     ค ำสั่งที่ใช้ทำงานเป็นรอบหรือลูป  มีอยู่หลายรูปแบบด้วยกันคือ
    1.   ลูป WHILE…ENDWHILE เป็นลูปที่มีการตรวจสอบเงื่อนไขก่อน ดังนั้นหากเงื่อนไขเป็นจริงก็จะทำกิจกรรมภายในลูปซ้ำไปเรื่อยๆ จนกระทั่งเงื่อนไขเป็นเท็จก็จะหลุดออกจากลูป แต่อย่างไรก็ตาม หากเงื่อนไขที่ตรวจสอบครั้งแรกเป็นเท็จก็จะไม่มีการดำเนินกิจกรรมภายในลูปเลย
    2.  ลูป DO…UNTIL เป็นลูปที่อย่างน้อยต้องดำเนินการภายในลูปรอบหนึ่งเสมอจากนั้นจึงทำการตรวจสอบเงื่อนไขโดยจะวนซ้ำเรื่อยๆ จนกว่าเงื่อนไขจะเป็นเท็จ จึงหลุดออกจากลูป
    3. ลูป FOX…NEXT เป็นลูปที่มีการกำหนดรอบการวนซ้ำที่จำนวนรอบที่แน่นอน
      กรณีที่โปรแกรมมีขนาดใหญ่ อาจเขียนซูโดโค้ดด้วยด้วยการแบ่งออกเป็นโพรซีเยอร์ได้โดยแต่ละโพรซีเยอร์ต่างก็มีหน้าที่ของตนโดยเฉพาะ และสามารถเรียกใช้งานได้บ่อยตามที่ต้องการ สำหรับการเรียกใช้งาน ก็จะใช้ชุดคำสั่ง CALL แล้วตามด้วยชื่อโพรซีเยอร์ และเมื่อทำงานจนโพรซีเยอร์นั้นๆ แล้ว ก็จะกลับมายังตัวโปรแกรมหลัก เพื่อทำงานชุดคำสั่งในลำดับถัดไป





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

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