วันพุธที่ 21 กรกฎาคม พ.ศ. 2553

ประโยชน์ของผังงาน
1. ทำให้เข้าใจและแยกแยะปัญหาต่าง ๆ ได้ง่ายขึ้น
2. ผู้เขียนโปรแกรมมองเห็นลำดับการทำงาน รู้ว่าสิ่งใดควรทำก่อน สิ่งใดควรทำหลัง
3. สามารถหาข้อผิดพลาดของโปรแกรมได้ง่าย
4. ทำให้ผู้อื่นเข้าใจการทำงานได้ง่ายกว่าการดูจาก source code
5. ไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ผู้อื่นสามารถเรียนรู้และเข้าใจได้ง่าย
ข้อจำกัดของ Flowchart
โปรแกรมเมอร์บางคนไม่นิยมเขียนผังงานก่อนการเขียนโปรแกรม เพราะเห็นว่าเสียเวลา นอกจากนี้แล้ว ยังมีข้อจำกัดอื่น ๆ อีก คือ

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

2. กรณีปัญหาที่ต้องการแก้ไขนั้นมีความซับซ้อนขึ้น ในการพัฒนาลำดับขั้นตอนวิธ การแก้ปัญหา
(Algorithm Development)
ข. เขียนผังงาน (Flowchart) ก่อนจากนั้นจึงทำการเปลี่ยนให้เป็นการอธิบายลำดับขั้นตอนการทำงานใน
ลักษณะของข้อความ (Akgorithm)

3. ผังงานทุกผังงานจะขาดสัญลักษณ์ในการเขียนผังงานใดไม่ได้
ก. จุดเริ่มต้น

4. ผังงานทุกผังงานจะต้องจบการทำงานด้วยสัญลักษณ์ด้วยผังงานสัญลักษณ์ใด
ง. จุดสิ้นสุดของผังงาน

5. ข้อใดกล่าวไม่ถูกต้องเกี่ยวกับสัญลักษณ์ที่ใช้เป็นจุดเริ่มต้นของผังงาน
ก. มีทิศทางเข้าและออกอย่างละ 1 ทิศทาง

6. สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ใดจะต้องมีทิศทางเข้าและออกอย่างละ 1 ทิศทางเท่านั้น
ง. การกำหนดค่า

7. สัญลักษณ์ใดที่ใช้สำหรับการแสดงผลออกทางจอภาพ
ข.

8. สัญลักษณ์ใดที่ใช้ในการรับข้อมูลเข้าและแสดงผลข้อมูลออก โดยไม่ระบุอุปกรณ์ในการรับข้อมูล
และแสดงผลข้อมูล
ข.

9. สัญลักษณ์ใดที่ใช้ในการรับข้อมูลเข้าทางแป้นพิมพ์
ง.

10 สัญลักษณ์ใดที่ใช้สำหรับการแสดงผลข้อมูลออกทางเครื่องพิมพ์
ข.


11. ถ้าต้องการคำนวณหาค่า X จากสูตร X = Y + 5 จะเขียนผังงานออกมาได้ในลักษณะใด
ข.

12. ถ้าต้องการแสดงผลค่าตัวแปร MAX ออกทางเครื่องพิมพ์จะเขียนผังงานออกมาได้ในลักษณะใด
ค.

13. ถ้าต้องการแสดงผลค่าของตัวแปร MIN ออกทางจอภาพจะเขียนผังงานออกมาได้ในลักษณะใด
ก.

14. ถ้าต้องการรับค่ามาเก็บไว้ในตัวแปร MAX จะเขียนผังงานออกมาได้ในลักษณะใด
ง.

15. ถ้าต้องการแสดงค่าในตัวแปร MAX จะเขียนผังงานออกมาได้ในลักษณะใด
ง.

16. ในการเขียนผังงานสัญลักษณ์ที่ใช้ในการเปรียบเทียบคือสัญลักษณ์ใด
ง. ถูกทุกข้อ

17. ปกติทิศทางของลูกศรที่ใช้บอกลำดับขั้นตอนการทำงานของผังงานจะมีทิศทางเช่นใด
ก. จากด้านบนลงด้านล่าง

18. สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ใดที่จะต้องมีคู่ของสัญลักษณ์เสมอ
ง. จุดต่อระหว่างหน้า

19. สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ใดที่จะมีจำนวนกี่สัญลักษณ์ก็ได้ในผังงาน
ค. การตัดสินใจ

20. ข้อใดกล่าวไม่ถูกต้องเกี่ยวกับการเขียนผังงาน
ข. สามารถเขียนผังงานใก้มีเส้นตัดกันได้ไม่จำกัด

วันอังคารที่ 8 มิถุนายน พ.ศ. 2553

แบบประเมินผลการเรียนรู้ที่ 1
ตอนที่ 1 จงเลือกคำตอบที่ถูกต้องเพียงคำตอบเดียว

1. การหาแนวทาง การแก้ปัญหา มีด้วยกันทั้งหมดกี่ขั้นตอน?
ค. 5 ขั้นตอน

2. ขั้นตอนใด ที่ต้องทำเป็นขั้นตอนแรกในการหาแนวทางการแก้ปัญหา?
ก. การทำความเข้าใจกับปัญหา

3. ขั้นตอนใด ที่ต้องทำเป็นขั้นตอนสุดท้ายในการหาแนวทางการแก้ปัญหา?
ง. การทดสอบลำดับขั้นตอนวิธีการแก้ปัญหา

4. ข้อใดไม่ใช่ วิธีการในการพัฒนาโปรแกรมเพื่อนำมาใช้ช่วยในการแก้ปัญหา?
ก. หาวิธีการแก้ไขปัญหาก่อน

5. ขั้นตอนในการหาว่า “การแก้ปัญหาที่ต้องการจะแก้ไขนั้น ต้องการข้อมูลใดบ้าง เพื่อใช้ในการแก้ปัญหา และหลังจากการเข้าใจปัญหาเสร็จเรียบร้อยแล้ว จะส่งค่าใดกลับไป” คือข้อใด?
ค. การพิจารณาลักษณะของข้อมูลเข้าและข้อมูลออก

6. เมื่อ พิจารณาในส่วนของข้อมูลที่จะส่งให้กับเครื่องคอมพิวเตอร์เพื่อใช้ในการแก้ ปัญหา และข้อมูลที่เครื่องคอมพิวเตอร์ส่งกลับมาหลังจากการทำการแก้ไขปัญหาเรียบ ร้อยแล้ว จะต้องทำขั้นตอนใดเป็นขั้นตอนต่อไป?
ข. การทดลองแก้ไขปัญหาด้วยตนเอง

7. ข้อใดกล่าว ถึงคอมพิวเตอร์ไม่ถูกต้อง?
ก. สามารถคิดค้นวิธีการในการแก้ปัญหาได้

8. การหาวิธี การเข้าใจปัญหาที่ถูกต้องและเหมาะสม จะกระทำในขั้นตอนใด?
ง. การทดลองแก้ไขปัญหาด้วยตนเอง

9. ขั้นตอนใน การลำดับพัฒนาวิธีการแก้ปัญหา จะนำขั้นตอนในการแก้ปัญหาขั้นตอนใดมาใช้ในการพัฒนา?
ง. การทดลองแก้ไขปัญหาด้วยตนเอง

10. ในส่วนของ ขั้นตอนในการพัฒนาลำดับขั้นตอนวิธีการแก้ปัญหา ประกอบด้วยขั้นตอนย่อยกี่ขั้นตอน?
ข. 3 ขั้นตอน

11. ในส่วนของ ขั้นตอนในการพัฒนาลำดับขั้นตอนวิธีการแก้ปัญหา จะต้องทำสิ่งใดเป็นขั้นตอนแรก?
ก. การอธิบายการทำงานอย่างหยาบ

12. ข้อใดกล่าว ถึงคำสั่งเทียมได้อย่างถูกต้อง?
ค.เป็นภาษาที่ใกล้เคียงกับภาษาคอมพิวเตอร์

13. คำสั่งเทียม ถูกพัฒนาจากขั้นตอนใด?
ง. การอธิบายลำดับขั้นตอนการทำงานอย่างระเอียด

14. ขั้นตอนใน การหาแนวทางในการแก้ปัญหานั้น เมื่อทำการทดลองแก้ไขปัญหาด้วยตนเองแล้วจะต้องทำขั้นตอนใดต่อไป?
ข. การพัฒนาลำดับขั้นตอนวิธีการแก้ปัญหา

15. ถ้าต้องการหาจำนวนเงินทอนที่ต้องทอนให้ กับลูกค้า จากสูตร
เงินทอน = เงินที่ต้องจ่ายลูกค้า – ราคาสินค้า
จะเขียนเป็นการอธิบายลำดับขั้นตอนการทำงานได้เป็นข้อใด?
ค. เงินทอน <-- เงินที่ลูกค้าจ่าย – ราคาสินค้า

16. ถ้าต้องการ กำหนดค่าให้ตัวแปร N = 10 สามารถเขียนเป็นคำสั่งเทียมได้ ในข้อใด?
ค. N <-- 10

17. การหาแนวทาง การแก้ปัญหาขั้นตอนใดที่ต้องทำเป็นขั้นตอนสุดท้าย?
ก. การทดสอบลำดับขั้นตอนวิธีการแก้ปัญหา

18. การทดสอบ ลำดับขั้นตอนวิธีการแก้ปัญหานั้น จะใช้ในการทดสอบแนวทางแก้ปัญหาในขั้นตอนใด?
ง. การพัฒนาลำดับขั้นตอนวิธีการแก้ปัญหา

19. ในการทดสอบ ลำดับขั้นตอนวิธีการแก้ปัญหา ควรจะทดสอบด้วยข้อมูลจำนวนกี่ชุดข้อมูล?
ข. 2 ชุดข้อมูล

20. ข้อใดใช้ในการพัฒนาต่อให้เป็นโปรแกรม ภาษาคอมพิวเตอร์?
ก. คำสั่งเทียม

ตอนที่ 2 จงแสดงวิธีทำ
1. สมศักดิ์มีเงินเก็บสะสมอยู่จำนวนหนึ่ง ถ้านำไปฝากไว้กับธนาคาร โดยธนาคารคิดอัตราดอกเบี้ย 4.5% ต่อปี สมศักดิ์ต้องฝากเงินกับธนาคารเป็นจำนวนกี่ปี ถึงจะมีเงินเก็บเป็น 2 เท่าของจำนวนเงินที่มีอยู่ในขณะปัจจุบัน
ข้อมูลเข้าของปัญหานี้ คือ จำนวนเงินฝากธนาคาร เป็นข้อมูลที่เป็นตัวเลขจำนวนเต็ม และเวลาที่ฝากเงินกับธนาคาร เป็นข้อมูลที่เป็นตัวเลขจำนวนเต็ม
ข้อมูลออกของปัญหานี้ คือ จำนวนเงินฝากธนาคารทั้งหมดที่มีอยู่ในปัจจุบัน เป็นข้อมูลที่เป็นตัวเลขจำนวนเต็ม และเวลาที่ฝากเงินกับธนาคารจำนวนกี่ปี เป็นข้อมูลที่เป็นตัวเลขทศนิยม

2. สมศักดิ์, สมศรี และสมชาย ทำงานที่บริษัทแห่งหนึ่ง ซึ่งทั้ง 3 คนได้รับเงินเดือนไม่เท่ากัน ในกรณีที่ต้องการหาเงินเดือนเฉลี่ยของทั้ง 3 คน
ข้อมูลเข้าของปัญหานี้ คือ จำนวนเงินเดือนทั้ง 3 คน เป็นข้อมูลที่เป็นตัวเลขจำนวนเต็ม และเวลาเข้าทำงานทั้ง 3 คน เป็นข้อมูลที่เป็นตัวเลขทศนิยม
ข้อมูลออกของปัญหานี้ คือ จำนวนเงินเดือนที่ได้รับทั้ง 3 คน เป็นข้อมูลที่เป็นตัวเลขทศนิยม

3. สายสมรเป็นพนักงานของร้านค้าแห่งหนึ่ง มีหน้าที่ในการนำเงินที่ได้จากการขายสินค้าในแต่ละสัปดาห์ไปฝากธนาคาร จงหาแนวทางแก้ปัญหาทั้ง 5 ขั้นตอน ในการหาผลรวมของจำนวนเงินที่สายสมรนำไปฝากที่ธนาคารภายใน 1 เดือน ว่ามีจำนวนเงินเท่าใด เมื่อคิดที่ 1 เดือนมีทั้ง 4 สัปดาห์ และจำวนวนเงินเฉลี่ยที่นำไปฝากแต่ละสัปดาห์
Problem statement
คำนวณหาเงินที่ต้องนำไปฝากธนาคารภายใน 1 เดือน และคำนวณหาจำนวนเงินเฉลี่ยที่นำไปฝากธนาคารแต่ละสัปดาห์
Input Output Description
Input คือ จำนวนเงินที่ขายสินค้า เป็นข้อมูลที่เป็นตัวเลขจำนวนเต็ม และจำนวนเดือนที่ต้องนำเงินไปฝากธนาคาร เป็นข้อมูลที่เป็นตัวเลขจำนวนเต็ม
Output คือ จำนวนเงินเฉลี่ยที่นำฝากธนาคารแต่ละสัปดาห์ เป็นข้อมูลที่เป็นตัวเลขทศนิยม
Hand Example
จำนวนเงินที่ต้องนำฝากธนาคาร
= จำนวนเงินที่ได้จากการขายสินค้า / จำนวนเดือน
Algorithm Development
Decomposition
1. เริ่มต้น
2. รับค่าของราคาขายสินค้า
3. คำนวณหาค่าของจำนวนเงินที่ต้องนำไปฝากธนาคารเป็นรายสัปดาห์
4. แสดงค่าของจำนวนเงินที่ต้องนำไปฝากธนาคาร
5. จบการทำงาน
Refinement
1. เริ่มต้น
2. รับค่าของราคาขายสินค้า
3. คำนวณหาค่าของจำนวนเงินที่ต้องนำไปฝากธนาคารเป็นรายสัปดาห์
จำนวนเงินที่ต้องนำฝาก ß จำนวนเงินขายสินค้า / จำนวนสัปดาห์
4. แสดงค่าของจำนวนเงินที่ต้องนำไปฝากธนาคาร
5. จบการทำงาน
Pseudo Code
Begin
Read Price
Read Month
Payment ß Price / Week
Write Payment
End

วันจันทร์ที่ 31 พฤษภาคม พ.ศ. 2553

หลักการออกแบบและพัฒนาโปรแกรม
จุดประสงค์รายวิชา
1.มีความรู้ความสามารถวิเคราะห์ปัญหาและกำหนดขั้นตอนการแก้ปัญหาด้วยคอมพิวเตอร์
2.มีความรู้ความเข้าใจเกี่ยวกับขั้นตอนการออกแบบโปรแกรม
3.มีความสามารถในการออกแบบและพัฒนาโปรแกรม
4.เห็นคุณค่าถึงความสำคัญของการออกแบบโปรแกรม

มาตรฐานรายวิชา
1.อธิบายขั้นตอนการออกแบบและการออกแบบ
2.ปฏิบัติการออกแบบและพัฒนาโปรแกรม

คำอธิบายรายวิชา
ศึกษาและปฏิบัติเกี่ยวกับการใช้คอมพิวเตอร์แก้ไขปัญหาการทำงานการวิเคราะห์ปัญหา การกำหนดขั้นตอนการทำงาน (Algorithm) การเขียนผังงาน การสร้างเซตกับผังงาน การ เขียนคำสั่งเทียม (Pseudo Code) หลักการออกแบบโปรแกรม และการพัฒนาโปรแกรม