บทที่ 5การเขียนโปรแกรมแบบวนซ้ำ
โดยทั่วไปในการเขียนโปรแกรมเพื่อให้ใช้งานได้จริง จะต้องมีคำสั่งที่มีจำนวนหลาย ๆ บรรทัด และจำนวนคำสั่งเหล่านั้นจะมีคำสั่งเพื่อให้โปรแกรมทำงานซ้ำ ๆ กันหลายครั้งก่อนที่จะผู้ใช้ปิดโปรแกรมหรือออกจากโปรแกรม เช่น โปรแกรมไมโครซอฟต์เวิร์ด ผู้ใช้ต้องการพิมพ์ข้อความตัวหนา จะต้องคลิกที่เครื่องมือจัดรูปแบบ ที่มีสัญลักษณ์ตัว B ถ้าต้องการอักษรปกติต้องคลิกที่ปุ่มเดิมซ้ำ หรือการสร้างตาราง ถ้าต้องการให้มีจำนวนแถว 50 แถว โปรแกรมจะต้องสร้างแถวซ้ำกันจำนวน 50 ครั้ง ถ้าผู้เขียนโปรแกรมเขียนคำสั่งเพื่อสร้างแถวในตาราง แถวละ 2 บรรทัด เขาต้องเขียนคำสั่งซ้ำ ๆ กันทั้งหมด จำนวน 100 บรรทัด ซึ่งจะเป็นการเสียเวลาในการเขียนคำสั่ง และใช้คำสั่งสิ้นเปลืองมากเกินไป ถ้าหากมีข้อผิดพลาดทำให้หาจุดที่ผิดพลาดได้ยากลำบาก วิธีแก้ปัญหาในกรณีนี้ โปรแกรมภาษาไพธอนมีทางเลือกให้ผู้เขียนโปรแกรมสามารถใช้วิธีการเขียนแบบวนซ้ำ โดยเขียนคำสั่งเพียงสร้างแถวให้สำเร็จเพียงหนึ่งแถวแล้วจึงให้มีการทำซ้ำ ๆ กัน 50 ครั้งจึงได้จำนวน 50 แถวตามต้องการ การเขียนโปรแกรมแบบวนซ้ำนี้ เรียกว่า loop ภาษาไพธอนมีวิธีเขียนได้ 2 แบบ คือ for loop และ while loop ซึ่ง แต่ละคำสั่งจะมีลักษณะการทำงานแบบวนซ้ำไม่เหมือนกัน ดังรายละเอียดต่อไปนี้
คำสั่งวนซ้ำโดยใช้ For loop
โครงสร้างการทำงานของคำสั่ง
ประกอบด้วย รูปแบบคำสั่งและการทำงาน โจทย์ตัวอย่างและผังงาน และชุดคำสั่งโปรแกรม
มีรายละเอียดดังต่อไปนี้
1.1 รูปแบบคำสั่ง การวนซ้ำที่มีจำนวนรอบที่แน่นอน
มักจะใช้คำสั่ง for loop ซึ่งมีรูปแบบดังนี้
for
<variable> in <sequence> :
<statement1><statement2>
<statement3>
1.2 การทำงานของคำสั่ง เป็นคำสั่งโครงสร้างการทำงานแบบวนซ้ำที่ต้องการจำนวนรอบของการทำงานที่แน่นอน โดยมีการตรวจสอบตัวแปรเป็นไปตามเงื่อนไขหรือไม่ ถ้าเงื่อนไขเป็นจริงโปรแกรมจะดำเนินการประมวลผลที่ <statement1> และ <statement2> แต่ถ้าเป็นเท็จโปรแกรมจะออกจากการวนซ้ำ และกระทำตามเส้นทางของคำสั่งที่เป็นเท็จ หรือ <statement3> ถ้าดูที่บรรทัดของคำสั่งให้สังเกตการจัดย่อหน้า ในกรณีที่ตำแหน่งการเยื้องตรงกัน เช่น statement1 และ statement2 เป็นการประมวลผลภายใน loop ถ้าเงื่อนไขเป็นจริง โปรแกรมจะประมวลผลทั้ง statement1 และ statement2 แต่ในกรณีเป็นเท็จโปรแกรมจะประมวลผลที่ statement3 เพราะการจัดย่อหน้าอยู่ภายนอก loop ซึ่งจะอยู่ที่ระดับเดียวกับคำสั่ง for
สำหรับคำว่า <variable> คือ ตัวแปรที่ต้องการอ้างอิงเพื่อกำหนดจำนวนรอบหรือครั้งที่ต้องการให้ประมวลผลซ้ำ ซึ่งมีความสัมพันธ์กับ <sequence> ค่าที่อยู่ใน <sequence> เป็นค่าที่บอกจำนวนสูงสุดที่ใช้สำหรับตรวจสอบเงื่อนไขจำนวนรอบของการประมวลผล ภาพผังงานแสดงการทำงานของ for loop ดังภาพที่ 5.1
ภาพที่ 5.1 ผังงานแสดงการทำงานของคำสั่ง for loop
1.3 โจทย์ตัวอย่าง จงเขียนโปรแกรมเพื่อให้ให้ผู้ใช้ป้อนข้อมูลจำนวน 15 ครั้ง นำข้อมูลเหล่านั้นคำนวณหาค่าเฉลี่ย พร้อมแสดงผลค่าเฉลี่ย
1.4 ผังงาน จากตัวอย่าง โจทย์ต้องการให้รับค่าจากแป้นพิมพ์ 15 ครั้ง และหาค่าเฉลี่ย แสดงผลค่าเฉลี่ยที่จอภาพ
มีแนวคิดสำหรับแก้ปัญหาโจทย์ โดยกำหนดให้มี
ตัวแปร 4 ตัว ได้แก่
n ให้เก็บจำนวนรอบ
ได้แก่ 15 รอบการทำงาน
number ให้เก็บข้อมูลจากการป้อน
total ให้เก็บค่าผลรวมของ
number ที่ป้อนเข้ามาแต่ละครั้ง
avg ให้เก็บค่าเฉลี่ยที่ได้จากการคำนวณ
- กำหนดค่าเริ่มต้นให้กับตัวแปร 2 จำนวน คือ n =15 และ total = 0.0
- กำหนดให้โปรแกรมทำงานจำนวน n ครั้ง แต่ละครั้งให้รอรับการอ่านข้อมูลจากแป้นพิมพ์
- รับข้อมูลจากแป้นพิมพ์ ให้เก็บในตัวแปร number
- นำตัวแปร number บวกกับตัวแปร total แล้วเก็บในตัวแปร total
- เมื่อครบจำนวนรอบที่กำหนดไว้ จึงคำนวณค่าเฉลี่ย โดย ให้ total / n แล้วนำผลลัพธ์เก็บในตัวแปร avg
ภาพที่ 5.2 แสดงผังงานการทำงานของการหาค่าเฉลี่ยจากการป้อน
15 รอบ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น