ลักษณะโครงสร้างผังงาน
เนื่องจากการเขียนผังงาน ปกติจะไม่มีกฎเกณฑ์หรือวิธีการเขียนที่สามารถระบุได้อย่างชัดเจนลงไปว่า จะต้องเขียนอย่างไร เพียงแต่ให้เลือกใช้สัญลักษณ์ให้ถูกต้องเป็นหลักสำคัญ ซึ่งดูเหมือนว่ามีรูปแบบที่ค่อนข้างอิสระ ขึ้นอยู่กับการเขียนของแต่ละบุคคลดังนั้น จึงเกิดแนวคิดการเขียนผังงานแบบโครงสร้างขึ้นมาเพื่อให้มีระบบระเบียบขึ้น กล่าวคือ จะใช้หลักการแบ่งแยกและการจัดลำดับชั้นที่มีความชัดเจนและดูเป็นระบบระเบียบมากกว่าผังงานแบบปกติธรรมดา (สามารถเปรียบเทียบรูปได้ดังภาพแสดงที่ด้านล่าง)
ซึ่งเทคนิคโครงสร้างนี้ นอกจากจะช่วยให้การออกแบบผังงานแลดูง่ายแล้ว ยังสามารถนำไปประยุกต์เพื่อการเขียนโปรแกรมชุดคำสั่งได้ง่ายยิ่งขึ้น โดยโครงสร้างผังงานสามารถแยกเป็นลักษณะโครงสร้างผังงานได้ 3 ลักษณะ ดังนี้
1. โครงสร้างผังงานแบบลำดับ (Sequence Structure) 2. โครงสร้างผังงานแบบเลือกทำ (Selection Structure)
3. โครงสร้างผังงานแบบการทำซ้ำ (Repetition Structure)
ลักษณะของผังงานที่เขียนขึ้น ต้องเขียนให้อยู่ในรูปแบบของโครงสร้างหลัก 3 โครงสร้างนี้ ถ้าผังงานที่เขียนขึ้นมีโครงสร้างที่ผิดไปจากโครงสร้างหลัก การเขียนลำดับขั้นตอนวิธีการทำงานในลักษณะของข้อความจะทำได้ยาก เมื่อทำการเขียนผังงานขึ้นมาแล้ว ไม่อยู่ในโครงสร้างหลักทั้ง 3 โครงสร้าง ต้องพยายามปรับโครงสร้างผังงานให้เป็นไปตามโครงสร้างหลักทั้ง 3 โครงสร้าง
ผังงานหนึ่งผังงาน สามารถประกอบไปด้วยหลายโครงสร้างผังงาน โดยมีโครงสร้างผังงานการทำงานแบบลำดับเป็นโครงสร้างพื้นฐาน โครงสร้างผังงานลักษณะอื่น เช่น การเลือกทำ หรือการทำซ้ำเป็นโครงสร้างที่ประกอบอยู่ภายใน หรืออาจประกอบด้วยโครงสร้างผังงานการทำงานแบบลำดับเพียงโครงสร้างเดียวก็ได้
1. โครงสร้างผังงานแบบลำดับ
โครงสร้างผังงานแบบลำดับ เป็นโครงสร้างที่แสดงขั้นตอนการทำงานเป็นไปตามลำดับก่อนหลัง เรียงจากบนลงล่าง เป็นรูปแบบง่ายๆ ไม่มีการเปรียบเทียบใด และแต่ละขั้นตอนจะถูกประมวลผลเพียงครั้งเดียวเท่านั้นโดยสามารถแสดงการทำงานของโครงสร้างผังงานแบบลำดับได้ดังนี้
จากโครงสร้างผังงานตามรูป การทำงานจะเริ่มต้นทำงานในกระบวนการที่ 1 (คำสั่งที่ 1) เมื่อทำงานใน กระบวนการที่ 1 เสร็จ ขั้นตอนต่อไป คือ ทำงานในกระบวนการที่ 2 (คำสั่งที่ 2) เมื่อทำงานในกระบวนการที่ 2 เสร็จแล้ว จึงทำงานในกระบวนการต่อๆ ไป ตามลำดับ การทำงานจะทำทีละกระบวนการ การทำงานจะไม่ทำหลายกระบวนการพร้อมกัน
ตัวอย่าง การเขียนผังงานของ "การไปโรงเรียน" ในรูปแบบข้อความ และสัญลักษณ์
การเขียนผังงานแบบข้อความ
เริ่มต้น
1. ตื่นนอน
2. อาบน้ำ
3. ทานข้าว
4. ไปโรงเรียน
จบ
การเขียนผังงานแบบสัญลักษณ์
ตัวอย่าง การเขียนผังงานโปรแกรมเพื่อรับค่า A , B และกำหนดให้ C มีค่าเท่ากับ A บวกกับ B พร้อมกับพิมพ์ผลลัพธ์ของค่า C ในรูปแบบข้อความ และสัญลักษณ์
การเขียนผังงานแบบข้อความ
เริ่มต้น
1.รับค่า A , B
2. กำหนดค่า C = A + B
3. พิมพ์ผลลัพธ์ของค่า C
จบ
การเขียนผังงานแบบสัญลักษณ์
ตัวอย่าง การเขียนผังงานโปรแกรมเพื่อรับค่า A , B และกำหนดให้ C มีค่าเท่ากับ A บวกกับ B พร้อมกับพิมพ์ผลลัพธ์ของค่า C ทางจอภาพ ในรูปแบบข้อความ และสัญลักษณ์
เริ่มต้น
1.รับค่า A , B
2. กำหนดค่า C = A + B
3. พิมพ์ผลลัพธ์ของค่า C ทางจอภาพ
จบ
การเขียนผังงานแบบสัญลักษณ์
ตัวอย่าง การเขียนผังงานโปรแกรม เพื่อรับค่าตัวเลข 2 จำนวนจากทางแป้นพิมพ์ เพื่อทำการคูณกัน แล้วแสดงผลลัพธ์ทางเอกสาร ในรูปแบบข้อความ และสัญลักษณ์
การเขียนผังงานแบบข้อความ
เริ่มต้น
1. รับค่าตัวเลข 2 จำนวน ( X , Y )
2. ทำการคูณกัน Multiple = X * Y
3. แสดงค่า Multiple ทางเอกสาร
จบ
การเขียนผังงานแบบสัญลักษณ์
ตัวอย่าง จงเขียนผังงานของการสลับค่าของ A และ B เมื่อ A=10 , B= 25 ในรูปแบบข้อความ และสัญลักษณ์
เริ่มต้น
1. กำหนดค่า A=10 , B = 25
2. กำหนดให้ C = A
3. กำหนดให้ A = B
4. กำหนดให้ B = C
จบ
การเขียนผังงานแบบสัญลักษณ์
2. โครงสร้างผังงานแบบเลือกทำ
โครงสร้างผังงานแบบเลือกทำ เป็นโครงสร้างที่มีรูปแบบซับซ้อนกว่าโครงสร้างผังงานแบบลำดับ ซึ่งจะต้องมีการนำ "สัญลักษณ์การตัดสินใจ" มาใช้เพื่อทำการเปรียบเทียบเงื่อนไข โดยรูปแบบของโครงสร้างแบบเลือกทำ มีดังต่อไปนี้
1. แบบทางเลือกทางเดียว (Single Alternative IF) 2. แบบทางเลือกสองทาง (Double Alternative IF)
3. แบบทางเลือกหลายทาง (Multiple Alternative IF)
1. แบบทางเลือกทางเดียว (Single Alternative IF)
ผังงานแบบทางเลือกทางเดียว เป็นลักษณะของคำสั่งที่มีทางเลือกทางเดียว คือ ถ้าเงื่อนไขในการตรวจสอบเป็น "จริง" จึงทำคำสั่ง (Statement) หรือ กลุ่มคำสั่ง (Statement Block) นั้น แต่ถ้าเงื่อนไขในการตรวจสอบเป็น "เท็จ" ก็จะข้ามไป
ตัวอย่าง การเขียนผังงานของการทำบัตรประชาชน โดยมีเงื่อนไขในการขอมีบัตรใหม่คือจะต้องอายุ 7 ขวบขึ้นไป ถึงจะมีสิทธ์ทำบัตรประชาชน
การเขียนผังงานแบบข้อความ
เริ่มต้น
1.ตรวจสอบอายุ
2. ตรวจสอบเงื่อนไข อายุ 7 ขวบขึ้นไปหรือไม่
(ถ้าใช่ไปที่ข้อ 2.1 ถ้าไม่ใช่ข้ามไปที่จบ)
2.1 ทำบัตรประชาชน
จบ
การเขียนผังงานแบบข้อความ
2. แบบทางเลือกสองทาง (Double Alternative IF)
ผังงานแบบทางเลือกสองทาง เป็นลักษณะของคำสั่งที่มีทางเลือกสองทาง คือ ถ้าเงื่อนไขในการตรวจสอบเป็น "จริง" จึงทำคำสั่ง (Statement) หรือ กลุ่มคำสั่ง (Statement Block) ชุดแรก แต่ถ้าเงื่อนไขในการตรวจสอบเป็น "เท็จ" ก็จะข้ามไปทำคำสั่งถัดไป
ตัวอย่าง การเขียนผังงานของการทอดลูกเต๋าเพื่อชิงของรางวัล โดยมีเงื่อนไขในการรับรางวัลดังนี้
ถ้าทอดลูกเต๋าได้แต้มมากกว่า 5 แต้ม จะได้รับรางวัลคือ ตุ๊กตาหมี
ถ้าทอดลูกเต๋าได้แต้มน้อยกว่าหรือเท่ากับ 5 แต้ม จะได้รับรางวัลคือ ปากกา
การเขียนผังงานแบบข้อความ
เริ่มต้น
1.ทอดลูกเต๋า
2. ตรวจสอบเงื่อนไข แต้มมากกว่า 5 หรือไม่
(ถ้าใช่ไปที่ข้อ 2.1 ถ้าไม่ใช่ไปที่ ข้อ 2.2 )
2.1 ได้รับตุ๊กตาหมี แล้วไปที่จบ
2.2 ได้รับปากกา แล้วไปที่จบ
จบ
การเขียนผังงานแบบข้อความ
3. แบบทางเลือกหลายทาง (Multiple Alternative IF)
ผังงานแบบทางเลือกหลายทาง เป็นโครงสร้างควบคุมแบบเลือกทำชนิดหลายทางเลือกในการทำงาน คือถ้าค่าความจริงตรงตามเงื่อนไขใดๆ ก็จะเข้าไปทำงานในคำสั่งนั้น ซึ่งสามารถแบ่งออกได้อีก 2 ลักษณะคือ
1. ทางเลือกหลายทางแบบ IF ซ้อน IF (Nested IF Statement)
2. ทางเลือกหลายทางแบบ Case (Case Control Structure)
3.1 ทางเลือกหลายทางแบบ IF ซ้อน IF (Nested IF Statement)
ผังงานทางเลือกหลายทางแบบ IF ซ้อน IF คือ โครงสร้างผังงานแบบทางเลือกหลายทาง รูปแบบนี้จะมีการใช้ สัญลักษณ์การตัดสินใจมาซ้อนกัน เพื่อทำการเปรียบเทียบเงื่อนไข ถ้าเงื่อนไขในการตรวจสอบใดเป็น "จริง" ก็จะทำคำสั่ง แต่ถ้ายังไม่ใช่ก็จะไปทำการตรวจสอบเงื่อนไขถัดไปเรื่อยๆ จนกว่าจะตรงตามเงื่อนไขจึงค่อยทำคำสั่ง
3.2 ทางเลือกหลายทางแบบ Case (Case Control Structure)
ผังงานทางเลือกหลายทางแบบ Case คือ โครงสร้างผังงานแบบเลือกหลายทางแบบ Case Control Structure นั้นไม่ได้เป็นรูปแบบของโครงสร้างผังงานแบบหลายทางอย่างแท้จริง จะเป็นเพียงแค่รูปแบบโครงสร้างที่ทำให้ผังงานดูความง่ายขึ้นนั่นเอง
ตัวอย่าง การเขียนผังงานของการหยิบลูกบอลในภาชนะหนึ่ง ซึ่งมีลูกบอล 3 ลูก คือสีแดง สีเขียว สีเหลือง โดยลูกบอลที่หยิบขึ้นมีคะแนนดังนี้
ถ้าหยิบได้ สีแดง ได้ 5 คะแนน ถ้าหยิบได้ สีเขียว ได้ 3 คะแนน
ถ้าหยิบได้ สีเหลือง ได้ 1 คะแนน
การเขียนผังงานแบบข้อความ
เริ่มต้น
1.หยิบลูกบอลขึ้นมา 1 ลูก
2. ตรวจสอบเงื่อนไข สีแดงหรือไม่
(ถ้าใช่ไปที่ข้อ 2.1 ถ้าไม่ใช่ไปที่ ข้อ 3 ) 2.1 ได้คะแนน 5 คะแนน แล้วไปที่จบ
3. ตรวจสอบเงื่อนไข สีเขียวหรือไม่
(ถ้าใช่ไปที่ข้อ 3.1 ถ้าไม่ใช่ไปที่ ข้อ 3.2 )
3.1 ได้คะแนน 3 คะแนน แล้วไปที่จบ
3.2 ได้คะแนน 1 คะแนน แล้วไปที่จบ
จบ
การเขียนผังงานแบบข้อความ
3. โครงสร้างผังงานแบบทำซ้ำ
โครงสร้างผังงานแบบทำซ้ำ (Loop) คือ โครงสร้างที่มีขั้นตอนการทำงานบางขั้นตอนได้รับการประมวลผลมากกว่า 1 ครั้ง ทั้งนี้ขึ้นอยู่กับเงื่อนไขในการตรวจสอบ ดังนั้น โครงสร้างผังงานแบบทำซ้ำนี้จึงต้องมีการใช้ "สัญลักษณ์การตัดสินใจ" เข้ามาเปรียบเทียบเงื่อนไขเพื่อให้มีการทำงานซ้ำ และลักษณะการทำงานของโครงสร้างแบบนี้มี 3 แบบ ได้แก่
1. การทำซ้ำแบบลูป for (for Loop) 2. การทำซ้ำแบบลูป while (while Loop)
3. การทำซ้ำแบบลูป do…while (do…while Loop)
1. การทำซ้ำแบบลูป for (for Loop)
ผังงานการทำซ้ำแบบลูป for จะเป็นการทำซ้ำที่มีการกำหนดจำนวนรอบที่แน่นนอน โดยเริ่มต้นการเปรียบเทียบกับเงื่อนไข ถ้าเงื่อนไขเป็นจริงจะมีการทำซ้ำและเพิ่ม (หรือลด) ค่าเริ่มต้นอีก 1 ถ้าเงื่อนไขเป็นเท็จจะเลิกทำ
ตัวอย่าง การเขียนผังงานแสดงตัวเลข 1 ถึง 10 ออกทางจอภาพ (โดยใช้การทำซ้ำแบบ for)
2. โครงสร้างการทำซ้ำแบบ while (while Loop)
ผังงานการทำซ้ำแบบลูป while จะเริ่มด้วยการตรวจสอบเงื่อนไข ถ้าเงื่อนไขเป็น "จริง" จะมีการทำซ้ำ ถ้าเงื่อนไขเป็น "เท็จ" ก็จะเลิกทำคำสั่ง
ตัวอย่าง การเขียนผังงานของการ "เพิ่มค่าตัวเลขทีละ 1 ไปเรื่อยๆ จนกว่าค่าตัวเลขจะมากกว่า 5 จึงหยุดการทำงาน" (โดยใช้การทำซ้ำแบบ while)
3. โครงสร้างการทำซ้ำแบบ do...while (do...while Loop)
ผังงานการทำซ้ำแบบลูป do…while จะเริ่มด้วยการทำงาน 1 รอบ แล้วค่อยตรวจสอบเงื่อนไข ถ้าเงื่อนไขเป็น "จริง" ก็จะมีการทำซ้ำต่อ ถ้าเงื่อนไขเป็น "เท็จ" ก็จะเลิกทำคำสั่ง
ตัวอย่าง การเขียนผังงานของการ "เพิ่มค่าตัวเลขทีละ 1 ไปเรื่อยๆ จนกว่าค่าตัวเลขจะมากกว่า 5 จึงหยุดการทำงาน" (โดยใช้การทำซ้ำแบบ do...while)
ตัวอย่าง โครงสร้างผังงานในรูปแบบต่างๆ
ตัวอย่างโครงสร้างผังงานแบบลำดับ
ตัวอย่างที่ 1 ผังงานการคำนวณพื้นที่สามเหลี่ยม
ตัวอย่างโครงสร้างผังงานแบบลำดับ
ตัวอย่างที่ 2 ผังงานการหาผลรวมของจำนวนนับตั้งแต่ 1 – N
ตัวอย่างโครงสร้างผังงานแบบเลือกทำ
ตัวอย่างที่ 3 ผังงานการคำนวณดอกเบี้ย
ตัวอย่างโครงสร้างผังงานแบบเลือกทำ
ตัวอย่างที่ 1 ผังงานการรับค่า N แล้วตรวจสอบเงื่อนไข
ถ้าค่า N มากกว่า 10 ให้แสดงจำนวนของ N
ตัวอย่างโครงสร้างผังงานแบบเลือกทำ
ตัวอย่างที่ 2 ผังงานอ่านค่าข้อมูลเข้ามาเก็บไว้ในตัวแปร X และ Y แล้วทำการเปรียบเทียบในตัวแปรทั้งสอง โดยมีเงื่อนไขดังนี้
- ถ้า X มากกว่า Y ให้คำนวณหาค่า X - Y และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ RESULT
- ถ้า X น้อยกว่าหรือเท่ากับ Y ให้คำนวณหาค่า X + Y และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ RESULT
ตัวอย่างโครงสร้างผังงานแบบลำดับ
ผังงานการรับค่าอายุเพื่อรับประทานยา โดยแบ่งขนาดรับประทานตามอายุดังนี้
- อายุมากกว่า 10 ปี รับประทานครั้งละ 2 ช้อนชา
- อายุ 3 - 10 ปี รับประทานครั้งละ 1 ช้อนชา
- อายุ 1 -2 ปี รับประทานครั้งละ 1/2 ช้อนชา
- อายุน้อยกว่า 1 ปี ห้ามรับประทาน
ตัวอย่างโครงสร้างผังงานแบบทำซ้ำ
ตัวอย่างที่ 1 ผังงานแสดงการปาลูกดอกจำนวน 3 ครั้ง
เพื่อรับของรางวัล
ตัวอย่างโครงสร้างผังงานแบบทำซ้ำ
ผังงานแสดงการทำงานแบบทำซ้ำดังต่อไปนี้ เริ่มต้นด้วยค่า J=0 เพิ่มค่า J ไปทีละ 1 เรื่อยๆ จนค่า J = 15 ให้หยุดการทำงาน
ตัวอย่างโครงสร้างผังงานแบบทำซ้ำ
ผังงานแสดงการหาผลรวมของเลข 1 ถึง 5
แล้วแสดงผลลัพธ์ออกทางจอภาพ