โครงสร้างโปรแกรม



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

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

โครงสร้างแบบลำดับเมื่อเขียนเป็นผังงาน   มีกระบวนการทำงานพื้นฐานอยู่  3  ชนิด  ได้แก่

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

–        การรับข้อมูลเข้า  เป็นกระบวนการรับข้อมูลจากอุปกรณ์ของหน่วยรับเข้า  เช่น  คีย์บอร์ด  เพื่อนำค่าไปกำหนดให้กับตัวแปร  และเก็บไว้ในหน่วยความจำ

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

ในการดำเนินการเพื่อแก้ปัญหาด้วยคอมพิวเตอร์  กระบวนการเหล่านี้ต้องถูกแปลงให้อยู่รูปของคำสั่งหลายคำสั่งประกอบกันเพื่อให้ทำงานตามขั้นตอนที่ได้ออกแบบไว้  เช่น  กระบวนการกำหนดค่า  0  ให้กับ  sum  จะใช้คำสั่ง  “sum ← 0”  กระบวนการคำนวณในการเพิ่มค่าของตัวแปร  ขึ้นอีกหนึ่ง  จะใช้คำสั่ง  “n ← n + 1”  กระบวนการรับข้อมูลเข้าเพื่อเก็บไว้ในตัวแปร  จะใช้คำสั่ง  “input x”  และกระบวนการส่งข้อมูลออกไปยังจอภาพเพื่อแสดงผลของตัวแปร  sum  จะใช้คำสั่ง  “print  sum”  เป็นต้น

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

โครงสร้างการทำงานแบบทางเลือกที่กล่าวมาแล้ว  อาจเรียกว่ามีโครงสร้างการทำงานแบบ  if…then…else…  ซึ่งเป็นการเลือกทำแบบทางใดทางหนึ่ง  เนื่องจากต้องมีการเลือกทำชุดคำสั่งใดชุดคำสั่งหนึ่งตามผลของเงื่อนไข  แต่ในการเขียนโปรแกรมหรือผังงานเพื่อแก้ปัญหา  นักเขียนโปรแกรมอาจไม่ต้องการทำงานใด ๆ  เมื่อผลของเงื่อนไขเป็นเท็จก็ได้  ซึ่งเรียกว่ามีโครงสร้างของการทำงานแบบเลือกทำเพียงทางเดียว  หรือแบบ  if…then…

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

สิ่งที่ควรระวังในการใช้งานขั้นตอนวิธีแบบมีการวนซ้ำคือ  ต้องตรวจสอบว่าได้กำหนดเงื่อนไขอย่างรัดกุมและถูกต้อง  มิเช่นนั้นแล้วอาจเกิดกรณีของการวนซ้ำไม่รู้จบ  (infinite loop)  หรือกรณีที่วนซ้ำไม่ได้ตามจำนวนรอบที่ต้องการ

ตัวอย่างที่  1  ลำดับขั้นตอนการเล่นเกมทายตัวเลขแบบที่  1

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

องค์ประกอบของขั้นตอนการวิเคราะห์และกำหนดรายละเอียดของปัญหาสามารถแสดงได้ดังนี้

ข้อมูลออก              ข้อมูลเข้า                รายละเอียดของปัญหา
ข้อความแสดงผลการทายตัวเลข        – ตัวเลขเป้าหมาย- ตัวเลขที่ทาย         เปรียบเทียบตัวเลขที่ทายกับตัวเลขเป้าหมาย- ถ้าตรงกัน ให้แสดงคำว่า Correct- ถ้าไม่ตรงกัน ให้แสดงคำว่า Incorrect
ตัวอย่างที่  2  ลำดับขั้นตอนการเล่นเกมทายตัวเลขแบบที่  2

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

องค์ประกอบของขั้นตอนการวิเคราะห์และกำหนดรายละเอียดของปัญหาสามารถแสดงได้ดังนี้

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

ตัวอย่าง :  การเขียนผังงาน
โครงสร้างแบบลำดับ (sequential structure)


ที่มา  :  http://www.nkpw.ac.th/pornsak/com54/22242/images/p922-1.gif



ที่มา  :  http://61.7.214.35/c/webbase/unit2/images/flow1.jpg

ที่มา  :  https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBO7LqNLIwNqFbwJ9C4Ixhfpr7EENMDmv1ZrlcOxImMXOSyicGCpl3AcEwji0m_kqFiyXMnfn9AS1gMxOzlZb3lhToEP5QPsPjSNXK29W99FWsSFTsHJkp-7n6KfJME7abiECNWrWtKwkj/s400/ScreenHunter_1.jpg

โครงสร้างแบบทางเลือก  (selection  structure)




โครงสร้างแบบวนซ้ำ (repetition  structure)






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

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