10-07-2013-7PiyqznWed123543

Download Report

Transcript 10-07-2013-7PiyqznWed123543

วิธีการทางคอมพิวเตอร์
Computer Algorithms
วิธีการทางคอมพิวเตอร์



ในการพัฒนาซอฟต์ แวร์ ต้ องมีการเตรี ยมงานเกี่ยวกับการ
เขียนโปรแกรมอย่ างเป็ นขัน้ ตอน
เรี ยกขัน้ ตอนดังกล่ าวว่ า วิธีการทางคอมพิวเตอร์ (Computer
Algorithms)
ซึ่งถือเป็ นขัน้ ตอนที่จาเป็ นในการพัฒนาซอฟต์ แวร์ เพื่อให้
การเขียนโปรแกรมเป็ นไปอย่ างไม่ มีอุปสรรค และได้ ผลลัพธ์
ตามที่ต้องการ
วิธีการทางคอมพิวเตอร์
ประกอบด้ วยงาน 5 อย่ างดังนี ้
1. การวิเคราะห์ งาน(Problem Analization)
2. การออกแบบวิธีการแก้ ปัญหา(Algorithms Design)
3. การเขียนโปรแกรม(Programming)
4. การทดสอบและแก้ ไขโปรแกรม(Testing and Debugging)
5. การจัดทาเอกสารและบารุ งรั กษาโปรแกรม(Program
Documentation and Maintenance)
1. การวิเคราะห์ งาน(Problem analization)
เป็ นขัน้ ตอนการวางแผนเพื่อคือการพิจารณาศึกษา
รายละเอียดและลักษณะของงานที่ต้องการให้
คอมพิวเตอร์ ทา ว่ ามีรูปแบบผลลัพธ์ เป็ นอย่ างไร
ต้ องการใช้ ข้อมูลอะไรเพื่อให้ ได้ ผลลัพธ์ ท่ ตี ้ องการ
และการประมวลผลจะมีขัน้ ตอนและใช้ สูตรอะไร
 เตรี ยมการให้ พร้ อมที่จะเขียนโปรแกรม

2. การออกแบบวิธีการแก้ ปัญหา
(Algorithms design)



เป็ นขัน้ ตอนในการนาผลที่ได้ จากการวิเคราะห์ งาน มา
วางแผนการแก้ ไขปั ญหา
โดยการแสดงลาดับขัน้ ตอนกระบวนการแก้ ปัญหา เรี ยกว่ า
อัลกอริทมึ (algorithms)
เช่ น การเขียนผังงาน(Flowchart) การเขียนรหัสเทียม
(Psuedo code) เป็ นต้ น
3. การเขียนโปรแกรม(Programming)
เป็ นการเปลี่ยนขัน้ ตอนและวิธีการในอัลกอริ ทมึ ให้
อยู่ในรหัสภาษาคอมพิวเตอร์ (Programming language)
ภาษาใดภาษาหนึ่ง
 การเลือกใช้ ภาษาคอมพิวเตอร์ ใดนัน
้ ขึน้ อยู่กับ
ลักษณะและประเภทของงาน ขีดความสามารถและ
ข้ อจากัดของภาษา และความถนัดและความชานาญ
ของผู้เขียนโปรแกรม

4. การทดสอบและการแก้ ไขโปรแกรม



หมายถึง การตรวจสอบความถูกต้ องของคาสั่งหรื อโปรแกรม
ที่เขียนขึน้ และแก้ ไขข้ อผิดพลาด(Bugs) ของโปรแกรมที่ทา
ให้ ไม่ สามารถได้ ผลลัพธ์ ตามต้ องการ
การแก้ ไขข้ อผิดพลาดเรี ยกว่ า Debugging
โดยส่ วนใหญ่ ข้อผิดพลาดจากการเขียนโปรแกรมมี 2 ชนิด
คือ


Syntax Error หรื อ Coding Error
Logic Error
4. การทดสอบและการแก้ ไขโปรแกรม
 Syntax
Error หรื อ Coding Error
ข้ อผิดพลาดที่เกิดจากการเขียนรหัสคาสั่งไม่ ถูกต้ อง
ตามหลักไวยากรณ์ ของภาษาคอมพิวเตอร์
 ในรอบแปล(Compilation Run) จะตรวจสอบ และจะ
แสดงข้ อความผิดพลาด(Error Message) ออกมา

4. การทดสอบและการแก้ ไขโปรแกรม
 Logic

Error
เป็ นข้ อผิดพลาดที่ทาให้ เกิดผลลัพธ์ ไม่ ถูกต้ องตาม
วัตถุประสงค์ ของงานที่กาหนดไว้ เช่ น ผลลัพธ์ ต้อง
เป็ น 15.50 แต่ ได้ ผลลัพธ์ เป็ น 15.75 ซึ่งอาจเกิด
จากสูตรในการคานวณไม่ ถูกต้ อง
4. การทดสอบและการแก้ ไขโปรแกรม



การตรวจสอบโปรแกรมเพื่อหาข้ อผิดพลาด นิยม
ดาเนินการ 2 ช่ วง ได้ แก่
1. การทดสอบที่ทาโดยผู้พัฒนาระบบเอง ก่ อน
นาไปใช้ งานจริง โดยการใช้ ข้อมูลสมมติทดสอบ ว่ า
ได้ ผลลัพธ์ ตามที่ต้องการหรื อไม่
2. การทดสอบที่ทาโดยผู้ใช้ ระบบจริง โดยการใช้ งาน
ในสภาวะแวดล้ อมจริง
5. การจัดทาเอกสารและบารุ งรั กษาโปรแกรม

1. เอกสารประกอบโปรแกรม
 มีความสาคัญกับการเขียนโปรแกรมมาก
 อาจจะเริ่ มทาไปพร้ อมกับการเขียนโปรแกรม
 แบ่ งเป็ น 2 ประเภทคือ
 คู่มือผู้ใช้ (User manual) จะอธิบายวิธีการใช้ โปรแกรม
 คู่มือโปรแกรมเมอร์ (Programmer manual) จะมีรายละเอียดต่ าง
ๆ เกี่ยวกับ ชื่อโปรแกรม ชื่อผู้เขียนโปรแกรม วันที่เขียน
โปรแกรม จุดประสงค์ ของโปรแกรม สื่อที่ใช้ ในการบันทึก
ข้ อมูลเข้ า ผลลัพธ์ ท่ ไี ด้ วิธีการขัน้ ตอนต่ าง ๆ ในโปรแกรม
รวมทัง้ ผังงาน ฯลฯ เป็ นประโยชน์ ในการแก้ ไขโปรแกรมใน
อนาคต
5. การจัดทาเอกสารและบารุ งรั กษาโปรแกรม
คู่มือผู้ใช้ (User manual) จะอธิบายวิธีการใช้
โปรแกรม
 คู่มือโปรแกรมเมอร์ (Programmer manual) จะมี
รายละเอียดต่ าง ๆ เกี่ยวกับ ชื่อโปรแกรม ชื่อ
ผู้เขียนโปรแกรม วันที่เขียนโปรแกรม จุดประสงค์
ของโปรแกรม สื่อที่ใช้ ในการบันทึกข้ อมูลเข้ า
ผลลัพธ์ ท่ ไี ด้ วิธีการขัน้ ตอนต่ าง ๆ ในโปรแกรม
รวมทัง้ ผังงาน ฯลฯ เป็ นประโยชน์ ในการแก้ ไข
โปรแกรมในอนาคต

5. การจัดทาเอกสารและบารุ งรั กษาโปรแกรม

2. การบารุ งรั กษาโปรแกรม
 คือการปรั บปรุ งแก้ ไขโปรแกรมให้ ทน
ั สมัยเหมาะ
กับสภาวะการณ์ ท่ เี ป็ นอยู่ในปั จจุบนั
 รวมถึงการรั กษาสื่อข้ อมูลที่มีโปรแกรมบันทึกอยู่
ให้ อยู่ในสภาพพร้ อมใช้ งานได้
การวิเคราะห์ งาน
Problem Analization
การวิเคราะห์ งาน
เป็ นขัน้ ตอนการวางแผน และศึกษารายละเอียด
ของโจทย์ และลักษณะของงานที่ต้องการให้
คอมพิวเตอร์ ทา
 โดยพิจารณา รู ปแบบผลลัพธ์ ท่ ต
ี ้ องการเป็ นอย่ างไร
,ต้ องการใช้ ข้อมูลอะไรเพื่อให้ ได้ ผลลัพธ์ ท่ ตี ้ องการ
และการประมวลผลจะมีขัน้ ตอนและใช้ สูตรอะไร

หลักเกณฑ์ ในการวิเคราะห์ งาน
ประกอบด้ วย 5 หัวข้ อ ได้ แก่
1. สิ่งที่โจทย์ ต้องการ
2. รู ปแบบผลลัพธ์
3. ข้ อมูลนาเข้ า
4. การกาหนดตัวแปรที่ใช้
5. วิธีการประมวลผล
ตัวอย่ างการวิเคราะห์ งาน
โครงสร้ างตามลาดับ
(Sequence Structure)
ตัวอย่ างที่ 1
โจทย์ จงเขียนโปรแกรมคานวณพืน้ ที่สามเหลี่ยม
โดยรั บค่ าความยาวฐานและความสูงจากผู้ใช้
1. สิ่งที่โจทย์ ต้องการ : พืน้ ที่สามเหลี่ยม
2. รู ปแบบผลลัพธ์
ป้อนค่าความสูง => <รอร ับค่าความสูง>
ป้อนค่าความยาวฐาน => <รอร ับค่าความยาวฐาน>
้ ทีส
้ ทีส
พืน
่ ามเหลีย
่ ม => <แสดงค่าพืน
่ ามเหลีย
่ ม>
ตัวอย่ างที่ 1
3. ข้ อมูลนาเข้ า
ความยาวของฐานสามเหลี่ยม
 ความสูงของสามเหลี่ยม

4. กาหนดตัวแปรที่ใช้
ชื่อตัวแปร
Height
Base
ความหมาย
ความสูง
ความกว้ างฐาน
Area
พืน้ ที่สามเหลี่ยม
ตัวอย่ างที่ 1
5. วิธีการประมวลผล
1. เริ่มต้ น
2. รั บค่ าจากตัวแปร Height , Base
3. คานวณ Area = 0.5 * Height * Base
4. พิมพ์ ค่า Area
5. จบการทางาน
ตัวอย่ างที่ 2
โจทย์ จงเขียนโปรแกรมแปลงอุณหภูมจิ ากหน่ วยองศา
ฟาเรนไฮต์ เป็ นองศาเซลเซียสโดยมีสูตรในการแปลง
ดังนี ้
องศา C = (F-32) * 5 / 9
1. สิ่งที่โจทย์ ต้องการ
อุณหภูมิท่ มี ีหน่ วยองศาเซลเซียส
ตัวอย่ างที่ 2
2. รู ปแบบผลลัพธ์
ป้อนอุณหภูมิ(F) => <รอรับค่ า>
อุณหภูมิ <หน่ วยฟาเรนไฮต์ > มีค่าเท่ ากับ <หน่ วยเซลเซียส>
3. ข้ อมูลเข้ า
อุณหภูมิท่ มี ีหน่ วยองศาฟาเรนไฮต์
ตัวอย่ างที่ 2
4. กาหนดตัวแปรที่ใช้
ชื่อตัวแปร
ความหมาย
F
อุณหภูมิหน่ วยฟาเรนไฮต์
C
อุณหภูมิหน่ วยเซลเซียส
5. วิธีการประมวลผล
1. เริ่มต้ น
2. รั บค่ าใส่ ตัวแปร F
3. คานวณ C =(F-32)*5/9
4. แสดงผลลัพธ์ ค่า C
5. จบการทางาน
ตัวอย่ างการวิเคราะห์ งาน
โครงสร้ างเลือกทา
(Selection Structure)
ตัวอย่ างที่ 3
โจทย์ จงเขียนโปรแกรมคานวณการขายสินค้ า โดยรั บ
ราคาสินค้ า/หน่ วย และจานวนที่ซือ้ จากผู้ใช้ ถ้ ายอด
รวมเกิน 1000 บาท ลดราคาให้ 10% โดยให้ แสดง
ราคาส่ วนลด และราคาสุทธิ
1. สิ่งที่โจทย์ ต้องการ
 ราคารวม
 ราคาส่ วนลด
 ราคาสุทธิท่ ต
ี ้ องชาระ
2. รู ปแบบผลลัพธ์
ราคาสินค้ า/หน่ วย => <รอรับค่ าราคา>
จานวน => <รอรับค่ าจานวน>
ราคารวม => <แสดงค่ าราคารวม>
ส่ วนลด => <แสดงค่ าส่ วนลด>
ราคาสุทธิ => <แสดงค่ าราคาสุทธิ>
3. ข้ อมูลนาเข้ า
 ราคาสินค้ า / หน่ วย
 จานวน
4. กาหนดตัวแปรที่ใช้
ชื่อตัวแปร
UnitPrice
QTY
TotalPrice
Discount
NetPrice
ความหมาย
ราคา/หน่ วย
จานวนที่ซือ้
ราคารวม
ราคาส่ วนลด
ราคาสุทธิ
5. วิธีการประมวลผล
1. เริ่มต้ น
2. รั บค่ าจากตัวแปร UnitPrice , QTY
3. คานวณ TotalPrice = UnitPrice * QTY
4. เปรี ยบเทียบ ถ้ า TotalPrice > 1000 ดังนี ้

ถ้ า เป็ นจริง ให้ Discount = TotalPrice * 0.10 ไปทาข้ อ 5

ถ้ า เป็ นเท็จ ให้ Discount = TotalPrice * 0 ไปทาข้ อ 5
5. คานวณราคาสุทธิ
6. แสดงผลลัพธ์
7. จบการทางาน
NetPrice = TotalPrice - Discount
ตัวอย่ างที่ 4
โจทย์ จงเขียนโปรแกรมคานวณคะแนนรวมจากการรั บ
ค่ าคะแนนรายภาคและคะแนนปลายภาค เพื่อ
พิจารณาว่ าสอบผ่ านหรื อสอบตก โดยแสดงผลการ
สอบ ถ้ าคะแนนรวมต่ากว่ า 60 คะแนน ถือว่ าสอบตก
1. สิ่งที่โจทย์ ต้องการ
 คะแนนรวม
 ผลการสอบ
2. รู ปแบบผลลัพธ์
กรอกคะแนนรายภาค => <รอรับค่ าคะแนนรายภาค>
กรอกคะแนนปลายภาค => <รอรับค่ าคะแนนปลายภาค>
คะแนนรวม => <แสดงค่ าคะแนนรวม>
ผลการสอบ => <แสดงค่ าผลการสอบ>
3. ข้ อมูลนาเข้ า
 คะแนนรายภาค
 คะแนนปลายภาค
4. กาหนดตัวแปรที่ใช้
ชื่อตัวแปร
Mid_score
Final_score
Total_score
ความหมาย
คะแนนรายภาค
คะแนนปลายภาค
คะแนนรวม
5. วิธีการประมวลผล (แบบที่ 1)
1. เริ่มต้ น
2. รั บค่ าใส่ ตัวแปร Mid_score , Final_score
3. คานวณ Total_score = Mid_score + Final_Score
4. เปรี ยบเทียบ ถ้ า Total_score >= 60 ดังนี้
 ถ้ า เป็ นจริ ง ให้ พิมพ์ ข้อความ “สอบผ่ าน” ไปทาข้ อ 5
 ถ้ า เป็ นเท็จ ให้ พิมพ์ ข้อความ “สอบตก” ไปทาข้ อ 5
5. จบการทางาน
5. วิธีการประมวลผล (แบบที่ 2)
1. เริ่มต้ น
2. รั บค่ าใส่ ตัวแปร Mid_score , Final_score
3. คานวณ Total_score = Mid_score + Final_Score
4. เปรี ยบเทียบ ค่ า Total_score ดังนี้
 ถ้ า Total_score >= 60 ให้ พิมพ์ ข้อความ “สอบผ่ าน”
ไปทาข้ อ 5
 ถ้ า Total_score < 60 ให้ พิมพ์ ข้อความ “สอบตก” ไปทา
ข้ อ 5
5. จบการทางาน
ตัวอย่ างที่ 5
โจทย์ จงเขียนโปรแกรมคานวณค่ าแรงและภาษีท่ ตี ้ อง
จ่ ายของพนักงาน 1 คน โดยการรั บข้ อมูล รหัส
ประจาตัวพนักงาน , อัตราค่ าแรง , จานวนชั่วโมงการ
ทางาน โดยมีข้อกาหนดในการหักภาษี ณ ที่จ่าย
ดังนี ้
ถ้ าค่ าแรงมากกว่ า 5000 คิดภาษี 5% ของค่ าแรงที่ได้
ถ้ าค่ าแรงน้ อยกว่ าหรื อเท่ ากับ 5000 คิดภาษี 2%
1. สิ่งที่โจทย์ ต้องการ
 ภาษีท่ ห
ี ักจากค่ าแรง ณ ที่จ่าย
 ค่ าแรงที่ได้ รับ
2. รู ปแบบผลลัพธ์
เลขประจาตัว => <รอรับค่ าเลขประจาตัว>
จานวนชั่วโมง => <รอรับค่ าจานวนชั่วโมง>
อัตราค่ าแรง => <รอรับค่ าอัตราค่ าแรง>
ค่ าแรง => <แสดงค่ าค่ าแรง>
ภาษี => <แสดงค่ าภาษี>
ค่ าแรงสุทธิหลังหักภาษี => <แสดงค่ าค่ าแรงสุทธิ>
3. ข้ อมูลนาเข้ า



รหัสประจาตัวพนักงาน
จานวนชั่วโมง
อัตราค่ าแรง
4. กาหนดตัวแปรที่ใช้
ชื่อตัวแปร
Emp_ID
Hours
Rate
Pay
Tax
Net_Pay
ความหมาย
รหัสประจาตัวพนักงาน
จานวนชั่วโมงที่ทางาน
อัตราค่ าแรง
ค่ าแรง
ภาษี
ค่ าแรงสุทธิ
5. วิธีการประมวลผล
1. เริ่มต้ น
2. รั บค่ าจากตัวแปร Emp_ID , Hours , Rate
3. คานวณ Pay = Hours * Rate
4. เปรี ยบเทียบ Pay > 5000
 ถ้ า เป็ นจริ ง ให้ Tax = Pay * 0.05 ไปทางานข้ อ 5
 ถ้ า เป็ นเท็จ ให้ Tax = Pay * 0.02 ไปทางานข้ อ 5
5. คานวณค่ าแรงสุทธิ Net_Pay = Pay - Tax
6. แสดงผลลัพธ์
7. จบการทางาน
ตัวอย่ างที่ 6
โจทย์ จงเขียนโปรแกรมแสดงชื่อวันในสัปดาห์ จากเลขวันที่รับ
จากผู้ใช้
- ถ้ าเลข เท่ ากับ 1
แสดง วันอาทิตย์
- ถ้ าเลข เท่ ากับ 2
แสดง วันจันทร์
- ถ้ าเลข เท่ ากับ 3
แสดง วันอังคาร
- ถ้ าเลข เท่ ากับ 4
แสดง วันพุธ
- ถ้ าเลข เท่ ากับ 5
แสดง วันพฤหัสบดี
- ถ้ าเลข เท่ ากับ 6
แสดง วันศุกร์
- ถ้ าเลข เท่ ากับ 7
แสดง วันเสาร์
- ถ้ าเป็ นเลขอื่น ๆ
แสดง ตัวเลขไม่ ถกู ต้ อง
1. สิ่งที่โจทย์ ต้องการ
 แสดงชื่อวัน
2. รู ปแบบผลลัพธ์
เลขวัน => <รอรับค่ า>
วัน : <แสดงค่ า>
3. ข้ อมูลนาเข้ า
เลขวัน(1-7)
4. กาหนดตัวแปรที่ใช้
ชื่อตัวแปร
ความหมาย
day_no
เลขวัน
day_name
ชื่อวัน
5. วิธีการประมวลผล
1. เริ่มต้ น
2. รั บค่ าใส่ ตัวแปร day_no
3. เปรี ยบเทียบค่ าของ day_no ดังนี ้
ถ้ า day_no = 1 ให้ day_name = “วันอาทิตย์ ” ไปทางานข้ อ 4
ถ้ า day_no = 2 ให้ day_name = “วันจันทร์ ” ไปทางานข้ อ 4
ถ้ า day_no = 3 ให้ day_name = “วันอังคาร” ไปทางานข้ อ 4
ถ้ า day_no = 4 ให้ day_name = “วันพุธ”
ไปทางานข้ อ 4
ถ้ า day_no = 5 ให้ day_name = “วันพฤหัสบดี” ไปทางานข้ อ 4
ถ้ า day_no = 6 ให้ day_name = “วันศุกร์ ” ไปทางานข้ อ 4
ถ้ า day_no = 7 ให้ day_name = “วันเสาร์ ” ไปทางานข้ อ 4
ถ้ า day_no เป็ นเลขอื่นๆ ให้ day_name = “ตัวเลขไม่ ถูกต้ อง” ไปทางานข้ อ
4
4. พิมพ์ ผลลัพธ์ day_name
5. จบการทางาน
ตัวอย่ างที่ 7
โจทย์ จงเขียนโปรแกรมตัดเกรดวิชาคอมพิวเตอร์ และการเขียน
โปรแกรม โดยรั บคะแนนกลางภาคและคะแนนปลายภาค
โดยมีคะแนนรวมเต็ม 100 คะแนน มีเงื่อนไขในการคิดเกรด
ดังนี ้
- ถ้ าได้ คะแนน 80
คะแนน ขึน้ ไปได้ เกรด
A
- ถ้ าได้ คะแนน 70-79 คะแนน
ได้ เกรด
B
- ถ้ าได้ คะแนน 60-69 คะแนน
ได้ เกรด
C
- ถ้ าได้ คะแนน 50-59 คะแนน
ได้ เกรด
D
- ถ้ าได้ คะแนนต่ากว่ า 50 คะแนน
ได้ เกรด
F
1. สิ่งที่โจทย์ ต้องการ
 คานวณหาเกรดของนักศึกษาแต่ ละคน
2. รู ปแบบผลลัพธ์
เลขประจาตัว => <รอรับค่ าเลขประจาตัว>
ชื่อนักศึกษา => <รอรับค่ าชื่อ>
คะแนนรายภาค => <รอรับค่ าคะแนนรายภาค>
คะแนนปลายภาค => <รอรับค่ าคะแนนปลายภาค>
คะแนนรวม => <แสดงค่ าคะแนนรวม>
เกรด => <แสดงค่ าเกรด>
3. ข้ อมูลนาเข้ า
 รหัสนักศึกษา
 ชื่อ
 คะแนนกลางภาค
 คะแนนปลายภาค
4. กาหนดตัวแปรที่ใช้
ชื่อตัวแปร
Std_ID
Std_Name
Mid_Score
Final_Score
Total_Score
Grade
ความหมาย
รหัสนักศึกษา
ชื่อนักศึกษา
คะแนนกลางภาค
คะแนนปลายภาค
คะแนนรวม
เกรด
5. วิธีการประมวลผล
1.
2.
3.
4.
เริ่มต้ น
รั บค่ าใส่ ตัวแปร Std_ID , Std_Name , Mid_Score , Final_Score ตามลาดับ
คานวณ Total_Score = Mid_Score + Final_Score
ทาการเปรี ยบเทียบค่ าของ Total_Score ดังนี ้
ถ้ า Total_score >= 80 ให้ Grade = A ไปทางานข้ อ 5
ถ้ า Total_score >= 70 และ Total_Score <=79 ให้ Grade = B ไปทางานข้ อ 5
ถ้ า Total_score >= 60 และ Total_Score <=69 ให้ Grade = C ไปทางานข้ อ 5
ถ้ า Total_score >= 50 และ Total_Score <=59 ให้ Grade = D ไปทางานข้ อ 5
ถ้ า Total_score < 50 ให้ Grade = F ไปทางานข้ อ 5
5. พิมพ์ ผลลัพธ์ Std_ID , Std_Name , Total_Score , Grade
6. จบการทางาน
ตัวอย่ างการวิเคราะห์ งาน
โครงสร้ างวนซา้
(Iteration Structure)
ตัวอย่ างที่ 8
โจทย์ จงเขียนโปรแกรมแสดงผลการบวกเลขจานวนเต็มจาก
ตัวเลข 1 ถึง 10
1. สิ่งที่โจทย์ ต้องการ
 ผลบวกของเลข 1 ถึง 10
2. รู ปแบบผลลัพธ์
ผลบวกเลข 1 ถึง 10 = <55>
3. ข้ อมูลนาเข้ า
 ไม่ มี
4. กาหนดตัวแปรที่ใช้
ชื่อตัวแปร
counter
sum
ความหมาย
ตัวนับจานวนรอบ
ผลรวม
5. วิธีการประมวลผล <pre-condition>
1.
2.
3.
4.
5.
6.
7.
8.
เริ่มต้ น
กาหนดค่ า sum = 0
กาหนดค่ า counter = 1
เปรียบเทียบ counter <= 10 ดังนี ้
- ถ้ าเป็ นจริง ไปทาข้ อ 5
- ถ้ าเป็ นเท็จ ไปทาข้ อ 7
คานวณ ค่ า sum = sum + counter
เพิ่มค่ า counter = counter + 1 แล้ วกลับไปทาข้ อ 4
แสดงค่ า sum
จบการทางาน
5. วิธีการประมวลผล <post-condition>
1. เริ่มต้ น
2. กาหนดค่ า sum = 0
3. กาหนดค่ า counter = 1
4. คานวณ ค่ า sum = sum + counter
5. เพิ่มค่ า counter = counter + 1
6. เปรียบเทียบ counter > 10 ดังนี ้
- ถ้ าเป็ นจริง ไปทาข้ อ 7
- ถ้ าเป็ นเท็จ ไปทาข้ อ 4
7. แสดงค่ า sum
8. จบการทางาน
ตัวอย่ างที่ 9
โจทย์ จงเขียนโปรแกรมเพื่อคานวณหาสูตรคูณ โดยการรั บแม่ สูตรคูณ
จากผู้ใช้ ทางคีย์บอร์ ด
สิ่งที่โจทย์ ต้องการ : สูตรคูณ
รู ปแบบผลลัพธ์
สูตรคูณแม่ : 10 <รั บค่ าจากผู้ใช้ สมมุตวิ ่ าป้อนแม่ 10>
10 x 1 = 10
10 x 2 = 20
....
10 x 12 = 120
3. ข้ อมูลนาเข้ า
ตัวเลขแม่ สูตรคูณ
4. กาหนดตัวแปรที่ใช้
N
= ตัวเลขแม่ สูตรคูณ
Mul = เก็บผลการคูณ
i
= ตัวแปรใช้ นับจานวนรอบตัง้ แต่ 1 - 12
5. การประมวลผล <Pre-condition>
1. กาหนดค่ าเริ่มต้ นให้ Mul = 0 , i = 1
2. รั บค่ าตัวแปร N
3. เปรี ยบเทียบค่ า i <= 12 ดังนี ้
- ถ้ า เป็ นจริง ไปทาข้ อ 4
- ถ้ า เป็ นเท็จ ไปทาข้ อ 7
4. คานวณ Mul = N * i
5. พิมพ์ ค่า N , i , Mul
6. เพิ่มรอบการทางานโดยกาหนดให้ i = i + 1 กลับไปทาข้ อ3
7. จบการทางาน
5. การประมวลผล <Post-condition>
1. กาหนดค่ าเริ่มต้ นให้ Mul = 0 , i = 1
2. รั บค่ าตัวแปร N
3. คานวณ Mul = N * i
4. พิมพ์ ค่า N , i , Mul
5. เพิ่มรอบการทางานโดยกาหนดให้ i = i + 1
6. เปรี ยบเทียบค่ า i > 12 ดังนี ้
- ถ้ า เป็ นเท็จ กลับไปทาข้ อ 3
- ถ้ า เป็ นจริง ไปทาข้ อ 7
7. จบการทางาน
ตัวอย่ างที่ 10
โจทย์ จงเขียนโปรแกรมเพื่อคานวณค่ าแฟกทอเรี ยล(Factorials)
n หรื อ n! เมื่อค่ า n คือเลขจานวนเต็มที่รับจากผู้ใช้
n! = 1 x 2 x 3 x … x n
สิ่งที่โจทย์ ต้องการ : ค่ าแฟกทอเรี ยลของ n
รู ปแบบผลลัพธ์
Program Factorials (n!)
Enter n = <รอรั บค่ า n จากผู้ใช้ >
n! = <แสดงค่ าแฟกทอเรี ยลของn>
3. ข้ อมูลนาเข้ า
เลขจานวนเต็ม
4. กาหนดตัวแปรที่ใช้
N
= เลขจานวนเต็มที่รับจากผู้ใช้
Fac = ค่ าผลคูณแฟกทอเรี ยล
i
= ตัวแปรใช้ นับจานวนรอบ
5. การประมวลผล <Pre-condition>
1. กาหนดค่ าเริ่มต้ นให้ Fac = 1 , i = 1
2. รั บค่ าตัวแปร N
3. เปรี ยบเทียบค่ า i <= N ดังนี ้
- ถ้ า เป็ นจริง ไปทาข้ อ 4
- ถ้ า เป็ นเท็จ ไปทาข้ อ 6
4. คานวณ Fac = Fac * i
5. เพิ่มรอบการทางานโดยกาหนดให้ i = i + 1 กลับไปทาข้ อ3
6. พิมพ์ ค่า N , Fac
7. จบการทางาน
5. การประมวลผล <Post-condition>
1. กาหนดค่ าเริ่มต้ นให้ Fac = 1 , i = 1
2. รั บค่ าตัวแปร N
3. คานวณ Fac = Fac * i
4. เพิ่มรอบการทางานโดยกาหนดให้ i = i + 1
5. เปรี ยบเทียบค่ า i > N ดังนี ้
- ถ้ า เป็ นเท็จ กลับไปทาข้ อ 3
- ถ้ า เป็ นจริง ไปทาข้ อ 6
6. พิมพ์ ค่า N , Fac
7. จบการทางาน