RSS

Category Archives: การเรียนรู้คอมพิวเตอร์ ม.4 บทที่7

บทที่7การพัฒนาโปรแกรม (การพัฒนาโครงงานคอมพิวเตอร์)


7.4การพัฒนาโครงงานคอมพิวเตอร์

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

ในการเลือกหัวข้อโครงงานนั้นผู้พัฒนาอาจเริ่มจากการใช้ความคิดสร้างสรรค์ ร่วมกับประสบการณ์ในการคิดค้นถึงสิ่งที่เป็นปัญหา และความเป็นไปได้ในการนำเอาระบบคอมพิวเตอร์มาช่วยงาน โดยทั่วไปแล้วโครงงานคอมพิวเตอร์สามารถแบ่งออกได้เป็น 5 ประเภท คือ

1. โครงงานพัฒนาสื่อเพื่อการศึกษา
เป็นการสร้างบทเรียนที่อาจมีแบบฝึกหัดหรือคำถามเพื่อทดสอบด้วย

2.โครงงานพัฒนาเครื่องมือ
เป็นการพัฒนาโปรแกรมช่วยงานในด้านต่างๆ

3. โครงงานจำลองทฤษฎี
เป็นการพัฒนาโปรแกรมเพื่อจำลองการทดลองในด้านต่างๆที่ไม่สามารถทดลองด้วยสถานการณ์จริงได้

4.โครงงานประยุกต์
เป็นการนำเอาคอมพิวเตอร์มาประยุกต์ร่วมกับอุปกรณ์อื่นในการประดิษฐ์สิ่งของหรือปรับปรุง

เครื่องมือที่มีอยู่เดิมให้มีประสิทธิภาพสูงขึ้น

5.โครงงานพัฒนาเกม
เป็นการสร้างเกมเพื่อการศึกษาหรือความบันเทิง

แหล่งอ้างอิง: http://www.thaigoodview.com/node/80469

 

บทที่7การพัฒนาโปรแกรม (การโปรแกรมด้วยภาษาซี)


7.3 การโปรแกรมด้วยภาษาซี
      ในบทนี้จะได้แนะนำให้รู้จักกับภาษาซี ซึ่งเป็นภาษาที่เขียนเป็นแบบโครงสร้าง และเป็นภาษาที่ใช้เป็นพื้นฐานในการเรียนรู้การเขียนโปรแกรมเชิงกระบวนความได้เป็นอย่างดี


7.3.1โครงสร้างของภาษาซี

โครงสร้างพื้นฐานของโปรแกรมภาษาซีจะต้องประกอบด้วยฟังก์ชันอย่างน้อย 1 ฟังก์ชัน คือฟังก์ชัน main( )  ซึ่งมีรูปแบบดังรูปที่ 7.8
01 int main ( ) {  <ส่วยหัวของฟังก์ชัน
02      การประกาศตัวแปรตัวแปรท้องถิ่น ;
03      คำสั่งต่างๆ ;
04 }



7.3.2 องค์ประกอบของภาษาซี
   ในที่นี้จะได้อธิบายองค์ประกอบพื้นฐานของภาษาซีจากตัวอย่างของโปรแกรมในรูปที่ 7.10 ซึ่งเป็นโปรแกรมที่พัฒนามาจากผังงานในตัวอย่างที่ 6.9  โดยเพิ่มการนับจำนวนครั้งของการทายทั้งหมดด้วย( รูปที่ 7.9 แสดงผังงานที่สอดคล้องกับโปรแกรมในรูปที่ 7.10 )

– การประกาศรวมแฟ้มส่วนหรือ ( header files )
1 #include <stdio.h>
1 #include <stdiob.h>

การประกาศรวมแฟ้มส่วนหัวดังแสดงในบรรทัดที่ 1 และ 2 เป็นการรวมเอาฟังก์ชันมาตรฐานของภาษาซีเข้ามาร่วมใช้งานกับโปรแกรมที่เขียนขึ้น ทำให้นักเขียนโปรแกรมสามารถเรียกใช้ฟังก์ชันมาตรฐานที่ภาษาซีเตรียมไว้ให้ได้ เช่น ฟังก์ชัน printf( ) และ scanf( ) เป็นต้น

– การประกาศตัวแปร ( variable declaration )
6  int target ;
7  int number ;
8. int no_of_guesses = 1 ;

ในบรรทัดที่ 6 ถึง 8 เป็นการประกาศตัวแปร ซึ่งเป็นข้อกำหนดของภาษาซีที่ต้องมีการประกาศตัวแปรไว้ที่ตอนต้นของฟังก์ชัน ก่อนที่จะสามารถใช้งานตัวแปรเหล่านั้นได้ ในที่นี้มีการประกาศตัวแปรtarget, number และ no_of_guesses เป็นชนิดจำนวนเต็ม ( int ) สังเกตว่ารูปแบบของการประกาศตัวแปร คือ data_type identification_name ซึ่ง data_type เป็นชนิดของข้อมูล และ identification_name เป็นชื่อตัวแปรที่กำหนดขึ้นให้มีชนิดตามที่ระบุนอกจากนี้ยังสามารถกำหนดค่าเริ่มต้นให้กับตัวแปรที่เพิ่งจะประกาศขึ้นได้เลย ดังเช่นที่กำหนดค่า 1ให้กับตัวแปร no_of_guesses ในบรรทัดที่ 8

 -การรับข้อมูลเข้า
10  scanf (“%”, &target) ;
12  scanf (“%”, &number) ;
13  scanf (“%”, &number) ;

ในบรรทัดที่ 10.12 และ 20 เป็นการเรียกฟังก์ชัน scanf ( ) ในการรับข้อมูลเข้า โดยต้องมีการระบุพารามิเตอร์ คือ ตัวแรกเป็นสายอักขระของการกำหนดรูปแบบของข้อมูลเข้าที่ต้องการรับ ในที่นี้คือ”%d” หมายถึงว่าต้องการรับข้อมูลเข้าที่อยู่ในรูปแบบจำนวนเต็ม และตัวที่สองเป็นตำแหน่งในหน่วยความจำของตัวแปรที่ต้องการใช้เก็บค่าที่รับเข้า สังเกตุว่าภาษาซีใช้เครื่องหมาย & นำหน้าชื่อตัวแปร เป็นการอ้างถึงตำแหน่งในหน่วยความจำของตัวแปรนั้น

-การพิมพ์ผลลัพธ์
11 printf (“Enter the number you guess “) ;
16 printf (“Too high\n”) ;
17 printf (“Too low\n”) ;
19 printf (“Enter the number you guess “) ;

 

ในบรรทัดที่ 11. 16. 18 และ 19 เป็นการเรียกใช้ฟังก์ชัน printf ( ) เพื่อพิมพ์ข้อความออกทางจอภาพซึ่งเราสามารถกำหนดข้อความอยู่ภายในเครื่องหมายอัญประกาศให้เป็นพารามิเตอร์ของฟังก์ชัน printf ( ) ได้เลย

23 printf (“Correct – You try %d time . \n” , no_of_guesses ) ;
สำหรับในบรรทัดที่ 23 จะมีการพิมพ์ค่าของตัวแปรชนิดจำนวนเต็ม no_of_guesses ด้วย โดยจะต้องระบุรูปแบบข้อมูลของตัวแปลที่ต้องการให้พิมพ์ภายในข้อความที่เป็นพารามิเตอร์ตัวแรกด้วย ในที่นี้ตัวแปร no_of_guesses เป็นชนิด int ซึ่งจะใช้รูปแบบกำหนดการพิมพ์คือ “%d” ในลักษณะเดียวกันกับฟังก์ชัน scanf ( ) นั่นเอง

 – คำสั่งควบคุมการทำงานแบบวนซ้ำ


คำสั่ง while เป็นคำสั่งเพื่อควบคุมว่าชุดคำสั่งภายใต้คำสั่ง while ( คือ ตั้งแต่บรรทัดที่ 14 ถึง 22)จะถูกวนทำซ้ำอีกหรือไม่ โดยเมื่อโปรแกรมทำงานมาถึงบรรทัดที่ 13 จะตรวจสอบก่อนว่าเงื่อนไขเป็นจริงหรือไม่ ในที่นี้คือตรวจสอบว่าค่าของตัวแปร number ไม่เท่ากันกับค่าของตัวแปร target หรือไม่ถ้าเป็นจริง ก็จะไปทำงานตามคำสั่งภายในบรรทัดดังกล่าวหนึ่งรอบ ก่อนที่จะย้อนกลับไปตรวจสอบเงื่อนไขอีกครั้ง ถ้าเงื่อนไขเป็นเท็จ ก็จะไปทำงานในบรรทัดที่ 23 ต่อไป

– คำสั่งกำหนดค่าแปรให้กับตัวแปร
21 no_of_guesses = no_of_guesses  + 1 ;
   ในบรรทัดที่ 21 เป็นการกำหนดค่าใหม่ให้กับตัวแปร no_of_guesses โดยใช้เครื่องหมายกำหนดค่า ( = ) ซึ่งเป็นการกำหนดให้ตัวแปรที่อยู่ทางซ้ายของเครื่องหมายกำหนดค่า มีค่าเท่ากับค่าของนิพจน์ทางขวาของเครื่องหมายกำหนดค่า ซึ่งในที่นี้เป็นการเพิ่มค่าของตัวแปร no_of_guesses ขึ้นอีก 1 นั่นเอง

ภาษาซีใช้นิพจน์ทางคณิตศาสตร์เพื่อคำนวนและเปรียบเทียบ นิพจน์ประกอบด้วยตัวถูกดำเนินการ( operand ) และตัวดำเนินการ ( operator ) ที่สามารถถุกลดรูปหรือถูกประเมินให้เป็นค่าทางคณิตศาสตร์เพียงค่าเดียวได้ เช่น 2 * 5 เป็นนิพจน์ เนื่องจากสามารถหาค่าได้เป็น 10 ตัวดำเนินการในภาษาซีมีหลายประเภท

– คำสั่งควบคุมการทำงานแบบมีทางเลือก
15 if (number > target)
16   printf (“Too high\n”) ;
17 else
18   printf (“Too low\n”) ;

คำสั่ง if-else ในบรรทัดที่ 15 ถึง 18 เป็นการเลือกว่าจะทำงานตามคำสั่งภายใต้ if หรือภายใต้ elseแล้วแต่เงื่อนไขที่อยู่หลัง if ในบรรทัดที่ 15 โดยถ้าเงื่อนไขเป็นจริง จะทำงานภายใต้ if นั่นคือคำสั่งในบรรทัดที่ 16 เท่านั้น แล้วจะข้ามไปทำงานในบรรทัดที่ 19 เลย แต่ถ้าเงื่อนไขในบรรทัดที่ 15 เป็นเท็จก็จะข้ามคำสั่งภายใต้ if ไปทำงานที่คำสั่งภายใต้ else ในบรรทัดที่ 18 เท่านั้น ก่อนที่จะทำงานในบรรทัดที่ 19 ต่อไป

-คำสั่ง return
25 return 0;

ในบรรทัดที่ 25 คำสั่ง return เป็นการจบการทำงานของฟังก์ชัน แล้วส่งค่าที่ระบุ ( คือค่า 0 ) กลับไปให้กับฟังก์ชันที่เรียกมา สำหรับโปรแกรมภาษาซีที่ถูกเรียกให้ทำงานจากระบบปฏิบัติการนั้น เนื่องจากระบบปฏิบัติการเป็นผู้เรียกให้ฟังก์ชันmain ( ) ในโปรแกรมทำงาน ดังนั้นเมื่อโปรแกรมทำงานเสร็จสิ้นลง ฟังก์ชัน main ( ) จึงส่งค่า 0 ไปให้กับระบบปฏิบัติการ

แหล่งอ้างอิง: http://www.thaigoodview.com/node/80469

 

บทที่7การพัฒนาโปรแกรม (ขั้นตอนการพัฒนาโปรแกรม)

   7.1 ขั้นตอนการพัฒนาโปรแกรม

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

 

7.1.1 การวิเคราะห์และออกแบบโปรแกรม   

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

 
7.1.2การเขียนโปรแกรมจากรหัสลำลองหรือผังงาน   

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

  
7.1.3 การเตรียมข้อมูลสำหรับทดสอบโปรแกรม  

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

 7.1.4 การทดสอบโปรแกรม 

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

7.1.5 การจัดทำเอกสารประกอบโปรแกรม

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


แหล่งอ้างอิง: http://www.bothong.ac.th/Te31101/bas%201.html
                          http://www.thaigoodview.com/node/80469

 

วัตถุประสงค์ บทที่ 7 การพัฒนาโปรแกรม

               

จุดประสงค์การเรียนรู้

  • 1. อธิบายวงจรการพัฒนาโปรแกรมได้
  • 2. มีทักษะในการสร้างผังงานอย่างง่ายได้
  • 3. มีเจตคติที่ดีต่อการพัฒนาโปรแกรม