บทที่ 1 - 5
http://marktk2004.blogspot.com/
หลักการเขียนโปรแกรม
วันพฤหัสบดีที่ 10 กุมภาพันธ์ พ.ศ. 2554
วันอังคารที่ 8 กุมภาพันธ์ พ.ศ. 2554
บทที่ 6 การเขียนผังงาน
ตามที่ได้กล่าวมาแล้วว่าก่อนที่จะลงมือเขียนโปรมแกรมจะต้องมีการวางแผนขั้นตอนการทำงานมาก่อนผังงาน(Flowchart) เป็นอีกวิธีหนึ่งที่สามารถนำมาช่วยในพัฒนาโปรแกรมคอมพิวเตอร์ได้ โดยจะเป็นการเขียนอธิบายขั้นตอนวิธีการทำงานในลักษณะของรูปภาพ ทำให้สามารถนำผังงานมาช่วยในลำดับขั้นตอนการแก้ปัญหาได้อย่างชัดเจน
6.1 ความหมายของผังงาน
ผังงานหรือเรียกกันว่าโฟลวชาร์ตเป็นแผนภาพที่ใช้ออกแบบและอธิบายการทำงานของโปรแกรมโดยอาศัยรูปทรงต่างๆ รวมทิศทางการไหลของข้อมูลตั้งแต่เริ่มต้นจนได้ผลลัพธ์ตามที่ต้องการระบบงานทุกชนิดที่ผ่านการวิเคราะห์เป็นลำดับขั้นตอนแล้วจะสามารถเขียนเป็นผังงานได้
ประโยชน์ของผังงาน
1. ทำให้เข้าใจขั้นตอนและลำดับในการทำงานของโปรแกรมอย่างรวดเร็ว
2. เป็นสื่อกลางระหว่างผู้พัฒนาโปรแกรม ให้สามารถเข้าใจโปรแกรมได้ง่าย
3. ทำให้สามารถวิเคราะห์ความถูกต้องของโปรแกรมก่อนเขียนโปรแกรมจริงได้ง่ายและตรวจสอบข้อผิดพลาดไดง่าย
4. ทำให้ผู้อื่นสามารถศึกษาการทำงานของโปรแกรมและแก้ไขโปรแกรมได้ง่าย
การเขียนผังงานที่ดี
1. เขียนตามสัญลักษณ์ที่กำหนด
2. ใช้ลูกศรแสดงทิศทางการทำงานจากบนลงล่าง
3. อธิบายสั้น ๆ ให้เข้าใจง่าย
4. ทุกแผนภาพต้องมีทิศทางเข้าออก
5. ไม่ควรโยงลูกศรไปที่ไกลมาก ๆ ถ้าต้องทำให้ใช้สัญลักษณ์การเชื่อมต่อแทน
6.2 ประเภทของผังงาน
การเขียนผังงานในทางคอมพิวเตอร์สามารถแบ่งออกเป็นสองประเภทใหญ่ ๆ คือ
1.ผังงานระบบ
ใช้แสดงขั้นตอนการทำงานภายในระบบงานหนึ่ง ๆ โดยกล่าวถึงข้อมูลต่าง ๆ ที่เกี่ยวข้องทั้งหมด เช่น เอกสารเบื้องต้นคืออะไร วัสดุที่ใช้คืออะไร ใช้หน่วยความจำประเภทใด จะต้องส่งผ่านไปยังหน่วยงานใด
2. ผังงานโปรแกรม
ผังงานประเภทนี้จะแสดงถึงขั้นตอนของที่ใช้ในการทำงานของโปรแกรม โดยเริ่มตั้งแต่การรับข้อมูล การประมวลผล การแสดงข้อมูลที่เป็นผลลัพธ์ในการทำงาน บางครั้งจะเรียกว่าผังการเขียนโปรแกรม
6.3 สัญลักษณ์ที่ใช้ในการเขียนผังงาน
การเขียนผังงานจะต้องใช้สัญลักษณ์ภาพต่าง ๆ นำมาเรียงต่อกันเพื่อแสดงลำดับการทำงาน สัญลักษณ์มาตรฐานนี้เรียกว่า สัญลักษณ์ ANSI
จุดเริ่มต้นและสิ้นสุดโปรแกรม
การกำหนดจุดเริ่มต้นของโปรแกรมจะเขียนคำอธิบายคำว่า Start หรือคำว่า Begin เข้าไปในสัญลักษณ์เริ่มต้น ของผังงานจากนั้นจะใช้ลูกศรชี้ออกไปยังจุดที่ต้องการประมวลผลต่อไป ถ้าหากเป็นจุดสิ้นสุดโปรแกรมจะเขียนว่า Stop หรือ End เข้าไปในสัญลักษณ์โดยมีลูกศรชี้เข้า และจะไม่มีลูกศรชี้ออก ในผังงานแต่ละผังงานจะมีจุดเริ่มต้นและสิ้นสุดเพียงอย่างละหนึ่งแห่งเท่านั้น
การประมวลผล
สัญลักษณ์รูปสี่เหลี่ยมผืนผ้าจะใช้สำหรับการประมวลผล การกำหนดค่า และการคำนวณ โดยจะเขียนวิธีการประมวลผลเข้าไปในสัญลักษณ์ และใช้เครื่องหมายลูกศรหรือเท่ากับในการส่งค่าไปประมวลผลขั้นต่อไป
การรับข้อมูลเข้าและแสดงข้อมูลออก
การรับข้อมูลเข้าและแสดงข้อมูลออกโดยไม่ระบุประเภทของอุปกรณ์ที่รับและส่งข้อมูล จะใช้สัญลักษณ์รูปสี่เหลี่ยมด้านขนาน โดยจะมีทิศทางข้อมูลเข้าออกได้อย่างละหนึ่งทิศทาง และเขียนคำอธิบายกำกับไว้ภายใน
การแสดงข้อมูลออกทางเครื่องพิมพ์
การแสดงข้อมูลออกทางเครื่องพิมพ์จะใช้สัญลักษณ์ Document ในการแสดงผลโดยข้อมูลที่แสดงผลจะเขียนอยู่ในสัญลักษณ์นี้จะแสดงข้อมูล Data ออกทางเครื่องพิมพ์ สัญลักษณ์นี้จะมีลูกศรเข้าออกได้อย่างละหนึ่งทิศทาง
การตัดสินใจ
การตัดสินใจหรือการเลือกทำอย่างใดอย่างหนึ่งจะใช้สัญลักษณ์สี่เหลี่ยมขนมเปียกปูน ในการตรวจสอบเงื่อนไขเพื่อตัดสินใจการทำงาน โดยเงื่อนไขที่จะตรวจสอบจะเขียนอยู่ในสัญลักษณ์นี้ ในส่วนของลำดับการทำงานจะมีลูกศรชี้เข้า 1 ทาง และลูกศรชี้ออก 2 ทาง โดยถ้าเงื่อนไขเป็นจริง (Y) จะทำโปรแกรมทิศทางหนึ่ง ถ้าเป็นเท็จ (N) จะทำอีกทิศทางหนึ่ง ในการเขียนลูกศรจะเขียนคำอธิบายไว้ที่ลูกศรด้วย เป็นการตรวจสอบว่าตัวแปร age มากกว่าหรือเท่ากับ 50 จริงหรือไม่ ถ้าตัวแปร age มากกว่าหรือเท่ากับ 50 จะทำทิศทาง Y ถ้า age น้อยกว่า 50 จะทำทิศทาง N
การต่อกับอุปกรณ์เก็บข้อมูลแบบดิสก์
ถ้าหากต้องการอ่านหรือเขียนข้อมูลกับอุปกรณ์เก็บข้อมูลแบบดรัมแม่เหล็ก หรืออุปกรณ์ที่เข้าถึงแบบโดยตรง จะใช้สัญลักษณ์ Magnetic drum เพื่อแสดงการรับหรือส่งข้อมูล สัญลักษณ์นี้จะมีลูกศรได้ทั้งแบบชี้เข้าและชี้ออก
จุดต่อ
ผังงานที่มีความยาวนานมากหรือมีเส้นตัดกันมากนั้น เราสามารถลดความยุ่งยากในการเขียนได้โดยการนำจุดต่อมาใช้ ซึ่งจะทำให้เราเข้าใจผังงานได้ง่ายขึ้น ถ้าหากผังงานเขียนอยู่ภายในหน้าเดียวกัน สัญลักษณ์ที่ใช้แสดงจุดต่อจะใช้สัญลักษณ์วงกลม และเขียนหมายเลขจุดต่อที่เป็นจุดต่อถึงกันเอาไว้ภายใน
จุดต่อระหว่างหน้า
ถ้าหากมีการสร้างจุดต่อเนื่องที่อยู่คนละหน้า หรือต้องการสร้างจุดต่อที่อยู่ระหว่างหน้า จะใช้สัญลักษณ์ Off-Page Connector ซึ่งเป็นรูปห้าเหลี่ยมแสดงจุดต่อสำหรับเชื่อมการทำงานถึงกัน โดยภายในสัญลักษณ์จะเขียนหมายเลขจุดที่ต้องการเชื่อมต่อเอาไว้ด้วย และใช้ลูกศรแสดงทิศทางการทำงานของโปรแกรม
6.4 หลักเกณฑ์การเขียนผังงาน
การเขียนผังงานที่ดีสามารถสรุปเป็นหลักเกณฑ์ได้ดังต่อไปนี้
1. ผังงานที่เขียนขึ้นต้องชัดเจน และดูง่าย
2. ต้องมีจุดเริ่มต้นและจุดสิ้นสุดเพียงจุดเดียว
3. กำหนดทิศทางการทำงานด้วยลูกศร
4. สัญลักษณ์แบบเลือกทำจะต้องมีคำตอบที่ถูกต้องที่ทำให้โปรแกรมสามารถดำเนินต่อไปได้
5. ลูกศรที่ใช้บอกทิศทางการทำงานไม่ควรเขียนตัดกันหรือทับกัน
6. ผังงานที่มีความซับซ้อนมาก หรือมีขั้นตอนการทำงานอยู่ห่างกันมาก ควรนำสัญลักษณ์การเชื่อมต่อมาใช้ เพื่อเข้าใจง่าย
7. การเขียนส่วนประมวลผลที่มีการคำนวณควรใช้เครื่องหมายลูกศรหรือเครื่องหมายเท่ากับในการเขียน
8. เมื่อเขียนผังงานจบแล้วควรตรวจสอบความถูกต้องของผังงาน โดยการสร้างข้อมูลขึ้นมาหนึ่งชุดแล้วดูว่าผลลัพธ์เป็นไปตามที่ต้องการหรือไม่
6.5 ลักษณะโครงสร้างการเขียนผังงาน
โครงสร้างโดยทั่วไปจะมีอยู่ 5 รูปแบบดังนี้
1. โครงสร้างการทำงานแบบลำดับ
จะแสดงขั้นตอนการทำงานที่เรียงลำดับกันไป ไม่มีการข้ามขั้น หรือย้อนกลับไปทำคำสั่งที่ได้ทำไปแล้ว
2. ผังโปรแกรมแบบมีทางเลือก
เป็นโครงสร้างที่ตรวจสอบเงื่อนไข ให้โปรแกรมเลือกทำอย่างใดอย่างหนึ่ง ซึ่งมีอยู่ 3 กรณีดังนี้
2.1 การเลือกแบบหนึ่งเส้นทาง จะทำงานเฉพาะเมื่อเงื่อนไขเป็นจริงเท่านั้น
2.2 การเลือกทำแบบสองเส้นทาง จะพิจารณาเงื่อนไขที่เป็นจริงและเป็นเท็จ โดยถ้าเป็นจริงจะทำอย่างหนึ่ง ถ้าเป็นเท็จจะทำอีกอย่างหนึ่ง
2.3 การเลือกทำแบบหลายเส้นทาง จะพิจารณาเงื่อนไขต่าง ๆ ที่เกิดขึ้น ถ้าเท่ากับทางเลือกใดก็จะได้ไปทำงานตามทางเลือกนั้น
3. ผังโปรแกรมทำซ้ำแบบเงื่อนไขเป็นจริง
จะใช้ในงานที่มีการตรวจสอบเงื่อนไข ถ้าเป็นจริงจะทำซ้ำ โดยจะตรวจสอบเงื่อนไขก่อนการทำงานทุกครั้ง
4. ผังโปรแกรมแบบทำซ้ำจนเงื่อนไขเป็นจริง
จะใช้ในระบบที่ต้องทำงานก่อนการตรวจสอบเงื่อนไข และทำงานซ้ำจนเงื่อนไขเป็นจริง
5. ผังโปรแกรมแบบทำซ้ำตามจำนวนที่ระบุ
ใช้ในระบบที่ต้องการทำงานตามจำนวนรอบที่กำหนด โดยเริ่มจากรอบเริ่มต้นไปยังรอบสุดท้าย ตามปกติแล้วค่าการนับรอบจะเพิ่มขึ้นครั้งละหนึ่งค่า
6.6 เครื่องมือสำหรับเขียนผังงาน
อุปกรณ์ที่ใช้ในการเขียนผังงานมีอยู่มากมาย สำหรับอุปกรณ์ที่เป็นเครื่องเขียน ได้แก่ ไม้บรรทัด แบบเทมเพลทพลาสติก ซึ่งจะมีสัญลักษณ์ของผังงานรูปแบบต่าง ๆ ให้เลือกใช้ ผู้ที่ต้องการเขียนผังงาน สามารถใช้ปากกาเขียนไปตามรูปแบบที่กำหนดได้ทันที
สรุปท้ายบท
โดยสรุปแล้ว การเขียนผังงานเป็นวิธีการหนึ่งที่ช่วยในการจัดลำดับและอธิบายขั้นตอนการทำงานในรูปแบบของแผนภาพซึ่งประกอบด้วยสัญลักษณ์ของการทำงานแต่ละขั้นตอน การเขียนผังงานนี้จะทำให้เห็นทิศทางการประมวลผลของโปรแกรม และทำให้ง่ายต่อการทำความเข้าใจโปรแกรมในภายหลัง โดยทั่วไปผังงานจะแบ่งเป็น 2 ประเภทคือ ผังงานระบบ และผังงานโปรแกรม โครงสร้างในการเขียนผังงานนั้นมีอยู่ 5 รูปแบบ ได้แก่ โครงสร้างการทำงานแบบลำดับ ผังโปรแกรมแบบมีทางเลือก ผังโปรแกรมทำซ้ำแบบเงื่อนไขเป็นจริง ผังโปรแกรมแบบทำซ้ำจนเงื่อนไขเป็นจริง และผังโปรแกรมแบบทำซ้ำตามจำนวนที่ระบุบทที่ 1 - 5
บทที่ 7 การเขียนรหัสเทียม
7.1 ซูโดโค้ดคืออะไร
ซูโดโค้ดเป็นคำอธิบายขั้นตอนการทำงานของโปรแกรม โดยใช้ถ้อยคำผสมระหว่างภาษาอังกฤษและภาษาการเขียนโปรแกรมแบบโครงสร้างที่เข้าใจง่าย มาแสดงลำดับการทำงานของโปรแกรม หรืออาจใช้ภาษาไทยก็ได้ โดยช่วยให้ผู้เขียนโปรแกรมสามารถพัฒนาขั้นตอนต่าง ๆ ให้เป็นโปรแกรมได้ง่ายขึ้น
7.2 พื้นฐานการเขียนซูโดโค้ด
แม้ว่าการเขียนซูโดโค้ดจะไม่มีรูปแบบที่แน่นอนแต่โดยทั่วไปแล้วมักทำกันดังลักษณะต่อไปนี้
การรับข้อมูลเข้าและการแสดงผลข้อมูล
ในการรับข้อมูลจะนิยมใช้คำว่า READ หรือ INPUT ตามด้วยตัวแปรที่ต้องการใช้เก็บข้อมูลถ้าหากมีตัวแปรหลายตัวจะใช้เครื่องหมายคอมมา (“,”) คั่น ส่วนการแสดงผลมักใช้คำว่า PRINT หรือ WRITE สำหรับการรับข้อมูล
การคำนวณ
ในการประมวลผลแบบคำนวณจะขึ้นต้นด้วยคำว่า Compute หรือ Calculate แล้วตามด้วยตัวแปรที่ต้องการเก็บค่าจากการคำนวณเครื่องหมายเท่ากับและนิพจน์การคำนวณซึ่งประกอบไปด้วยเครื่องหมายการกระทำทางคณิตศาสตร์
การกำหนดค่า
การกำหนดค่าเริ่มต้นให้กับตัวแปรจะใช้คำว่า INIT และ SET ถ้าหากเป็นการประกาศตัวแปรจะต้องระบุด้วยคำว่าตัวแปรประเภทใด และถ้าเป็นการประกาศค่าคงที่จะใช้เครื่องหมายเท่ากับในการกำหนดค่า
7.3 การเขียนซูโดโค้ดสำหรับการตัดสินใจและทดสอบทางเลือก
ในการตัดสินใจจะต้องมีการเปรียบเทียบเงื่อนไขเกิดขึ้น โดยผลลัพธ์ที่จะเป็นจริงหรือเท็จอย่างใดอย่างหนึ่งเท่านั้น
การตัดสินใจเพื่อเลือกทำระหว่างทางสองทางจะใช้คำว่า IF หรือ IF-THEN-ELSE และENDIF โดยจะเปรียบเทียบเงื่อนไข ถ้าเงื่อนไขเป็นจริงจะทำกลุ่มคำสั่ง กลุ่มหนึ่ง ถ้าเป็นเท็จจะทำกลุ่มคำสั่งอีกกลุ่มหนึ่ง
7.4 การเขียนซูโดโค้ดแบบวนซ้ำ
ในการทำซ้ำหมายความว่าให้ระบบทำงานซ้ำ ๆ ตามเงื่อนไขที่กำหนดโดยจะมีการเปรียบเทียบเงื่อนไขในการทำซ้ำ แบ่งออกได้ 3 รูปแบบดังนี้
1. การทำซ้ำที่ทราบจำนวนครั้งในการทำซ้ำ
2. การทำซ้ำจนระบบมีเงื่อนไขอย่างหนึ่งจึงหยุดทำ
3. ถ้าเงื่อนไขเป็นจริงจะทำคำสั่งภายใน
7.5 การเขียนซูโดโค้ดเพื่อเรียกโปรแกรมย่อยและกระโดดข้าม
สำหรับการเรียกโปรแกรมย่อยหรือโพซีเยอร์ ใช้คำว่า CALL แล้วตามด้วยชื่อโปรแกรมย่อยหรือโพซีเยอร์
การกระโดดข้ามไปทำชุดคำสั่งใด ๆ จะใช้ชื่อ (LABEL) กำหนดตำแหน่งที่จะกระโดดมาและใช้คำว่า GOTO ในตำแหน่งที่จะกระโดด
สรุปท้ายบท
โดยสรุปแล้ว การเขียนซูโดโค้ดเป็นวิธีหนึ่งในการเขียนอัลกอรึทึม นอกเหนือจากการใช้ผังงานแต่ใช้คำภาษาอังกฤษผสมกับภาษาคอมพิวเตอร์แบบมีโครงสร้างที่เข้าใจง่ายยังมีการเขียนซูโดโค้ดแบบโครงสร้างอีก 3 ลักษณะ ได้แก่ การเขียนซูโดโค้ดสำหรับการตัดสินใจและทดสอบทางเลือก การเขียนซูโดโค้ดแบบวนซ้ำ และการเขียนซูโดโค้ดเพื่อเรียกโปรแกรมย่อยและกระโดดข้าม
บทที่ 8 การทำงานแบบลำดับ
ในการเขียนโปรแกรมนั้น หลังจากที่ผ่านขั้นตอนการวิเคราะห์ปัญหามาแล้ว ขั้นตอนต่อไปคือการเขียนผังงานและซูโดโค้ดที่ได้ศึกษามาแล้วในสองบทที่ผ่านมา ผู้ที่เขียนโปรแกรมจะต้องเปลี่ยนผังงานให้เป็นการอธิบายขั้นตอนการทำงานในลักษณะข้อความก่อน จากนั้นจึงเปลี่ยนข้อความนั้น ๆ ให้เป็นซูโดโค้ด แล้วจึงเขียนโปรแกรมคอมพิวเตอร์ในลำดับต่อไป รูปแบบของโปรแกรมมีหลายรูปแบบในบทนี้จะกล่าวถึงรายละเอียดแลตัวอย่างการทำงานแบบลำดับ ซึ่งถือว่าเป็นพื้นฐานในการเขียนโปรแกรมทั่ว ๆ ไป
8.1 การทำงานแบบเรียงลำดับ
ลักษณะการทำงานของโปรแกรมแบบนี้จะกระทำตามลำดับกิจกรรมก่อนหลังโดยไม่มีการเปลี่ยนแปลงทิศทางไปในลักษณะอื่น
ซึ่งจะเห็นว่าการทำงนจะทำเป็นลำดับต่อเนื่องกันไป ถ้าหากต้องการให้ค่าฐานของสามเหลี่ยมและส่วนสูงเป็นเลขจำนวนเต็ม
8.2 กรณีศึกษาการทำงานแบบลำดับ
ในหัวข้อนี้แสดงตัวอย่างกรณีศึกษาการเขียนโปรแกรมที่มีการทำงานแบบลำดับ โดยจะยกตัวอย่างปัญหาวิธีการวิเคราะห์ปัญหา รวมทั้งการเขียนผังงานหรือการเขียนซูโดโค้ด
สรุปท้ายบท
โดยสรุปแล้ว ลักษณะการเขียนโปรแกรมแบบเรียงลำดับเป็นลักษณะพื้นบานทั่วไป โดยมีการทำงานตามลำดับก่อนหลังของคำสั่งต่อเนื่องกันไปโดยไม่เปลี่ยนทิศทาง การทำงานมีลักษณะเดียวกับโครงสร้างการทำงานแบบลำดับที่พบในการเขียนผังงาน การทำงานแบบลำดับนี้จะเป็นส่วนประกอบหนึ่งของการทำงานโปรแกรมในลักษณะอื่น ๆ ด้วย
บทที่ 9 การทำงานแบบมีทางเลือก
การทำงานแบบลำดับในบทที่ 8 นั้น ถือเป็นวิธีการทำงานที่ต้องมีในทุโปรแกรม เมื่อนำมาพัฒนาเป็นโปรแกรมก็จะเสมือนว่าเป็นการนำคำสั่งต่าง ๆ ของภาษาโปรแกรมที่ต้องการเขียนมาต่อเรียงกันไปทำให้คอมพิวเตอร์ทำคำสั่งแต่ละคำสั่งต่อเนื่องกันไป สำหรับโปรแกรมที่มีการทำงานที่ซับซ้อนขึ้นจะต้องมีการเปลี่ยนทิศทางการทำงานของโปรแกรมบ้าง เพื่อให้คอมพิวเตอร์สามารถเลือกได้ว่าคำสั่ง หรือชุดคำสั่งใด ๆ คอมพิวเตอร์จะต้องทำหรือไม่หรือต้องทำในเวลาใด
9.1 ประเภทของการทำงานแบบมีทางเลือก
การทำงานแบบเลือกทำนั้นสามารถแบ่งทิศทางการทำงานของโปรแกรมได้ดังนี้
1. การทำงานแบบมีทางเลือกทางเดียว
2. การทำงานแบบสองทางเลือก
สำหรับการทำงานแบบมีทางเลือกเดียวและแบบสองทางเลือก จะต้องมีการตรวจสอบเงื่อนไขเพื่อเป็นตัวพิจารณาว่าจะทำโปรแกรมในทิศทางใดต่อไป การตรวจสอบเงื่อนไขนั้น ผลลัพธ์ที่ได้จะเป็นค่าทางบูลีน คือมีค่าเป็นไปได้ 2 กรณี คือเป็นจริง หรือเป็นเท็จ
กรณีการเลือกทำแบบมีทางเลือกเดียว ถ้าเงื่อนไขเป็นจริง โปรแกรมจะทำชุดคำสั่งที่กำหนด แต่ถ้าหากเงื่อนไขเป็นเท็จโปรแกรมจะไม่ทำชุดคำสั่ง ส่วนการเลือกทำแบบสองทางเลือก ถ้าหากเงื่อนไขเป็นจริง โปรแกรมจะทำชุดคำสั่งที่ 1 แต่ถ้าหากเงื่อนไขเป็นเท็จโปรแกรมจะทำชุดคำสั่งที่ 2
ในส่วนของการตรวจสอบเงื่อนไขนั้น จะเป็นการเขียนนิพจน์ที่จะแสดงความสัมพันธ์ระหว่างตัวแปรกับตัวแปร หรือระหว่างตัวแปรกับค่าคงที่ โดยจะนำตัวดำเนินการมาใช้ซึ่งส่วนใหญ่แล้วจะเป็นตัวดำเนินการเปรียบเทียบและตัวดำเนินการทางลอจิกดังที่ได้ศึกษามาแล้วในบทที่ 3
9.2 การเขียนคำอธิบายโปรแกรมจากผังงานแบบมีทางเลือก
ถ้าหากมีผังงานที่มีการเลือกทำ ไม่ว่าจะเป็นแบบทางเดียวหรือแบบสองทางแล้วต้องการเขียนคำอธิบายการทำงาน สิ่งแรกที่ต้องกระทำคือ พยายามแยกกระบวนการทำงานทั้งหมดออกจากผังงานเป็นส่วน ๆ ก่อน จากนั้นให้พิจารณาทิศทางการทำงานของโปรแกรมทีละขั้นตอน แล้วจึงเขียนคำอธิบายการทำงานออกมา โดยคำอธิบายการทำงานควรมีหมายเลขบรรทัดด้วย และหมายเลขนี้ควรมีหมายเลขตามลำดับของสัญลักษณ์ของผังงาน
9.3 การเขียนซูโดโค้ดสำหรับงานแบบมีทางเลือก
จากที่ได้ศึกษาการเขียนซูโดโค้ดมาแล้วในบทที่ 7 จะพบว่าซูโดโค้ดที่นำมาใช้การเขียนโปรแกรมแบบเลือกทำจะใช้ คำว่า IF หรือ IF-THEN-ELSE และ ENDIF ถ้าหากต้องการนำมาเขียนแทนคำอธิบายการทำงานของโปรแกรมจำใช้คำว่า “IF”แทนคำอธิบายว่า “ถ้า” ใช้คำว่า “THEN” แทนคำอธิบายว่า “แล้ว” และใช้คำว่า “ELSE” แทนคำอธิบายว่า “มิฉะนั้น” และจบประโยคการเลือกทำด้วย ENDIF
9.4 การเขียนผังงานจากซูโดโค้ดแบบมีทางเลือก
ผังงานนอกจากจะเขียนขึ้นมาจากการวิเคราะห์ปัญหาแล้ว ยังเขียนขึ้นมาจากซูโดโค้ดได้เช่นกัน สำหรับกรณีที่โปรแกรมเป็นแบบมีทางเลือก ให้พยายามแยกประโยค IF ออกมาเป็นกลุ่ม ๆ แล้วพิจารณาว่าถ้าเงื่อนไขเป็นจริงจะทำทิศทางใด เงื่อนไขเป็นเท็จจะทำทิศทางใด
9.5 การทำงานแบบมีทางเลือกหลายทาง
สำหรับการทำงานที่มีทางเลือกหลายทางนั้นสามารถเขียนประโยค IF..THEN..ELSE มาซ้อนกันได้ แต่ถ้าหากมีทางเลือกมากขึ้นจะทำให้การเขียนแบบ IF ดูแล้วซับซ้อนและไม่ค่อยสะดวก ดังนั้นจึงมีการนำคำว่า “CASE”, “OF” และ “ENDCASE” มาใช้
เมื่อการทำงานของระบบเข้าสู่เงื่อนไขการเลือกทำ ระบบจะตรวจสอบว่าค่าคงที่ที่ได้จากการตรวจสอบเงื่อนไข ถ้าหากทราบว่ามีค่าเท่ากับค่าคงที่หรือ CASE ใด ก็จะกระโดดไปทำกิจกรรมที่อยู่ใน CASE นั้น แต่ถ้าหากไม่เท่ากับ CASE ใดเลยก็
จะตรวจสอบ CASE ใหม่ หรือก็ไม่ทำกิจกรรมใดเลย
สรุปท้ายบท
โดยสรุปแล้ว การทำงานแบบมีทางเลือกจะเป็นการทำงานที่มีจุดเปลี่ยนทางการทำงานตามเงื่อนไขที่กำหนดการทำงานแบบมีทางเลือกมีทั้งการทำงานแบบทางเลือกเดียว สองทางเลือก และหลายทางเลือก เช่นเดียวกับโครงสร้างการเขียนผังโปรแกรมแบบมีทางเลือก
บทที่ 10 การทำงานแบบมีทำซ้ำ
10.1 ประเภทของการทำซ้ำ
การทำงานแบบวนซ้ำนั้น จะต้องมีการตรวจสอบเงื่อนไขอยู่ภายในลูปของกาทำซ้ำด้วย งานบางประเภทมีจำนวนครั้งในการทำซ้ำที่แน่นอน งานบางประเภทมีจำนวนครั้งในการทำซ้ำที่ไม่แน่นอน ขึ้นอยู่กับเงื่อนไขที่เขียนในโปรแกรม ประเภทของการทำซ้ำแบ่งได้ 3 ประเภท ดังนี้
1. การทำซ้ำแบบที่ทราบจำนวนครั้งในการทำซ้ำ
2. การทำซ้ำจนมีระบบเงื่อนไขอย่างหนึ่งจึงหยุด
3. การทำซ้ำแบบถ้าเงื่อนไขเป็นจริงจะทำชุดคำสั่ง
การทำแบบแรกนั้น มักจะใช้กับงานที่ทราบจำนวนครั้งในการทำซ้ำที่แน่นอนโดยมีลูปจะมีตัวแปรสำหรับควบคุมการนับลูปอยู่ภายใน ส่วนการทำซ้ำแบบทำซ้ำจนระบบมีเงื่อนไขอย่างหนึ่งจึงหยุดเมื่อโปรแกรมเข้าสู่ลูปการทำซ้ำจะมีการตรวจสอบเงื่อนไขที่ด้านท้ายของลูป ถ้าหากเงื่อนไขเป็นจริงก็จะออจากลูปการทำซ้ำ ส่วนการทำซ้ำแบบถ้าเงื่อนไขเป็นจริงจะทำชุดคำสั่งจะมีการตรวจสอบเงื่อนไขก่อน การทำซ้ำถ้าเงื่อนไขเป็นจริงจะทำชุดคำสั่งภายในแต่ถ้าเงื่อนไขเป็นเท็จจะออกจากลูปการทำซ้ำ
10.2 การทำซ้ำแบบทราบจำนวนครั้งในการทำซ้ำ
การทำซ้ำในแบบนี้จะเริ่มต้นด้วยการกำหนดค่าเริ่มต้นให้กับตัวแปรที่ทำหน้าที่เป็นตัวควบคุมลูปจากนั้นจะตรวจสอบเงื่อนไขทว่าเป็นจริงหรือเท็จ ถ้าเป็นจริงจะทำกิจกรรมต่าง ๆ ที่อยู่ในลูป แต่ถ้าเป็นเท็จจะออกนอกลูป โดยภายในลูปนั้นจะมีการเพิ่มค่าหรือลดค่าตัวควบคุมลูปด้วย
10.3 การทำซ้ำจนระบบมีเงื่อนไขอย่างหนึ่งจึงหยุด
การทำซ้ำในลักษณะนี้เป็นการทำซ้ำที่มีจำนวนครั้งในการทำที่ไม่แน่นอน เมื่อโปรแกรมเข้าสู่ลูปการทำซ้ำจะมีการตรวจสอบเงื่อนไขอยู่ด้านท้ายของลูปถ้าหากตรวจสอบเงื่อนไขแล้วเป็นเท็จโปรแกรมจะกลับไปทำกิจกรรมในลูปอีกครั้ง แต่ถ้าตรวจสอบเงื่อนไขแล้วเป็นจริงโปรแกรมจะออกนอกลูป ดังนั้นโปรแกรมจะต้องทำกิจกรรมต่าง ๆ ภายลูปหนึ่งครั้งเสมอ
10.4 การทำซ้ำแบบถ้าเงื่อนไขเป็นจริงจะทำชุดคำสั่ง
การทำซ้ำแบบนี้จะมีการตรวจสอบเงื่อนไขก่อนเข้าสู่ลูปถ้าหากเงื่อนไขเป็นจริงจะทำในลูป แต่ถ้าหากเงื่อนไขเป็นเท็จจะออกจากการทำลูป ดังนั้นลูปแบบนี้อาจไม่มีการทำภายลูปเลยก็ได้ ถ้าหากเงื่อนไขเป็นเท็จสำหรับคำอธิบายการทำงานโดยระหว่างคำว่าขณะที่กับคำจะเป็นนิพจน์ที่ตรวจสอบเงื่อนไข สำหรับการเขียนซูโดโค้ด สำหรับการทำซ้ำแบบนี้
สรุปท้ายบท
โดยสรุปแล้ว การทำงานแบบทำซ้ำเป็นลักษณะการทำงานแบบหนึ่งที่จำเป็นในการเขียนโปรแกรม ถ้าหากต้องการให้โปรแกรมทำงานชุดคำสั่งใดหลาย ๆ ครั้ง โดยทั่วไปจะพบการทำซ้ำใน 3 ลักษณะ ได้แก่ การทำซ้ำแบบที่ทราบจำนวนครั้งในการทำซ้ำ การทำซ้ำจนระบบมีเงื่อนไขอย่าง
แบบทดสอบ
1. ข้อใดคือความหมายของเซต
ก. การกำหนดค่าเริ่มต้นให้กับสิ่งที่ต้องการ
ข. การแสดงถึงสิ่งต่าง ๆ ที่ต้องการศึกษา
ค. ข้อมูลเลขจำนวนเต็ม
ง. ถูกทุกข้อ
2. ถ้าหากมีเซตต่อไปนี้ A = { 1, 2, 3, 4 } B = { 1, {2, 3}, 4 } ข้อใดถูกต้อง
ก. เซต A เท่ากับเซต B
ข. ทั้งสองเซตมีสมาชิก 4 ตัว
ค. 4 เป็นสมาชิกของเซต A และเซต B
ง. ถูกทุกข้อ
3. ต่อไปนี้ข้อใดคือประพจน์
ก. เชียงใหม่คือจังหวัดในภาคใต้ของประเทศไทย
ข. คุณทานข้าวหรือยัง
ค. ไม่ควรโทรศัพท์ขณะขับรถ
ง. y = x + z
4. นิเสธของประพจน์ Q จะเป็นจริงเมื่อประพจน์ Q มีค่าเท่ากับข้อใด
ก. เป็นเท็จ
ข. เป็นจริง
ค. หาค่าไม่ได้
ง. ถูกทุกข้อ
5. ข้อมูลขนาด 8 บิต หรือ 1 ไบต์สามารถเก็บข้อมูลได้กี่ค่า
ก. 8ค่า
ข. 256ค่า
ค. 16ค่า
ง. 255ค่า
6. ถ้าหากมีตัวดำเนินการหลายตัวอยู่ในนิพจน์ ตัวดำเนินการใดมีความสำคัญสูงสุด
ก. วงเล็บ
ข. MOD
ค. DIV
ง. *
7. ภาษาคอมพิวเตอร์ภาษาใดที่ต้องใช้ตัวอินเทอร์พรีเตอร์เป็นตัวแปลภาษา
ก. ภาษา Basic
ข. ภาษาปาสคาล
ค. ภาษาซี
ง. ภาษาฟอร์แทน
8. โปรแกรมแอสเซมเบอร์คืออะไร
ก. ตัวแปลภาษา Basic
ข. ตัวแปลภาษาซี
ค. ตัวแปลภาษาแอสเซมบลี
ง. ถูกทุกข้อ
9. ขั้นตอนการวิเคราะห์ปัญหาขั้นตอนใด ที่ผู้พัฒนาโปรแกรมต้องศึกษาถึงวิธีการประมวลผลมากที่สุด
ก. สิ่งที่ต้องการ
ข. รูปแบบการแสดงผลทางเอาต์พุต
ค. การประมวลผล
ง. ลักษณะของข้อมูล
10. ถ้าหากต้องการให้คอมพิวเตอร์คำนวณหาพื้นที่ของสามเหลี่ยม ท่านคิดว่าข้อมูลใดคือข้อมูลอินพุต
ก. พื้นที่ , ความสูง
ข. พื้นที่ , ความยาวฐาน
ค. ความยาวฐาน , ความสูง
ง. พื้นที่ , ความยาวฐาน และความสูง
ก. การกำหนดค่าเริ่มต้นให้กับสิ่งที่ต้องการ
ข. การแสดงถึงสิ่งต่าง ๆ ที่ต้องการศึกษา
ค. ข้อมูลเลขจำนวนเต็ม
ง. ถูกทุกข้อ
2. ถ้าหากมีเซตต่อไปนี้ A = { 1, 2, 3, 4 } B = { 1, {2, 3}, 4 } ข้อใดถูกต้อง
ก. เซต A เท่ากับเซต B
ข. ทั้งสองเซตมีสมาชิก 4 ตัว
ค. 4 เป็นสมาชิกของเซต A และเซต B
ง. ถูกทุกข้อ
3. ต่อไปนี้ข้อใดคือประพจน์
ก. เชียงใหม่คือจังหวัดในภาคใต้ของประเทศไทย
ข. คุณทานข้าวหรือยัง
ค. ไม่ควรโทรศัพท์ขณะขับรถ
ง. y = x + z
4. นิเสธของประพจน์ Q จะเป็นจริงเมื่อประพจน์ Q มีค่าเท่ากับข้อใด
ก. เป็นเท็จ
ข. เป็นจริง
ค. หาค่าไม่ได้
ง. ถูกทุกข้อ
5. ข้อมูลขนาด 8 บิต หรือ 1 ไบต์สามารถเก็บข้อมูลได้กี่ค่า
ก. 8ค่า
ข. 256ค่า
ค. 16ค่า
ง. 255ค่า
6. ถ้าหากมีตัวดำเนินการหลายตัวอยู่ในนิพจน์ ตัวดำเนินการใดมีความสำคัญสูงสุด
ก. วงเล็บ
ข. MOD
ค. DIV
ง. *
7. ภาษาคอมพิวเตอร์ภาษาใดที่ต้องใช้ตัวอินเทอร์พรีเตอร์เป็นตัวแปลภาษา
ก. ภาษา Basic
ข. ภาษาปาสคาล
ค. ภาษาซี
ง. ภาษาฟอร์แทน
8. โปรแกรมแอสเซมเบอร์คืออะไร
ก. ตัวแปลภาษา Basic
ข. ตัวแปลภาษาซี
ค. ตัวแปลภาษาแอสเซมบลี
ง. ถูกทุกข้อ
9. ขั้นตอนการวิเคราะห์ปัญหาขั้นตอนใด ที่ผู้พัฒนาโปรแกรมต้องศึกษาถึงวิธีการประมวลผลมากที่สุด
ก. สิ่งที่ต้องการ
ข. รูปแบบการแสดงผลทางเอาต์พุต
ค. การประมวลผล
ง. ลักษณะของข้อมูล
10. ถ้าหากต้องการให้คอมพิวเตอร์คำนวณหาพื้นที่ของสามเหลี่ยม ท่านคิดว่าข้อมูลใดคือข้อมูลอินพุต
ก. พื้นที่ , ความสูง
ข. พื้นที่ , ความยาวฐาน
ค. ความยาวฐาน , ความสูง
ง. พื้นที่ , ความยาวฐาน และความสูง
สมัครสมาชิก:
บทความ (Atom)