12
คุณครูอมรรัตน์ จุมพล หน้า 1 หน่วยที4 สร้างสรรค์งานโปรแกรมจากภาษาซี ใบความรู้ที2 เรื่อง การจาลองความคิด ก่อนที่จะลงมือเขียนโปรแกรม ต้องออกแบบขั้นตอนการทางาน หรืออัลกอริทึม (Algorithm) ก่อน ซึ่งเป็นเครื่องมือในการแสดงขั้นตอนการทางานของระบบงานใด ๆ เพื่อให้การเขียนโปรแกรมเป็นไปได้อย่าง รวดเร็วและง่ายขึ้น โดยเราจะเขียนอัลกอริทึมในลักษณะรหัสเทียมที่เรียกว่า ซูโดโค้ด (Pseudocodes) หรือ ผังงาน (Flowchart) ก็ได้ 1. รหัสเทียม (Pseudocodes) เป็นคาอธิบายขั้นตอนการทางานของโปรแกรม โดยใช้ถ้อยคาผสมระหว่างภาษาอังกฤษและภาษา การเขียนโปรแกรมแบบโครงสร้าง จะช่วยให้ผู้เขียนโปรแกรมสามารถพัฒนาขั้นตอนต่าง ๆ ให้เป็นโปรแกรม ได้ง่ายขึ้น ส่วนใหญ่มักใช้คาเฉพาะ (Reserve Word) ที่มีในภาษาการเขียนโปรแกรมและมักเขียนด้วย ตัวอักษรตัวใหญ่ ซูโดโค้ดที่ดี จะต้องมีความชัดเจน สั้น และได้ใจความ ข้อมูลต่าง ๆ ที่ใช้จะถูกเขียนอยู่ใน รูปของตัวแปร รูปแบบ Algorithm <ชื่อของอัลกอริทึม> 1………………………………. 2………………………………. ………………………………… END ตัวอย่าง การเขียนอัลกอริทึม สาหรับให้คอมพิวเตอร์หาค่าเฉลี่ยจากข้อมูลที่รับเข้าทางแป้นพิมพ์ ถ้าใส่ค่าศูนย์แสดงว่าหยุดป้อนข้อมูล เขียนได้ดังนีAlgorithm การหาค่าเฉลี่ย 1. เริ่มต้น 2. ตัวนับ = 0 3. ผลรวม = 0 4. รับค่าทางแป้นพิมพ์เก็บไว้ในตัวแปร (ข้อมูล) 5. ถ้า ข้อมูล มากกว่า 0 เพิ่มค่าตัวนับขึ้นหนึ่งค่า ผลรวม = ผลรวม + ค่าข้อมูล ย้อนกลับไปทาขั้นตอนที3 ถ้าไม่มากกว่าไปทาขั้นตอนที5 6. ค่าเฉลี่ย = ผลรวมหารด้วยตัวนับ 7. แสดงค่าเฉลี่ยทางจอภาพ (ทศนิยมสองตาแหน่ง) 8. จบ Algorithm Average_Sum 1. START 2. count =0 3. sum = 0 4. INPUT (value) 5. IF value > 0 THEN count = count +1 sum = sum + value GOTO 3 ELSE GOTO 5 6. average = sum / count 7. OUTPUT (average) 8. END

หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี 2 เรื่อง การจ า ... · คุณครูอมรรัตน์

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี 2 เรื่อง การจ า ... · คุณครูอมรรัตน์

คุณครูอมรรตัน์ จุมพล หน้า 1

หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี ใบความรูท้ี่ 2 เร่ือง การจ าลองความคิด

ก่อนที่จะลงมือเขียนโปรแกรม ต้องออกแบบขั้นตอนการท างาน หรืออัลกอริทึม (Algorithm) ก่อน

ซึ่งเป็นเครื่องมือในการแสดงขั้นตอนการท างานของระบบงานใด ๆ เพ่ือให้การเขียนโปรแกรมเป็นไปได้อย่างรวดเร็วและง่ายขึ้น โดยเราจะเขียนอัลกอริทึมในลักษณะรหัสเทียมที่เรียกว่า ซูโดโค้ด (Pseudocodes) หรือผังงาน (Flowchart) ก็ได้

1. รหัสเทียม (Pseudocodes) เป็นค าอธิบายขั้นตอนการท างานของโปรแกรม โดยใช้ถ้อยค าผสมระหว่างภาษาอังกฤษและภาษาการเขียนโปรแกรมแบบโครงสร้าง จะช่วยให้ผู้เขียนโปรแกรมสามารถพัฒนาขั้นตอนต่าง ๆ ให้เป็นโปรแกรมได้ง่ายขึ้น ส่วนใหญ่มักใช้ค าเฉพาะ (Reserve Word) ที่มีในภาษาการเขียนโปรแกรมและมักเขียนด้วยตัวอักษรตัวใหญ่ ซูโดโค้ดท่ีดี จะต้องมีความชัดเจน สั้น และได้ใจความ ข้อมูลต่าง ๆ ที่ใช้จะถูกเขียนอยู่ในรูปของตัวแปร รูปแบบ

Algorithm <ชื่อของอัลกอริทึม> 1………………………………. 2………………………………. ………………………………… END

ตัวอย่าง การเขียนอัลกอริทึม ส าหรับให้คอมพิวเตอร์หาค่าเฉลี่ยจากข้อมูลที่รับเข้าทางแป้นพิมพ์ ถ้าใส่ค่าศูนย์แสดงว่าหยุดป้อนข้อมูล เขียนได้ดังนี้

Algorithm การหาค่าเฉลี่ย 1. เริ่มต้น 2. ตัวนับ = 0 3. ผลรวม = 0 4. รับค่าทางแป้นพิมพ์เก็บไว้ในตัวแปร (ข้อมูล) 5. ถ้า ข้อมูล มากกว่า 0

เพ่ิมค่าตัวนับขึ้นหนึ่งค่า ผลรวม = ผลรวม + ค่าข้อมูล ย้อนกลับไปท าข้ันตอนที่ 3

ถ้าไม่มากกว่าไปท าข้ันตอนที่ 5 6. ค่าเฉลี่ย = ผลรวมหารด้วยตัวนับ 7. แสดงค่าเฉลี่ยทางจอภาพ (ทศนิยมสองต าแหน่ง) 8. จบ

Algorithm Average_Sum 1. START 2. count =0 3. sum = 0 4. INPUT (value) 5. IF value > 0 THEN

count = count +1 sum = sum + value GOTO 3

ELSE GOTO 5 6. average = sum / count 7. OUTPUT (average) 8. END

Page 2: หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี 2 เรื่อง การจ า ... · คุณครูอมรรัตน์

คุณครูอมรรตัน์ จุมพล หน้า 2

ตัวอย่าง การเขียนอัลกอริทึม ค านวณหาพ้ืนที่สามเหลี่ยม

Algorithm การหาพื้นที่สามเหลี่ยม 1. เริ่มต้น 2. รับค่าความยาวของฐานมาเก็บในตัวแปร X 3. รับค่าความยาวของสูงมาเก็บในตัวแปร Y 4. ค านวณหาพื้นที่ ARRAY = ( X*Y ) / 2 5. แสดงผลพื้นที่ 6. จบ

Algorithm Triangle 1. START 2. READ X 3. READ Y 4. Compute ARRAY = ( X*Y ) / 2 5. Print ARRAY 6. END

2. การเขียนผังงาน (Flowchart)

ผังงาน หรือ โฟลวชาร์ต เปน็แผนภาพที่ใช้ออกแบบและอธิบายการท างานของโปรแกรมโดยอาศัยรูปทรงต่าง ๆ ควบคู่ไปกับลูกศร แต่ละรูปในแผนภาพจะหมายถึงการท างานหนึ่งขั้นตอน ส่วนลูกศรจะแทนล าดับการท างานขั้นตอนต่าง ๆ รวมทั้งทิศทางการไหลของข้อมูลตั้งแต่เริ่มต้นจนได้ผลลัพธ์ตามต้องการ ระบบงานทุกชนิดที่ผ่านการวิเคราะห์เป็นล าดับขั้นตอนแล้ว จะสามารถเขียนเป็นผังงานได้ แบ่งออกเป็น 2 ประเภท

2.1.1 ผังงานระบบ (System Flowchart) หมายถึงแผนผังแสดงล าดับขั้นการท างานของทั้งระบบ เป็นการแสดงล าดับการท างานของส่วนประกอบต่าง ๆ ที่เก่ียวข้องเป็น ผังงานที่ต้องแยกออกมาเขียนเป็น ผังงานโปรแกรม

2.1.2. ผังงานโปรแกรม (Program Flowchart) หมายถึงแผนผังแสดงล าดับ และข้ันตอนใน การท างานโดยละเอียดของโปรแกรม

ข้อก าหนดในการเขียนผังงาน - ผังงานประกอบขึ้นจากสัญลักษณ์ ซึ่งอาจมีขนาดต่างๆ กัน แต่จะต้องมีรูปร่างเป็นสัดส่วนมาตรฐาน - ค าอธิบายที่อยู่ภายในภาพจะต้องเป็นประโยคสั้นๆ และเข้าใจง่าย - ทิศทางการไหลในผังงานต้องเขียนจากบนลงล่าง หรือจากซ้ายไปขวา โดยมีลูกศรก ากับทิศทาง - ควรหลีกเลี่ยงการขีดโยงไปโยงมา ซึ่งจะท าให้มีจุดตัดมาก โดยใช้จุดต่อเนื่องแทน - ค าอธิบายเพ่ิมเติมควรเขียนไว้ด้านขวา - ค านึงถึงความสัมพันธ์ของขั้นตอนด้วย - ควรเป็นระเบียบเรียบร้อย และสะอาด และมีชื่อของผังงาน ผู้เขียน วันที่เขียน และเลขหน้าล าดับ

ประโยชน์ของผังงาน 1. การใช้สัญลักษณ์แทนข้อความ ท าให้ประหยัดเวลาและเข้าใจได้ง่าย 2. ท าให้มองรูปแบบของงานได้ทั้งหมด และเข้าใจงานได้ง่ายขึ้น 3. สามารถตรวจสอบ แก้ไข หรือปรับปรุงโปรแกรมได้อย่างสะดวกและรวดเร็ว 4. ท าให้ผู้อ่ืนสามารถศึกษาการท างานของโปรแกรมและแก้ไขโปรแกรมได้ง่าย

การเขียนผังงานที่ดี 1. เขียนตามสัญลักษณ์ที่ก าหนด 2. ใช้ลูกศรแสดงทิศทางการท างานจากบนลงล่าง

Page 3: หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี 2 เรื่อง การจ า ... · คุณครูอมรรัตน์

คุณครูอมรรตัน์ จุมพล หน้า 3

3. อธิบายสั้น ๆ ให้เข้าใจง่าย 4. ทุกแผนภาพต้องมีทิศทางเข้าออก 5. ไม่ควรโยงลูกศรไปที่ไกลมาก ๆ ถ้าต้องท าให้ใช้สัญลักษณ์การเชื่อมต่อแทน เครื่องหมายรูปแบบต่าง ๆ ซึ่งใช้ส าหรับสื่อสารความหมายให้เข้าใจตรงกัน สถาบันมาตรฐาน

แห่งชาติอเมริกัน (The American National Standard Institute : ANSI) และ International Standard Organization (ISO) ได้ร่วมกันก าหนดสัญลักษณ์มาตรฐาน ซึ่งมีรายละเอียดรูปแบบและความหมายที่ควรทราบดังนี้

ตารางแสดงความหมายของสัญลักษณ์

Page 4: หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี 2 เรื่อง การจ า ... · คุณครูอมรรัตน์

คุณครูอมรรตัน์ จุมพล หน้า 4

Page 5: หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี 2 เรื่อง การจ า ... · คุณครูอมรรัตน์

คุณครูอมรรตัน์ จุมพล หน้า 5

ก่อนเขียนโปรแกรม ผู้พัฒนาโปรแกรมต้องเลือกภาษาคอมพิวเตอร์ที่จะน ามาช่วยงานโดยพิจารณาจากปัจจัยต่าง ๆ ในการท างาน เช่น ลักษณะของปัญหา ความถนัดของผู้เขียนโปรแกรม สภาพแวดล้อมในการท างานของระบบคอมพิวเตอร์ เป็นต้น การเขียนโครงสร้างควบคุม หรืออัลกอริธึม มีการท างานอยู่ 3 แบบ ได้แก่ โครงสร้างควบคุมแบบล าดับ (sequential control structure) โครงสร้างควบคุมแบบทางเลือก (selection control structure) โครงสร้างควบคุมแบบวนซ้ า (repetition control structure)

1) โครงสร้างควบคุมแบบล าดับ คือ ขั้นตอนการท างานที่เป็นไปตามล าดับก่อนหลัง และแต่ละขั้นตอนจะถูกประมวลผลเพียงครั้งเดียวเท่านั้น สามารถแสดงการท างานของโครงสร้างนี้โดยใช้ผังงาน ดังรูป

รูปที่ 1 แสดงการท างานของโครงสร้างควบคุมแบบล าดับ ตัวอย่างที่ 1 ล าดับงานการพูดทางโทรศัพท์ การจ าลองความคิดเป็นข้อความ การเขียนผังงาน (โครงสร้างควบคุมแบบล าดับ) เริ่มต้น

1. ยกหูโทรศัพท์ 2. หยอดเหรียญ 3. ฟังสัญญาณให้หมุนเลข 4. กดเลขหมาย 5. สนทนา 6. หยอดเหรียญเพ่ิมเมื่อมีสัญญาณเตือน 7. วางหูโทรศัพท์ 8. รับเหรียญคืน

จบ

Page 6: หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี 2 เรื่อง การจ า ... · คุณครูอมรรัตน์

คุณครูอมรรตัน์ จุมพล หน้า 6

2) โครงสร้างควบคุมแบบทางเลือก คือ โครงสร้างที่มีเงื่อนไข ขั้นตอนการท างานบางขั้นตอนต้องมี การตัดสินใจ เพื่อเลือกวิธีการประมวลผลขั้นต่อไป และจะมีบางขั้นตอนที่ไม่ได้รับการประมวลผล การตัดสินใจอาจมีทางเลือก 2 ทางหรือมากกว่าก็ได้ โครงสร้างที่มีทางเลือกเพียง 2 ทาง เราเรียกชื่อว่า โครงสร้างแบบ if…then…else และ โครงสร้างที่มีทางเลือกมากกว่า 2 ทาง เราเรียกชื่อว่า โครงสร้างแบบ case สามารถแสดงการท างานของโครงสร้าง โดยใช้ผังงานต่อไปนี้

รูปที่ 2 แสดงการท างานของโครงสร้าง 2 ทางเลือก (IF…THEN)

รูปที่ 3 แสดงการท างานของโครงสร้าง 2 ทางเลือก (IF…THEN…ELSE)

รูปที่ 4 แสดงการท างานของโครงสร้างมากกว่า 2 ทางเลือก (NEST…IF)

Page 7: หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี 2 เรื่อง การจ า ... · คุณครูอมรรัตน์

คุณครูอมรรตัน์ จุมพล หน้า 7

รูปที่ 5 แสดงการท างานของโครงสร้างมากกว่า 2 ทางเลือก (CASE…OF) ตัวอย่างที่ 2 ล าดับของการท าบัตรประชาชน ของกรมการปกครอง กระทรวงมหาดไทย

การจ าลองความคิดเป็นข้อความ การเขียนผังงาน (โครงสร้างควบคุมแบบทางเลือก) ผังงานแบบทางเลือก 2 ทาง (IF…THEN)

เริ่มต้น รับข้อมูลอายุ ตรวจสอบอายุเท่ากับหรือมากกว่า 15 ปี ถ้าจริง

ไปที่ว่าการอ าเภอ เขียนใบค าร้อง

ถ่ายรูปท าบัตร รับบัตรประชาชน กลับโรงเรียน เข้าเรียนปกติ

ถ้าเท็จ เข้าเรียนปกต ิ

จบ

Page 8: หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี 2 เรื่อง การจ า ... · คุณครูอมรรัตน์

คุณครูอมรรตัน์ จุมพล หน้า 8

ตัวอย่างที่ 3 ล าดับขั้นตอนการประเมินผลสอบ

การจ าลองความคิดเป็นข้อความ การเขียนผังงาน (โครงสรา้งควบคุมแบบทางเลือก) ผังงานแบบทางเลือก 2 ทาง (IF…THEN…ELSE)

เริ่มต้น ทดสอบ ตรวจผลการสอบและคิดคะแนนที่สอบได้ คะแนนน้อยกว่าร้อยละ 50 ใช่ไหม ถ้าจริง พิมพ์ สอบแก้ตัว ถ้าไม่จริง พิมพ์ สอบผ่าน

จบ ตัวอย่างที่ 4 ล าดับขั้นตอนการประเมินผลการเรียน

การจ าลองความคิดเป็นข้อความ เริ่มต้น

รับข้อมูลคะแนน ตรวจสอบคะแนน

ถ้าคะแนนเท่ากับ 80 ขึ้นไป ได้ระดับผลการเรียน 4 ถ้าคะแนนเท่ากับ 70-79 ได้ระดับผลการเรียน 3 ถ้าคะแนนเท่ากับ 60-69 ได้ระดับผลการเรียน 2 ถ้าคะแนนเท่ากับ 50-59 ได้ระดับผลการเรียน 1 ถ้าคะแนนน้อยกว่า 50 ได้ระดับผลการเรียน 0

พิมพ์ระดับผลการเรียน จบ

Page 9: หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี 2 เรื่อง การจ า ... · คุณครูอมรรัตน์

คุณครูอมรรตัน์ จุมพล หน้า 9

การเขียนผังงาน แบบท่ี 1 (NEST…IF)

แบบท่ี 2 (CASE…OF) กรณีนี้ไม่สามารถใช้กับตัวแปรหรือค่าคงที่ท่ีเป็นจ านวนจริงได้

Page 10: หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี 2 เรื่อง การจ า ... · คุณครูอมรรัตน์

คุณครูอมรรตัน์ จุมพล หน้า 10

3) โครงสร้างควบคุมแบบวนซ้ า คือ โครงสร้างที่ขั้นตอนการท างานบางข้ันตอนได้รับการประมวลผลมากกว่า 1 ครั้ง ทั้งนี้ขึ้นอยู่กับเงื่อนไขบางประการ โครงสร้างควบคุมแบบวนซ้ านี้ต้องมีการตัดสินใจ ในการท างานซ้ า และลักษณะการท างานของโครงสร้างแบบนี้มี 2 แบบ 3.1) แบบที่มีการตรวจสอบเงื่อนไขในการวนซ้ าทุกครั้งก่อนด าเนินการกิจกรรมใด ๆ ถ้าเงื่อนไขเป็นจริงจะท างานซ้ าไปเรื่อย ๆ และหยุดเมื่อเงื่อนไขเป็นเท็จ มีโครงสร้างการท างาน 2 แบบ คือ while และ for เมื่อพิจารณาโครงสร้างผังงาน จะพบว่า while และ for มีโครงสร้างที่คล้ายกัน โดย for จะวนซ้ าที่มีการทราบจ านวนครั้งล่วงหน้า จึงต้องมีตัวแปรนับจ านวนของการวนซ้ า ในขณะที่ while สามารถวนซ้ าได้โดยใช้ตัวนับหรือวนซ้ าได้แบบใช้ค่าเป้าหมายเป็นตัวก าหนดการยุติการวนซ้ า

รูปที่ 6 แสดงการท างานของการวนซ้ าแบบ while รูปที่ 7 แสดงการท างานของการวนซ้ าแบบ for 3.2) แบบที่ท ากิจกรรมซ้ าเรื่อย ๆ จนกว่าเงื่อนไขที่ก าหนดเป็นเท็จแล้วจึงหยุดการท างาน โดยแต่ละครั้งที่เสร็จสิ้นการด าเนินการแต่ละรอบจะต้องมีการตรวจสอบเงื่อนไข เรียก การวนซ้ าแบบ do while

รูปที่ 8 แสดงการท างานของการวนซ้ าแบบ do while

Page 11: หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี 2 เรื่อง การจ า ... · คุณครูอมรรัตน์

คุณครูอมรรตัน์ จุมพล หน้า 11

ตัวอย่างที่ 5 ล าดับขั้นตอนการนับจ านวนตั้งแต่ 1 จนถึงเลขที่ต้องการ

Page 12: หน่วยที่ 4 สร้างสรรค์งานโปรแกรมจากภาษาซี 2 เรื่อง การจ า ... · คุณครูอมรรัตน์

คุณครูอมรรตัน์ จุมพล หน้า 12

ตัวอย่างที่ 6 ล าดับขั้นตอนการนับจ านวนตั้งแต่ 1 – 10 การจ าลองความคิดเป็นข้อความ การเขียนผังงาน (โครงสร้างควบคุมแบบวนซ้ า)

ตัวอย่างที่ 7 ล าดับขั้นตอนการหาผลบวก 1, 2, 3,… จนถึง 20

การจ าลองความคิดเป็นข้อความ การเขียนผังงาน (โครงสร้างควบคุมแบบวนซ้ า) (แบบวนซ้ า โดยตรวจสอบเงื่อนไขหลังการวนซ้ า)

เริ่มต้น ก าหนดให้ n มีค่าเริ่มต้นเป็น 0 ก าหนดให้ k มีค่าเริ่มต้นเป็น 1 น า k มารวมกับค่า n เดิม ได้ผลลัพธ์เท่าไรไปเก็บไว้ที่ n น าค่า 1 มารวมกับค่า k เดิม ได้ผลลัพธ์เท่าไรไปเก็บไว้ที่ k เปรียบเทียบค่า k น้อยกว่าหรือเท่ากับ 20 หรือไม่ ถ้าเป็นจริง (น้อยกว่าหรือเท่ากับ) กลับไปท างานขั้นที่ 4 ถ้าเป็นเท็จ (มากกว่า) ไปท างานขั้นที่ 7 แสดงผลบวก ค่า n จบ