SlideShare a Scribd company logo
1 of 26
Download to read offline
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 1
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การถ่ายทอดความคิดในการแก้ปัญหาอย่างมีขั้นตอน
ขั้นตอนการพัฒนาโปรแกรม
การวิเคราะห์งาน
การเขียนผังงาน
ตัวอย่างการวิเคราะห์งานและผังงาน
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศอย่างมีประสิทธิภาพ ต้องทาเป็นขั้นตอนโดย
มีวิธีการปฏิบัติ 4 ขั้นตอน ได้แก่
1. การวิเคราะห์และกาหนดรายละเอียดของปัญหา
2. เลือกเครื่องมือและออกแบบขั้นตอนวิธี
3. การดาเนินการแก้ปัญหา
4. ตรวจสอบและการปรับปรุงวิธีการแก้ปัญหาให้เหมาะสม
การวิเคราะห์และกาหนดรายละเอียดของปัญหา
เป็นขั้นตอนแรกของการแก้ปัญหา เพื่อทาความเข้าใจกับปัญหา ซึ่งมีองค์ประกอบดังนี้
1. สิ่งที่โจทย์ต้องการ ได้แก่ การวิเคราะห์จากโจทย์ว่าสิ่งที่โจทย์ต้องการนั้นคืออะไร สามารถ
แยกได้ออมาเป็นรายละเอียดที่ชัดเจน
2. การระบุข้อมูลที่ต้องการส่งออก ได้แก่ การพิจารณาเป้าหมายหรือสิ่งที่ต้องหาคาตอบ
3. การระบุข้อมูลนาเข้า ได้แก่ การพิจารณาข้อมูลและเงื่อนไขที่กาหนดมาในปัญหา
4. การกาหนดตัวแปร ได้แก่ ตัวเก็บค่าต่าง ๆ ในการทางาน
5. การกาหนดวิธีประมวลผล ได้แก่ การพิจารณาขั้นตอนวิธีการได้มาซึ่งคาตอบ
เลือกเครื่องมือและออกแบบขั้นตอนวิธี
เป็นขั้นตอนการนาเอาข้อมูลที่ได้จากการวิเคราะห์มาทาความเข้าใจ เพื่อการวางแผนในการ
แก้ปัญหา ซึ่งมีขั้นตอนต่อไปนี้
1. เลือกเครื่องมือที่ใช้ในการแก้ปัญหา เลือกยุทธวิธีที่ใช้ในการแก้ปัญหา หรือที่เรียกว่า “ขั้นตอน
วิธี” (Algorithm)
2. การออกแบบวิธีในการแก้ปัญหา ควรใช้แผนภาพหรือเครื่องมือในการแสดงขั้นตอนการ
ทางานเพื่อให้ง่าต่อความเข้าใจ เช่น ผังงาน (Flowchart) รหัสจาลอง (Pseudo Code)
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
เนื้อหา
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 2
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
ขั้นตอนการพัฒนาโปรแกรม
การวิเคราะห์ปัญหา
การถ่ายทอดความคิดในการแก้ปัญหาอย่างมีขั้นตอน
การดาเนินการแก้ปัญหา
เป็นขั้นตอนที่ต้องลงมือแก้ไขตามเครื่องมือที่เลือกไว้ โดยใช้โปรแกรมสาเร็จหรือการใช้
ภาษาคอมพิวเตอร์เขียนโปรแกรมแก้ปัญหา
ตรวจสอบและการปรับปรุงวิธีการแก้ปัญหาให้เหมาะสม
เป็นขั้นตอนการตรวจสอบว่าขั้นตอนวิธีที่สร้างขึ้น สอดคล้องกับรายละเอียดของปัญหาหรือไม่ ถ้า
มีข้อบกพร่องก็ต้องทาการปรับปรุงวิธีการเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด
ทาได้ 2 ลักษณะ ดังนี้
1. การใช้ข้อความหรือคาบรรยาย รหัสจาลอง (Pseudo Code)
2. การใช้สัญลักษณ์ (Flowchart)
ในการเขียนโปรแกรมคอมพิวเตอร์ เขียนโปรแกรมจะต้องเข้าใจหลักเกณฑ์ของภาษา
โปรแกรม และระบบการทางานของคอมพิวเตอร์ ว่ามีโครงสร้างและวิธีการใช้คาสั่งอย่างไร ซึ่ง
ในการเขียนโปรแกรมคอมพิวเตอร์ มีหลักเกณฑ์การเขียนโปรแกรม ประกอบด้วย 5 ขั้นตอน
ดังนี้คือ
1. ทาความเข้าใจและวิเคราะห์ปัญหา
2. กาหนดแผนในการแก้ปัญหา
3. เขียนโปรแกรมตามแผนที่กาหนด
4. ทดสอบและตรวจสอบความถูกต้องของโปรแกรม
5. นาโปรแกรมที่ผ่านการทดสอบไปใช้งาน
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 3
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
ทาความเข้าใจและวิเคราะห์ปัญหา
ผู้เขียนโปรแกรมจะต้องทาความเข้าใจและทาการวิเคราะห์ปัญหาเป็นลาดับแรก
เพราะการทาความเข้าใจและวิเคราะห์ปัญหาเป็นสิ่งที่สาคัญโดยที่ผู้เขียนโปรแกรมจะต้อง
วิเคราะห์ปัญหาร่วมกับนักวิเคราะห์ระบบว่าโจทย์ต้องการผลลัพธ์อะไร และการให้ได้มาซึ่ง
ผลลัพธ์นั้น ต้องป้อนข้อมูลอะไรบ้าง และเมื่อป้อนข้อมูลเข้าไปแล้วจะทาการประมวลผล
อย่างไร สิ่งเหล่านี้ผู้เขียนโปรแกรมจะต้องทาความเข้าใจให้ถูกต้อง เพราะถ้าผู้เขียนโปรแกรม
วิเคราะห์ปัญหาไม่ถูกต้อง ผลลัพธ์ที่ได้ออกมาก็อาจจะไม่ตรงกับความต้องการของโจทย์ได้
รูปแบบการวิเคราะห์ปัญหา
1. วัตถุประสงค์ของงาน
เป็นการหาคาตอบว่า โจทย์ต้องการผลลัพธ์อะไร
2 ออกแบบผลลัพธ์ ( Output )
เป็นการออกแบบจอภาพหรือผลลัพธ์ของโปรแกรมเมื่อเขียนเสร็จแล้ว ต้องการให้มี
รูปแบบอย่างไร แสดงข้อมูลอะไรบ้าง
3 ข้อมูลนาเข้า ( Input )
ต้องวิเคราะห์ว่า ผลลัพธ์ที่ต้องการนั้น ต้องป้อนข้อมูลอะไรเข้าไป เพื่อให้โปรแกรมที่
เขียนขึ้นมาประมวลผล
4 ชื่อตัวแปรที่ใช้
เป็นการกาหนดข้อมูลต่าง ๆ ในรูปแบบการแทนข้อมูลด้วยสัญลักษณ์หรือชื่อตัวแปร
โดยตั้งชื่อให้สอดคล้องกับข้อมูลที่เกี่ยวข้อง เช่น ความกว้างของสี่เหลี่ยม กาหนดตัวแปรใช้แทนข้อมูล
ความกว้างของสี่เหลี่ยมชื่อ width เป็นต้น
5 ขั้นตอนวิธีการประมวลผล/ลาดับงาน
เป็นการกาหนดวิธีการหรือขั้นตอนเพื่อให้คอมพิวเตอร์ทางาน เป็นขั้น ๆ ตามลาดับ
ตัวอย่าง
จงเขียนวิเคราะห์ เพื่อเขียนโปรแกรมคานวณหาเงินได้สุทธิต่อเดือนของพนักงาน หลังจากหักค่าใช้
ภาษี ณ ที่จ่าย 10% และค่าประกันสังคม 5%
1. วัตถุประสงค์ของงาน
คานวณหารายได้สุทธิของพนักงาน
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 4
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
การเขียนผังงาน (Flowchart)
2. ออกแบบผลลัพธ์ ( Output )
3. ข้อมูลนาเข้า ( Input )
ได้แก่ เงินเดือน
4. ชื่อตัวแปรที่ใช้
salary แทนข้อมูล เงินเดือน
tax เก็บข้อมูล ภาษี ณ ที่จ่าย 10% ที่คานวณได้
SocialPayment เก็บข้อมูล ค่าปรันสังคม 5% ที่คานวณได้
Net เก็บข้อมูล รายได้สุทธิของพนักงาน
5. ขั้นตอน/ลาดับงาน
- เริ่มการทางาน
- พิมพ์หัวตาราง
- ป้อนข้อมูล เงินเดือนของพนักงาน (salary)
- คานวณหักภาษี 10% tax = salary * 0.1
- คานวณค่าประกันสังคม SocialPayment = salary * 0.05
- คานวณ หารายได้สุทธิของพนักงาน Net = salary – tax – SocialPayment
- แสดงผลลัพธ์ tax, SocialPayment, Net
- จบการทางาน
หลังจากทาความเข้าใจและวิเคราะห์ปัญหาโจทย์จนได้ข้อสรปุว่าโจทย์ต้องการอะไรแล้ว
ผู้เขียนโปรแกรมก็จะทาการกาหนดแผนในการแก้ไขปัญหาโดยการเขียนผังงาน (Flowchart) ซึ่งการเขียน
ผังงานคือการเขียนแผนภาพที่เป็นลาดับ เพื่อแสดงขั้นตอนการทางานของโปรแกรมเพื่อให้ง่ายต่อการทา
ความเข้าใจ การเขียนผังงานมี 3 แบบคือ แบบเรียงลาดับ(Sequential) แบบมีการกาหนดเงื่อนไข
(Condition) และแบบมีการทางานวนรอบ(Looping)
COMPUTE INCOME OF EMPLOYEE
-------------------------------------------------------------
เงินเดือน : ……………….
- หักภาษี ณ ที่จ่าย 10% : …………….……
- หักค่าประกันสังคม 5% : …………….…..
--------------------------------------------------------------
เงินได้สุทธิ = ………………………
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 5
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
ผังงานระบบ (System Flowchart)
เป็นผังแสดงขั้นตอนการทางานภายในระบบ คาว่าระบบงาน หมายถึงส่วนต่างๆ ที่เกี่ยวข้องกับ
งานทั้งหมด ทั้งวัสดุ เครื่องจักร อุปกรณ์ และ บุคลากร แสดงขั้นตอนเริ่มต้นว่ามีเอกสารเบื้องต้นเริ่มจาก
ส่วนใดของระบบงาน ผ่านไปยังหน่วยงานใด มีกิจกรรมอะไรในหน่วยงานนั้น ส่งงานต่อไปที่ใดจึงจะเสร็จ
สิ้น บางส่วนจะเกี่ยวกับคน บางส่วนเกี่ยวกับคอมพิวเตอร์ ต้องนาส่วนที่เกี่ยวกับคอมพิวเตอร์มาเขียน
โปรแกรม ทั้งแสดงรายละเอียดการทางาน แยกเป็น Program Flowchart
ผังงานโปรแกรม (Program Flowchart)
เป็นผังแสดงลาดับขั้นตอนการทางานในโปรแกรม มีส่วนแสดงการทางานในขั้นการรับข้อมูล การ
คานวณหรือการประมวลผล และการแสดงผลลัพธ์ เรียกอีกอย่างหนึ่งได้ว่า ผังการเขียนโปรแกรม หรือ ผัง
งาน
การเขียนผังงานที่ดี
* ใช้สัญลักษณ์ตามที่กาหนดไว้
* ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรือจากซ้ายไปขวา
* คาอธิบายในภาพควรสั้นกะทัดรัด และเข้าใจง่าย
* ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก
* ไม่ควรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน
* ผังงานควรมีการทดสอบความถูกต้องของการทางานก่อนนาไปเขียนโปรแกรม
ประโยชน์ของผังงาน
1. ทาให้เข้าใจและแยกแยะปัญหาต่าง ๆ ได้ง่ายขึ้น
2. ผู้เขียนโปรแกรมมองเห็นลาดับการทางาน รู้ว่าสิ่งใดควรทาก่อน สิ่งใดควรทาหลัง
3. สามารถหาข้อผิดพลาดของโปรแกรมได้ง่าย
4. ทาให้ผู้อื่นเข้าใจการทางานได้ง่ายกว่าการดูจาก source code
5. ไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ผู้อื่นสามารถเรียนรู้และเข้าใจได้ง่าย
ข้อจากัดของผังงาน
ผู้เขียนโปรแกรมบางคนไม่นิยมเขียนผังงานก่อนการเขียนโปรแกรม เพราะเห็นว่า
เสียเวลา นอกจากนี้แล้ว ยังมีข้อจากัดอื่น ๆ อีก คือ
1. ผังงานเป็นการสื่อความหมายระหว่างบุคคลกับบุคคลมากกว่าที่สื่อความหมาย
ระหว่างบุคคลกับเครื่อง เพราะผังงานไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ทาให้เครื่องไม่
สามารถรับและเข้าใจได้ว่าในผังงานนั้นต้องการให้ทาอะไร
ผังงาน (Flowchart) คือ รูปภาพหรือสัญลักษณ์ ที่ใช้เขียนแทนคาอธิบาย ข้อความ
หรือคาพูดที่ใช้ในอัลกอริทึม เพราะการที่จะเข้าใจขั้นตอนได้ง่ายและตรงกันนั้น การใช้คาพูด
หรือข้อความอาจทาได้ยากกว่าการใช้รูปภาพหรือสัญลักษณ์ ผังงานสามารถแบ่งได้เป็น 2
ประเภทใหญ่ ๆ คือ
1. ผังงานระบบ (System Flowchart)
2. ผังงานโปรแกรม (Program Flowchart)
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 6
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
2. ในบางครั้ง เมื่อพิจารณาจากผังงาน จะไม่สามารถทราบได้ว่า ขั้นตอนการทางานใด
สาคัญกว่ากัน เพราะทุก ๆ ขั้นตอนจะใช้รูปภาพหรือสัญลักษณ์ในลักษณะเดียวกัน
3. การเขียนผังงานเป็นการสิ้นเปลือง เพราะจะต้องใช้กระดาษและอุปกรณ์อื่น ๆ เพื่อ
ประกอบการเขียนภาพ ซึ่งไม่สามารถเขียนด้วยมืออย่างเดียวได้ และในบางครั้ง การเขียนผังงานอาจจะ
ต้องใช้กระดาษมากกว่า 1 แผ่น หรือ 1 หน้า ซึ่งถ้าเป็นข้อความอธิบายอาจะใช้เพียง 2-3 บรรทัดเท่านั้น
สัญลักษณ์ของผังงาน(Flowchart Symbol)
สัญลักษณ์ ความหมาย
Terminator
ใช้แสดงจุดเริ่มต้นและจุดสิ้นสุดของโปรแกรม
Process
ใช้ในการประมวลผลข้อมูล กาหนดค่า หรือการคานวณทาง
คณิตศาสตร์
Input/output หรือ I/O
ใช้ในการรับข้อมูล แสดงผลข้อมูลโดยไม่ระบุอุปกรณ์
Manual Input
ใช้ในการรับข้อมูลจากแป้นพิมพ์
Decision Symbol
ใช้ในการเปรียบเทียบเงื่อนไขหรือตัดสินใจ
Display
ใช้เมื่อต้องการระบุให้แสดงข้อมูลบนจอภาพ
Document Symbol
ใช้เมื่อต้องการระบุให้แสดงข้อมูลบนเครื่องพิมพ์
Preparation
การเตรียมทางานลาดับถัดไป
Predefined Process
โปรแกรมย่อย หรือโมดูลเริ่มทางานหลังจากจบคาสั่งใน
โปรแกรมย่อยแล้ว จะกลับมาทาคาสั่งต่อไป
Online Storage
แหล่งเก็บข้อมูลออนไลน์ หรือหน่วยความจาสารอง
Connector หรือ On-page Connector
จุดเชื่อมผังงานในหน้าเดียวกัน
Connector หรือ Off-page Connector
จุดเชื่อมผังงานที่อยู่หน้าต่างกัน
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 7
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
หลักในการเขียนผังงาน
การเขียนผังงานนั้น ไม่มีวิธีการที่แน่ชัดว่าจะต้องใช้คาสั่งอะไรบ้าง ทั้งนี้ขึ้นอยู่กับลักษณะ
ของงานที่จะทา ซึ่งลักษณะงานจะมีอยู่ 3 ขั้นตอน คือ การรับข้อมูล (Input) การประมวลผล (Process)
และการแสดงผลลัพธ์ (Output) การศึกษาลาดับขั้นตอนในการทางานของผังงาน ให้สังเกตจากลูกศรที่
แสดงทิศทางการไหลของข้อมูลในผังงานเป็นหลักในการเขียนผังงาน จะต้องคานึงถึงสิ่งต่าง ๆ ต่อไปนี้
1. ใช้สัญลักษณ์ที่มีรูปแบบเป็นมาตรฐาน
2. ขนาดของสัญลักษณ์ขึ้นอยู่กับความเหมาะสม
3. ควรเขียนทิศทางการไหลของข้อมูล เริ่มจากบนลงล่าง หรือจากซ้ายไปขวา และควร
ทาหัวลูกศรกากับทิศทางด้วย
4. การเขียนคาอธิบายให้เขียนภายในสัญลักษณ์ ใช้ข้อความที่เข้าใจง่าย สั้นและชัดเจน
5. พยายามให้เกิดจุดตัดน้อยที่สุด หรืออาจใช้สัญลักษณ์ที่เรียกว่า "ตัวเชื่อม"
(Connector) แทน เพื่อหลีกเลี่ยงข้อผิดพลาดที่อาจเกิดขึ้น
6. หากเป็นไปได้ควรเขียนผังงานให้จบภายในหน้าเดียวกัน
7 . ผังงานที่ดีควรเป็นระเบียบเรียบร้อย สะอาด ชัดเจน เข้าใจและติดตามขั้นตอนได้ง่าย
8. จุดเริ่มต้นและสิ้นสุดของงาน ควรมีเพียงจุดเดียว
รูปแบบของผังงาน
ผังงาน มีรูปแบบที่จากัดอยู่ 3 แบบด้วยกัน คือ
1. รูปแบบเรียงลาดับ (Sequence Structure)
เป็นการทางานแบบเรียงลาดับ ตั้งแต่ต้นจนจบ เป็นรูปแบบง่าย ๆ ไม่มีการ
เปรียบเทียบใด ๆ มีทิศทางการไหลของข้อมูลเพียงทางเดียว ซึ่งอาจจะเป็นแบบบนลงล่าง หรือ จากซ้าย
ไปขวาก็ได้ เช่น การให้คานวณหาพื้นที่ของสี่เหลี่ยมผืนผ้า จะเขียนเป็นผังงานได้ดังรูป
จากผังงาน เราสามารถเขียนโปรแกรมได้ ตาม syntax ของภาษาที่ใช้ ตัวอย่างโปรแกรม
ข้างล่างนี้ จะเป็นการเขียนโปรแกรมด้วยภาษา C
start
a,b
c = a + b
c
stop
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 8
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
#include
void main(void)
{
float a, b, c;
printf("Enter Width : ");
scanf("%f",&a);
printf("Enter Higth : ");
scanf("%f",&b);
c = a * b;
printf("Area = %.2f",c);
}
2. รูปแบบที่มีการกาหนดเงื่อนไขหรือให้เลือก (Decision Structure)
รูปแบบนี้จะยากกว่ารูปแบบแรก เพราะจะมีการสร้างเงื่อนไขเพื่อให้เลือก
ทางาน ถ้าหากเลือกทางใดก็จะไปทางานในเงื่อนไขที่เลือก ซึ่งเงื่อนไขที่กาหนดขึ้นนี้จะเขียนอยู่ใน
สัญลักษณ์ "การตัดสินใจ" เช่น การคานวณว่าตัวเลขที่รับมานั้นเป็นจานวนคี่หรือคู่ จะเขียนเป็นผังงานได้
ดังรูป
และจากผังงานเราสามารถเขียนเป็นโปรแกรมได้ โดยใช้คาสั่งเกี่ยวกับการตัดสินใจ
หรือการเปรียบเทียบ เช่น if - else , switch ตามภาษาที่ท่านใช้เขียนโปรแกรม ในที่นี้เป็นตัวอย่างการใช้
if - else ของภาษา C
start
a
odd
stop
a mod 2 ==1
even
Yes No
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 9
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
start
stop
i > 10
sum
sum=0
i = 1
sum=sum+1
i ++
No
Yes
o
#include
void main(void)
{
int a, b;
printf ("Enter Numeric (1 - N) : ");
scanf ("%d",&a);
if ((a%2) == 1)
printf("%d is Odd",a);
else
printf("%d is Even",a);
}
3. รูปแบบที่มีการทางานแบบวนรอบ หรือ loop (Iteration Structure)
การทางานของรูปแบบนี่ จะเป็นการทางานซ้า ๆ กัน หลาย ๆ ครั้งเท่าที่เรา
ต้องการ (หรืออาจจะทาเพียงครั้งเดียว หรืออาจจะไม่มีการทางานเลยก็ได้) ซึ่งการทางานนี้จะขึ้นอยู่กับ
เงื่อนไขที่กาหนดให้ และจะมีการนาเอาลักษณะของการตัดสินใจมาช่วยว่าจะมีการทางานซ้าอีกหรือไม่
เช่น การหาผลบวกของตัวเลข ตั้งแต่ 1-10 จะเขียนเป็นผังงานได้ดังรูป
จากผังงานเราสามารถเขียนเป็นโปรแกรมได้ โดยใช้คาสั่งการวนลูป ในที่นี้จะเป็นตัวอย่าง
โปรแกรมการใช้ do... while ในภาษา C ซึ่งสามารถที่จะนาไปปรับให้เข้ากับภาษาที่ท่านใช้เขียนได้ ดัง
ตัวอย่าง
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 10
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
ตัวอย่าง การใช้ do.... While
#include <stdio.h>
void main(void)
{
int i;
int sum;
i = 1;
sum = 0;
do
{
sum = sum + i;
i++;
}
while (i <=10);
printf("sum (1-10) = %d",sum);
}
ผังงานกับชีวิตประจาวัน
การทางานหลายอย่างในชีวิตประจาวัน จะมีลักษณะที่เป็นลาดับขั้นตอน ซึ่งก่อนที่
ท่านจะได้ศึกษาวิธีการเขียนผังงานโปรแกรม จะแนะนาให้ท่านลองฝึกเขียนผังงานที่แสดงการทางานใน
ชีวิตประจาวันวันก่อนเพื่อเป็นการสร้างความคุ้นเคยกับสัญลักษณ์รูปภาพต่าง ๆ ที่จะมีใช้ในผังงาน
โปรแกรมต่อไป ดังตัวอย่าง
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 11
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
ตัวอย่าง
เขียนผังงานแสดงวิธีการรับประทานยา ที่แบ่งขนาดรับประทานตามอายุของผู้ทานดังนี้
อายุมากกว่า 10 ปี รับประทานครั้งละ 2 ช้อนชา
อายุมากกว่า 3 ปี ถึง 10 ปี รับประทานครั้งละ 1 ช้อนชา
อายุมากกว่า 1 ปี ถึง 3 ปี รับประทานครั้งละ 1/2 ช้อนชา
แรกเกิดถึง 1 ปี ห้ามรับประทาน
โครงสร้างการทางานแบบมีการเลือก ( Selection )
เป็นโครงสร้างที่ใช้การตรวจสอบเงื่อนไขเพื่อการทางานอย่างใดอย่างหนึ่ง โดยโครงสร้างแบบนี้จะ
มีอยู่ด้วยกัน 2 รูปแบบ คือ IF - THEN - ELSE และ IF - THEN
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 12
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
โครงสร้างแบบ IF - THEN - ELSE เป็นโครงสร้างที่จะทาการเปรียบเทียบเงื่อนไขที่ใส่ไว้ใน
ส่วนหลังคาว่า IF และเมื่อได้ผลลัพธ์จากการเปรียบเทียบก็จะเลือกว่าจะทางานต่อในส่วนใด กล่าวคือถ้า
เงื่อนไขเป็นจริง ( TRUE ) ก็จะเลือกไปทางานต่อที่ส่วนที่อยู่หลัง THEN แต่ถ้าเงื่อนไขเป็นเท็จ ( FALSE )
ก็จะไปทางานต่อในส่วนที่อยู่หลังคาว่า ELSE แต่ถ้าสาหรับโครงสร้างแบบ IF - THEN เป็นโครงสร้างที่ไม่มี
การใช้ ELSE ดังนั้น ถ้ามีการเปรียบเทียบเงื่อนไขที่อยู่หลัง IF มีค่าเป็นจริง ก็จะไปทาส่วนที่อยู่หลัง Then
แต่ถ้าเงื่อนไขเป็นเท็จ ก็จะไปทาคาสั่งที่อยู่ถัดจาก IF - THEN แทน
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 13
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
ตัวอย่าง
การเขียนผังงานอ่านค่าข้อมูลเข้ามาเก็บไว้ในตัวแปร A และ B แล้วทาการเปรียบเทียบในตัวแปร
ทั้งสอง โดยมีเงื่อนไขดังนี้ ถ้า A มากกว่า B ให้คานวณหาค่า A - B และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ
RESULT ถ้า A น้อยกว่าหรือเท่ากับ B ให้คานวณหาค่า A + B และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ RESULT
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 14
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
ตัวอย่าง
การเขียนผังงานเปรียบเทียบค่าข้อมูลที่เก็บอยู่ในตัวแปร X โดยมีเงื่อนไขดังนี้
ถ้า X > 0 ให้พิมพ์คาว่า " POSITIVE NUMBER "
ถ้า X < 0 ให้พิมพ์คาว่า " NEGATIVE NUMBER "
ถ้า X = 0 ให้พิมพ์คาว่า " ZERO NUMBER "
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 15
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
โครงสร้างการทางานแบบมีการทางานซ้า
เป็นโครงสร้างที่มีการประมวลผลกลุ่มคาสั่งซ้าหลายครั้ง ตามลักษณะเงื่อนไขที่กาหนด อาจเรียก
การทางานซ้าแบบนี้ได้อีกแบบว่า การวนลูป ( Looping ) โครงสร้างแบบการทางานซ้านี้จะมีอยู่ 2
ประเภท คือ
*DO WHILE
*DO UNTIL
*DO WHILE
เป็นโครงสร้างที่มีการทดสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงก็จะเข้ามาทางานในกลุ่มคา
สั่งที่ต้องทาซ้า ซึ่งเรียกว่าการเข้าลูป หลังจากนั้นก็จะย้อนกลับไปตรวจสอบเงื่อนไขใหม่อีก ถ้าเงื่อนไข
ยังคงเป็นจริงอยู่ ก็ยังคงต้องทากลุ่มคาสั่งซ้าหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไขเป็นเท็จ ก็จะออกจาก
ลูปไปทาคาสั่งถัดไปที่อยู่ถัดจาก DO WHILE หรืออาจเป็นการจบการทางาน
*DO UNTIL
เป็นโครงสร้างการทางานแบบทางานซ้าเช่นกัน แต่มีการทางานที่แตกต่างจาก DO
WHILE คือจะมีการเข้าทางานกลุ่มคาสั่งที่อยู่ภายในลูปก่อนอย่างน้อย 1 ครั้ง แล้วจึงจะไปทดสอบเงื่อนไข
ถ้าเงื่อนไขเป็นเท็จก็จะมีการเข้าทากลุ่มคาสั่งที่ต้องทาซ้าอีก หลังจากนั้นก็จะย้อนกลับไปตรวจสอบเงื่อนไข
ใหม่อีก ถ้าเงื่อนไขยังคงเป็นเท็จอยู่ ก็ยังต้องทากลุ่มคาสั่งซ้าหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไขเป็นจริง
จึงจะออกจากลูปไปทาคาสั่งถัดจาก UNTIL หรืออาจเป็นการจบการทางาน
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 16
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
สรุปข้อแตกต่างระหว่าง DO WHILE และ DO UNTIL มีดังนี้
1. DO WHILE ในการทางานครั้งแรกจะต้องมีการตรวจสอบเงื่อนไขก่อนทุกครั้ง ก่อนที่จะมีการ
เข้ลูปการทางาน
2. DO UNTIL การทางานครั้งแรกจะยังไม่มีการตรวจสอบเงื่อนไข แต่จะเข้าไปทางานในลูปก่อน
อย่างน้อย 1 ครั้งแล้วจึงจะไปตรวจสอบเงื่อนไข
3. DO WHILE จะมีการเข้าไปทางานในลูปก็ต่อเมื่อตรวจสอบเงื่อนไขแล้วพบว่า เงื่อนไขเป็นจริง
แต่เมื่อพบว่าเงื่อนไขเป็นเท็จ ก็จะออกจากลูปทันที
4. DO UNTIL จะมีการเข้าไปทางานในลูปก็ต่อเมื่อตรวจสอบเงื่อนไขแล้วพบว่า เงื่อนไขเป็นเท็จ
แต่เมื่อพบว่าเงื่อนไขเป็นจริง ก็จะออกจากลูปทันที
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 17
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
ตัวอย่าง
จงเขียนผังงานแสดงการเพิ่มของข้อมูลตัวเลขที่เก็บอยู่ในหน่วยความจาที่แอดเดรส 1 โดยที่ค่า
เริ่มต้นจาก 0 ให้ทาการเพิ่มค่าทีละ 1 เรื่อยไปจนกระทั่ง J มีค่าข้อมูลมากกว่า 100 จึงหยุดการทางาน
ตัวอย่างนี้ เป็นตัวอย่างการทางานแบบทาซ้า ซึ่งจะสามารถแสดงการเขียนได้ทั้งแบบ DO WHILE และ
DO UNTIL ดังนี้
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 18
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
ตัวอย่างการเขียน Flowchart
เราต้องการเขียน Flowchart เพื่อคานวณภาษีที่พนักงานต้องชาระ อัตราภาษี 10% Flowchart
ดังกล่าวกาหนดให้ผู้ใช้ป้อนค่าเงินเดือน (salary) แล้วเครื่องจะทาการคานวณ ภาษี (tax) 10% ให้โดย
อัตโนมัติ และจะพิมพ์ค่า salary กับ tax Output ที่เราต้องการก็คือ salary และ tax (การสั่งพิมพ์ขึ้นอยู่
ที่เราว่าเราต้องการให้พิมพ์อะไร ไม่จาเป็นต้องพิมพ์ salary, tax ตามตัวอย่างก็ได้ เราอาจสั่งพิมพ์ tax
อย่างเดียวก็ได้ Input คือสิ่งที่ผู้ใช้ต้องป้อนให้ระบบ จากตัวอย่างก็คือ salary เพราะหากผู้ใช้ไม่ป้อน
salary ระบบจะคานวณ tax ไม่ได้ ส่วนอัตราภาษี 10% ผู้ใช้ไม่ต้องป้อนเพราะมีการกาหนด มาอยู่แล้วว่า
ภาษีคือ 10% ระบบไม่จาเป็นต้องถามผู้ใช้ เพราะฉะนั้นอัตราภาษี 10% จึงไม่ใช่ input หากจะสรุปง่ายๆ
input ก็คือสิ่งที่เราต้องถามผู้ใช้ ส่วนอัตราภาษีคือ ค่าคงที่ ซึ่งเราจะกาหนดไว้ในโปรแกรมเลย โดยผู้ใช้ไม่
ต้องป้อน
หากเราต้องการเขียน Flowchart ให้บวกเลข 1 ถึง 10 จะพบว่า Flowchart ดังกล่าวไม่มี
input เลยเพราะ flow ดังกล่าวไม่จาเป็นต้องถามผู้ใช้ ดังรูป แต่หากเราต้องการเขียน Flowchart ให้บวก
เลขจานวนที่หนึ่ง ถึง เลขจานวนที่สอง เราจะพบว่าผู้ใช้จาเป็นต้องบอกเราว่า จานวนที่หนึ่ง คือเลขอะไร
และ จานวนที่สอง คือเลขอะไร เพราะฉะนั้น input คือ first (เลขจานวนที่หนึ่ง) และ last (เลขจานวนที่
สอง) ดังรูป
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 19
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
Iteration (การทาซ้า) Flowchart หากเราต้องการให้คานวณคนที่สอง สาม สี่ … เราจะต้องสั่ง
ให้กลับมาทางานดังรูป
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 20
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
ให้สังเกตว่า flowchart ดังกล่าวไม่มีทางออกจาก loop ได้เลย นั่นหมายถึงหลังจากคานวณ
ภาษีเสร็จเครื่องจะรอรับค่า salary คนต่อไปไม่มีวันสิ้นสุด
คาถามที่เกิดขึ้นก็คือ เมื่อไหร่ที่เราต้องการออกจาก loop คาตอบก็คือ เมื่อคานวณภาษีให้
พนักงานทุกคนครบแล้ว วิธีการที่เราจะบอกระบบว่าพนักงานหมดแล้วเราสามารถบอกได้โดย “ถ้าเรา
input ค่า salary เป็น 0 หมายถึงพนักงานหมดแล้ว นั่นคือให้ออกจาก loop” (ที่ใช้เป็น 0 เพราะไม่มี
พนักงานคนใดที่มีเงินเดือนเท่ากับ 0 บาท) ซึ่งเราเรียกค่าดังกล่าวว่าค่า dummy ดังได้กล่าวไว้ต้นแล้วว่า
การเลือกใช้ loop มีให้เลือกใช้สองชนิดคือ DO WHILE และ DO UNTIL ซึ่ง DO WHILE จะทาการเช็ค
เพื่อออกจาก loop ที่ต้น loop ในขณะที่ DO UNTIL เช็คปลาย loop
สังเกตว่า การเช็ค ณ ต้น loop คือ การเช็ค
ก่อนมี process ใดๆทั้งสิ้น (DO WHILE)
ในขณะที่การเช็ค ณ ปลาย loop คือให้มี
process ทุกอย่างก่อนแล้วค่อยเช็ค (DO
UNTIL) โดยปกติแล้วเราจะใช้ DO WHILE หรือ
DO UNTIL ก็ได้ (แต่มีบางกรณีที่จาเป็นต้องใช้
DO WHILE หรือ DO UNTIL) จาก flowchart
รูปที่ 11 หากเราใช้ DO UNTIL จะได้
flowchart ดังรูป
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 21
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
จะเห็นว่าเงื่อนไขออกจาก loop จะต้องเป็นจริง และการเช็คออกจาก loop จะอยู่ ณ ตาแหน่ง
สุดท้ายของ loop นอกจากนี้การที่ต้องมี input salary เพิ่มขึ้นมาอีกหนึ่ง process และไว้อยู่หน้าการ
เช็คเพื่อออกจาก loop เพราะว่า เมื่อ ผู้ใช้ใส่ค่า 0 มา ระบบจะทาการออกจาก loop ทันที เพราะหากไว้
ตาแหน่งอื่นระบบอาจจะมีการ print หรือคานวณ tax ซึ่งเราไม่ต้องการให้ทา
Flowchart แสดงการใช้ DO WHILE loop ให้สังเกตุว่า การเช็คเพื่อที่จะออกจาก loop อยู่ต้น
loop และเงื่อนไขเพื่อที่จะออกจาก loop จะเป็นเท็จ (เพราะฉนั้น เงื่อนไขจึงต้องเป็น salary > 0)
ใน Flowchart จะมีการ input Salary อยู่สองตาแหน่งคือบนสุด และใน loop ณ ตาแหน่ง
ล่างสุด input Salary ซึ่งอยู่บนสุดมีไว้เพื่อ input ค่า salary คนแรก เท่านั้น สาหรับค่า salary คน
ต่อๆมา จะถูก input จาก input salary ที่อยู่ใน loop สาเหตุที่เราไม่สามารถเขียน flowchart ให้วน
กลับไป input salary คนต่อๆมาดังรูปที่ 14 แม้ว่าจะสามารถทางานได้ถูกต้อง เนื่องจากจะผิดกฏ DO
WHILE ซึ่งกาหนดไว้ว่า การเช็คเพื่อออกจาก loop จะต้องอยู่ต้น loop
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 22
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
ตัวอย่างการวิเคราะห์ปัญหาและเขียนผังงาน
โจทย์ปัญหา ข้อที่ 1
จงเขียนวิเคราะห์ ผังงานเพื่อเขียนโปรแกรมคานวณพื้นที่ สี่เหลี่ยม ผืนผ้า จานวน 1 รูป
1. วัตถุประสงค์ของงาน
คานวณหาพื้นที่ สี่เหลี่ยมผืนผ้า
2. ผลลัพธ์ ( Output )
แสดงผลข้อมูล ของ ด้านยาว และด้านสูง และผลลัพธ์ที่ได้จากคานวณหาพื้นที่
3. ข้อมูลนาเข้า ( Input )
ได้แก่ Width (กว้าง) 5 CM Long (ยาว) 4 CM
4. ชื่อตัวแปรที่ใช้
Width = กว้าง
Long = ยาว
Area = พื้นที่สี่เหลี่ยมผืนผ้า
5. ขั้นตอน/ลาดับงาน
- เริ่มต้น
- ป้อนข้อมูล ความยาวด้านของสี่เหลี่ยมผืนผ้า
- ป้อนข้อมูล ความสูง
- คานวณหาพื้นที่สี่เหลี่ยมผืนผ้า Area = Width x Long
- แสดงผลลัพธ์
- จบการทางาน
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 23
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
เขียน Flowchart ได้ดังนี้
โจทย์ปัญหา ข้อที่ 2
จงเขียนวิเคราะห์ งานเพื่อเขียนโปรแกรมคานวณพื้นที่ สี่เหลี่ยมจตุรัส จานวน 1 รูป
1. วัตถุประสงค์ของงาน
คานวณหาพื้นที่ สี่เหลี่ยมจตุรัส
2. ผลลัพธ์ ( Output )
แสดงผลข้อมูล ของ ด้าน และผลลัพธ์ที่ได้จากคานวณหาพื้นที่
Width = 4 CM
Area = 16
3. ข้อมูลนาเข้า ( Input )
ได้แก่ ความยาวของด้าน
4. ชื่อตัวแปรที่ใช้
Width = ความยาวด้านของสี่เหลี่ยมจตุรัส
Area = พื้นที่สี่เหลี่ยมจตุรัส
5. ขั้นตอนวิธี/ลาดับงาน
- เริ่มต้น
- ป้อนข้อมูล ด้าน
- คานวณหาพื้นที่สี่เหลี่ยมจัตุรัส Area = Width x Width
- แสดงผลลัพธ์
- จบการทางาน
start
Width, Long
Area = Width * Long
Area
stop
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 24
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
เขียน Flowchart ได้ดังนี้
โจทย์ปัญหา ข้อที่ 3
จงเขียนวิเคราะห์ งานเพื่อเขียนโปรแกรมคานวณหาอายุ โดยข้อมูล ปีเกิดเป็นค.ศ. 1989
1. วัตถุประสงค์ของงาน
คานวณหาหาอายุ
2. ผลลัพธ์ ( Output )
แสดงผลข้อมูล ของอายุ
Birth = 1989
Year = 2010
Age = 21
3. ข้อมูลนาเข้า ( In Put )
ได้แก่ Year และ Birth
4. ชื่อตัวแปรที่ใช้
Birth = ปีเกิด
Year = ปีปัจจุบัน
Age = อายุ
5. ขั้นตอนวิธี/ลาดับงาน
- เริ่มต้น
- ป้อนข้อมูล ปีเกิด
- ป้อนข้อมูล ปีปัจจุบัน
- คานวณหาอายุ Age = Year - Birth
- แสดงผลลัพธ์
- จบการทางาน
start
Width
Area = Width * Width
Area
stop
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 25
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
เขียนผังงาน ได้ดังนี้
โจทย์ปัญหา ข้อที่ 4
จงเขียนวิเคราะห์ งานเพื่อเขียนโปรแกรมคานวณหาค่าเฉลี่ยของน้าหนักของนักเรียน 3 คน
1. วัตถุประสงค์ของงาน
คานวณหาค่าเฉลี่ยของน้าหนัก
2. ผลลัพธ์ ( Output )
แสดงผลข้อมูล ของ Weight และผลลัพธ์ที่ได้จากคานวณค่าเฉลี่ยน้าหนัก
" Weight1 = 40 กก.
" Weight2 = 50 กก.
" Weight3 = 60 กก.
3. ข้อมูลนาเข้า ( In Put )
ได้แก่ " Weight1, " Weight2, " Weight3
4. ชื่อตัวแปรที่ใช้
Weight1 = น้าหนักของนักเรียนคนที่ 1
Weight2 = น้าหนักของนักเรียนคนที่ 2
Weight3 = น้าหนักของนักเรียนคนที่ 3
Average = ค่าเฉลี่ยของน้าหนัก
5. ขั้นตอนวิธี/ลาดับงาน
- เริ่มต้น
- ป้อนข้อมูล น้าหนักนักศึกษา 3คน
- ป้อนข่อมูล จานวนทั้งหมด
- คานวณหาน้าหนักเฉลี่ย Average = (Weigth1+Weight2+Weight3)/3
- แสดงผลลัพธ์
- จบการทางาน
เขียนผังงาน ได้ดังนี้
start
Birth, Year
Age = Year - Birth
Age
stop
ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4
ม.วรรณพร เจริญแสนสวย หน้า 26
โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม
start
Weight1,Weight2, Weight3
Average = (Weight1+Weight2+Weight3)/3
Average
stop

More Related Content

What's hot

บทที่4 หลักการและวิธีการแก้ปัญหาด้วยเทคโนโลยีสารสนเทศ 3
บทที่4 หลักการและวิธีการแก้ปัญหาด้วยเทคโนโลยีสารสนเทศ 3บทที่4 หลักการและวิธีการแก้ปัญหาด้วยเทคโนโลยีสารสนเทศ 3
บทที่4 หลักการและวิธีการแก้ปัญหาด้วยเทคโนโลยีสารสนเทศ 3
Nataya Younyee
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
Passawan' Koohar
 
ง32101 เทคโนโลยีสารสนเทศ
ง32101 เทคโนโลยีสารสนเทศง32101 เทคโนโลยีสารสนเทศ
ง32101 เทคโนโลยีสารสนเทศ
giggle036
 
ใบความรู้ที่1.2
ใบความรู้ที่1.2ใบความรู้ที่1.2
ใบความรู้ที่1.2
Orapan Chamnan
 
ใบความรู้ที่ 9
ใบความรู้ที่ 9ใบความรู้ที่ 9
ใบความรู้ที่ 9
Rattana Wongphu-nga
 
ชั้นประถมศึกษาปีที่ 5
ชั้นประถมศึกษาปีที่ 5ชั้นประถมศึกษาปีที่ 5
ชั้นประถมศึกษาปีที่ 5
krunuy5
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์
Prae Toki
 
วิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ว
วิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ววิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ว
วิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ว
Thank Chiro
 
ใบงานเทคโนโลยีสารสนเทศ ม.2
ใบงานเทคโนโลยีสารสนเทศ ม.2ใบงานเทคโนโลยีสารสนเทศ ม.2
ใบงานเทคโนโลยีสารสนเทศ ม.2
Thawatchai Rustanawan
 
กระบวนการแก้ปัญหาด้วยคอมพิวเตอร์
กระบวนการแก้ปัญหาด้วยคอมพิวเตอร์กระบวนการแก้ปัญหาด้วยคอมพิวเตอร์
กระบวนการแก้ปัญหาด้วยคอมพิวเตอร์
kruood
 

What's hot (20)

การแก้ปัญหาด้วยด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยด้วยกระบวนการเทคโนโลยีสารสนเทศการแก้ปัญหาด้วยด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยด้วยกระบวนการเทคโนโลยีสารสนเทศ
 
บทที่4 หลักการและวิธีการแก้ปัญหาด้วยเทคโนโลยีสารสนเทศ 3
บทที่4 หลักการและวิธีการแก้ปัญหาด้วยเทคโนโลยีสารสนเทศ 3บทที่4 หลักการและวิธีการแก้ปัญหาด้วยเทคโนโลยีสารสนเทศ 3
บทที่4 หลักการและวิธีการแก้ปัญหาด้วยเทคโนโลยีสารสนเทศ 3
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
ง32101 เทคโนโลยีสารสนเทศ
ง32101 เทคโนโลยีสารสนเทศง32101 เทคโนโลยีสารสนเทศ
ง32101 เทคโนโลยีสารสนเทศ
 
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศการแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
 
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศการแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
 
ใบความรู้ที่2
ใบความรู้ที่2ใบความรู้ที่2
ใบความรู้ที่2
 
ใบความรู้ที่1.2
ใบความรู้ที่1.2ใบความรู้ที่1.2
ใบความรู้ที่1.2
 
คำอธิบายรายวิชา ง 32101 เทคโนโลยี 2
คำอธิบายรายวิชา ง 32101 เทคโนโลยี 2คำอธิบายรายวิชา ง 32101 เทคโนโลยี 2
คำอธิบายรายวิชา ง 32101 เทคโนโลยี 2
 
แผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office Excel
แผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office Excelแผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office Excel
แผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office Excel
 
ใบความรู้ที่ 9
ใบความรู้ที่ 9ใบความรู้ที่ 9
ใบความรู้ที่ 9
 
ชั้นประถมศึกษาปีที่ 5
ชั้นประถมศึกษาปีที่ 5ชั้นประถมศึกษาปีที่ 5
ชั้นประถมศึกษาปีที่ 5
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์
 
วิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ว
วิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ววิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ว
วิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ว
 
แผนการสอน Illurtrator CS4 เรื่อง เครื่องมือ Blend Tool
แผนการสอน Illurtrator CS4 เรื่อง เครื่องมือ Blend Toolแผนการสอน Illurtrator CS4 เรื่อง เครื่องมือ Blend Tool
แผนการสอน Illurtrator CS4 เรื่อง เครื่องมือ Blend Tool
 
ใบงานเทคโนโลยีสารสนเทศ ม.2
ใบงานเทคโนโลยีสารสนเทศ ม.2ใบงานเทคโนโลยีสารสนเทศ ม.2
ใบงานเทคโนโลยีสารสนเทศ ม.2
 
Com
ComCom
Com
 
Course Outline ม.5 ปี 2559
Course Outline ม.5 ปี 2559Course Outline ม.5 ปี 2559
Course Outline ม.5 ปี 2559
 
กระบวนการแก้ปัญหาด้วยคอมพิวเตอร์
กระบวนการแก้ปัญหาด้วยคอมพิวเตอร์กระบวนการแก้ปัญหาด้วยคอมพิวเตอร์
กระบวนการแก้ปัญหาด้วยคอมพิวเตอร์
 
แผนการเรียนรู้Ict
แผนการเรียนรู้Ictแผนการเรียนรู้Ict
แผนการเรียนรู้Ict
 

Similar to การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ

งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
nuknook
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
nuknook
 
ความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศ
Paweena Kittitongchaikul
 
กระบวนการสารสนเทศ [โหมดความเข้ากันได้]
กระบวนการสารสนเทศ [โหมดความเข้ากันได้]กระบวนการสารสนเทศ [โหมดความเข้ากันได้]
กระบวนการสารสนเทศ [โหมดความเข้ากันได้]
Paweena Kittitongchaikul
 
กระบวนการสารสนเทศ [โหมดความเข้ากันได้]
กระบวนการสารสนเทศ [โหมดความเข้ากันได้]กระบวนการสารสนเทศ [โหมดความเข้ากันได้]
กระบวนการสารสนเทศ [โหมดความเข้ากันได้]
Paweena Kittitongchaikul
 
ความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศ
Paweena Kittitongchaikul
 
ใบความรู้ที่1.2
ใบความรู้ที่1.2ใบความรู้ที่1.2
ใบความรู้ที่1.2
Orapan Chamnan
 
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้นC:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
-
 

Similar to การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ (20)

งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
ความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศ
 
ใบความรู้ การเขียนโปรแกรม
ใบความรู้ การเขียนโปรแกรมใบความรู้ การเขียนโปรแกรม
ใบความรู้ การเขียนโปรแกรม
 
กระบวนการสารสนเทศ [โหมดความเข้ากันได้]
กระบวนการสารสนเทศ [โหมดความเข้ากันได้]กระบวนการสารสนเทศ [โหมดความเข้ากันได้]
กระบวนการสารสนเทศ [โหมดความเข้ากันได้]
 
กระบวนการสารสนเทศ [โหมดความเข้ากันได้]
กระบวนการสารสนเทศ [โหมดความเข้ากันได้]กระบวนการสารสนเทศ [โหมดความเข้ากันได้]
กระบวนการสารสนเทศ [โหมดความเข้ากันได้]
 
ความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศ
 
ความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศ
 
Project Sky
Project SkyProject Sky
Project Sky
 
การแก้ปัญหาโดยช้เทคโนโลยีสารสนเทศ
การแก้ปัญหาโดยช้เทคโนโลยีสารสนเทศการแก้ปัญหาโดยช้เทคโนโลยีสารสนเทศ
การแก้ปัญหาโดยช้เทคโนโลยีสารสนเทศ
 
ใบความรู้ที่1.2
ใบความรู้ที่1.2ใบความรู้ที่1.2
ใบความรู้ที่1.2
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
 
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้นC:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
C:\Documents And Settings\Administrator\Desktop\Ch00 คอมพิวเตอร์เบื้องต้น
 
Sallai pro
Sallai proSallai pro
Sallai pro
 
คอม
คอมคอม
คอม
 
ใบงาน 2-8
ใบงาน 2-8ใบงาน 2-8
ใบงาน 2-8
 
ใบงานที่2-8
ใบงานที่2-8ใบงานที่2-8
ใบงานที่2-8
 
บทที่ 5
บทที่ 5บทที่ 5
บทที่ 5
 
Pbl3
Pbl3 Pbl3
Pbl3
 

การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ

  • 1. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 1 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ การถ่ายทอดความคิดในการแก้ปัญหาอย่างมีขั้นตอน ขั้นตอนการพัฒนาโปรแกรม การวิเคราะห์งาน การเขียนผังงาน ตัวอย่างการวิเคราะห์งานและผังงาน การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศอย่างมีประสิทธิภาพ ต้องทาเป็นขั้นตอนโดย มีวิธีการปฏิบัติ 4 ขั้นตอน ได้แก่ 1. การวิเคราะห์และกาหนดรายละเอียดของปัญหา 2. เลือกเครื่องมือและออกแบบขั้นตอนวิธี 3. การดาเนินการแก้ปัญหา 4. ตรวจสอบและการปรับปรุงวิธีการแก้ปัญหาให้เหมาะสม การวิเคราะห์และกาหนดรายละเอียดของปัญหา เป็นขั้นตอนแรกของการแก้ปัญหา เพื่อทาความเข้าใจกับปัญหา ซึ่งมีองค์ประกอบดังนี้ 1. สิ่งที่โจทย์ต้องการ ได้แก่ การวิเคราะห์จากโจทย์ว่าสิ่งที่โจทย์ต้องการนั้นคืออะไร สามารถ แยกได้ออมาเป็นรายละเอียดที่ชัดเจน 2. การระบุข้อมูลที่ต้องการส่งออก ได้แก่ การพิจารณาเป้าหมายหรือสิ่งที่ต้องหาคาตอบ 3. การระบุข้อมูลนาเข้า ได้แก่ การพิจารณาข้อมูลและเงื่อนไขที่กาหนดมาในปัญหา 4. การกาหนดตัวแปร ได้แก่ ตัวเก็บค่าต่าง ๆ ในการทางาน 5. การกาหนดวิธีประมวลผล ได้แก่ การพิจารณาขั้นตอนวิธีการได้มาซึ่งคาตอบ เลือกเครื่องมือและออกแบบขั้นตอนวิธี เป็นขั้นตอนการนาเอาข้อมูลที่ได้จากการวิเคราะห์มาทาความเข้าใจ เพื่อการวางแผนในการ แก้ปัญหา ซึ่งมีขั้นตอนต่อไปนี้ 1. เลือกเครื่องมือที่ใช้ในการแก้ปัญหา เลือกยุทธวิธีที่ใช้ในการแก้ปัญหา หรือที่เรียกว่า “ขั้นตอน วิธี” (Algorithm) 2. การออกแบบวิธีในการแก้ปัญหา ควรใช้แผนภาพหรือเครื่องมือในการแสดงขั้นตอนการ ทางานเพื่อให้ง่าต่อความเข้าใจ เช่น ผังงาน (Flowchart) รหัสจาลอง (Pseudo Code) การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ เนื้อหา
  • 2. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 2 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม ขั้นตอนการพัฒนาโปรแกรม การวิเคราะห์ปัญหา การถ่ายทอดความคิดในการแก้ปัญหาอย่างมีขั้นตอน การดาเนินการแก้ปัญหา เป็นขั้นตอนที่ต้องลงมือแก้ไขตามเครื่องมือที่เลือกไว้ โดยใช้โปรแกรมสาเร็จหรือการใช้ ภาษาคอมพิวเตอร์เขียนโปรแกรมแก้ปัญหา ตรวจสอบและการปรับปรุงวิธีการแก้ปัญหาให้เหมาะสม เป็นขั้นตอนการตรวจสอบว่าขั้นตอนวิธีที่สร้างขึ้น สอดคล้องกับรายละเอียดของปัญหาหรือไม่ ถ้า มีข้อบกพร่องก็ต้องทาการปรับปรุงวิธีการเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ทาได้ 2 ลักษณะ ดังนี้ 1. การใช้ข้อความหรือคาบรรยาย รหัสจาลอง (Pseudo Code) 2. การใช้สัญลักษณ์ (Flowchart) ในการเขียนโปรแกรมคอมพิวเตอร์ เขียนโปรแกรมจะต้องเข้าใจหลักเกณฑ์ของภาษา โปรแกรม และระบบการทางานของคอมพิวเตอร์ ว่ามีโครงสร้างและวิธีการใช้คาสั่งอย่างไร ซึ่ง ในการเขียนโปรแกรมคอมพิวเตอร์ มีหลักเกณฑ์การเขียนโปรแกรม ประกอบด้วย 5 ขั้นตอน ดังนี้คือ 1. ทาความเข้าใจและวิเคราะห์ปัญหา 2. กาหนดแผนในการแก้ปัญหา 3. เขียนโปรแกรมตามแผนที่กาหนด 4. ทดสอบและตรวจสอบความถูกต้องของโปรแกรม 5. นาโปรแกรมที่ผ่านการทดสอบไปใช้งาน
  • 3. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 3 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม ทาความเข้าใจและวิเคราะห์ปัญหา ผู้เขียนโปรแกรมจะต้องทาความเข้าใจและทาการวิเคราะห์ปัญหาเป็นลาดับแรก เพราะการทาความเข้าใจและวิเคราะห์ปัญหาเป็นสิ่งที่สาคัญโดยที่ผู้เขียนโปรแกรมจะต้อง วิเคราะห์ปัญหาร่วมกับนักวิเคราะห์ระบบว่าโจทย์ต้องการผลลัพธ์อะไร และการให้ได้มาซึ่ง ผลลัพธ์นั้น ต้องป้อนข้อมูลอะไรบ้าง และเมื่อป้อนข้อมูลเข้าไปแล้วจะทาการประมวลผล อย่างไร สิ่งเหล่านี้ผู้เขียนโปรแกรมจะต้องทาความเข้าใจให้ถูกต้อง เพราะถ้าผู้เขียนโปรแกรม วิเคราะห์ปัญหาไม่ถูกต้อง ผลลัพธ์ที่ได้ออกมาก็อาจจะไม่ตรงกับความต้องการของโจทย์ได้ รูปแบบการวิเคราะห์ปัญหา 1. วัตถุประสงค์ของงาน เป็นการหาคาตอบว่า โจทย์ต้องการผลลัพธ์อะไร 2 ออกแบบผลลัพธ์ ( Output ) เป็นการออกแบบจอภาพหรือผลลัพธ์ของโปรแกรมเมื่อเขียนเสร็จแล้ว ต้องการให้มี รูปแบบอย่างไร แสดงข้อมูลอะไรบ้าง 3 ข้อมูลนาเข้า ( Input ) ต้องวิเคราะห์ว่า ผลลัพธ์ที่ต้องการนั้น ต้องป้อนข้อมูลอะไรเข้าไป เพื่อให้โปรแกรมที่ เขียนขึ้นมาประมวลผล 4 ชื่อตัวแปรที่ใช้ เป็นการกาหนดข้อมูลต่าง ๆ ในรูปแบบการแทนข้อมูลด้วยสัญลักษณ์หรือชื่อตัวแปร โดยตั้งชื่อให้สอดคล้องกับข้อมูลที่เกี่ยวข้อง เช่น ความกว้างของสี่เหลี่ยม กาหนดตัวแปรใช้แทนข้อมูล ความกว้างของสี่เหลี่ยมชื่อ width เป็นต้น 5 ขั้นตอนวิธีการประมวลผล/ลาดับงาน เป็นการกาหนดวิธีการหรือขั้นตอนเพื่อให้คอมพิวเตอร์ทางาน เป็นขั้น ๆ ตามลาดับ ตัวอย่าง จงเขียนวิเคราะห์ เพื่อเขียนโปรแกรมคานวณหาเงินได้สุทธิต่อเดือนของพนักงาน หลังจากหักค่าใช้ ภาษี ณ ที่จ่าย 10% และค่าประกันสังคม 5% 1. วัตถุประสงค์ของงาน คานวณหารายได้สุทธิของพนักงาน
  • 4. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 4 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม การเขียนผังงาน (Flowchart) 2. ออกแบบผลลัพธ์ ( Output ) 3. ข้อมูลนาเข้า ( Input ) ได้แก่ เงินเดือน 4. ชื่อตัวแปรที่ใช้ salary แทนข้อมูล เงินเดือน tax เก็บข้อมูล ภาษี ณ ที่จ่าย 10% ที่คานวณได้ SocialPayment เก็บข้อมูล ค่าปรันสังคม 5% ที่คานวณได้ Net เก็บข้อมูล รายได้สุทธิของพนักงาน 5. ขั้นตอน/ลาดับงาน - เริ่มการทางาน - พิมพ์หัวตาราง - ป้อนข้อมูล เงินเดือนของพนักงาน (salary) - คานวณหักภาษี 10% tax = salary * 0.1 - คานวณค่าประกันสังคม SocialPayment = salary * 0.05 - คานวณ หารายได้สุทธิของพนักงาน Net = salary – tax – SocialPayment - แสดงผลลัพธ์ tax, SocialPayment, Net - จบการทางาน หลังจากทาความเข้าใจและวิเคราะห์ปัญหาโจทย์จนได้ข้อสรปุว่าโจทย์ต้องการอะไรแล้ว ผู้เขียนโปรแกรมก็จะทาการกาหนดแผนในการแก้ไขปัญหาโดยการเขียนผังงาน (Flowchart) ซึ่งการเขียน ผังงานคือการเขียนแผนภาพที่เป็นลาดับ เพื่อแสดงขั้นตอนการทางานของโปรแกรมเพื่อให้ง่ายต่อการทา ความเข้าใจ การเขียนผังงานมี 3 แบบคือ แบบเรียงลาดับ(Sequential) แบบมีการกาหนดเงื่อนไข (Condition) และแบบมีการทางานวนรอบ(Looping) COMPUTE INCOME OF EMPLOYEE ------------------------------------------------------------- เงินเดือน : ………………. - หักภาษี ณ ที่จ่าย 10% : …………….…… - หักค่าประกันสังคม 5% : …………….….. -------------------------------------------------------------- เงินได้สุทธิ = ………………………
  • 5. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 5 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม ผังงานระบบ (System Flowchart) เป็นผังแสดงขั้นตอนการทางานภายในระบบ คาว่าระบบงาน หมายถึงส่วนต่างๆ ที่เกี่ยวข้องกับ งานทั้งหมด ทั้งวัสดุ เครื่องจักร อุปกรณ์ และ บุคลากร แสดงขั้นตอนเริ่มต้นว่ามีเอกสารเบื้องต้นเริ่มจาก ส่วนใดของระบบงาน ผ่านไปยังหน่วยงานใด มีกิจกรรมอะไรในหน่วยงานนั้น ส่งงานต่อไปที่ใดจึงจะเสร็จ สิ้น บางส่วนจะเกี่ยวกับคน บางส่วนเกี่ยวกับคอมพิวเตอร์ ต้องนาส่วนที่เกี่ยวกับคอมพิวเตอร์มาเขียน โปรแกรม ทั้งแสดงรายละเอียดการทางาน แยกเป็น Program Flowchart ผังงานโปรแกรม (Program Flowchart) เป็นผังแสดงลาดับขั้นตอนการทางานในโปรแกรม มีส่วนแสดงการทางานในขั้นการรับข้อมูล การ คานวณหรือการประมวลผล และการแสดงผลลัพธ์ เรียกอีกอย่างหนึ่งได้ว่า ผังการเขียนโปรแกรม หรือ ผัง งาน การเขียนผังงานที่ดี * ใช้สัญลักษณ์ตามที่กาหนดไว้ * ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรือจากซ้ายไปขวา * คาอธิบายในภาพควรสั้นกะทัดรัด และเข้าใจง่าย * ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก * ไม่ควรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน * ผังงานควรมีการทดสอบความถูกต้องของการทางานก่อนนาไปเขียนโปรแกรม ประโยชน์ของผังงาน 1. ทาให้เข้าใจและแยกแยะปัญหาต่าง ๆ ได้ง่ายขึ้น 2. ผู้เขียนโปรแกรมมองเห็นลาดับการทางาน รู้ว่าสิ่งใดควรทาก่อน สิ่งใดควรทาหลัง 3. สามารถหาข้อผิดพลาดของโปรแกรมได้ง่าย 4. ทาให้ผู้อื่นเข้าใจการทางานได้ง่ายกว่าการดูจาก source code 5. ไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ผู้อื่นสามารถเรียนรู้และเข้าใจได้ง่าย ข้อจากัดของผังงาน ผู้เขียนโปรแกรมบางคนไม่นิยมเขียนผังงานก่อนการเขียนโปรแกรม เพราะเห็นว่า เสียเวลา นอกจากนี้แล้ว ยังมีข้อจากัดอื่น ๆ อีก คือ 1. ผังงานเป็นการสื่อความหมายระหว่างบุคคลกับบุคคลมากกว่าที่สื่อความหมาย ระหว่างบุคคลกับเครื่อง เพราะผังงานไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ทาให้เครื่องไม่ สามารถรับและเข้าใจได้ว่าในผังงานนั้นต้องการให้ทาอะไร ผังงาน (Flowchart) คือ รูปภาพหรือสัญลักษณ์ ที่ใช้เขียนแทนคาอธิบาย ข้อความ หรือคาพูดที่ใช้ในอัลกอริทึม เพราะการที่จะเข้าใจขั้นตอนได้ง่ายและตรงกันนั้น การใช้คาพูด หรือข้อความอาจทาได้ยากกว่าการใช้รูปภาพหรือสัญลักษณ์ ผังงานสามารถแบ่งได้เป็น 2 ประเภทใหญ่ ๆ คือ 1. ผังงานระบบ (System Flowchart) 2. ผังงานโปรแกรม (Program Flowchart)
  • 6. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 6 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม 2. ในบางครั้ง เมื่อพิจารณาจากผังงาน จะไม่สามารถทราบได้ว่า ขั้นตอนการทางานใด สาคัญกว่ากัน เพราะทุก ๆ ขั้นตอนจะใช้รูปภาพหรือสัญลักษณ์ในลักษณะเดียวกัน 3. การเขียนผังงานเป็นการสิ้นเปลือง เพราะจะต้องใช้กระดาษและอุปกรณ์อื่น ๆ เพื่อ ประกอบการเขียนภาพ ซึ่งไม่สามารถเขียนด้วยมืออย่างเดียวได้ และในบางครั้ง การเขียนผังงานอาจจะ ต้องใช้กระดาษมากกว่า 1 แผ่น หรือ 1 หน้า ซึ่งถ้าเป็นข้อความอธิบายอาจะใช้เพียง 2-3 บรรทัดเท่านั้น สัญลักษณ์ของผังงาน(Flowchart Symbol) สัญลักษณ์ ความหมาย Terminator ใช้แสดงจุดเริ่มต้นและจุดสิ้นสุดของโปรแกรม Process ใช้ในการประมวลผลข้อมูล กาหนดค่า หรือการคานวณทาง คณิตศาสตร์ Input/output หรือ I/O ใช้ในการรับข้อมูล แสดงผลข้อมูลโดยไม่ระบุอุปกรณ์ Manual Input ใช้ในการรับข้อมูลจากแป้นพิมพ์ Decision Symbol ใช้ในการเปรียบเทียบเงื่อนไขหรือตัดสินใจ Display ใช้เมื่อต้องการระบุให้แสดงข้อมูลบนจอภาพ Document Symbol ใช้เมื่อต้องการระบุให้แสดงข้อมูลบนเครื่องพิมพ์ Preparation การเตรียมทางานลาดับถัดไป Predefined Process โปรแกรมย่อย หรือโมดูลเริ่มทางานหลังจากจบคาสั่งใน โปรแกรมย่อยแล้ว จะกลับมาทาคาสั่งต่อไป Online Storage แหล่งเก็บข้อมูลออนไลน์ หรือหน่วยความจาสารอง Connector หรือ On-page Connector จุดเชื่อมผังงานในหน้าเดียวกัน Connector หรือ Off-page Connector จุดเชื่อมผังงานที่อยู่หน้าต่างกัน
  • 7. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 7 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม หลักในการเขียนผังงาน การเขียนผังงานนั้น ไม่มีวิธีการที่แน่ชัดว่าจะต้องใช้คาสั่งอะไรบ้าง ทั้งนี้ขึ้นอยู่กับลักษณะ ของงานที่จะทา ซึ่งลักษณะงานจะมีอยู่ 3 ขั้นตอน คือ การรับข้อมูล (Input) การประมวลผล (Process) และการแสดงผลลัพธ์ (Output) การศึกษาลาดับขั้นตอนในการทางานของผังงาน ให้สังเกตจากลูกศรที่ แสดงทิศทางการไหลของข้อมูลในผังงานเป็นหลักในการเขียนผังงาน จะต้องคานึงถึงสิ่งต่าง ๆ ต่อไปนี้ 1. ใช้สัญลักษณ์ที่มีรูปแบบเป็นมาตรฐาน 2. ขนาดของสัญลักษณ์ขึ้นอยู่กับความเหมาะสม 3. ควรเขียนทิศทางการไหลของข้อมูล เริ่มจากบนลงล่าง หรือจากซ้ายไปขวา และควร ทาหัวลูกศรกากับทิศทางด้วย 4. การเขียนคาอธิบายให้เขียนภายในสัญลักษณ์ ใช้ข้อความที่เข้าใจง่าย สั้นและชัดเจน 5. พยายามให้เกิดจุดตัดน้อยที่สุด หรืออาจใช้สัญลักษณ์ที่เรียกว่า "ตัวเชื่อม" (Connector) แทน เพื่อหลีกเลี่ยงข้อผิดพลาดที่อาจเกิดขึ้น 6. หากเป็นไปได้ควรเขียนผังงานให้จบภายในหน้าเดียวกัน 7 . ผังงานที่ดีควรเป็นระเบียบเรียบร้อย สะอาด ชัดเจน เข้าใจและติดตามขั้นตอนได้ง่าย 8. จุดเริ่มต้นและสิ้นสุดของงาน ควรมีเพียงจุดเดียว รูปแบบของผังงาน ผังงาน มีรูปแบบที่จากัดอยู่ 3 แบบด้วยกัน คือ 1. รูปแบบเรียงลาดับ (Sequence Structure) เป็นการทางานแบบเรียงลาดับ ตั้งแต่ต้นจนจบ เป็นรูปแบบง่าย ๆ ไม่มีการ เปรียบเทียบใด ๆ มีทิศทางการไหลของข้อมูลเพียงทางเดียว ซึ่งอาจจะเป็นแบบบนลงล่าง หรือ จากซ้าย ไปขวาก็ได้ เช่น การให้คานวณหาพื้นที่ของสี่เหลี่ยมผืนผ้า จะเขียนเป็นผังงานได้ดังรูป จากผังงาน เราสามารถเขียนโปรแกรมได้ ตาม syntax ของภาษาที่ใช้ ตัวอย่างโปรแกรม ข้างล่างนี้ จะเป็นการเขียนโปรแกรมด้วยภาษา C start a,b c = a + b c stop
  • 8. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 8 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม #include void main(void) { float a, b, c; printf("Enter Width : "); scanf("%f",&a); printf("Enter Higth : "); scanf("%f",&b); c = a * b; printf("Area = %.2f",c); } 2. รูปแบบที่มีการกาหนดเงื่อนไขหรือให้เลือก (Decision Structure) รูปแบบนี้จะยากกว่ารูปแบบแรก เพราะจะมีการสร้างเงื่อนไขเพื่อให้เลือก ทางาน ถ้าหากเลือกทางใดก็จะไปทางานในเงื่อนไขที่เลือก ซึ่งเงื่อนไขที่กาหนดขึ้นนี้จะเขียนอยู่ใน สัญลักษณ์ "การตัดสินใจ" เช่น การคานวณว่าตัวเลขที่รับมานั้นเป็นจานวนคี่หรือคู่ จะเขียนเป็นผังงานได้ ดังรูป และจากผังงานเราสามารถเขียนเป็นโปรแกรมได้ โดยใช้คาสั่งเกี่ยวกับการตัดสินใจ หรือการเปรียบเทียบ เช่น if - else , switch ตามภาษาที่ท่านใช้เขียนโปรแกรม ในที่นี้เป็นตัวอย่างการใช้ if - else ของภาษา C start a odd stop a mod 2 ==1 even Yes No
  • 9. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 9 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม start stop i > 10 sum sum=0 i = 1 sum=sum+1 i ++ No Yes o #include void main(void) { int a, b; printf ("Enter Numeric (1 - N) : "); scanf ("%d",&a); if ((a%2) == 1) printf("%d is Odd",a); else printf("%d is Even",a); } 3. รูปแบบที่มีการทางานแบบวนรอบ หรือ loop (Iteration Structure) การทางานของรูปแบบนี่ จะเป็นการทางานซ้า ๆ กัน หลาย ๆ ครั้งเท่าที่เรา ต้องการ (หรืออาจจะทาเพียงครั้งเดียว หรืออาจจะไม่มีการทางานเลยก็ได้) ซึ่งการทางานนี้จะขึ้นอยู่กับ เงื่อนไขที่กาหนดให้ และจะมีการนาเอาลักษณะของการตัดสินใจมาช่วยว่าจะมีการทางานซ้าอีกหรือไม่ เช่น การหาผลบวกของตัวเลข ตั้งแต่ 1-10 จะเขียนเป็นผังงานได้ดังรูป จากผังงานเราสามารถเขียนเป็นโปรแกรมได้ โดยใช้คาสั่งการวนลูป ในที่นี้จะเป็นตัวอย่าง โปรแกรมการใช้ do... while ในภาษา C ซึ่งสามารถที่จะนาไปปรับให้เข้ากับภาษาที่ท่านใช้เขียนได้ ดัง ตัวอย่าง
  • 10. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 10 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม ตัวอย่าง การใช้ do.... While #include <stdio.h> void main(void) { int i; int sum; i = 1; sum = 0; do { sum = sum + i; i++; } while (i <=10); printf("sum (1-10) = %d",sum); } ผังงานกับชีวิตประจาวัน การทางานหลายอย่างในชีวิตประจาวัน จะมีลักษณะที่เป็นลาดับขั้นตอน ซึ่งก่อนที่ ท่านจะได้ศึกษาวิธีการเขียนผังงานโปรแกรม จะแนะนาให้ท่านลองฝึกเขียนผังงานที่แสดงการทางานใน ชีวิตประจาวันวันก่อนเพื่อเป็นการสร้างความคุ้นเคยกับสัญลักษณ์รูปภาพต่าง ๆ ที่จะมีใช้ในผังงาน โปรแกรมต่อไป ดังตัวอย่าง
  • 11. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 11 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม ตัวอย่าง เขียนผังงานแสดงวิธีการรับประทานยา ที่แบ่งขนาดรับประทานตามอายุของผู้ทานดังนี้ อายุมากกว่า 10 ปี รับประทานครั้งละ 2 ช้อนชา อายุมากกว่า 3 ปี ถึง 10 ปี รับประทานครั้งละ 1 ช้อนชา อายุมากกว่า 1 ปี ถึง 3 ปี รับประทานครั้งละ 1/2 ช้อนชา แรกเกิดถึง 1 ปี ห้ามรับประทาน โครงสร้างการทางานแบบมีการเลือก ( Selection ) เป็นโครงสร้างที่ใช้การตรวจสอบเงื่อนไขเพื่อการทางานอย่างใดอย่างหนึ่ง โดยโครงสร้างแบบนี้จะ มีอยู่ด้วยกัน 2 รูปแบบ คือ IF - THEN - ELSE และ IF - THEN
  • 12. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 12 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม โครงสร้างแบบ IF - THEN - ELSE เป็นโครงสร้างที่จะทาการเปรียบเทียบเงื่อนไขที่ใส่ไว้ใน ส่วนหลังคาว่า IF และเมื่อได้ผลลัพธ์จากการเปรียบเทียบก็จะเลือกว่าจะทางานต่อในส่วนใด กล่าวคือถ้า เงื่อนไขเป็นจริง ( TRUE ) ก็จะเลือกไปทางานต่อที่ส่วนที่อยู่หลัง THEN แต่ถ้าเงื่อนไขเป็นเท็จ ( FALSE ) ก็จะไปทางานต่อในส่วนที่อยู่หลังคาว่า ELSE แต่ถ้าสาหรับโครงสร้างแบบ IF - THEN เป็นโครงสร้างที่ไม่มี การใช้ ELSE ดังนั้น ถ้ามีการเปรียบเทียบเงื่อนไขที่อยู่หลัง IF มีค่าเป็นจริง ก็จะไปทาส่วนที่อยู่หลัง Then แต่ถ้าเงื่อนไขเป็นเท็จ ก็จะไปทาคาสั่งที่อยู่ถัดจาก IF - THEN แทน
  • 13. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 13 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม ตัวอย่าง การเขียนผังงานอ่านค่าข้อมูลเข้ามาเก็บไว้ในตัวแปร A และ B แล้วทาการเปรียบเทียบในตัวแปร ทั้งสอง โดยมีเงื่อนไขดังนี้ ถ้า A มากกว่า B ให้คานวณหาค่า A - B และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ RESULT ถ้า A น้อยกว่าหรือเท่ากับ B ให้คานวณหาค่า A + B และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ RESULT
  • 14. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 14 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม ตัวอย่าง การเขียนผังงานเปรียบเทียบค่าข้อมูลที่เก็บอยู่ในตัวแปร X โดยมีเงื่อนไขดังนี้ ถ้า X > 0 ให้พิมพ์คาว่า " POSITIVE NUMBER " ถ้า X < 0 ให้พิมพ์คาว่า " NEGATIVE NUMBER " ถ้า X = 0 ให้พิมพ์คาว่า " ZERO NUMBER "
  • 15. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 15 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม โครงสร้างการทางานแบบมีการทางานซ้า เป็นโครงสร้างที่มีการประมวลผลกลุ่มคาสั่งซ้าหลายครั้ง ตามลักษณะเงื่อนไขที่กาหนด อาจเรียก การทางานซ้าแบบนี้ได้อีกแบบว่า การวนลูป ( Looping ) โครงสร้างแบบการทางานซ้านี้จะมีอยู่ 2 ประเภท คือ *DO WHILE *DO UNTIL *DO WHILE เป็นโครงสร้างที่มีการทดสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงก็จะเข้ามาทางานในกลุ่มคา สั่งที่ต้องทาซ้า ซึ่งเรียกว่าการเข้าลูป หลังจากนั้นก็จะย้อนกลับไปตรวจสอบเงื่อนไขใหม่อีก ถ้าเงื่อนไข ยังคงเป็นจริงอยู่ ก็ยังคงต้องทากลุ่มคาสั่งซ้าหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไขเป็นเท็จ ก็จะออกจาก ลูปไปทาคาสั่งถัดไปที่อยู่ถัดจาก DO WHILE หรืออาจเป็นการจบการทางาน *DO UNTIL เป็นโครงสร้างการทางานแบบทางานซ้าเช่นกัน แต่มีการทางานที่แตกต่างจาก DO WHILE คือจะมีการเข้าทางานกลุ่มคาสั่งที่อยู่ภายในลูปก่อนอย่างน้อย 1 ครั้ง แล้วจึงจะไปทดสอบเงื่อนไข ถ้าเงื่อนไขเป็นเท็จก็จะมีการเข้าทากลุ่มคาสั่งที่ต้องทาซ้าอีก หลังจากนั้นก็จะย้อนกลับไปตรวจสอบเงื่อนไข ใหม่อีก ถ้าเงื่อนไขยังคงเป็นเท็จอยู่ ก็ยังต้องทากลุ่มคาสั่งซ้าหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไขเป็นจริง จึงจะออกจากลูปไปทาคาสั่งถัดจาก UNTIL หรืออาจเป็นการจบการทางาน
  • 16. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 16 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม สรุปข้อแตกต่างระหว่าง DO WHILE และ DO UNTIL มีดังนี้ 1. DO WHILE ในการทางานครั้งแรกจะต้องมีการตรวจสอบเงื่อนไขก่อนทุกครั้ง ก่อนที่จะมีการ เข้ลูปการทางาน 2. DO UNTIL การทางานครั้งแรกจะยังไม่มีการตรวจสอบเงื่อนไข แต่จะเข้าไปทางานในลูปก่อน อย่างน้อย 1 ครั้งแล้วจึงจะไปตรวจสอบเงื่อนไข 3. DO WHILE จะมีการเข้าไปทางานในลูปก็ต่อเมื่อตรวจสอบเงื่อนไขแล้วพบว่า เงื่อนไขเป็นจริง แต่เมื่อพบว่าเงื่อนไขเป็นเท็จ ก็จะออกจากลูปทันที 4. DO UNTIL จะมีการเข้าไปทางานในลูปก็ต่อเมื่อตรวจสอบเงื่อนไขแล้วพบว่า เงื่อนไขเป็นเท็จ แต่เมื่อพบว่าเงื่อนไขเป็นจริง ก็จะออกจากลูปทันที
  • 17. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 17 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม ตัวอย่าง จงเขียนผังงานแสดงการเพิ่มของข้อมูลตัวเลขที่เก็บอยู่ในหน่วยความจาที่แอดเดรส 1 โดยที่ค่า เริ่มต้นจาก 0 ให้ทาการเพิ่มค่าทีละ 1 เรื่อยไปจนกระทั่ง J มีค่าข้อมูลมากกว่า 100 จึงหยุดการทางาน ตัวอย่างนี้ เป็นตัวอย่างการทางานแบบทาซ้า ซึ่งจะสามารถแสดงการเขียนได้ทั้งแบบ DO WHILE และ DO UNTIL ดังนี้
  • 18. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 18 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม ตัวอย่างการเขียน Flowchart เราต้องการเขียน Flowchart เพื่อคานวณภาษีที่พนักงานต้องชาระ อัตราภาษี 10% Flowchart ดังกล่าวกาหนดให้ผู้ใช้ป้อนค่าเงินเดือน (salary) แล้วเครื่องจะทาการคานวณ ภาษี (tax) 10% ให้โดย อัตโนมัติ และจะพิมพ์ค่า salary กับ tax Output ที่เราต้องการก็คือ salary และ tax (การสั่งพิมพ์ขึ้นอยู่ ที่เราว่าเราต้องการให้พิมพ์อะไร ไม่จาเป็นต้องพิมพ์ salary, tax ตามตัวอย่างก็ได้ เราอาจสั่งพิมพ์ tax อย่างเดียวก็ได้ Input คือสิ่งที่ผู้ใช้ต้องป้อนให้ระบบ จากตัวอย่างก็คือ salary เพราะหากผู้ใช้ไม่ป้อน salary ระบบจะคานวณ tax ไม่ได้ ส่วนอัตราภาษี 10% ผู้ใช้ไม่ต้องป้อนเพราะมีการกาหนด มาอยู่แล้วว่า ภาษีคือ 10% ระบบไม่จาเป็นต้องถามผู้ใช้ เพราะฉะนั้นอัตราภาษี 10% จึงไม่ใช่ input หากจะสรุปง่ายๆ input ก็คือสิ่งที่เราต้องถามผู้ใช้ ส่วนอัตราภาษีคือ ค่าคงที่ ซึ่งเราจะกาหนดไว้ในโปรแกรมเลย โดยผู้ใช้ไม่ ต้องป้อน หากเราต้องการเขียน Flowchart ให้บวกเลข 1 ถึง 10 จะพบว่า Flowchart ดังกล่าวไม่มี input เลยเพราะ flow ดังกล่าวไม่จาเป็นต้องถามผู้ใช้ ดังรูป แต่หากเราต้องการเขียน Flowchart ให้บวก เลขจานวนที่หนึ่ง ถึง เลขจานวนที่สอง เราจะพบว่าผู้ใช้จาเป็นต้องบอกเราว่า จานวนที่หนึ่ง คือเลขอะไร และ จานวนที่สอง คือเลขอะไร เพราะฉะนั้น input คือ first (เลขจานวนที่หนึ่ง) และ last (เลขจานวนที่ สอง) ดังรูป
  • 19. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 19 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม Iteration (การทาซ้า) Flowchart หากเราต้องการให้คานวณคนที่สอง สาม สี่ … เราจะต้องสั่ง ให้กลับมาทางานดังรูป
  • 20. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 20 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม ให้สังเกตว่า flowchart ดังกล่าวไม่มีทางออกจาก loop ได้เลย นั่นหมายถึงหลังจากคานวณ ภาษีเสร็จเครื่องจะรอรับค่า salary คนต่อไปไม่มีวันสิ้นสุด คาถามที่เกิดขึ้นก็คือ เมื่อไหร่ที่เราต้องการออกจาก loop คาตอบก็คือ เมื่อคานวณภาษีให้ พนักงานทุกคนครบแล้ว วิธีการที่เราจะบอกระบบว่าพนักงานหมดแล้วเราสามารถบอกได้โดย “ถ้าเรา input ค่า salary เป็น 0 หมายถึงพนักงานหมดแล้ว นั่นคือให้ออกจาก loop” (ที่ใช้เป็น 0 เพราะไม่มี พนักงานคนใดที่มีเงินเดือนเท่ากับ 0 บาท) ซึ่งเราเรียกค่าดังกล่าวว่าค่า dummy ดังได้กล่าวไว้ต้นแล้วว่า การเลือกใช้ loop มีให้เลือกใช้สองชนิดคือ DO WHILE และ DO UNTIL ซึ่ง DO WHILE จะทาการเช็ค เพื่อออกจาก loop ที่ต้น loop ในขณะที่ DO UNTIL เช็คปลาย loop สังเกตว่า การเช็ค ณ ต้น loop คือ การเช็ค ก่อนมี process ใดๆทั้งสิ้น (DO WHILE) ในขณะที่การเช็ค ณ ปลาย loop คือให้มี process ทุกอย่างก่อนแล้วค่อยเช็ค (DO UNTIL) โดยปกติแล้วเราจะใช้ DO WHILE หรือ DO UNTIL ก็ได้ (แต่มีบางกรณีที่จาเป็นต้องใช้ DO WHILE หรือ DO UNTIL) จาก flowchart รูปที่ 11 หากเราใช้ DO UNTIL จะได้ flowchart ดังรูป
  • 21. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 21 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม จะเห็นว่าเงื่อนไขออกจาก loop จะต้องเป็นจริง และการเช็คออกจาก loop จะอยู่ ณ ตาแหน่ง สุดท้ายของ loop นอกจากนี้การที่ต้องมี input salary เพิ่มขึ้นมาอีกหนึ่ง process และไว้อยู่หน้าการ เช็คเพื่อออกจาก loop เพราะว่า เมื่อ ผู้ใช้ใส่ค่า 0 มา ระบบจะทาการออกจาก loop ทันที เพราะหากไว้ ตาแหน่งอื่นระบบอาจจะมีการ print หรือคานวณ tax ซึ่งเราไม่ต้องการให้ทา Flowchart แสดงการใช้ DO WHILE loop ให้สังเกตุว่า การเช็คเพื่อที่จะออกจาก loop อยู่ต้น loop และเงื่อนไขเพื่อที่จะออกจาก loop จะเป็นเท็จ (เพราะฉนั้น เงื่อนไขจึงต้องเป็น salary > 0) ใน Flowchart จะมีการ input Salary อยู่สองตาแหน่งคือบนสุด และใน loop ณ ตาแหน่ง ล่างสุด input Salary ซึ่งอยู่บนสุดมีไว้เพื่อ input ค่า salary คนแรก เท่านั้น สาหรับค่า salary คน ต่อๆมา จะถูก input จาก input salary ที่อยู่ใน loop สาเหตุที่เราไม่สามารถเขียน flowchart ให้วน กลับไป input salary คนต่อๆมาดังรูปที่ 14 แม้ว่าจะสามารถทางานได้ถูกต้อง เนื่องจากจะผิดกฏ DO WHILE ซึ่งกาหนดไว้ว่า การเช็คเพื่อออกจาก loop จะต้องอยู่ต้น loop
  • 22. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 22 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม ตัวอย่างการวิเคราะห์ปัญหาและเขียนผังงาน โจทย์ปัญหา ข้อที่ 1 จงเขียนวิเคราะห์ ผังงานเพื่อเขียนโปรแกรมคานวณพื้นที่ สี่เหลี่ยม ผืนผ้า จานวน 1 รูป 1. วัตถุประสงค์ของงาน คานวณหาพื้นที่ สี่เหลี่ยมผืนผ้า 2. ผลลัพธ์ ( Output ) แสดงผลข้อมูล ของ ด้านยาว และด้านสูง และผลลัพธ์ที่ได้จากคานวณหาพื้นที่ 3. ข้อมูลนาเข้า ( Input ) ได้แก่ Width (กว้าง) 5 CM Long (ยาว) 4 CM 4. ชื่อตัวแปรที่ใช้ Width = กว้าง Long = ยาว Area = พื้นที่สี่เหลี่ยมผืนผ้า 5. ขั้นตอน/ลาดับงาน - เริ่มต้น - ป้อนข้อมูล ความยาวด้านของสี่เหลี่ยมผืนผ้า - ป้อนข้อมูล ความสูง - คานวณหาพื้นที่สี่เหลี่ยมผืนผ้า Area = Width x Long - แสดงผลลัพธ์ - จบการทางาน
  • 23. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 23 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม เขียน Flowchart ได้ดังนี้ โจทย์ปัญหา ข้อที่ 2 จงเขียนวิเคราะห์ งานเพื่อเขียนโปรแกรมคานวณพื้นที่ สี่เหลี่ยมจตุรัส จานวน 1 รูป 1. วัตถุประสงค์ของงาน คานวณหาพื้นที่ สี่เหลี่ยมจตุรัส 2. ผลลัพธ์ ( Output ) แสดงผลข้อมูล ของ ด้าน และผลลัพธ์ที่ได้จากคานวณหาพื้นที่ Width = 4 CM Area = 16 3. ข้อมูลนาเข้า ( Input ) ได้แก่ ความยาวของด้าน 4. ชื่อตัวแปรที่ใช้ Width = ความยาวด้านของสี่เหลี่ยมจตุรัส Area = พื้นที่สี่เหลี่ยมจตุรัส 5. ขั้นตอนวิธี/ลาดับงาน - เริ่มต้น - ป้อนข้อมูล ด้าน - คานวณหาพื้นที่สี่เหลี่ยมจัตุรัส Area = Width x Width - แสดงผลลัพธ์ - จบการทางาน start Width, Long Area = Width * Long Area stop
  • 24. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 24 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม เขียน Flowchart ได้ดังนี้ โจทย์ปัญหา ข้อที่ 3 จงเขียนวิเคราะห์ งานเพื่อเขียนโปรแกรมคานวณหาอายุ โดยข้อมูล ปีเกิดเป็นค.ศ. 1989 1. วัตถุประสงค์ของงาน คานวณหาหาอายุ 2. ผลลัพธ์ ( Output ) แสดงผลข้อมูล ของอายุ Birth = 1989 Year = 2010 Age = 21 3. ข้อมูลนาเข้า ( In Put ) ได้แก่ Year และ Birth 4. ชื่อตัวแปรที่ใช้ Birth = ปีเกิด Year = ปีปัจจุบัน Age = อายุ 5. ขั้นตอนวิธี/ลาดับงาน - เริ่มต้น - ป้อนข้อมูล ปีเกิด - ป้อนข้อมูล ปีปัจจุบัน - คานวณหาอายุ Age = Year - Birth - แสดงผลลัพธ์ - จบการทางาน start Width Area = Width * Width Area stop
  • 25. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 25 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม เขียนผังงาน ได้ดังนี้ โจทย์ปัญหา ข้อที่ 4 จงเขียนวิเคราะห์ งานเพื่อเขียนโปรแกรมคานวณหาค่าเฉลี่ยของน้าหนักของนักเรียน 3 คน 1. วัตถุประสงค์ของงาน คานวณหาค่าเฉลี่ยของน้าหนัก 2. ผลลัพธ์ ( Output ) แสดงผลข้อมูล ของ Weight และผลลัพธ์ที่ได้จากคานวณค่าเฉลี่ยน้าหนัก " Weight1 = 40 กก. " Weight2 = 50 กก. " Weight3 = 60 กก. 3. ข้อมูลนาเข้า ( In Put ) ได้แก่ " Weight1, " Weight2, " Weight3 4. ชื่อตัวแปรที่ใช้ Weight1 = น้าหนักของนักเรียนคนที่ 1 Weight2 = น้าหนักของนักเรียนคนที่ 2 Weight3 = น้าหนักของนักเรียนคนที่ 3 Average = ค่าเฉลี่ยของน้าหนัก 5. ขั้นตอนวิธี/ลาดับงาน - เริ่มต้น - ป้อนข้อมูล น้าหนักนักศึกษา 3คน - ป้อนข่อมูล จานวนทั้งหมด - คานวณหาน้าหนักเฉลี่ย Average = (Weigth1+Weight2+Weight3)/3 - แสดงผลลัพธ์ - จบการทางาน เขียนผังงาน ได้ดังนี้ start Birth, Year Age = Year - Birth Age stop
  • 26. ง 31101 เอกสารประกอบการเรียนรู้ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ ชั้น ม.4 ม.วรรณพร เจริญแสนสวย หน้า 26 โรงเรียนยอแซฟอุปถัมภ์ (แผนกสามัญหญิง) สามพราน นครปฐม start Weight1,Weight2, Weight3 Average = (Weight1+Weight2+Weight3)/3 Average stop