ก่อนเขียนโปรแกรม
ผู้พัฒนาโปรแกรมจะต้องเลือกภาษาคอมพิวเตอร์ ที่จะนำมาช่วยงานโดยพิจารณาจากปัจจัยต่าง
ๆ ในการทำงาน เช่น
ลักษณะของปัญหา
ความถนัดของนักเขียนโปรแกรม
สภาพแวดล้อมในการทำงานของระบบคอมพิวเตอร์
เป็นต้น
เนื่องจากในปัจจุบันมีภาษาคอมพิวเตอร์ให้เลือกใช้ได้หลายภาษา เช่น
ภาษาปาสคาล ภาษาซี ภาษาจาวา
และภาษาเดลฟาย ถึงแม้แต่ละภาษาจะมีรูปแบบและหลักการในการสร้างงานที่แตกต่างกันแต่ทุกภาษาจะต้องมีโครงสร้างควบคุมหลักทั้ง
3 แบบ ได้แก่ โครงสร้างแบบลำดับ (sequential structure) โครงสร้างแบบทางเลือก (selection structure) และ
โครงสร้างแบบวนซ้ำ (repetition structure)
1) โครงสร้างแบบลำดับ (sequential structure)
โครงสร้างที่ทำงานเป็นขั้นตอนเพื่อแก้ปัญหาจะทำงานตามคำสั่งที่เขียนไว้ตามลำดับ ตั้งแต่คำสั่งแรกไปจนถึงคำสั่งสุดท้าย โดยที่คำสั่งในที่นี้อาจเป็นคำสั่งเดี่ยว ๆ
หรือเป็นคำสั่งเชิงซ้อนที่มีหลายคำสั่งย่อยประกอบกันในลักษณะเป็นโครงสร้างแบบทางเลือกหรือแบบวนซ้ำก็ได้
โครงสร้างแบบลำดับเมื่อเขียนเป็นผังงาน มีกระบวนการทำงานพื้นฐานอยู่ 3
ชนิด ได้แก่
– การคำนวณ เป็นกระบวนการที่คอมพิวเตอร์ทำการคำนวณ ประมวลผล
ซึ่งจะรวมไปถึงการกำหนดค่าให้กับตัวแปร
เพื่อให้สามารถนำค่าของตัวแปรนั้นมาใช้ในภายหลังได้
– การรับข้อมูลเข้า
เป็นกระบวนการรับข้อมูลจากอุปกรณ์ของหน่วยรับเข้า เช่น
คีย์บอร์ด
เพื่อนำค่าไปกำหนดให้กับตัวแปร
และเก็บไว้ในหน่วยความจำ
– การส่งข้อมูลออก เป็นกระบวนการนำค่าของข้อมูลไปแสดงผลยังอุปกรณ์ของหน่วยส่งออก เช่น
จอภาพหรือเครื่องพิมพ์
ข้อมูลที่จะส่งออกโดยทั่วไปจะเป็นค่าคงที่
หรือค่าของตัวแปร
ในการดำเนินการเพื่อแก้ปัญหาด้วยคอมพิวเตอร์
กระบวนการเหล่านี้ต้องถูกแปลงให้อยู่รูปของคำสั่งหลายคำสั่งประกอบกันเพื่อให้ทำงานตามขั้นตอนที่ได้ออกแบบไว้ เช่น
กระบวนการกำหนดค่า 0 ให้กับ
sum จะใช้คำสั่ง
“sum ← 0”
กระบวนการคำนวณในการเพิ่มค่าของตัวแปร
n ขึ้นอีกหนึ่ง
จะใช้คำสั่ง “n ← n + 1”
กระบวนการรับข้อมูลเข้าเพื่อเก็บไว้ในตัวแปร x จะใช้คำสั่ง “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)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น