วันพุธที่ 2 กรกฎาคม พ.ศ. 2557

1.การเขียนอัลกอริทึม

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

1.แต่ละขั้นในอัลกอริทึมต้องมีความชัดเจน ถูกต้อง

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

3.อัลกอริทึมที่เขียนนั้น ต้องมีจุดสิ้นสุดเสมอ

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

1.1.ชนิดของคอมพิวเตอร์ข้อมูลในระบบ

1.ตัวเลข จำนวนเต็ม (integer) กับ (float / real) นำมาคำนวณกัน

2.ตัวอักษร (char) 1 ตัวอักษร อยู่ภายใต้เครื่องหมายฝนทอง (single qoute) สามารถประกอบด้วยข้อมูลแบบตัวเลขได้อีก 0-9 (นำมาคำนวณไม่ได้) A-Z a-z $ # % ! @ + - * / \ ตัวอย่าง 'AZ ' ผิดเพราะรูปแบบเป็น char และมากกว่า 1 ค่า

3.ข้อความ (staring) อยู่ภายใต้ เครื่องหมายคำพูด "" double qoute ใช้กับตัวอักษร 1 ตัวขึ้นไปครับ

4.จำนวนจริง (real) เป็นจำนวนจริง ที่หารเพื่อเอาทศนิยม

1.2.อัลกอริทึมชนิด 

1.structure
2.เงื่อนไข
3.วนซ้ำ for,while,Do while

1.3.ข้อมูลในที่ใช้ในการเขียนโปรแกรม 4 ชนิด

1. จำนวนเต็ม = integer
2. ทศนิยม = real
3. ข้อความ = string
4. ตัวอักษร = char

1.4.การวิเคราะห์โจทย์อัลกอริทึม

1.วิเคราะห์สิ่งที่โจทย์ต้องการ

2.รูปแบบผลลัพธ์

3.ตัวแปร

4.ข้อมูลนำเข้า

5.วิธีประมวลผล (input + process + output)

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

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



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

3. รหัสเทียม (pseudo code)

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

       เริ่มต้นบล็อก ให้มีคำว่า begin จบลงที่ end
       อ่าน เขียนข้อมูลใช้ read และ print ตามลำดับ
       การทดสอบเงื่อนไข ใช้ if , else , elseif , endif
       การวนลูปทำซ้ำ ใช้  while , Do while และ end do

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

ตัวอย่าง ของ อัลกอริทึม , ผังงาน และ รหัสเทียม

    จะแก้ปัญหาเนื้อหาพื้นที่ของรูปสี่เหลี่ยม โดยรับค่าความกว้างและความสูง จากผู้มีการใช้งานทางแป้นพิมพ์

1. วิเคราะห์สิ่งที่โจทย์ต้องการ

    หาพื้นที่ของสี่เหลี่ยม โดยรับค่าความกว้างและความสูง

2. รูปแบบผลลัพธ์

    พื้นที่ของรูปสี่เหลี่ยม = xxx

3. ตัวแปร
   
    พื้นที่ของรูปสี่เหลี่ยม
    ค่าความกว้าง
    ความสูง

4. ข้อมูลนำเข้า

    ค่าความกว้าง
    ค่าความสูง

5. วิธีการประมวลผล (input + process + output)

    1.เริ่มต้น
 
    2.ประกาศตัวแปร Area W,H เป็น real
 
    3.Area = 0

    4.รับค่า W H

    5.Area = W*H

    6.แสดงผล Area

    7.จบ



 ผังงาน (flowchart)



รหัสเทียม (pseudo code)

1. start

2. set area W,H real

3. area = 0

4. input W ,H

5. area = W*H

6. print area

7. end


อ้างอิงแหล่งที่มา : ชื่อผู้แต่ง ผศ.ปัญญาพล หอระตะ
                 ชื่อหนังสือ หลักการเขียนโปรแกรมภาษา C
                 ชื่อสำนักพิมพ์ โรงพิมพ์คลังนานาวิทยา
                 ปีที่พิมพ์ 2545
                 หน้าที่อ้างอิง 14 - 17

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

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