การเขียนโปรแกรมแบบโครงสร้างแบบลำดับ

แนวคิดการเขียนโปรแกรมแบบโครงสร้าง

  1. แนวคิดการสอนเขียนโปรแกรม หลายครั้งที่ต้องเริ่มสอนเขียนโปรแกรม ให้นักเรียนกลุ่มใหม่ และก็ต้องบอกเล่า ด้วยประโยคเดิมทุกครั้งว่า “การเขียนโปรแกรม ทุกภาษานั้นเหมือนกัน” สิ่งที่แตกต่างกัน ของแต่ละภาษาคือ syntax แต่สิ่งที่เหมือนกันของทุกภาษาคือ การใช้ประสบการณ์จากภาษาหนึ่ง ไปใช้ในอีกภาษาหนึ่งได้ ด้วยการซึมซับ เรื่องของ Structure Programming จนเข้าใจ เพื่อควบคุมในสิ่งที่คล้ายๆ กันคือ input, process และ output ซึ่งหมายความว่า ถ้าท่านเขียนโปรแกรมอะไร ในภาษาหนึ่งได้แล้ว ย่อมเขียนโปรแกรมแบบนั้นได้ในทุกภาษา
  2. ความหมายของ Structure Programming

การโปรแกรมแบบมีโครงสร้าง หรือการโปรแกรมโครงสร้าง คือการกำหนดขั้นตอนให้เครื่องคอมพิวเตอร์ทำงานโดยมีโครงสร้างการควบคุมพื้นฐาน 3 หลักการ ได้แก่ การทำงานแบบตามลำดับ(Sequence) การเลือกกระทำตามเงื่อนไข(Decision) และการทำซ้ำ(Loop) ตำราหลายเล่มจะขยายความออกไปว่า Decision แยกเป็น If และ Case ส่วน Loop แยกเป็น While และ Until ถ้าแยกให้ละเอียดก็อาจได้ถึง 5 หลักการ แต่ในที่นี้ขอนำเสนอไว้เพียง 3 หลักการ ดังนี้

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

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

2.3 การทำซ้ำ(Repeation or Loop) คือ การทำกระบวนการหนึ่งหลายครั้ง โดยมีเงื่อนไขในการควบคุม หมายถึงการทำซ้ำเป็นหลักการที่ทำความเข้าใจได้ยากกว่า 2 รูปแบบแรก เพราะการเขียนโปรแกรมแต่ละภาษา จะไม่แสดงภาพอย่างชัดเจนเหมือนการเขียนผังงาน(Flowchart) ผู้เขียนโปรแกรมต้องจินตนาการ ถึงรูปแบบการทำงาน และใช้คำสั่งควบคุมด้วยตนเอง ตัวอย่างผังงานที่นำมาแสดงนี้เป็นการแสดงคำสั่งทำซ้ำ(do while) ซึ่งหมายถึงการทำซ้ำในขณะที่เป็นจริงและเลิกการทำซ้ำเมื่อเงื่อนไขเป็นเท็จ

  1. โครงสร้างแบบลำดับ (Sequential Structure) เป็นโครงสร้างที่แสดงขั้นตอนการทำงาน จากคำสั่งที่ 1 ไปคำสั่งที่ 2 ต่อไปจนถึงคำสั่งสุดท้าย และแต่ละคำสั่งจะมีการประมวนผลเพียงครั้งเดียวเท่านั้น การเขียนโปรแกรมโครงสร้างแบบลำดับ จึงเป็นการเขียนโปรแกรมที่ง่ายที่สุด

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

โครงสร้างแบบลำดับ

ตัวอย่างการเปลี่ยนจากผังงานเป็นการอธิบายขั้นตอนวิธีการทำงานในลักษณะของข้อความ

จากรูป มีกระบวนการทำงานทั้งหมด 5 กระบวนการ สามารถเขียนการอธิบายขั้นตอนวิธีการทำงานในลักษณะข้อความ ได้ดังนี้

        1. เริ่มต้นการทำงาน
        2. รับค่า Base และ High
        3. คำนวณค่าของ Answer เท่ากับ 0.5*Base*High
        4. แสดงค่าของ Answer
        5. จบการทำงาน

ตัวอย่าง การเปลี่ยนจากผังงานเป็นการอธิบายขั้นตอนวิธีการทำงานในลักษณะของข้อความ

จากรูป มีกระบวนการทำงานทั้งหมด 5 กระบวนการ สามารถเขียนการอธิบายขั้นตอนวิธีการทำงานในลักษณะข้อความ ได้ดังนี้


        1. เริ่มต้นการทำงาน
        2. รับค่า Radian
        3. คำนวณค่าของ Answer เท่ากับ 2*3.14*Radian
        4. แสดงค่าของ Answer
        5. จบการทำงาน

รหัสเทียมกับการทำงานแบบลำดับ

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

การอธิบายขั้นตอนวิธีการทำงาน

รหัสเทียม

เริ่มต้นการทำงาน

START, Begin

จบการทำงาน

STOP, End

รับค่า Data

Read Data

แสดงค่าของ Data

Write Data, Print Data

กำหนดค่า Sum ให้มีค่าเท่ากับ 0

Sum ! 0, Sum=0

คำนวณค่า Answer เท่ากับ X2+Y2

Answer!X2+Y2, Answer= X2+Y2

แสดงค่าของ Answer

Write Answer, Print Answer

ตัวอย่าง การเปลี่ยนจากการอธิบายขั้นตอนวิธีการทำงานในลักษณะของข้อความเป็นรหัสเทียม

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

  1. สิ่งต้องการ (Requirement)คำนวณหาพื้นที่รูปสามเหลี่ยม แล้วออกรายงาน ผลการคำนวณ
  2.  รูปแบบของผลลัพธ์ (Output) ให้มีการแสดงผลออกทางจอภาพ ดังนี้

     

    การคำนวณพื้นที่รูปสามเหลี่ยม

    ความยาวของฐาน    = ……………. นิ้ว
    ความสูง                    = ……………. นิ้ว
    พื้นที่รูปสามเหลี่ยม  = ……………. นิ้ว

  1. ข้อมูลนำเข้า (Input)

             ความยาวของฐาน (เป็นนิ้ว)
             ความสูงของสามเหลี่ยม (เป็นนิ้ว)

  1. ตัวแปรที่ใช้ (Variable)

              Bottom       แทน ความยาวของฐาน
              High   แทน ความสูงของรูปสามเหลี่ยม
              Area   แทน พื้นที่รูปสามเหลี่ยม

  1. วิธีการประมวลผล (Process)

             5.1 เริ่มต้น
             5.2 รับค่าความยาวของฐาน Bottom ผ่านทางคีย์บอร์ด
             5.3 รับค่าความสูงของสามเหลี่ยม High ผ่านทางคีย์บอร์ด
             5.4 คำนวณพื้นที่สามเหลี่ยม จากสูตร Area = Bottom* High/2
             5.5 แสดงค่าความยาวของฐาน ความสูง และพื้นที่รูปสามเหลี่ยมออกทางจอภาพ
             5.6 จบการทำงาน

      6. ผังงาน

  1. เขียนโปรแกรม (Program)

CLS
DIM
INPUT
INPUT
Area
PRINT
PRINT
PRINT
PRINT


“Bottom, High, Area AS SINGLE”
“ความยาวฐาน=”; Bottom
“ความสูง=”; High
= (Bottom* High)/2
“การคำนวณพื้นที่รูปสามเหลี่ยม”
“ความยาวของฐาน =  “;Bottom;”นิ้ว”
“ความสูง =  “;High;”นิ้ว”
“พื้นที่สามเหลี่ยม =  “;Area;”นิ้ว”

เอกสารอ้างอิง

น้อย สุวรรณมณี และคณะ.(2553). หนังสือเรียนแม็ค การงานอาชีพและเทคโนโลยีชั้นมัธยมศึกษาปีที่ 4-6 เล่มที่ 3. (หน้า 88-89).กรุงเทพฯ : แม็ค.

สถาบันพัฒนาคุณภาพวิชาการ (พว.)(2558). คู่มือครูหนังสือเรียน เทคโนโลยีสารสนเทศและการสื่อสารชั้นมัธยมศึกษาปีที่ 4-6 เล่มที่ 3 (หน้า 88-89).กรุงเทพฯ :

คุณภาพวิชาการ (พว.).สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี (สสวท.) กระทรวงศึกษาธิการ(2553). เทคโนโลยีสารสนเทศและการสื่อสารชั้นมัธยมศึกษาปีที่ 4-6(หน้า 201-202).กรุงเทพฯ :

สกสค.ลาดพร้าว.อาณัติ  รัตนถิรกุล. (2553).สร้างระบบ e-Learning ด้วย moodle.กรุงเทพฯ : ซีเอ็ดยูเคชั่น.

สุดฤดี  ประทุมชาติ. หน่วยที่ 5 โครงสร้างผังงานการทำงานแบบลำดับ.http://sudruadee.blogspot.com/2007/06/5.html. [ระบบออนไลน์].(5พฤศจิกายน2557).