วันอาทิตย์ที่ 26 กุมภาพันธ์ พ.ศ. 2560

บทที่ 5การเขียนโปรแกรมแบบวนซ้ำ

บทที่ 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

ภาพที่ 5.2  แสดงผังงานการทำงานของการหาค่าเฉลี่ยจากการป้อน 15 รอบ

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

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

Set MongoDB in the windows path environment

  Let’s set MongoDB in the windows environment in just a few steps. Step 1: First download a suitable MongoDB version according to your mach...