Cเอกสารประกอบการเรียน
การเขียนโปรแกรมภาษาซีเบื้องต้น
หลักการเขียนโปรแกรม เล่มที่ 1
นางสาวนภาพร อัยวรรณ์
ตำแหน่ง ครู วิทยฐานะ ชำนาญการพิเศษ
โรงเรียนกาญจนาภิเษกวิทยาลัย กาฬสินธุ์
สำนักงานเขตพื้นที่การศึกษามัธยมศึกษากาฬสินธุ์
เอกสารประกอบการเรียนภาษาซี เล่มที่ 1
หลักการเขียนโปรแกรม
มาตรฐานการเรียนรู้ ตัวชี้วัด
มาตรฐาน ว 4.1 เข้าใจแนวคิดหลักของเทคโนโลยีเพื่อการดำรงชีวิตในสังคม 1. ขั้นตอนการพัฒนาโปรแกรม มี 5 ขั้นตอน ได้แก่ การวิเคราะห์ปัญหา
ที่มีการเปลี่ยนแปลง อย่างรวดเร็ว ใช้ความรู้และทักษะทางด้านวิทยาศาสตร์ การออกแบบโปรแกรม การเขียนโปรแกรม การทดสอบโปรแกรม
คณิตศาสตร์ และ ศาสตร์อื่น ๆ เพื่อแก้ปัญหาหรือพัฒนางานอย่างมีความคิด และการจัดทำเอกสารประกอบ
สร้างสรรค์ ด้วยกระบวนการออกแบบเชิงวิศวกรรม เลือกใช้เทคโนโลยีอย่าง
เหมาะสม โดยคำนึงถึงผลกระทบต่อชีวิต สังคม และสิ่งแวดล้อม
สาระสำคัญ
ขั้นตอนการพัฒนาโปรแกรมจะช่วยให้การเขียนโปรแกรมเป็นไปอย่างเป็นระบบ ช่วยให้ง่ายต่อการเขียน
โปรแกรมในการแก้ปัญหา ขั้นตอนการพัฒนาโปรแกรม มี 5 ขั้นตอน ได้แก่ การวิเคราะห์ปัญหา
การออกแบบโปรแกรม การเขียนโปรแกรม การทดสอบโปรแกรม และการจัดทำเอกสารประกอบ
ผลการเรียนรู้
1. นักเรียนสามารถอธิบายขั้นตอนการพัฒนาโปรแกรมได้
2. นักเรียนบอกประวัติความเป็นมาของภาษาซีได้
3. นักเรียนบอกลักษณะโครงสร้างภาษาซีได้
4. นักเรียนอธิบายลักษณะของตัวแปลภาษาแต่ละชนิดได้
5. นักเรียนบอกขั้นตอนการติดตั้งโปรแกรมได้
6. นักเรียนอธิบายการใช้งานโปรแกรมได้
1
เอกสารประกอบการเรียนภาษาซี เล่มที่ 1
แบบทดสอบก่อนเรียน 1. ภาษาซีสืบสานมาจากภาษาใด
ก. Pascal
ข. B
ค. Java
ง. HTML
2. ใครคือผู้พัฒนาภาษาซี
3.ภาษาซีจัดเป็นภาษาระดับใด
ก. เดนนิส ริชชี่ ก. ระดับต่ำ
ข. ชาล์ล แบบเบจ ข. ระดับกลาง
ค. เอดา เลิฟเลซ ค. ระดับสูง
ง. ทิม เบอร์เนอร์ส-ล ง. ภาษาเครื่อง
5. ข้อใดไม่ใช่ขั้นตอนการพัฒนาโปรแกรมโดยใช้ภาษา
4. "ทำหน้าที่เหมือนโปรแกรมหลักที่สั่งให้ชุดคำ ก. การเขียนและแก้ไขโปรแกรม
สั่งทำงาน" ข้อความนี้หมายถึงฟังก์ชั่นใด ข. คอมไฟล์โปรแกรม
ก. ฟังก์ชัน main ค. การลิงค์โปรแกรม
ข. ฟังก์ชัน include ง. การประกาศตัวแปร
ค. ฟังก์ชัน library
ง. ฟังก์ชัน declare 7. ภาษาซีจัดเป็นภาษาที่ใช้ตัวแปลภาษาชนิดใด
6. ข้อใดไม่ใช่ส่วนประกอบหลักของโครงสร้างภาษาซี ก. Compiler 9. ประโยคคำสั่งในภาษาซีต้องลงท้ายด้วย
ก. ส่วนหัวของโปรแกรม ข. Translator เครื่องหมายใด
ค. Interpreter
(Preprocessor Directive) ง. Assembler ก. , (comma)
ข. ส่วนฟังก์ชันหลัก (Main Function) ข. \n
ค. ส่วนของคำอธิบายโปรแกรม ค. ; (semi-colon)
ง. : (colon)
(Program Comment)
ง. ส่วนคอมไพเลอร์ (Compiler) 10. หากต้องการนำฟังก์ชันมาตรฐาน (stdio.h)
มาใช้งาน จะต้องประกาศอย่างไร
8. เครื่องหมายใดต่อไปนี้ ที่นำมาใช้สำหรับอธิบาย
รายละเอียดภายในโปรแกรม ก. main(stdio.h)
ข. { stdio.h }
ก. @ @ ค. printf(“<stdio.h>”)
ข. /* */ ง. #include “stdio.h”
ค. [ ]
ง. { }
2
เอกสารประกอบการเรียนภาษาซี เล่มที่ 1
ใบความรู้ที่ 1
ขั้นตอนการพัฒนาโปรแกรม
ในการเขียนโปรแกรมคอมพิวเตอร์เพื่อแก้ปัญหาตรงกับความต้องการ ผู้เขียน
โปรแกรม จะต้องทราบจุดหมายของการเขียนโปกแกรม เช่น ข้อมูลที่จะต้องนำเข้า
ลักษณะการทำงานของโปรแกรม รูปแบบการแสดงผลของผลลัพธ์ ซึ่งหากมีการ
วางแผนจะทำให้การเขียนโปรแกรมเป็นไปตามลำดับขั้นตอนจะทำให้ลดการซ้้ำซ้อน
ของขั้นตอนการเขียนโปรแกรมและไม่ทำให้เสียเวลามาก ขั้นตอนการพัฒนา
โปรแกรมจะช่วยให้การเขียนโปรแกรมเป็นไปอย่างเป็นระบบ ช่วยให้ง่ายต่อการเขียน
โปรแกรมในการแก้ปัญหา โดยทั่วไปแล้วขั้นตอนการพัฒนาโปรแกรมจะประกอบด้วย
5 ขั้นตอน ดังนี้
การวิเคราะห์ปัญหา
การออกแบบโปรแกรม
การเขียนโปรแกรม
การทดสอบโปรแกรม
การจัดทำเอกสาร
ประกอบ
3
เอกสารประกอบการเรียนภาษาซี เล่มที่ 1
ขั้นตอนการพัฒนาโปรแกรม
1. การวิเคราะห์ปัญหา 1) กำหนดขอบเขตของปัญหา โดยการกำหนดรายละเอียดให้ชัดเจนว่า
จะให้โปรแกรมประมวลผลสิ่งใดบ้าง ตัวแปร ค่าคงที่ที่ต้องใช้เป็น
เป็นขั้นตอนแรกที่ผู้เขียนโปรแกรมจะต้องทำเพื่อการทำงาน ลักษณะใด
เป็นไปอย่างมีประสิทธิภาพ ผู้เขียนโปรแกรมจะต้องวิเคราะห์ 2) กำหนดข้อมูลเข้าและผลลัพธ์โดยต้องรู้ว่าข้อมูลที่จะส่งเข้าเป็น
ปัญหาให้ทราบถึงความต้องการให้โปรแกรมแก้ปัญหาอะไร อย่างไร มีอะไรบ้าง เพื่อให้โปรแกรมประมวลผลและแสดงผลลัพธ์
ทำงานอย่างไร ข้อมูลนำเข้ามีอะไรบ้าง โดยมีขั้นตอนย่อย
ดังนี้ 3) กำหนดวิธีการประมวลผล โดยจะต้องรู้ว่าจะให้คอมพิวเตอร์
ประมวลผลอย่างไร จึงได้ผลลัพธ์ตามต้องการ
2. การออกแบบโปรแแกรม
ขั้นตอนนี้จะใช้เครื่องมือช่วยในการออกแบบโปรแกรม โดยเขียนเป็นลำดับขั้นตอนการทำงานของโปรแกรมที่เรียกว่า อัลกอลิทึม (algorithm)
ซึ่งจะแสดงขั้นตอนการแก้ปัญหา ใช้ประโยคที่ชัดเจน ไม่คลุมเครือ มีรายละเอียดเพียงพอที่จะนำไปเขียนโปรแกรมให้ทำงานจริง อัลกอลิทึมนั้น
อาจเขียนให้ อยู่ในรูปของรหัสจำลองหรือซูโดโค้ด (pseudo code) หรือเขียนเป็นผังงาน (flowchart) ก็ได้ โดย
- ซูโดโค้ดจะเป็นคำอธิบายขั้นตอนการทำงานของโปรแกรมเป็นคำย่อ
- ผังงานใช้สัญลักษณ์ต่างๆ แทนการท ำงานและทิศทางของโปรแกรม
3. การออกแบบโปรแแกรม
ขั้นตอนนี้จะเขียนโปรแกรมเพื่อให้คอมพิวเตอร์สามารถประมวลผลได้ โดยเปลี่ยนขั้นตอนการทำงานให้อยู่ในรูปรหัสภาษาคอมพิวเตอร์
การเขียนโปรแกรมจะต้องเขียนตามภาษาที่คอมพิวเตอร์ เข้าใจโดยอาจใช้ภาษาระดับสูง หรือระดับต่ำซึ่งสามารถเลือกได้หลายภาษา
4. การทดสอบโปรแแกรม
หลังจากเขียนโปรแกรมจะต้องทดสอบความถูกต้องของโปรแกรมที่เขียนขึ้น หาจุดผิดพลาดของโปรแกรม และตรวจสอบจนไม่พบจุดผิดพลาด
อีก จุดผิดพลาดของโปรแกรมนี้เรียกว่า บัก (bug) ส่วนการแก้ไขข้อผิดพลาดให้ถูกต้องเรียกว่า ดีบัก (debug) โดยทั่วไปแล้วข้อผิดพลาด
จากการเขียนโปรแกรมจะมี 2 ประเภท คือ
1) การเขียนคำสั่งไม่ถูกต้องตามหลักการเขียนโปรแกรมนั้นๆ เรียกว่า 2) ข้อผิดพลาดทางตรรกะ หรือ logic error เป็นข้อผิดพลาดที่
syntax error หรือ coding error ข้อผิดพลาดประเภทนี้เรามัก โปรแกรมทำงานได้ แต่ผลลัพธ์ออกมาไม่ถูกต้อง
พบตอนแปลภาษาโปรแกรมเป็นรหัสภาษาเครื่อง
5. การทำเอกสารและบำรุงรักษาโปรแแกรม
ขั้นตอนนี้จะทำให้ผู้ใช้สามารถใช้งานโปรแกรมได้อย่างมีประสิทธิภาพและสะดวกในการตรวจสอบข้อผิดพลาดโดยเขียนเป็นเอกสารประกอบ
ขึ้นมา
4
เอกสารประกอบการเรียนภาษาซี เล่มที่ 1
แบบฝึกหัดที่ 1.1 เรื่อง ขั้นตอนการพัฒนาโปรแกรม
จุดประสงค์การเรียนรู้ 1. นักเรียนสามารถอธิบายขั้นตอนการพัฒนาโปรแกรมได้
คำชี้แจง นักเรียนเติมขั้นตอนการพัฒนาโปรแกรมให้ถูกต้อง
5
เอกสารประกอบการเรียนภาษาซี เล่มที่ 1
ขั้นตอนการพัฒนาโปรแกรม
การวิเคราะห์ปัญหา
มี 3 ขั้นตอน คือ การรับข้อมูลเข้า(Input )
การประมวลผล(Process)
การแสดงผลลัพธ์(Output )
Input Process Output
Memory
ข้อมูล Input และ Output โปรแกรมจะต้องเก็บไว้ใน
Memory(หน่วยความจำ) ผ่านตัวแปร(Variable)
เช่น x ,y , area
6
เอกสารประกอบการเรียนภาษาซี เล่มที่ 1
ตัวอย่าง 1.1 การวิเคราะห์ปัญหา
การวิเคราะห์ปัญหาการคำนวณผลบวก(sum) ของจำนวน 2 จำนวน คือ x และ y
ที่คล้ายการทำงานของเครื่องคิดเลขอย่างง่าย
ตัวแปร คือ x , y สำหรับเก็บค่าของตัวเลข 2 ค่า
sum สำหรับเก็บผลลัพธ์
การวิเคราะห์ปัญหา การรับข้อมูลเข้า(Input) รับค่า x , y
การประมวลผล(Process) คำนวณค่า sum = x+y
การแสดงผลลัพธ์(Output) แสดงค่า sum
ตัวอย่าง 1.2 การวิเคราะห์ปัญหา
การวิเคราะห์ปัญหาการคำนวณค่าเฉลี่ย(mean) ของจำนวน 3 จำนวน คือ x1,x2,
x3 และแสดงค่าเฉลี่ย(mean) ทางจอภาพ
ตัวแปร คือ x1 , x2, x3 สำหรับเก็บค่าของตัวเลข 3 ค่า
sum สำหรับเก็บผลบวกของ 3 จำนวน
mean สำหรับเก็บค่าเฉลี่ย
การวิเคราะห์ปัญหา การรับข้อมูลเข้า(Input) รับค่า x1 , x2 , x3
การประมวลผล(Process) คำนวณค่า sum = x1+x2+x3
การแสดงผลลัพธ์(Output) mean = sum/3
แสดงค่า mean
7
เอกสารประกอบการเรียนภาษาซี เล่มที่ 1
ตัวอย่าง 1.3 การวิเคราะห์ปัญหา
การวิเคราะห์ปัญหาการคำนวณหาพื้นที่รูปสามเหลี่ยม(area) จากการรับค่าความยาว
ฐาน(ฺb) และค่าความสูง(h) แล้วแสดงค่าพื้นที่รูปสามเหลี่ยมทางจอภาพ
ตัวแปร คือ ............สำหรับเก็บค่า...............
........... สำหรับเก็บผลลัพธ์
การวิเคราะห์ปัญหา การรับข้อมูลเข้า(Input) .............................................
การประมวลผล(Process) .............................................
การแสดงผลลัพธ์(Output) ............................................
ตัวอย่าง 1.4 การวิเคราะห์ปัญหา
การวิเคราะห์ปัญหาการคำนวณค่าคะแนนรวม(total) ของวิชาภาษาซี จากคะแนนสอบ
กลางภาค (m),คะแนนสอบปลายภาค (f),คะแนนเก็บ (h)ที่รับทางแป้นพิมพ์และแสดงผล
ค่าคะแนนรวมทางจอภาพ
......................................................................................
ตัวแปร คือ
สำหรับเก็บ........................................................................
............................................ สำหรับเก็บ..............................
การวิเคราะห์ปัญหา การรับข้อมูลเข้า(Input) .............................................
.......................................................
การประมวลผล(Process) .......................................................
การแสดงผลลัพธ์(Output)
............................................
8
เอกสารประกอบการเรียนภาษาซี เล่มที่ 1
ขั้นตอนการพัฒนาโปรแกรม
การออกแบบโปรแกรม
เครื่องมือช่วยในการออกแบบโปรแกรม
อัลกอลิทึม (algorithm) ผังงาน(flowchart)
ลำดับขั้นตอนการทำงานของโปรแกรม ใช้สัญลักษณ์ต่างๆ แทนการทำงาน
หรือรหัสจำลองหรือซูโดโค้ด (pseudo code)
และทิศทางของโปรแกรม
ตัวอย่างการเขียนอัลกอริทึมและผังงานแบบทางเลือก การตัดเกรดวิชาคอมพิวเตอร์
1. เริ่มต้น start
2. รับค่าคะแนนสอบของนักเรียน score
3.ตรวจสอบคะแนน (คะแนนที่สอบผ่าน 50 คะแนน)
4.ถ้ามากกว่า 50 คะแนน แสดงข้อความ"สอบผ่าน" score>50
5.ถ้าน้อยกว่า 50 คะแนน แสดงข้อความ"สอบตก"
6. จบการทำงาน
"Pass" "Fail"
stop
แหล่งเรียนรู้เพิ่มเติม
9
เอกสารประกอบการเรียนภาษาซี เล่มที่ 1
การเขียนผังงาน
สัญลักษณ์ในการเขียนผังงาน
10
เอกสารประกอบการเรียนภาษาซี เล่มที่ 1
การเขียนผังงาน
ตัวอย่างการเขียนผังงานโปรแกรมตัดเกรด
11
เอกสารประกอบการเรียนภาษาซี เล่มที่ 1
ฝึกการออกแบบโปรแกรม
ตัวอย่างการเขียนอัลกอริทึมและผังงานโปรแกรมหาพื้นที่รูปสี่เหลี่ยม(area) ที่รับค่าความยาว(l)
และความกว้าง(w)ทางแป้นพิมพ์ แล้วแสดงพื้นที่รูปสี่เหลี่ยม(area) ทางจอภาพ
การวิเคราะห์ปัญหา การรับข้อมูลเข้า(Input) .............................................
.......................................................
การประมวลผล(Process) .......................................................
การแสดงผลลัพธ์(Output)
............................................
อัลกอริทึม ฝังงาน
12
เอกสารประกอบการเรียนภาษาซี เล่มที่ 1
ฝึกการออกแบบโปรแกรม
ตัวอย่างการเขียนอัลกอริทึมและผังงานโปรแกรมคํานวณหาพื้นที่ของสามเหลี่ยม Area = ½ x ฐาน x สูง
โดยมีข้อมูลเข้า (Input) จากคีย์บอร์ด คือ ค่าของฐานของสามเหลี่ยม (b: Base)
และค่าความสูงของสามเหลี่ยม (h: Height) พร)อมพิมพ์ผลลัพธ์
การวิเคราะห์ปัญหา การรับข้อมูลเข้า(Input) .............................................
.......................................................
การประมวลผล(Process) .......................................................
การแสดงผลลัพธ์(Output)
............................................
อัลกอริทึม ฝังงาน
13