ตัวอย่างการวิเคราะห์งาน และ การเขียนผังงานและซูโดโค้ด ตัวอย่างการวิเคราะห์งาน และ การเขียนผังงานและซูโดโค้ด
ตัวอย่างที่ 1 โจทย์ จงเขียนโปรแกรมคำนวณพื้นที่สามเหลี่ยม โดยรับค่าความยาวฐานและความสูงจากผู้ใช้ สิ่งที่โจทย์ต้องการ : พื้นที่สามเหลี่ยม รูปแบบผลลัพธ์ ป้อนค่าความสูง => <รอรับค่า> ป้อนค่าความยาวฐาน => <รอรับค่า> พื้นที่สามเหลี่ยม => <แสดงค่า> ข้อมูลนำเข้า ความยาวฐาน ความสูง
กำหนดตัวแปรที่ใช้ ชื่อตัวแปร ความหมาย 5. วิธีการประมวลผล ชื่อตัวแปร ความหมาย Height ความสูง Base ความกว้างฐาน Area พื้นที่สามเหลี่ยม 5. วิธีการประมวลผล รับค่าจากตัวแปร Height , Base คำนวณ Area = 0.5 * Height * Base พิมพ์ค่า Area จบการทำงาน
START STOP Pseudocode Start 1. Read Height , Base 2. Compute Area = 0.5 * Height * Base 3. Display Area Stop รับค่า Height , Base Area = 0.5 * Height * Base แสดง Area STOP
ตัวอย่างที่ 2 โจทย์ จงเขียนโปรแกรมแปลงอุณหภูมิจากหน่วยองศาฟาเรนไฮต์ เป็นองศาเซลเซียสโดยมีสูตรในการแปลงดังนี้ องศา C = (F-32) * 5 / 9 สิ่งที่โจทย์ต้องการ อุณหภูมิที่มีหน่วยองศาเซลเซียส รูปแบบผลลัพธ์ ป้อนอุณหภูมิ(F) => <รอรับค่า> enter อุณหภูมิ <หน่วยฟาเรนไฮต์> มีค่าเท่ากับ <หน่วยเซลเซียส>
3. ข้อมูลเข้า อุณหภูมิที่มีหน่วยองศาฟาเรนไฮต์ 4. กำหนดตัวแปรที่ใช้ F = อุณหภูมิหน่วยฟาเรนไฮต์ C = อุณหภูมิหน่วยเซลเซียส
5. การประมวลผล 1. รับค่าใส่ตัวแปร F 2. คำนวณ C =(F-32)*5/9 START 5. การประมวลผล 1. รับค่าใส่ตัวแปร F 2. คำนวณ C =(F-32)*5/9 3. แสดงผลลัพธ์ค่า C 4. จบการทำงาน รับ F C = (F-32) *5 / 9 แสดง C Pseudocode Start 1. Read F 2. Compute C =(F-32) *5 /9 3. Display C Stop STOP
ตัวอย่างที่ 3 โจทย์ จงเขียนโปรแกรมคำนวณการขายสินค้า โดยรับ ราคาสินค้า/หน่วย และจำนวนที่ซื้อ จากผู้ใช้ ถ้ายอดรวมเกิน 1000 บาท ลดราคาให้ 10% โดยให้แสดง ราคาส่วนลด และราคาสุทธิ สิ่งที่โจทย์ต้องการ ราคารวม ราคาส่วนลด ราคาสุทธิที่ต้องชำระ รูปแบบผลลัพธ์ ราคาสินค้า/หน่วย => <รอรับค่า> จำนวน => <รอรับค่า> ราคารวม => <แสดงค่า> ส่วนลด => <แสดงค่า> ราคาสุทธิ => <แสดงค่า>
3. ข้อมูลนำเข้า กำหนดตัวแปรที่ใช้ ชื่อตัวแปร ความหมาย 3. ข้อมูลนำเข้า ราคาสินค้า / หน่วย จำนวน กำหนดตัวแปรที่ใช้ ชื่อตัวแปร ความหมาย UnitPrice ราคา/หน่วย QTY จำนวนที่ซื้อ TotalPrice ราคารวม Discount ราคาส่วนลด NetPrice ราคาสุทธิ
5. วิธีการประมวลผล รับค่าจากตัวแปร UnitPrice , QTY คำนวณ TotalPrice = UnitPrice * QTY ทำการเปรียบเทียบค่าของ TotalPrice ดังนี้ ถ้า TotalPrice >= 1000 ให้ Discount = TotalPrice * 0.10 ไปทำงานข้อ 4 ถ้า TotalPrice < 1000 ให้ Discount = TotalPrice * 0 ไปทำงานข้อ 4 คำนวณราคาสุทธิ NetPrice = TotalPrice - Discount แสดงผลลัพธ์ จบการทำงาน
START รับค่า QTY , UnitPrice STOP Pseudocode Start 1. Read QTY , UnitPrice 2. Compute TotalPrice=QTY*UnitPrice 3. Compare TotalPrice If TotalPrice >=1000 -> Discount = TotalPrice*0.1 else -> Discount = TotalPrice*0 4. Compute NetPrice = TotalPrice-Discount 5. Display TotalPrice , Discount , NetPrice Stop รับค่า QTY , UnitPrice TotalPrice = QTY * UnitPrice TotalPrice>=1000 No Yes Discount = TotalPrice * 0 Discount = TotalPrice *0.10 NetPrice = TotalPrice - Discount แสดง TotalPrice , Discount, NetPrice STOP
ตัวอย่างที่ 4 โจทย์ จงเขียนโปรแกรมคำนวณค่าแรงและภาษีที่ต้องจ่ายของพนักงาน 1 คน โดยการรับข้อมูล รหัสประจำตัวพนักงาน , อัตราค่าแรง , จำนวนชั่วโมงการทำงาน โดยมีข้อกำหนดในการหักภาษี ณ ที่จ่าย ดังนี้ ถ้าค่าแรงมากกว่า 5000 คิดภาษี 5% ของค่าแรงที่ได้ ถ้าค่าแรงน้อยกว่าหรือเท่ากับ 5000 คิดภาษี 2% สิ่งที่โจทย์ต้องการ ภาษีที่หักจากค่าแรง ณ ที่จ่าย ค่าแรงที่ได้รับ รูปแบบผลลัพธ์ เลขประจำตัว => <รอรับค่า> จำนวนชั่วโมง => <รอรับค่า> อัตราค่าแรง => <รอรับค่า> ค่าแรง => <แสดงค่า> ภาษี => <แสดงค่า> ค่าแรงสุทธิหลังหักภาษี => <แสดงค่า>
3. ข้อมูลนำเข้า กำหนดตัวแปรที่ใช้ ชื่อตัวแปร ความหมาย 3. ข้อมูลนำเข้า รหัสประจำตัวพนักงาน จำนวนชั่วโมง อัตราค่าแรง กำหนดตัวแปรที่ใช้ ชื่อตัวแปร ความหมาย Emp_ID รหัสประจำตัวพนักงาน Hours จำนวนชั่วโมงที่ทำงาน Rate อัตราค่าแรง Pay ค่าแรง Tax ภาษี Net_Pay ค่าแรงสุทธิ
5. วิธีการประมวลผล รับค่าจากตัวแปร Emp_ID , Hours , Rate คำนวณ Pay = Hours * Rate ทำการเปรียบเทียบค่าของ Pay ดังนี้ ถ้า Pay> 5000 ให้ Tax = Pay * 0.05 ไปทำงานข้อ 4 ถ้า Pay <= 5000 ให้ Tax = Pay * 0.02 ไปทำงานข้อ 4 คำนวณค่าแรงสุทธิ Net_Pay = Pay - Tax แสดงผลลัพธ์ จบการทำงาน
2. Compute Pay = Hours * Rate 3. Compare Pay If Pay > 5000 -> START Pseudocode Start 1. Read Emp_ID , Hours , Rate 2. Compute Pay = Hours * Rate 3. Compare Pay If Pay > 5000 -> Tax = Pay *0.05 else -> Tax = Pay * 0.02 4. Compute Net_pay = Pay - Tax 5. Display Tax , Net_pay Stop รับค่า Emp_ID , Hours , Rate Pay = Hours * Rate Pay > 5000 No Yes Tax = Pay * 0.02 Tax = Pay * 0.05 Net_Pay = Pay - Tax แสดง Tax , Net_Pay STOP
ตัวอย่างที่ 5 โจทย์ จงเขียนโปรแกรมตัดเกรดวิชาคอมพิวเตอร์และการเขียนโปรแกรม โดยการรับคะแนนกลางภาคและคะแนนปลายภาคจากผู้ใช้ โดยมีคะแนนรวมเต็ม 100 คะแนน มีเงื่อนไขในการคิดเกรดดังนี้ - ถ้าได้คะแนน 80 คะแนนขึ้นไป ได้เกรด A - ถ้าได้คะแนน 70-79 คะแนน ได้เกรด B - ถ้าได้คะแนน 60-69 คะแนน ได้เกรด C - ถ้าได้คะแนน 50-59 คะแนน ได้เกรด D - ถ้าได้คะแนนต่ำกว่า 50 คะแนน ได้เกรด F
สิ่งที่โจทย์ต้องการ รูปแบบผลลัพธ์ รายงานผลการเรียน 3. ข้อมูลนำเข้า คำนวณหาเกรดของนักศึกษาแต่ละคน รูปแบบผลลัพธ์ รายงานผลการเรียน รหัส ชื่อ คะแนนรวม เกรด .. ... ... ... 3. ข้อมูลนำเข้า รหัสนักศึกษา ชื่อ คะแนนกลางภาค คะแนนปลายภาค
4. กำหนดตัวแปรที่ใช้ ชื่อตัวแปร ความหมาย Std_ID รหัสนักศึกษา 4. กำหนดตัวแปรที่ใช้ ชื่อตัวแปร ความหมาย Std_ID รหัสนักศึกษา Std_Name ชื่อนักศึกษา Mid_Score คะแนนกลางภาค Final_Score คะแนนปลายภาค Total_Score คะแนนรวม Grade เกรด
5. วิธีการประมวลผล รับค่าจากตัวแปร Std_ID , Std_Name , Mid_Score , Final_Score ตามลำดับทีละรายการ คำนวณ Total_Score = Mid_Score + Final_Score ทำการเปรียบเทียบค่าของ Total_Score ดังนี้ ถ้า Total_score >= 80 ให้ Grade = A ไปทำงานข้อ 4 ถ้า Total_score >= 70 และ Total_Score <=79 ให้ Grade = B ไปทำงานข้อ 4 ถ้า Total_score >= 60 และ Total_Score <=69 ให้ Grade = C ไปทำงานข้อ 4 ถ้า Total_score >= 50 และ Total_Score <=59 ให้ Grade = D ไปทำงานข้อ 4 ถ้า Total_score < 50 ให้ Grade = F ไปทำงานข้อ 4 พิมพ์ผลลัพธ์ Std_ID , Std_Name , Total_Score , Grade ทีละรายการ กลับไปทำข้อ 1 เพื่ออ่านข้อมูลคนต่อไปจนครบทุกรายการ ไปทำงานข้อ 6 จบการทำงาน
รับค่า Std_ID , Std_name , Mid_score , Final_score START 3 รับค่า Std_ID , Std_name , Mid_score , Final_score Total_score = Mid_score + Final_score Total_score >=80 Yes Grade = ‘A’ No Total_score >=70 AND Total_score <=79 Yes Grade = ‘B’ No Total_score >=60 AND Total_score <=69 Yes Grade = ‘C’ No 1 2
1 2 3 Yes Grade = ‘D’ No Grade = ‘F’ No Yes STOP พิมพ์ Std_ID , Total_score >=50 AND Total_score <=59 Yes Grade = ‘D’ 3 No Grade = ‘F’ พิมพ์ Std_ID , Std_name , Total_score , Grade พิมพ์ (หยุดทำรายการ?) รับ Answer No Answer = ‘y’ Yes STOP
ตัวอย่างที่ 6 โจทย์ จงเขียนโปรแกรมเพื่อคำนวณหาสูตรคูณ โดยการรับแม่สูตรคูณจากผู้ใช้ทางคีย์บอร์ด สิ่งที่โจทย์ต้องการ : สูตรคูณ รูปแบบผลลัพธ์ สูตรคูณแม่ : 10 <รับค่าจากผู้ใช้ สมมุติว่าป้อนแม่ 10> 10 x 1 = 10 10 x 2 = 20 .... 10 x 12 = 120
3. ข้อมูลนำเข้า ตัวเลขแม่สูตรคูณ 4. กำหนดตัวแปรที่ใช้ N = ตัวเลขแม่สูตรคูณ Mul = เก็บผลการคูณ i = ตัวแปรใช้นับจำนวนรอบตั้งแต่ 1 - 12
5. การประมวลผล 1. กำหนดค่าเริ่มต้นให้ Mul = 0 , i = 1 2. รับค่าตัวแปร N 3. Mul = N * i 4. พิมพ์ค่า N , i , Mul 5. เพิ่มรอบการทำงานโดยกำหนดให้ i = i + 1 6. เปรียบเทียบค่า i ดังนี้ - ถ้า i <= 12 กลับไปทำข้อ 3 - ถ้า i > 12 ไปทำข้อ 7 7. จบการทำงาน
Repeat … Until While …Do START START Mul = 0 I = 1 Mul = 0 I = 1 Mul = N * I I <= 12 No Yes STOP พิมพ์ Mul , N , I Mul = N * I I = I + 1 พิมพ์ Mul , N , I No I > 12 I = I + 1 Yes STOP
For START Mul = 0 รับค่า N For I = 1 , 12 Mul = N * I Next I STOP