เอกสารประกอบการสอน
การเขยี นโปรแกรมคอมพวิ เตอร์
สทุ ธกิ านต์ บอ่ จักรพนั ธ์
คณะวทิ ยาศาสตร์
มหาวิทยาลยั ราชภฏั อดุ รธานี
เอกสารประกอบการสอน
การเขยี นโปรแกรมคอมพวิ เตอร์
สทุ ธิกานต์ บ่อจักรพนั ธ์
คณะวิทยาศาสตร์
มหาวิทยาลัยราชภฏั อดุ รธานี
คำนำ
เอกสารประกอบการสอน รายวิชา การเขยี นโปรแกรมคอมพิวเตอร์ ซ่ึงเปน็ รายวชิ าท่ีไดเ้ ปิด
สอนในสาขาวชิ าวิทยาการคอมพิวเตอร์ชนั้ ปที ่ีหน่ึง มหาวิทยาลยั ราชภฏั อดุ รธานี โดยผเู้ รยี บเรียงได้
จดั ทาตามคาอธบิ ายรายวชิ าท่ีไดอ้ ธิบายไวใ้ นหลักสตู ร โดยได้แบง่ เนอ้ื หาไว้ 10 บทเรยี น ครอบคลุมตาม
คาอธิบายรายวิชามงุ่ เน้นให้นักศึกษามีความรู้ความเข้าใจในการเขียนโปรแกรมโดยใช้ภาษาคอมพิวเตอร์
โดยคาดหวงั ว่าจะเป็นเอกสารประกอบการสอนที่เหมาะสมสาหรับนักศึกษาในสาขาวิชาวิทยาการ
คอมพิวเตอร์และสาขาวชิ าทเี่ ก่ียวข้องกบั การเขยี นโปรแกรม และผสู้ นใจทวั่ ไป เอกสารประกอบการ
สอนเล่มนี้ผ้เู รียบเรียงได้ทาการปรบั ปรงุ แก้ไขเน้อื หาและรูปภาพบางส่วนให้เหมาะสมเพิ่มเตมิ เน่ืองจาก
ไดใ้ ช้ประกอบการสอนตั้งแต่ปี พ.ศ. 2554 จนถึงปจั จุบนั ในสว่ นของคาศพั ท์เฉพาะทางผู้เรียบเรยี งได้ใช้
คาศัพทต์ ามศัพท์คอมพวิ เตอร์และเทคโนโลยสี ารสนเทศ ฉบับราชบณั ฑิตยสถาน พทุ ธศักราช 2546
และหากคาศัพทใ์ ดไม่มีคาแปลผ้เู รียบเรยี งไดใ้ ชท้ ับศัพท์ หรอื ตามความนยิ ม เพอ่ื ใหเ้ หมาะสมกบั เอกสาร
ประกอบการสอน
ผเู้ รยี บเรียงขอขอบคุณครอบครวั อันเปน็ ที่รกั ทเี่ ป็นกาลังใจสนบั สนนุ ให้งานสาเร็จไปด้วยดี และ
ในโอกาสน้ีผู้เรียบเรยี งขอขอบพระคุณเจ้าของผลงานเขยี นทุกทา่ นที่ไดถ้ ูกอ้างอิงในเอกสารประกอบการ
สอนเล่มน้ี ผู้เรยี บเรียงไม่ได้ตั้งใจท่ีจะละเมิดลิขสิทธขิ์ องผใู้ ด หากมขี ้อความหรือรปู ภาพบางส่วนที่ผู้
เรียบเรียงไม่ไดอ้ ้างอิงถึง ผ้เู รียบเรียงก็ขออนุญาตมา ณ ทีน่ ้ีด้วย
ผูเ้ รียบเรยี งหวงั เปน็ อย่างย่งิ ว่า เอกสารประกอบการสอนเล่มน้จี ะเป็นประโยชน์ต่อการเรียน
การสอนในวิชาการโปรแกรมคอมพิวเตอร์ โดยสามารถใช้ศึกษาเองไดโ้ ดยสะดวก หากทา่ นท่ีนาไปใชม้ ี
ข้อเสนอแนะ ผเู้ รยี บเรยี งยินดีรบั คาแนะนาจากทุกท่าน เพื่อปรบั ปรุงใหด้ ยี ง่ิ ขึ้นต่อไป และขอขอบคุณ ณ
โอกาสนีด้ ว้ ย
สทุ ธกิ านต์ บ่อจักรพันธ์
ผจู้ ัดทา
สารบัญ
เรอ่ื ง หนา้
คานา ................................................................................................................................. ..(ข)
สารบญั .........................................................................................................................................(ค)
สารบัญรูป.....................................................................................................................................(ซ)
สารบญั ตาราง............................................................................................................... ……. (ญ)
แผนบรหิ ารการสอนรายวิชา................................................................................................... (ฎ)
แผนบรหิ ารการสอนประจาบทท่ี 1 ...............................................................................................1
บทที่ 1 หลักการเขยี นโปรแกรมคอมพวิ เตอร์ 3
1.1 องคป์ ระกอบของระบบคอมพวิ เตอร์ 3
1.2 ภาษาคอมพวิ เตอร์ 6
1.3 การทางานของโปรแกรมแปลภาษา 12
1.4 ข้ันตอนวิธกี ารทางคอมพิวเตอร์ 12
1.5 ขนั้ ตอนการเขียนโปรแกรมคอมพิวเตอร์ 26
บทสรปุ 31
แบบฝึกหดั 32
เอกสารอา้ งองิ 34
แผนบริหารการสอนประจาบทท่ี 2 35
บทท่ี 2 โครงสร้างการควบคุมโปรแกรมคอมพวิ เตอร์ 37
2.1 โครงสรา้ งแบบลาดับ 37
2.2 โครงสรา้ งแบบเงื่อนไข 43
2.3 โครงสร้างแบบวนซา้ 49
2.4 โครงสรา้ งแบบกระโดด 56
บทสรปุ 61
แบบฝกึ หดั ทบทวน 62
เอกสารอ้างอิง 64
แผนบรหิ ารการสอนประจาบทที่ 3 65
บทท่ี 3 ตวั แปรและชนดิ ของข้อมูล 67
3.1 รูปแบบโปรแกรมภาษาซี 67
3.2 ชนิดข้อมูล 69
3.3 ตวั แปร 74
ข
สารบญั (ตอ่ )
เรอื่ ง หนา้
3.4 ค่าคงท่ี 82
บทสรปุ 84
แบบฝึกหัดทบทวน 85
เอกสารอ้างองิ 86
87
แผนบรหิ ารการสอนประจาบทท่ี 4 89
บทที่ 4 ตวั ดาเนินการ 89
94
4.1 ตัวดาเนนิ การกาหนดคา่ 96
4.2 ตัวดาเนินการทางคณิตศาสตร์ 98
4.3 ตัวดาเนินการเพ่ิมคา่ และลดคา่ 98
4.4 ตัวดาเนินเปลี่ยนข้อมูล 99
4.5 ตัวดาเนินการความสมั พันธ์ 100
4.6 ตวั ดาเนินความเท่ากนั
4.7 ตัวดาเนนิ ตรรกะ 101
4.8 ตวั ดาเนนิ การเง่ือนไข 103
บทสรุป
แบบฝึกหัดทบทวน 104
เอกสารอา้ งองิ
แผนบรหิ ารการสอนประจาบทท่ี 5 106
บทท่ี 5 การรบั และแสดงผลข้อมูล
5.1 ฟงั กช์ นั การรบั ข้อมูล 107
5.2 ฟงั กช์ นั การแสดงผลขอ้ มูล
5.3 การรับและแสดงผลข้อมูลดว้ ยฟังก์ชนั getchar() และ putchar() 109
5.4 การรับและแสดงผลขอ้ มูลแบบสตริงด้วยฟงั ก์ชนั gets() และ puts() 109
บทสรุป
114
แบบฝึกหัดทบทวน
เอกสารอา้ งอิง 114
120
123
124
126
สารบัญ (ต่อ) หน้า
127
เรือ่ ง 129
แผนบริหารการสอนประจาบทท่ี 6 129
บทท่ี 6 คาสง่ั ควบคมุ การทางาน 140
6.1 คาส่ังเงื่อนไข
6.2 คาสั่งทาซา้ 156
บทสรปุ 157
แบบฝึกหัดทบทวน
เอกสารอา้ งอิง 160
แผนบริหารการสอนประจาบทที่ 7
บทท่ี 7 แถวลาดบั 161
7.1 โครงสรา้ งขอ้ มูลแบบแถวลาดบั
7.2 แถวลาดับ 1 มิติ 159
7.3 แถวลาดบั 2 มิติ
7.4 แถวลาดบั 3 มิติ 159
7.5 การแทรกและการลบ
7.6 ตวั แปรชุดของตัวอักขระ 167
7.7 การประยุกตใ์ ชโ้ ครงสรา้ งขอ้ มูลแถวลาดบั
บทสรุป 171
แบบฝึกหัดทบทวน
เอกสารอา้ งองิ 180
แผนบริหารการสอนประจาบทที่ 8
บทท่ี 8 การเขยี นโปรแกรมย่อย 185
8.1 แนวคิดเกี่ยวกับฟงั ก์ชนั
8.2 ประเภทของฟังกช์ ัน 186
8.3 การประกาศโปรโ์ ตไทป์ ของฟังกช์ นั 190
8.4 ตัวแปรท่วั ไปและตวั แปรเฉพาะท่ี 193
8.5 ฟังก์ชันแบบเรยี กซา้ 194
บทสรปุ 196
แบบฝึกหดั ทบทวน 197
เอกสารอ้างอิง
206
199
203
214
216
219
221
222
224
ง หนา้
225
สารบัญ (ต่อ)
227
เร่ือง
แผนบริหารการสอนประจาบทท่ี 9 227
บทท่ี 9 ขอ้ มูลแบบโครงสรา้ ง
9.1 ความร้ทู ่ัวไปเกยี่ วกบั โครงสร้าง 228
9.2 การประกาศข้อมลู แบบโครงสรา้ ง
9.3 การอ้างถงึ สมาชกิ ของตัวแปรโครงสรา้ ง 230
9.4 การใช้ข้อมลู แบบโครงสร้างกับฟงั ก์ชัน 233
9.5 การใชต้ วั แปรแถวลาดับเป็นสมาชิกของโครงสรา้ ง 236
9.6 ขอ้ มลู โครงสร้างซ้อนโครงสรา้ ง
9.7 ยูเนยี น 244
บทสรุป
แบบฝึกหดั 246
เอกสารอ้างอิง 249
แผนบรหิ ารการสอนประจาบทที่ 10
บทท่ี 10 แฟม้ ขอ้ มลู 250
10.1 แฟม้ ขอ้ มลู เบอื้ งต้น
10.2 แฟ้มขอ้ มลู แบบเขา้ ถงึ โดยตรง 252
10.3 แฟ้มขอ้ มลู แบบลาดับ
10.4 แฟ้มข้อมลู แบบระเบยี น 253
10.5 ฟงั ก์ชันในการทางานร่วมกบั ไฟล์
บทสรปุ 255
แบบฝกึ หัดทบทวน
เอกสารอา้ งอิง 255
บรรณานุกรม 261
263
264
266
270
271
272
สารบญั รูป
รปู ที่ 1.1 โครงสรา้ งของคอมพิวเตอร์ หนา้
รูปที่ 1.2 หนว่ ยประมวลผลกลาง 3
รูปที่ 1.3 อปุ กรณ์รบั ข้อมลู 4
รูปท่ี 1.4 อุปกรณ์แสดงผลข้อมูล 4
รูปที่ 1.5 แสดงหนว่ ยความจาหลักและหนว่ ยความจาสารอง 5
รูปท่ี 1.6 อุปกรณร์ ับ-แสดงผลขอ้ มลู
6
รปู ท่ี 1.7 แสดงความสมั พันธ์หนว่ ยควบคมุ กบั ระบบคอมพิวเตอร์
รปู ท่ี 1.8 สญั ลักษณซ์ อฟท์แวร์ 6
รปู ท่ี 1.9 ผงั งานระบบแสดงการตัดเกรด
รปู ที่ 1.10 ผงั งานโปรแกรมแสดงรายละเอียดการทางานของโปรแกรม 6
สาหรับตดั เกรด 7
รูปท่ี 1.11 แสดงผงั งานขน้ั ตอนวิธีการทางานของโปรแกรม 17
รปู ท่ี 2.1 โครงสร้างแบบทางเลือกเดยี ว if…then…
รูปท่ี 2.2 โครงสร้างแบบสองทางเลอื ก if…then…else 18
รูปที่ 2.3 โครงสร้างแบบมากกวา่ สองทางเลอื ก
รูปที่ 2.4 แสดงผงั งานแบบหลายทางเลือก 25
รปู ที่ 2.5 แสดงโครงสร้างแบบทดสอบเงอ่ื นไข 1 ทาง
รูปที่ 2.6 แสดงโครงสรา้ งแบบทดสอบเงอ่ื นไข 2 ทาง 44
รูปท่ี 2.7 แสดงโครงสรา้ งแบบทดสอบเงือ่ นไขมากกวา่ 2 ทางขนึ้ ไป 44
รูปที่ 2.8 ผังงานการทางานวนซา้ คาสง่ั while 45
รูปท่ี 3.1 โครงสรา้ งของภาษาซี 46
รูปที่ 6.1 แสดงผงั งานของประโยคเงื่อนไข 50
รปู ท่ี 6.2 แสดงผังงานของคา ส่ัง for 50
รูปท่ี 6.3 ผังงานของการทางานคาส่งั while 51
รปู ท่ี 6.4 แสดงผงั งานของการทางานคาสั่ง do-while 56
รูปที่ 7.1 แสดงข้อมลู ท่เี ก็บในตวั แปรชุด price 67
รูปที่ 7.2 แสดงการเก็บคะแนนสอบของนักศึกษาหนง่ึ คน 129
รปู ที่ 7.3 แสดงการเก็บข้อมูลในตัวแปร number 140
146
152
167
168
172
ข สารบญั รูป (ตอ่ ) หนา้
172
รปู ที่ 7.4 แสดงตวั อยา่ งการเกบ็ ข้อมูลคะแนนของนักศกึ ษา 174
รูปที่ 7.5 แสดงการแทนตาแหน่งลงในรูปท่ีระบุ 174
รูปที่ 7.6 แสดงตวั อยา่ งการจัดเกบ็ ขอ้ มูลตวั แปรชุด 2 มิติในหนว่ ยความจา 187
รูปท่ี 7.7 แสดงแบบจาลองการเกบ็ ข้อมูลประเภทสตริงในหนว่ ยความจา 188
รูปท่ี 7.8 แสดงการจองพ้ืนที่ให้กับตวั แปรชุดและพอยน์เตอร์ช้ีไปยงั ค่าคงที่
สตรงิ 200
รปู ท่ี 8.1 โครงสร้างโปรแกรมแบบฟงั ก์ชนั 229
รปู ท่ี 9.1 แสดงการจองพ้ืนทีห่ น่วยความจาของตัวแปร example
สารบัญตาราง
ตารางที่ หนา้
ตารางท่ี 2.1 สัญลักษณแ์ ละความหมายของการทางานแบบลาดับ 39
ตารางที่ 2.2 เปรียบเทยี บขน้ั ตอนวธิ กี บั รหัสเทยี ม 42
ตารางที่ 3.1 ตัวแปรชนิดจานวนเต็ม 70
ตารางท่ี 3.2 ขอ้ มลู ชนดิ ทศนิยม 71
ตารางท่ี 3.3 ตวั แปรชนดิ อกั ขระ 72
ตารางที่ 3.4 ตวั อกั ขระพิเศษทใ่ี ช้กับชนดิ ข้อมูลอักขระ
ตารางท่ี 3.5 ตัวแปรชนิดบูลีนและขนาดการจดั เกบ็ 72
ตารางที่ 3.6 พิสัยข้อมลู ท่ีคิดเครือ่ งหมายและไม่คดิ เครื่องหมาย 73
ตารางที่ 3.7 ชนิดของตัวแปรและขนาดของตวั แปรในหนว่ ยความจา 74
ตารางที่ 5.1 แสดงรหสั รปู แบบที่ใชใ้ นฟงั ก์ชัน scanf()
ตารางท่ี 5.2 แสดงตัว Escape Sequence ตา่ งๆ ทม่ี ีใช้ในภาษาซี 77
ตารางท่ี 6.1 หาคา่ ของการทางานวนซ้าด้วยคา สงั่ for
ตารางที่ 10.1 แสดงโหมดการทางานของไบนารีไฟล์ 110
ตารางท่ี 10.2 แสดงรูปแบบการกาหนดค่าให้กบั พารามเิ ตอร์
118
143
260
263
ข
แผนบรหิ ารการสอนของรายวชิ า
ประมวลรายวชิ า
รหัสวชิ า CS34101 การเขียนโปรแกรมคอมพิวเตอร์ Computer Programming
จานวนหนว่ ยกิต 3 หน่วยกิต (2-2-5) ชวั่ โมงบรรยาย 2 ชม. ปฏิบตั ิ 2 ชม. ศกึ ษาด้วยตนเอง 5 ชม.
ภาคเรยี นท่ี 1/2558 อาจารย์ผูส้ อน อ.สุทธิกานต์ บ่อจักรพนั ธ์
คาอธิบายรายวิชา
ศึกษาหลักการเขยี นโปรแกรมคอมพิวเตอร์ ออกแบบ วิเคราะห์ และเขยี นโปรแกรมแบบ
โครงสร้าง โดยใชภ้ าษาโปรแกรมท่ีเหมาะสม การโปรแกรม รวมถึงการกาหนดตัวแปร ชนดิ ของตวั แปร
คา่ ทใ่ี ชใ้ นการเขียนโปรแกรม การควบคุมโครงสร้างการทางานของโปรแกรมโครงสรา้ ง การวนซ้า
โปรแกรมยอ่ ยการรับข้อมลู เข้า การแสดงผลข้อมลู แถวลาดบั ระเบียน และแฟ้มขอ้ มลู
จุดมุ่งหมายของรายวิชา
เพอ่ื ให้นักศึกษามีความรู้ ความเข้าใจเก่ยี วกบั พน้ื ฐานการเขียนโปรแกรมแบบโครงสร้าง โดย
สามารถวเิ คราะห์ ออกแบบ และเลือกใช้ภาษาโปรแกรมทเี่ หมาะสมในการแกป้ ญั หา
แผนการสอน
สปั ดาหท์ ี่ หัวข้อและรายละเอียด จานวน กจิ กรรมการเรียนการ ผู้สอน
ชั่วโมง สอนและสอ่ื ท่ีใช้
1 บทที่ 1 หลกั การเขยี นโปรแกรม 4 บรรยาย ยกตัวอย่าง อ.สทุ ธกิ านต์
คอมพวิ เตอร์ ประกอบ ศึกษาค้นคว้า
- องคป์ ระกอบของระบบ ตัวอย่างในการประยุกต์ใช้
คอมพิวเตอร์ งาน แบบฝกึ หัดทา้ ย
- ภาษาคอมพิวเตอร์ บทเรียน
- ขัน้ ตอนการเขียนโปรแกรม
คอมพวิ เตอร์
2-3 บทท่ี 2 โครงสรา้ งการควบคุม 8 บรรยาย ยกตวั อยา่ ง อ.สุทธกิ านต์
โปรแกรมคอมพิวเตอร์ ประกอบ อภิปรายกลุ่ม
- โครงสรา้ งแบบลาดับ จากกรณีศกึ ษา
สัปดาหท์ ี่ หัวข้อและรายละเอียด จานวน กิจกรรมการเรียนการ ผสู้ อน
4 ช่วั โมง สอนและส่ือทใ่ี ช้ อสุทธิกานต์ .
5-6 - โครงสรา้ งแบบเง่ือนไข 4 แบบฝกึ หดั ท้ายบทเรียน บอ่ จกั พนั ธ์
7 - โครงสร้างแบบวนซ้า 8 อ.สทุ ธกิ านต์
- โครงสร้างแบบกระโดด บรรยาย ยกตวั อยา่ ง
8 บทท่ี 3 ตวั แปรและชนิดของ 4 ประกอบ อภิปรายกล่มุ อ.สุทธกิ านต์
ข้อมลู จากกรณีศกึ ษา
- ชนดิ ขอ้ มูล แบบฝกึ หัดทา้ ยบทเรยี น
- ตัวแปร
- ค่าคงที่ บรรยาย ยกตวั อย่าง
บทท่ี 4 ตวั ดาเนนิ การ ประกอบ อภปิ รายกลุ่ม
- ตวั ดาเนนิ การ จากกรณีศกึ ษา
- ตัวดาเนินการทางคณติ ศาสตร์ แบบฝกึ หดั ทา้ ยบทเรยี น
- ตวั ดาเนนิ การทางตรรกะ
- ตวั ดาเนนิ การเชิงสมั พนั ธ์ บรรยาย ยกตวั อยา่ ง
- ตัวดาเนินการกาหนดค่า ประกอบ อภิปรายกลมุ่
- ตัวดาเนนิ การเง่อื นไข จากกรณีศึกษา
- ลาดับการทางาน แบบฝึกหัดท้ายบทเรียน
บทที่ 5 การรับและแสดงผล
ขอ้ มลู
- การรบั ข้อมลู ดว้ ยฟังก์ชัน
scanf()
- การแสดงผลขอ้ มูลดว้ ยฟังก์ชนั
printf()
- การรับและแสดงผลข้อมูลด้วย
ฟังก์ชนั getchar() และ
putchar()
- การรับและแสดงผลข้อมูลแบบ
สตริงด้วยฟังกช์ นั gets() และ
puts()
สอบกลางภาค
ง
สปั ดาห์ที่ หวั ข้อและรายละเอียด จานวน กิจกรรมการเรยี นการ ผสู้ อน
9-10 ชว่ั โมง สอนและสอ่ื ทใ่ี ช้ อ.สทุ ธิกานต์
11-12 บทที่ 6 คาส่งั ควบคมุ การ บรรยาย ยกตัวอย่าง อ.สุทธิกานต์
13-14 ทางาน 8 ประกอบ อภปิ รายกลมุ่ อ.สทุ ธิกานต์
- คาสงั่ เงอื่ นไข 8 จากกรณีศึกษา
15 - คาสง่ั ทาซา้ แบบฝึกหดั ท้ายบทเรยี น อ.สุทธิกานต์
บทท่ี 7 แถวลาดับ 8 บรรยาย ยกตวั อย่าง
- โครงสรา้ งขอ้ มูลแบบแถว ประกอบ อภิปรายกลมุ่
ลาดบั 4 จากกรณีศกึ ษา
- แถวลาดับ 1 มติ ิ แบบฝกึ หัดทา้ ยบทเรยี น
- แถวลาดับ 2 มิติ
- แถวลาดับ 3 มติ ิ บรรยาย ยกตัวอย่าง
บทที่ 8 การเขียนโปรแกรม ประกอบ อภปิ รายกลมุ่
ย่อย จากกรณีศกึ ษา
- แนวคดิ เกี่ยวกบั ฟังกช์ ัน แบบฝกึ หดั ท้ายบทเรียน
- ประเภทของฟงั ก์ชนั
- การประกาศโปร์โตไทป์ ของ บรรยาย ยกตวั อย่าง
ฟังก์ชัน ประกอบ อภิปรายกลุ่ม
- ตัวแปรท่วั ไปและตวั แปร จากกรณีศกึ ษา
เฉพาะที่ แบบฝึกหัดท้ายบทเรียน
- ฟังกช์ ันแบบเรียกซา้
บทที่ 9 โครงสรา้ งและยูเนยี น
- ความรู้ทัว่ ไปเก่ยี วกับ
โครงสรา้ ง
- การจดั การข้อมลู แบบ
โครงสร้าง
- การใชข้ อ้ มลู แบบโครงสร้าง
กับฟังก์ชนั
-การใช้ตวั แปรแถวลาดับเปน็
สมาชกิ ของโครงสรา้ ง
สัปดาหท์ ่ี หวั ข้อและรายละเอยี ด จานวน กิจกรรมการเรยี นการ ผูส้ อน
16 อ.สทุ ธิกานต์
ชวั่ โมง สอนและสือ่ ท่ใี ช้
17
บทที่ 10 แฟม้ ข้อมลู 4 บรรยาย ยกตวั อย่าง
- แฟ้มข้อมูลเบอื้ งต้น ประกอบ อภปิ รายกลมุ่
- แฟ้มข้อมลู แบบเขา้ ถึง จากกรณีศกึ ษา
โดยตรง แบบฝกึ หดั ท้ายบทเรียน
- แฟม้ ข้อมูลแบบลาดับ
- แฟม้ ข้อมลู แบบระเบยี น
- ฟังกช์ นั ในการทางานรว่ มกับ
ไฟล์
สอบปลายภาค
วธิ ีการสอน
1. บรรยายเนอื้ หาในแตล่ ะหัวขอ้ พร้อมยกตวั อยา่ งประกอบ
2. ศกึ ษาจากเอกสารประกอบการสอน
3. ผูส้ อนสรุปเน้อื หา
4. ทาแบบฝึกหดั เพือ่ ทบทวนบทเรียน
5. ผเู้ รียนถามขอ้ สงสยั
6. ผู้สอนทาการซักถาม
สอ่ื การเรยี นการสอน
กวนิ สินรุ่งเรือง. (2554). คู่มอื เรยี นการเขียนโปรแกรมภาษาซี. กรงุ เทพฯ:สานกั พิมพ์แหง่ จุฬาลงกรณ์
มหาวิทยาลัย.
ไกรศร ตัง้ โอภากุล และกติ นิ ันท์ พลสวัสด.์ิ (2556). คูม่ ือเรยี นเขยี นโปรแกรมภาษา C ฉบับสมบรู ณ์
พมิ พ์ครัง้ ท่ี 1 . นนทบุรี : ไอดซี .ี
ไกรศร ตัง้ โอภากุล. (2554). คูม่ ือเรียนเขียนโปรแกรมภาษา C. พิมพค์ ร้ังที่ 1. นนทบุรี:ไอดีซ.ี
ธนญั ชยั ตรีภาค. (2553). คอมพิวเตอร์และการเขยี นโปรแกรม.พิมพค์ รง้ั ที่ 2 .กรงุ เทพมหานครฯ:ซีเอด็
ยเู คช่ัน,
ธรี วัฒน์ ประกอบผล.(2556). คมู่ ือการเขียนโปรแกรมภาษา C ฉบับสมบูรณ.์ พมิ พ์คร้งั ที่ 1. กรงุ เทพฯ.
สานกั พมิ พ์ ซิมพลิฟาย.
ประหยดั สุพะ. โครงสร้างและยูเนียน ( Structures and Unions ). สบื ค้นเม่ือ
12 กุมภาพนั ธ์ 2557, จาก http:// alaska.reru.ac.th/5583709/C7.pdf.
ฉ
ฝา่ ยตาราทางวิชาการคอมพิวเตอร.์ (2556). คู่มอื เรียนคอมพวิ เตอร์และการบารงุ รักษา. กรงุ เทพฯ:
ซเี อด็ ยเู คชน่ั จากัด.
ฝ่ายตาราทางวชิ าการคอมพิวเตอร.์ (2555). คู่มอื เรยี นคอมพิวเตอรภ์ าษาC. กรุงเทพฯ: ซีเอด็ ยเู คชนั่
จากดั (มหาชน).
ธีรวฒั น์ ประกอบผล.(2556). คมู่ ือการเขยี นโปรแกรมภาษา C ฉบบั สมบูรณ์. พิมพ์ครั้งที่ 1. กรุงเทพฯ.
สานักพิมพ์ ซิมพลิฟาย.
วจิ ักษณ์ ศรสี ัจจะเลศิ วาจา และดษุ ฎี ประเสริฐธิติพงษ์. (2545). การเขยี นโปรแกรมภาษาซี.
ภาควชิ าวทิ ยาการคอมพวิ เตอร์ คณะวิทยาศาสตร์ มหาวทิ ยาลัยเชยี งใหม่.
โอภาส เอี่ยมสริ วิ งศ์ . (2552). การเขยี นโปรแกรมดว้ ยภาษา C.กรุงเทพฯ: ซีเอ็ดยูเคช่ัน.
ศิรชิ ัย นามบรุ ี. (2557). (ออนไลน์). แหล่งทม่ี า :
http://www.scribd.com/doc/33490603/ สบื คน้ เมือ่ (14 กุมภาพนั ธ์ 2557)
สมชาย รตั นเลิศนุสรณ์. การเขียนโปรแกรมคอมพิวเตอร์ด้วยภาษาซี+DIS. กรุงเทพฯ: สง่ เสริม
เทคโนโลย(ี ไทย-ญป่ี ุน่ ). 2545.
อรพิณ ประวตั ิบริสุทธ์ิ. (2556). ค่มู ือเขียนโปรแกรมดว้ ย ภาษา C ฉบบั สมบูรณ์. กรงุ เทพมหานคร :
บริษัท โปรวิชัน จากัด.
http://alaska.reru.ac.th/5583709/C6.pdf สบื คน้ เมื่อ (12 กุมภาพันธ์ 2557)
http://krooa.files.wordpress.com/2013/07/cprogrammingv2-6.pdf สืบคน้ เม่ือ (15 มนี าคม
2557)
http://kanokwan.sru.ac.th/e-learning/12.php สบื ค้นเมือ่ (25 เมษายน 2557)
www.pdp.ac.th/30220/ppt/slide02_array.ppt สบื คน้ เมอ่ื (25 เมษายน 2557)
www.it.nrru.ac.th/krit/411101/Chap_10.ppt สืบคน้ เม่ือ (25 เมษายน 2557)
การวดั ผล และการประเมนิ ผล ร้อยละ 60
การวดั ผล รอ้ ยละ 10
รอ้ ยละ 10
คะแนนระหวา่ งเรียน ร้อยละ 20
ร้อยละ 20
แบบฝกึ หดั
การมสี ว่ นรว่ มในกิจกรรม
งานท่ีไดร้ บั มอบหมาย
สอบกลางภาค
คะแนนสอบปลายภาคเรียน หมายถงึ ร้อยละ 40
การประเมนิ ผล ใชแ้ บบองิ เกณฑ์ ดังนี้ ดีเยยี่ ม
ดมี าก ค่าระดบั คะแนน
คะแนน ระดบั คะแนน ดี 4.0
80-100 A ดพี อใช้ 3.5
75-79 B+ พอใช้ 3.0
70-74 B ออ่ น 2.5
65-69 C+ ออ่ นมาก 2.0
60-64 C ตก 1.5
55-59 D+ 1.0
50-54 D 0.0
0-49 F
แผนบรหิ ารการสอนของรายวชิ า
ประมวลรายวชิ า
รหสั วิชา CS34101 การเขียนโปรแกรมคอมพวิ เตอร์ Computer Programming
จานวนหน่วยกิต 3 หนว่ ยกติ (2-2-5) ช่ัวโมงบรรยาย 2 ชม. ปฏิบตั ิ 2 ชม. ศึกษาด้วยตนเอง 5 ชม.
ภาคเรยี นที่ 1/2558 อาจารยผ์ ู้สอน อ.สทุ ธกิ านต์ บ่อจักรพนั ธ์
คาอธบิ ายรายวชิ า
ศึกษาหลักการเขยี นโปรแกรมคอมพวิ เตอร์ ออกแบบ วิเคราะห์ และเขียนโปรแกรมแบบ
โครงสรา้ ง โดยใชภ้ าษาโปรแกรมทเี่ หมาะสม การโปรแกรม รวมถงึ การกาหนดตัวแปร ชนิดของตวั แปร
ค่าทใ่ี ช้ในการเขียนโปรแกรม การควบคุมโครงสรา้ งการทางานของโปรแกรมโครงสรา้ ง การวนซา
โปรแกรมย่อยการรับข้อมูลเข้า การแสดงผลข้อมลู แถวลาดับ ระเบียน และแฟ้มข้อมูล
จุดมงุ่ หมายของรายวิชา
เพื่อใหน้ ักศึกษามคี วามรู้ ความเข้าใจเก่ียวกับพืนฐานการเขยี นโปรแกรมแบบโครงสร้าง โดย
สามารถวเิ คราะห์ ออกแบบ และเลอื กใชภ้ าษาโปรแกรมที่เหมาะสมในการแก้ปัญหา
แผนการสอน
สัปดาห์ท่ี หัวข้อและรายละเอยี ด จานวน กจิ กรรมการเรียนการ ผู้สอน
ชั่วโมง สอนและสอ่ื ทใ่ี ช้
1 บทที่ 1 หลักการเขยี นโปรแกรม 4 บรรยาย ยกตวั อย่าง อ.สทุ ธกิ านต์
คอมพิวเตอร์ ประกอบ ศกึ ษาคน้ ควา้
- องค์ประกอบของระบบ ตวั อยา่ งในการประยุกตใ์ ช้
คอมพวิ เตอร์ งาน แบบฝึกหัดทา้ ย
- ภาษาคอมพิวเตอร์ บทเรยี น
- ขนั ตอนการเขยี นโปรแกรม
คอมพวิ เตอร์
2-3 บทท่ี 2 โครงสร้างการควบคุม 8 บรรยาย ยกตัวอยา่ ง อ.สุทธกิ านต์
โปรแกรมคอมพิวเตอร์ ประกอบ อภปิ รายกลุม่
- โครงสรา้ งแบบลาดบั จากกรณีศึกษา
ข
สปั ดาห์ที่ หัวข้อและรายละเอยี ด จานวน กิจกรรมการเรยี นการ ผ้สู อน
4 ช่ัวโมง สอนและสอ่ื ที่ใช้ อ.สุทธิกานต์
5-6 - โครงสร้างแบบเง่อื นไข 4 แบบฝกึ หดั ท้ายบทเรียน อ.สุทธิกานต์
7 - โครงสร้างแบบวนซา 8
- โครงสร้างแบบกระโดด บรรยาย ยกตัวอย่าง อ.สุทธิกานต์
8 บทท่ี 3 ตวั แปรและชนิดของ 4 ประกอบ อภิปรายกลมุ่
ขอ้ มลู จากกรณีศึกษา
- ชนิดข้อมูล แบบฝึกหดั ท้ายบทเรียน
- ตัวแปร
- คา่ คงท่ี บรรยาย ยกตวั อยา่ ง
บทท่ี 4 ตัวดาเนนิ การ ประกอบ อภปิ รายกลุ่ม
- ตัวดาเนินการ จากกรณีศกึ ษา
- ตวั ดาเนนิ การทางคณติ ศาสตร์ แบบฝกึ หดั ท้ายบทเรยี น
- ตวั ดาเนินการทางตรรกะ
- ตวั ดาเนินการเชงิ สัมพนั ธ์ บรรยาย ยกตัวอย่าง
- ตวั ดาเนนิ การกาหนดค่า ประกอบ อภิปรายกลุ่ม
- ตัวดาเนินการเงือ่ นไข จากกรณีศึกษา
- ลาดบั การทางาน แบบฝกึ หดั ท้ายบทเรยี น
บทท่ี 5 การรบั และแสดงผล
ขอ้ มูล
- การรบั ขอ้ มลู ดว้ ยฟังกช์ นั
scanf()
- การแสดงผลข้อมลู ดว้ ยฟงั ก์ชนั
printf()
- การรบั และแสดงผลข้อมลู ด้วย
ฟงั กช์ นั getchar() และ
putchar()
- การรับและแสดงผลข้อมูลแบบ
สตรงิ ดว้ ยฟงั กช์ ัน gets() และ
puts()
สอบกลางภาค
สปั ดาห์ที่ หัวข้อและรายละเอียด จานวน กจิ กรรมการเรยี นการ ผสู้ อน
9-10 ช่ัวโมง สอนและสอ่ื ทใ่ี ช้ อ.สทุ ธิกานต์
11-12 บทที่ 6 คาสั่งควบคุมการ บรรยาย ยกตัวอย่าง อ.สุทธิกานต์
13-14 ทางาน 8 ประกอบ อภปิ รายกลมุ่ อ.สทุ ธิกานต์
- คาส่งั เงือ่ นไข 8 จากกรณีศึกษา
15 - คาส่งั ทาซา แบบฝึกหดั ท้ายบทเรยี น อ.สุทธิกานต์
บทท่ี 7 แถวลาดบั 8 บรรยาย ยกตวั อย่าง
- โครงสร้างข้อมลู แบบแถว ประกอบ อภิปรายกลมุ่
ลาดับ 4 จากกรณีศกึ ษา
- แถวลาดบั 1 มติ ิ แบบฝึกหัดทา้ ยบทเรยี น
- แถวลาดับ 2 มติ ิ
- แถวลาดบั 3 มติ ิ บรรยาย ยกตัวอย่าง
บทท่ี 8 การเขียนโปรแกรม ประกอบ อภปิ รายกลมุ่
ย่อย จากกรณีศกึ ษา
- แนวคดิ เกีย่ วกบั ฟังกช์ นั แบบฝกึ หดั ท้ายบทเรียน
- ประเภทของฟังกช์ นั
- การประกาศโปร์โตไทป์ ของ บรรยาย ยกตวั อย่าง
ฟังกช์ นั ประกอบ อภิปรายกลุ่ม
- ตัวแปรทัว่ ไปและตัวแปร จากกรณีศกึ ษา
เฉพาะท่ี แบบฝึกหัดท้ายบทเรียน
- ฟังก์ชนั แบบเรียกซา
บทที่ 9 โครงสร้างและยเู นียน
- ความรทู้ ั่วไปเก่ียวกับ
โครงสรา้ ง
- การจัดการข้อมูลแบบ
โครงสร้าง
- การใช้ข้อมลู แบบโครงสร้าง
กับฟังกช์ นั
-การใช้ตวั แปรแถวลาดับเป็น
สมาชกิ ของโครงสร้าง
ง
สัปดาห์ที่ หวั ข้อและรายละเอียด จานวน กิจกรรมการเรียนการ ผู้สอน
16 อ.สทุ ธิกานต์
ชั่วโมง สอนและสอื่ ทใี่ ช้
17
บทท่ี 10 แฟ้มข้อมูล 4 บรรยาย ยกตัวอย่าง
- แฟ้มข้อมลู เบืองตน้ ประกอบ อภิปรายกลมุ่
- แฟม้ ข้อมลู แบบเขา้ ถึง จากกรณีศกึ ษา
โดยตรง แบบฝกึ หัดท้ายบทเรียน
- แฟ้มข้อมูลแบบลาดับ
- แฟ้มข้อมลู แบบระเบยี น
- ฟงั กช์ นั ในการทางานรว่ มกับ
ไฟล์
สอบปลายภาค
วิธีการสอน
1. บรรยายเนอื หาในแต่ละหัวขอ้ พร้อมยกตวั อย่างประกอบ
2. ศึกษาจากเอกสารประกอบการสอน
3. ผสู้ อนสรปุ เนอื หา
4. ทาแบบฝกึ หัดเพ่อื ทบทวนบทเรียน
5. ผเู้ รยี นถามขอ้ สงสัย
6. ผู้สอนทาการซักถาม
สื่อการเรียนการสอน
กวนิ สินรุ่งเรอื ง. (2554). ค่มู อื เรยี นการเขียนโปรแกรมภาษาซี. กรุงเทพฯ:สานักพิมพ์แห่งจฬุ าลงกรณ์
มหาวทิ ยาลัย.
ไกรศร ตังโอภากุล และกติ นิ นั ท์ พลสวสั ด.ิ์ (2556). คมู่ ือเรยี นเขียนโปรแกรมภาษา C ฉบบั สมบูรณ์
พมิ พ์ครังท่ี 1 . นนทบรุ ี : ไอดซี ี.
ไกรศร ตังโอภากุล. (2554). คู่มือเรยี นเขยี นโปรแกรมภาษา C. พิมพ์ครงั ท่ี 1. นนทบรุ ี:ไอดีซี.
ธนญั ชยั ตรภี าค. (2553). คอมพิวเตอร์และการเขยี นโปรแกรม.พมิ พ์ครังที่ 2 .กรงุ เทพมหานครฯ:ซเี อด็
ยเู คชั่น,
ธรี วัฒน์ ประกอบผล.(2556). คูม่ ือการเขียนโปรแกรมภาษา C ฉบบั สมบรู ณ.์ พมิ พ์ครงั ที่ 1. กรงุ เทพฯ.
สานักพิมพ์ ซิมพลฟิ าย.
ประหยดั สุพะ. โครงสร้างและยเู นยี น ( Structures and Unions ). สบื คน้ เม่ือ
12 กุมภาพนั ธ์ 2557, จาก http:// alaska.reru.ac.th/5583709/C7.pdf.
ฝ่ายตาราทางวชิ าการคอมพวิ เตอร.์ (2556). ค่มู ือเรยี นคอมพิวเตอร์และการบารุงรักษา. กรงุ เทพฯ:
ซเี อ็ดยเู คชั่น จากัด.
ฝ่ายตาราทางวชิ าการคอมพวิ เตอร.์ (2555). คมู่ อื เรยี นคอมพิวเตอรภ์ าษาC. กรุงเทพฯ: ซีเอ็ดยเู คชนั่
จากดั (มหาชน).
ธีรวัฒน์ ประกอบผล.(2556). คมู่ อื การเขียนโปรแกรมภาษา C ฉบับสมบูรณ์. พิมพ์ครังที่ 1. กรุงเทพฯ.
สานักพมิ พ์ ซิมพลิฟาย.
วจิ ักษณ์ ศรีสจั จะเลศิ วาจา และดุษฎี ประเสรฐิ ธิติพงษ.์ (2545). การเขยี นโปรแกรมภาษาซ.ี
ภาควิชาวิทยาการคอมพวิ เตอร์ คณะวิทยาศาสตร์ มหาวทิ ยาลัยเชียงใหม่.
โอภาส เอี่ยมสิรวิ งศ์ . (2552). การเขียนโปรแกรมดว้ ยภาษา C.กรงุ เทพฯ: ซีเอ็ดยเู คชั่น.
ศิริชยั นามบุร.ี (2557). (ออนไลน์). แหล่งทีม่ า :
http://www.scribd.com/doc/33490603/ สบื คน้ เม่ือ (14 กุมภาพันธ์ 2557)
สมชาย รตั นเลิศนสุ รณ์. การเขียนโปรแกรมคอมพิวเตอร์ดว้ ยภาษาซี+DIS. กรุงเทพฯ: สง่ เสรมิ
เทคโนโลยี(ไทย-ญี่ปนุ่ ). 2545.
อรพิณ ประวัติบริสุทธ.ิ์ (2556). คู่มือเขียนโปรแกรมด้วย ภาษา C ฉบบั สมบรู ณ์. กรุงเทพมหานคร :
บริษัท โปรวิชนั จากัด.
http://alaska.reru.ac.th/5583709/C6.pdf สบื คน้ เม่อื (12 กุมภาพันธ์ 2557)
http://krooa.files.wordpress.com/2013/07/cprogrammingv2-6.pdf สบื คน้ เม่ือ (15 มีนาคม
2557)
http://kanokwan.sru.ac.th/e-learning/12.php สืบคน้ เมอื่ (25 เมษายน 2557)
www.pdp.ac.th/30220/ppt/slide02_array.ppt สบื คน้ เมอื่ (25 เมษายน 2557)
www.it.nrru.ac.th/krit/411101/Chap_10.ppt สบื คน้ เม่ือ (25 เมษายน 2557)
การวดั ผล และการประเมนิ ผล รอ้ ยละ 60
การวัดผล รอ้ ยละ 10
รอ้ ยละ 10
คะแนนระหว่างเรียน รอ้ ยละ 20
ร้อยละ 20
แบบฝึกหดั
การมีสว่ นร่วมในกิจกรรม
งานทีไ่ ด้รับมอบหมาย
สอบกลางภาค
ฉ หมายถงึ ร้อยละ 40
ดีเยยี่ ม
คะแนนสอบปลายภาคเรียน ดมี าก ค่าระดบั คะแนน
การประเมินผล ใช้แบบอิงเกณฑ์ ดังนี ดี 4.0
ดพี อใช้ 3.5
คะแนน ระดับคะแนน พอใช้ 3.0
80-100 A ออ่ น 2.5
75-79 B+ ออ่ นมาก 2.0
70-74 B ตก 1.5
65-69 C+ 1.0
60-64 C 0.0
55-59 D+
50-54 D
0-49 F
แผนบรหิ ารการสอนประจาบทที่ 1
รายวิชา การเขยี นโปรแกรมคอมพวิ เตอร์
Computer Programming
หัวข้อเนอื้ หา
1.1 องค์ประกอบของระบบคอมพวิ เตอร์
1.2 ภาษาคอมพิวเตอร์
1.3 การทางานของโปรแกรมแปลภาษา
1.4 ขั้นตอนวิธกี ารทางคอมพิวเตอร์
1.5 ขน้ั ตอนการเขยี นโปรแกรมคอมพวิ เตอร์
วัตถปุ ระสงค์เชงิ พฤติกรรม
1. เพอื่ ให้ผู้เรยี นมีความเขา้ ใจและสามารถอธบิ ายองค์ประกอบของคอมพวิ เตอร์ได้
2. เพื่อใหผ้ ้เู รยี นมีความเขา้ ใจและสามารถอธิบายภาษาของคอมพวิ เตอร์ได้
3. เพ่ือให้ผเู้ รยี นมีความเข้าใจและสามารถอธบิ ายขนั้ ตอนการทางานของโปรแกรมแปลภาษา
ได้
4. เพือ่ ใหผ้ ู้เรียนมีความเข้าใจและสามารถอธบิ ายขัน้ ตอนวิธีการทางคอมพวิ เตอร์ได้
5. เพอ่ื ให้ผู้เรยี นมีความเขา้ ใจและสามารถอธิบายขัน้ ตอนการเขยี นโปรแกรมได้
วิธีสอนและกิจกรรมการเรียนการสอนประจาบท
1. บรรยายเนือ้ หาในแต่ละหวั ข้อ พร้อมยกตัวอยา่ งประกอบ
2. ศึกษาจากเอกสารประกอบการสอน
3. ผสู้ อนสรปุ เนือ้ หา
4. ทาแบบฝกึ หดั เพอื่ ทบทวนบทเรียน
5. ผ้เู รยี นถามขอ้ สงสัย
6. ผู้สอนทาการซักถาม
สอื่ การเรยี นการสอน
1. เอกสารประกอบการสอนวิชาการโปรแกรมคอมพวิ เตอร์
2. ภาพเลื่อน (Slide)
3. บทความจากหนงั สือ หรือเวบ็ ไซต์ตา่ งๆ
4. เครอื่ งคอมพวิ เตอร์
การวัดผลและการประเมนิ
1. ประเมินจากการซักถามในช้ันเรยี น
2. ประเมินจากความรว่ มมือและความรบั ผดิ ชอบต่อการเรียน
3. ประเมินจากการทาแบบฝกึ หัดทบทวนท้ายบทเรยี น
บทท่ี 1
หลกั การเขียนโปรแกรมคอมพิวเตอร์
ปจั จุบันคอมพิวเตอร์เขา้ มามีบทบาทสาคญั ในการดาเนนิ ชวี ิต ท้ังทางดา้ นการศกึ ษา ธรุ กจิ
การสื่อสารข้อมูล ด้านอุตสาหกรรม การเงิน การบญั ชี และอื่น ๆ เน้อื หาในบทนีจ้ ะกล่าวถงึ ขั้นตอน
วธิ ีการทางคอมพวิ เตอร์ (computer algorithms) เพื่อเปน็ การใหค้ วามรู้พื้นฐานก่อนการเขียน
โปรแกรมคอมพวิ เตอร์ รวมถึงเนอื้ หาเกี่ยวกบั โครงสร้างภายในโปรแกรมซึง่ จะประกอบดว้ ยเนือ้ หา
เกีย่ วกบั ลกั ษณะของโปรแกรมแบบโครงสร้าง และรปู แบบโครงสรา้ งภายในโปรแกรม เพอ่ื ช่วยให้
ผเู้ ขยี นโปรแกรมสามารถเลือกใช้คาสง่ั ใหส้ อดคล้องกบั โครงสรา้ งภายในโปรแกรมได้ ซ่งึ รายละเอยี ด
ของแต่ละเน้ือหามดี ังตอ่ ไปน้ี
1.1 องค์ประกอบของระบบคอมพวิ เตอร์
โครงสร้างพ้ืนฐานของคอมพิวเตอร์ ประกอบด้วย
1.1.1 หนว่ ยประมวลผลกลาง ( Central Processing Unit:CPU )
1.1.2 หนว่ ยรับขอ้ มูล ( input unit )
1.1.3 หนว่ ยแสดงผลข้อมูล ( output unit )
1.1.4 หน่วยความจา ( memory unit )
1.1.5 หน่วยความคุม (control unit)
1.1.6 ซอฟท์แวร์ (Software)
รูปที่ 1.1 โครงสร้างของคอมพวิ เตอร์
1.1.1 หนว่ ยประมวลผลกลาง (Central Processing Unit :CPU)
หนว่ ยประผลกลาง หรือ ซีพียู ทาหนา้ ทใี่ นการประมวลผล ตามคาสงั่ ของโปรแกรมท่ี
อา่ นมาจากหน่วยความจา (memory) หรอื ขอ้ มลู ท่ีรบั เข้ามาจากหน่วยรบั ข้อมูล) ในการประมวลผล
ของหน่วยประมวลผลกลางนั้นจะถูกกระทาโดยหนว่ ยคานวณ หรอื Arithmetic Logic Unit(ALU) ซง่ึ
เป็นหนว่ ยยอ่ ยภายใน CPU เรยี กว่า ไมโครโปรเซสเซอร์ เม่ือประมวลผลเสร็จกจ็ ะสง่ ข้อมูลไปยงั
หน่วยแสดงผล อาจหมายถึง ฮารด์ แวรส์ ว่ นมากจะเป็นอุปกรณ์ทท่ี างานเฉพาะด้าน เช่นหนว่ ย
ประมวลผลกราฟิก GPU ท่ีถูกสรา้ งข้ึนมาในการทางานกราฟิกโดยเฉพะ อุปกรณ์เหลา่ นี้จะชว่ ยเพิม่
ความสามารถในการทางานของคอมพวิ เตอร์ได้ดียิงข้นึ
รูปท่ี 1.2 หนว่ ยประมวลผลกลาง
(ที่มา: http://www.hitechreview.com/)
1.1.2 หนว่ ยรับขอ้ มลู (input unit)
หน่วยรบั ขอ้ มูล ทาหนา้ ท่ี รับขอ้ มลู เข้าสูห่ น่วยประมวลผลกลาง หรือนาไปเกบ็ ไว้ใน
หน่วยความจา อปุ กรณ์ท่เี ปน็ หนว่ ยรับข้อมลู ถูกออกแบบข้ึนมาเพื่อรบั ข้อมูลโดยเฉพาะ เชน่
แป้นพิมพ์ เมาส์ สแกนเนอร์ ปากกาแสง จอยสติ๊ก ไมโครโฟน กล้องดิจิตอล บารโ์ คด้ หรือจากดสิ ก์
รปู ที่ 1.3 อุปกรณร์ บั ข้อมลู
(ที่มา: http://www.seekan.ac.th/)
1.1.3 หนว่ ยแสดงผลข้อมูล (output unit)
หนว่ ยแสดงผลข้อมูล ทาหนา้ ทใี่ นการแสดงผลลัพธท์ ไี่ ดจ้ ากการประมวลผลของหนว่ ย
ประมวลผลกลางหรอื ได้จากหน่วยความจา ในรูปของ ข้อความ ภาพน่งิ ภาพเคลอื่ นไหว หรือ เสียง
เป็นตน้ อปุ กรณท์ ีเ่ ปน็ หน่วยแสดงผล เชน่ จอภาพ เครื่องพิมพ์ ลาโพง อ่นื ๆ
รูปที่ 1.4 อุปกรณ์แสดงผลข้อมูล
(ทีม่ า:http://app.emaze.com/)
1.1.4 หนว่ ยความจา (memory unit)
หนว่ ยความจา ทาหนา้ ทีใ่ นการเกบ็ ข้อมูลหรือคาสั่งของโปรแกรมทป่ี ้อนเข้ามาทางหนว่ ยรบั
ขอ้ มูล หรอื ขอ้ มลู ทไี่ ดจ้ ากการประมวลผลของหนว่ ย CPU แบ่งออกเป็น 2 ประเภท คือ
1.1.4.1 หน่วยความจาหลกั
1) หนว่ ยความจาแรม ( Random Access Memory :RAM ) ทางานได้เมือ่ มี
กระแสไฟฟา้ เลย้ี ง มีหน้าทีเ่ ป็นที่เก็บข้อมลู หรือชดุ คาสง่ั ในระหว่างประมวลผล ข้อมลู จะสูญหายทนั ที่ที
ปดิ เคร่ือง
2) หนว่ ยความจารอม ( Read Only Memory :ROM ) สามารถเก็บข้อมูลแบบ
อา่ นได้อย่างเดียว ขอ้ มูลภายในจะยงั คงเหลืออยเู่ มื่อปิดเคร่ือง นิยมใช้ในการบรรจุโปรแกรมเล็กๆ เชน่
BIOS
1.1.4.2 หนว่ ยความจาสารอง คืออุปกรณ์เก็บข้อมลู หรอื สารองข้อมลู ท่ีไม่ต้องการให้สญู
หายเมอ่ื ปดิ เครอ่ื งเช่น ซีดี ดีวีดี ฮาร์ดดสิ ก์ เมมโมรีการ์ด และ แฟลชไดรว์
รปู ท่ี 1.5 แสดงหน่วยความจาหลกั และหน่วยความจาสารอง
(ท่ีมา: www.radompon.com)
อปุ กรณ์รบั ขอ้ มูลบางอยา่ งสามารถเป็นได้ทัง้ และแสดงผลข้อมลู ดังแสดงในรูปท่ี 1.6
รูปที่ 1.6 อปุ กรณร์ ับ-แสดงผลข้อมลู
(ทม่ี า:http://www.bankersguru.org/)
1.1.5 หนว่ ยควบคุม (control unit)
หน่วยควบคุม ทาหน้าที่ในการควบคมุ การทางานของหน่วยตา่ ง ๆ ทัง้ หมดให้ทางาน
สมั พนั ธ์กนั เชน่ ควบคุมการนาเขา้ ข้อมูลเขา้ – ออก ระหวา่ งหนว่ ยความจากบั หน่วยประมวลผลกลาง
หรือควบคุมการรบั และส่งขอ้ มูลจากหน่วยรับ หรอื สง่ ข้อมูล โดยหนว่ ยควบคุมน้ี ตัวอย่างเชน่
เมนบอรด์ จพี ียู ชิปเซต และ การด์ แลน
รปู ที่ 1.7 แสดงความสมั พันธ์หนว่ ยควบคมุ กบั ระบบคอมพิวเตอร์
1.1.6 ซอฟทแ์ วร์ (Software)
หมายถึง โปรแกรมหรือชุดคาส่ังที่บอกให้คอมพิวเตอร์ว่าต้องทาอะไรบ้าง โดยจะถูก
เขียนด้วยภาษาคอมพิวเตอร์ และจะถูกแปลเป็นภาษาเคร่ืองที่คอมพิวเตอร์เข้าใจ และจะนาคาส่ัง
เหล่าน้ันไปควบคุมฮาร์ดแวร์ให้ทางาน ถ้าหากขาดซอฟท์แวร์ อุปกรณ์ฮาร์ดแวร์ก็ไม่มีความหมาย
เนื่องจากไม่สามารถทางานได้เลย ซอฟท์แวร์ แบ่งออกเป็น 2 ประเภทหลักๆ คือ ซอฟต์แวร์ระบบ
(system software) และซอฟต์แวรป์ ระยุกต์ (application software)
รปู ที่ 1.8 สญั ลักษณ์ซอฟท์แวร์
1.1.6.1 ซอฟต์แวรร์ ะบบ (system software)
เปน็ โปรแกรมทีส่ าคัญมาก ทท่ี าหน้าทคี่ วบคุมการทางานของคอมพวิ เตอร์ทกุ
ระบบ และช่วยอานวยความสะดวกแก่ผูใ้ ชใ้ นการโต้ตอบกับคอมพวิ เตอร์ ดั้งนั้นคอมพวิ เตอร์ทกุ
เครอื่ งจาเปน็ ตอ้ งมีซอฟต์แวร์ระบบก่อนจงึ จะสามารถทางานและติดต้ังซอฟต์แวร์ประยุกต์ได้ ตัวอยา่ ง
ได้แก่ window Unix Linux เป็นต้น
1.1.6.2 ซอฟต์แวรป์ ระยกุ ต์ (application software)
เปน็ โปรแกรมทีถ่ ูกออกแบบมาเพอ่ื ตอบสนองการทางานเฉพาะดา้ น อนั ได้แก่
โปรแกรมสาเรจ็ รูปตา่ ง ๆ เช่น MS-Office ที่ใช้งานด้านเอกสาร Adobe ท่ีใช้งานดา้ นกราฟกิ Nod32
ที่ใช้งานด้านความปลอดภัย เปน็ ต้น
1.2 ภาษาคอมพวิ เตอร์
ภาษาคอมพวิ เตอร์ (computer language) หมายถึง ภาษาท่ีสามารถนามาใชเ้ ขยี น
โปรแกรมคอมพวิ เตอร์ได้ การใชง้ านคอมพิวเตอร์ซ่งึ เปน็ เคร่ืองมือทางอเิ ลก็ ทรอนิกส์ใหท้ างานตามท่ี
ต้องการจาเป็นต้องมีการกาหนดภาษาสาหรับใชต้ ดิ ตอ่ สง่ั งานกับคอมพิวเตอร์ ภาษาคอมพิวเตอร์จะ
เป็นภาษาประดิษฐ์ ( artificial language ) ทม่ี นษุ ย์สร้างข้ึนมาเอง เป็นภาษาทม่ี จี ุดมุ่งหมายเฉพาะ มี
กฏเกณฑ์ท่ตี ายตวั และจากัด คอื อยใู่ นกรอบใหใ้ ช้คาและไวยากรณ์ท่ีกาหนดและมีการตคี วามหมายท่ี
ชดั เจน จงึ จดั ภาษาคอมพวิ เตอร์เปน็ ภาษาท่ีมีรูปแบบเป็นทางการ( formal language ) ตา่ งกบั
ภาษาธรรมชาติทีม่ ขี อบเขตกวา้ งมาก ไมม่ รี ปู แบบตายตัวท่ีแนน่ อน กฏเกณฑ์ของภาษาจะข้ึนกับหลัก
ไวยากรณแ์ ละการยอมรับของกลุม่ ผู้ใช้นน้ั ๆ ภาษาคอมพิวเตอร์ อาจแบ่งได้เป็น 5 ระดบั คือ
ภาษาเครือ่ ง ภาษาระดบั ตา่ ภาษาระดับสงู ภาษาระดบั สูงมาก และภาษาธรรมชาติ ซึง่ แต่ละภาษามี
รายละเอียดดังตอ่ ไปน้ี
1.2.1 ภาษาเครอื่ ง (machine language)
การเขียนโปรแกรมเพื่อสั่งให้คอมพิวเตอร์ทางานในยุคแรก ๆ จะต้องเขียนด้วยภาษาซ่ึง
เป็นที่ยอมรับของเคร่ืองคอมพิวเตอร์ท่ีเรียกว่า ภาษาเครื่อง ภาษานี้ประกอบด้วยตัวเลขล้วน ทาให้
เครื่องคอมพิวเตอร์สามารถทางานได้ทันที ผู้ท่ีจะเขียนโปรแกรมภาษาเคร่ืองได้ต้องสามารถจารหัส
แทนคาสั่งต่าง ๆ ได้ และในการคานวณต้องสามารถจาได้ว่าจานวนต่าง ๆ ที่ใช้ในการคานวณน้ันถูก
เก็บไว้ท่ีตาแหน่งใด ดังน้ันโอกาสที่จะเกิดความผิดพลาดในการเขียนโปรแกรมจึงมีมาก นอกจากนี้
เคร่ืองคอมพิวเตอร์แต่ละระบบมีภาษาเครื่องท่ีแตกต่างกันออกไป ทาให้เกิดความไม่สะดวกเมื่อมีการ
เปล่ียน เคร่อื งคอมพิวเตอร์เพราะจะต้องเขียนโปรแกรมใหมท่ งั้ หมด
ภาษาเครือ่ งจัดเปน็ ภาษาคอมพิวเตอร์ภาษาเดยี วท่สี ามารถตดิ ต่อกับคอมพิวเตอรไ์ ด้
โดยตรง เพราะว่าการเขยี นคาส่ังและข้อมลู ในภาษาเครื่องใชร้ ะบบเลขฐานสอง (binary number
system) คอื ใชต้ ัวเลข 0 และ 1 เท่านั้น ทาใหเ้ ครือ่ งคอมพวิ เตอรส์ ามารถทางานได้รวดเรว็ สว่ น
ขอ้ เสียของภาษาเครอื่ ง คือ เคร่ืองคอมพิวเตอร์ต่างชนดิ กนั มีลกั ษณะการเขยี นภาษาเคร่ืองที่แตกต่าง
กนั ไป และเกดิ ความยงุ่ ยากในการปรับปรุงแกไ้ ข ทาใหเ้ กิดความไม่สะดวกในการใชง้ าน ดงั น้นั
ภาษานจี้ งึ ไม่เหมาะกับผเู้ ร่ิมต้นเขียนโปรแกรม
ตัวอย่างท่ี 1.1 แสดงคาสั่งของภาษาเครอ่ื งมดี ังนี้
ตอ้ งการสง่ั ให้เครื่องทางานตามคาส่งั 9 + 3 แสดงได้ดงั นี้
การบวกแทนดว้ ยรหสั 10101010
เลข 9 เปล่ียนเป็นเลขฐานสอง 00001001
เลข 3 เปลีย่ นเป็นเลขฐานสอง 00000011
ดังนน้ั คาส่งั 9 + 3 เขยี นเปน็ ภาษาเครื่องได้ดังน้ี
00001001 10101010 00000011
1.2.2 ภาษาระดับต่า ( low level language )
ภาษาระดับต่า เป็นภาษาท่ีมีความใกล้เคียงกับภาษาเคร่ืองมาก ดังน้ันบางคร้ังจึงเรียก
ภาษานี้ว่า ภาษาองิ เครื่อง ( machine – oriented language ) เน่อื งจากภาษาเครือ่ งเป็นภาษาที่มี
ความยุ่งยากในการเขียนดังได้กล่าวมาแล้ว จึงไม่มีผู้นิยมและมีการใช้น้อย ดังนั้นได้มีการพัฒนา
ภาษาคอมพิวเตอร์ข้ึนอีกระดับหน่ึงโดยการใช้ตัวอักษรภาษาอังกฤษเป็นรหัสแทนการทางาน และใช้
การตั้งชือ่ ตัวแปรแทนตาแหนง่ ท่ีใช้เก็บจานวนตา่ ง ๆ ซงึ่ เปน็ คา่ ของตวั แปรนัน้ ๆ การใช้สญั ลักษณ์ช่วย
ให้การเขียนโปรแกรม ตัวอย่างของภาษาระดับต่าได้แก่ ภาษาแอสเซมบลี (assembly language)
เป็นภาษาท่ีใช้คาในอักษรภาษาอังกฤษเป็นคาส่ังให้เครื่องทางาน เช่น ADD หมายถึง บวก SUB
หมายถึง ลบ การเขียนคาสั่งในภาษาแอสเซมบลีจะใช้คาย่อของภาษาอังกฤษและอ้างถึงตาแหน่งที่อยู่
ภายในคอมพิวเตอร์เป็นส่วนใหญ่ ไดแ้ ก่ MOVE, DC, DS, CL10 เป็นต้น การใช้คาเหล่านี้ชว่ ยให้การ
เขยี นโปรแกรมง่ายขึน้ กว่าการใชภ้ าษาเครอื่ งซึ่งเป็นตัวเลขล้วน ภาษาแอสเซมบลนี ย้ี ังคงใช้ยาก เพราะ
ผู้เขียนโปรแกรมจะต้องเข้าใจการทางานของเครื่องคอมพิวเตอร์อย่างละเอียด ต้องรู้ว่าจานวนที่จะ
นามาคานวณน้ันอยู่ ณ ตาแหน่งใดในหน่วยความจา ในทานองเดียวกับการเขียนโปรแกรมเป็น
ภาษาเครื่อง ภาษาแอสเซมบลีจึงมีผู้ใช้น้อยและมักจะใช้ในกรณี ที่ต้องการควบคุมการทางานภายใน
ของตัวเครือ่ งคอมพวิ เตอร์ ดงั นน้ั ภาษาแอสเซมบลจี งึ ไม่เหมาะกับผ้เู ริม่ ตน้ เขียนโปรแกรม
การใชโ้ ปรแกรมที่เขยี นด้วยภาษาแอสเซมบลีนน้ั เครื่องคอมพวิ เตอรไ์ ม่สามารถทางาน
ได้ทนั ที จาต้องมีตวั แปลโปรแกรมจากภาษาแอสเซมบลใี หเ้ ป็นภาษาเครอ่ื งก่อนโดยอาศยั โปรแกรมใน
การแปลทม่ี ีช่ือว่าแอสเซมเบลอร์ ( assembler ) ซง่ึ แตกต่างไปตามเครือ่ งคอมพิวเตอร์แตล่ ะชนิด
ดงั นนั้ แอสเซมเบลอรข์ องเคร่ืองชนิดหนึ่งจะไมส่ ามารถใช้แปลโปรแกรมภาษาแอสเซมบลีของชนิดอ่ืน
ๆ ได้
ตัวอยา่ งที่ 1.2 แสดงคาสงั่ ของภาษาแอสเซมบลมี ดี ังนี้
ถา้ ตอ้ งการส่งั ใหเ้ ครอ่ื งทางานตามคาสัง่ 9 + 3 แสดงไดด้ งั นี้
MOV AX, 9
MOV BX, 3
ADD AX, BX
1.2.3 ภาษาระดบั สูง (high level language)
ภาษาคอมพวิ เตอรท์ ี่พฒั นาขึน้ ในยคุ แรก ยังมขี ้อจากดั ในการที่จะพัฒนาโปรแกรมขนาด
ใหญ่ ทั้งนเี้ นอ่ื งจากภาษาคอมพวิ เตอร์เหล่านน้ั ขาดโครงสรา้ งทดี่ ี ทาให้การพัฒนาโปรแกรมที่มขี นาด
ใหญ่และมีความซับซ้อนเป็นไปได้ยาก ในช่วงต้นปี ค.ศ.1970 จงึ มีภาษาคอมพิวเตอรท์ ่ีเปน็ ภาษาเชิง
กระบวนการ (Procedural หรือ Structural Language) เกดิ ขึ้น ภาษาคอมพวิ เตอรป์ ระเภทนจ้ี ะ
มีความยืดหยุน่ ในการพัฒนาโปรแกรม ทาให้สามารถแก้ไขและบารุงรักษาได้ง่าย เนื่องจากโปรแกรม
ถูกแยกออกเป็นส่วน ๆ เป็นภาษาที่สร้างขึ้นเพื่อช่วยอานวยความสะดวกในการเขียนโปรแกรม
ลักษณะของคาส่ังต่าง ๆ ในภาษาอังกฤษซ่ึงผู้อ่านสามารถเข้าใจความหมายได้ทันที เช่น ใช้คา
ว่า READ WRITE PRINT, COMPUTE เป็นต้น ผู้เขียนโปรแกรมจึงสามารถเขียนโปรแกรมด้วย
ภาษาระดับสูงได้ง่ายกว่าเขียนด้วยภาษาแอสเซมบลีหรือภาษาเครื่อง โปรแกรมท่ีเขียนด้วยภาษา
ระดบั สูงแต่ละภาษาจะต้องมีโปรแกรมที่ทาหนา้ ท่ีแปลภาษาระดบั สงู ให้เปน็ ภาษาเคร่อื ง ตัวอย่างของ
ภาษาระดับสูงได้แก่ ภาษาฟอร์แทรน (FORTRAN), ภาษาโคบอล (COBOL), ภาษาเบสิก (BASIC),
ภาษาปาสคาล (PASCAL) และภาษาซี (C) เปน็ ต้น ซง่ึ แตล่ ะภาษามปี ระวตั ิพอสังเขปดังต่อไปน้ี
1.2.3.1 ภาษาฟอร์แทรน ( FORTRAN ) ย่อมาจาก FORmula TRANslator พฒั นา
โดยบรษิ ทั IBM ระหวา่ งปี ค.ศ.1954 ถงึ ค.ศ.1957 ภาษาน้ใี ชส้ าหรบั การพัฒนาโปรแกรม
ประยกุ ต์ด้านวิทยาศาสตร์และวศิ วกรรมศาสตร์ ที่ตอ้ งใชใ้ นการคานวณสมการคณิตศาสตร์ที่
ซับซ้อน ภาษาฟอร์แทรน เปน็ ภาษาระดบั สงู ทีเ่ กา่ แก่ทสี่ ุด เป็นภาษาทีเ่ หมาะสมกับงานทตี่ อ้ งการ
คานวณ เช่น งานทางด้านวทิ ยาศาสตร์ วิศวกรรมศาสตร์และงานวจิ ยั ต่าง ๆ ปัจจุบันภาษาฟอรแ์ ทรน
ยังเปน็ ทน่ี ิยม
1 .2 .3 .2 ภ าษ าโค บ อ ล (COBOL) ย่ อ ม าจ าก Common Business Oriented
Language พฒั นาข้ึนในปี ค.ศ.1959 เป็นภาษาทพี่ ัฒนาขึ้นมาเพื่อใชใ้ นการพฒั นาโปรแกรมประยุกต์
ด้านธุรกิจและการค้า ปัจจุบันโปรแกรมท่ีใช้ในด้านธุรกิจจานวนมากยังเป็นโปรแกรมท่ีพัฒนามาจาก
ภาษาโคบอล เครอื่ งคอมพิวเตอร์ขนาดใหญส่ ว่ นมากมีโปรแกรมแปลภาษาโคบอล
1.2.3.3 ภาษาเบสิก ( BASIC ) ย่อมาจาก Beginners All-purpose Symbolic
Instructional Code เป็นภาษาท่ีพัฒนาข้ึนโดยมีจุดประสงค์เพื่อให้ผู้เร่ิมต้นพัฒนาโปรแกรม
สามารถเรียนรู้และเข้าใจการพัฒนาโปรแกรมอย่างง่าย ภาษาเบสิกเป็นภาษาคอมพิวเตอร์ภาษาแรก
ท่ีใช้เครื่องไมโครคอมพิวเตอร์ ภาษาเบสิก เป็นภาษาที่สร้างข้ึนมาโดยมีจุดประสงค์เพ่ือใช้สอนเขียน
โปรแกรม แทนภาษาคอมพิวเตอร์ภาษาอื่น เช่น ภาษาฟอร์แทรน ซ่ึงมีขนาดใหญ่และต้องใช้
หน่วยความจาสูงในการทางาน ซึ่งไม่เหมาะกับเคร่ืองคอมพิวเตอร์ในสมัยน้ัน ภาษาเบสิกเป็นภาษาท่ีมี
ขนาดเล็กเปน็ ตัวแปลภาษาชนิดทีเ่ รียกวา่ อนิ เทอรพ์ รเี ตอร์
1.2.3.4 ภาษาปาสคาล (Pascal) พัฒนาโดย Niclaus Wirth ในปี ค.ศ.1971 โดยมี
จุดประสงค์เพื่อใช้ในการสอนการเขียนโปรแกรมภาษาเชิงกระบวนการ ในมหาวิทยาลัย ภาษา
ปาสคาล เป็นภาษาที่ได้รับการออกแบบให้ใช้ง่ายและมีโครงสร้างที่ดีจึงเหมาะกับการใช้งานด้าน
หลักการเขียนโปรแกรม แต่เน่ืองจากภาษาปาสคาลไม่มีคุณลักษณะท่ีจะสนับสนุนการพัฒนา
โปรแกรมด้านธรุ กจิ และอุตสาหกรรมจงึ ไมไ่ ดร้ ับความนิยมมากนัก
1.2.3.5 ภาษาซแี ละซีพลัสพลสั ( C&C++ ) พัฒนาข้ึนในช่วงเดยี วกบั ภาษา
ปาสคาล โดยนักวจิ ยั ที่หอ้ งปฏิบตั กิ าร AT&T Bell ซงึ่ ได้นาเอาจุดเดน่ ของภาษา BCPL และ
ภาษา B มาใชแ้ ละได้เพม่ิ คณุ ลกั ษณะและชนดิ ข้อมูลอ่ืนเขา้ มาดว้ ย เดมิ ภาษาซถี ือว่าเปน็
ภาษาคอมพวิ เตอร์ที่สาคัญในการพฒั นาโปรแกรมบนระบบปฏิบตั ิการยนู ิกส์ (Unix) ซงึ่ เปน็
ภาษาคอมพวิ เตอร์ทส่ี ามารถสรา้ งโปรแกรมประยุกตท์ ี่ทางานได้รวดเรว็ มาก เมอ่ื เทยี บกบั
ภาษาคอมพวิ เตอรอ์ นื่ ๆ ภาษาซแี ละซีพลัสพลัส เปน็ ภาษาทม่ี ีใช้กับเครื่องคอมพวิ เตอรท์ กุ ระดับ
เนอื่ งจากภาษาซีไดร้ วมเอาขอ้ มูลของภาษาระดับสูงและภาษาระดบั ต่าเข้าไวด้ ้วยกนั กล่าวคอื เปน็
ภาษาทมี่ ีไวยากรณ์ทเี่ ข้าใจง่ายทาให้เขยี นโปรแกรมได้งา่ ยเชน่ เดยี วกับภาษาระดับสงู ทั่วไป แต่
ประสทิ ธภิ าพและความเรว็ ในการทางานดกี วา่ มาก เนอ่ื งจากมกี ารทางานเหมือนภาษาระดับต่า
สามารถทางานได้ในระดบั ทีเ่ ป็นการควบคมุ ฮารด์ แวรไ์ ด้มากกวา่ ภาษาระดบั สูงอืน่ ๆ ดงั จะเหน็ ไดว้ า่
ภาษาซีเปน็ ภาษาทสี่ ามารถพัฒนาระบบปฏบิ ัตกิ ารได้เชน่ ระบบปฏิบตั กิ ารยูนิกซ์ นอกจากนีเ้ ม่ือมี
แนวคิดของการเขียนโปรแกรมแบบเชิงวตั ถไุ ด้เขา้ มามบี ทบาทในวงการคอมพิวเตอรม์ ากขน้ึ ภาษาซีก็
ยงั ไดร้ ับการพฒั นาโดยประยุกต์ใชก้ ับการเขียนโปรแกรมดังกล่าว เกิดเป็นภาษาใหมช่ ื่อว่า
ภาษาซพี ลัสพลัส
1.2.3.6 ภาษาวชิ วลเบสิก เปน็ ภาษาทพ่ี ฒั นาต่อมาจากภาษาเบสิก เปน็ ภาษาทใี่ ช้
ไวยากรณ์บางส่วนของภาษาเบสิกในการเขียนโปรแกรม แตม่ ีแนวคดิ และวธิ ีการพฒั นาโปรแกรมท่ี
แตกต่างจากภาษาเบสิกโดยส้นิ เชิง รวมท้งั การใช้เนอื้ ที่ในหน่วยความจากแ็ ตกต่างกันมาก ทงั้ น้ี
เนอื่ งจากภาษาวิชวลเบสกิ เป็นภาษาทใ่ี ช้แนวคดิ
1.2.3.7 การเขียนโปรแกรมแบบจนิ ตภาพ ในการพัฒนาโปรแกรมภาษาน้ีพัฒนาข้นึ โดย
บริษทั ไมโครซอฟต์ ออกแบบเพ่ือเขียนโปรแกรมที่สามารถใช้งานไดบ้ นระบบปฏิบตั ิการแบบจยี ูโอ เชน่
ระบบปฏิบตั กิ ารไมโครซอฟต์วนิ โดวส์ มีการติดต่อกบั ผ้ใู ชโ้ ดยใช้รูปภาพ การเขียนโปรแกรมทาไดง้ ่าย
กว่าการเขียนโปรแกรมแบบเกา่ มาก
1.2.3.8 ภาษาจาวา เปน็ ภาษาทีม่ ีความยดื หยุน่ สงู สามารถเขียนโปรแกรมและใช้งานได้
บนเครอื่ งคอมพวิ เตอรท์ ุกประเภทและระบบปฏบิ ตั ิการทุกรูปแบบ ในชว่ งแรกที่มกี ารนาภาษาจาวามา
ใช้งาน จะเปน็ การใช้งานบนอินเทอร์เนต็ เปน็ ภาษาทเ่ี น้นการทางานบนเว็บ แตป่ จั จุบนั สามารถนามา
ประยุกต์สร้างโปรแกรมใชง้ านทว่ั ไปได้
นอกจากนี้ เมื่อเทคโนโลยขี องการสอื่ สารก้าวหน้าข้ึน จนกระท่ังเคร่อื งคอมพิวเตอร์
ปาล์มท็อป หรอื แมแ้ ตโ่ ทรศพั ทเ์ คลอ่ื นท่ีที่สามารถเช่อื มต่อเข้าส่รู ะบบอนิ เทอร์เน็ตและใช้งานระบบ
เวลิ ดไ์ วดเ์ วบ็ ได้ ภาษาจาวาก็สามารถสร้างสว่ นท่ีเรียกวา่ แอปเพลต( applet ) ใหอ้ ุปกรณ์
อเิ ล็กทรอนกิ สท์ ่ีกล่าวขา้ งต้นเรียกใชง้ านจากเครอ่ื งท่เี ปน็ แม่ข่าย(server)ได้
1.2.3.9 ภาษาเดลฟาย แนวคิดการเขยี นโปรแกรมของภาษาเดลฟายเหมอื นกับแนวคดิ
ของภาษาวิชวลเบสิก คือเปน็ การเขียนโปรแกรมเชงิ จนิ ตภาพแต่ภาษาพ้ืนฐานท่ีใช้ในการเขียน
โปรแกรมจะเปน็ ภาษาปาสคาล ในการเขยี นโปรแกรมเชงิ จินตภาพนมี้ ีคอมโพเนนต์( component ) ที่
สามารถใชเ้ ป็นส่วนประกอบเพ่ือสรา้ งส่วนตดิ ต่อผู้ใช้ทเี่ ป็นแบบกราฟกิ ทาใหซ้ อฟตแ์ วรท์ พ่ี ัฒนามี
ความนา่ สนใจและใช้งานง่ายขนึ้ การเขยี นโปรแกรมด้วยภาษาเดลฟายจงึ เป็นท่ีนิยมในการนาไป
พฒั นาเปน็ โปรแกรมใชง้ านมากรวมท้งั ภาษาปาสคาลเปน็ ภาษาทเ่ี ขา้ ใจง่ายเหมาะแกก่ ารนามาใช้สอน
เขยี นโปรแกรม
1.2.4 ภาษาระดบั สูงมาก (very high level language)
ภาษาระดบั สงู มาก บางครั้งเรียกว่า Fourth Gerneration Languages (4GLs) เป็น
ภาษาที่มลี กั ษณะสาคัญ คอื ผู้เขยี นโปรแกรมไมต่ อ้ งบอกวธิ ีการทางานโดยละเอยี ด เพียงแต่ระบุ
คาสงั่ ใหท้ างานส้นั ๆ ใหภ้ าษาระดบั สูงมากเขา้ ใจก็เพียงพอ ส่วนวธิ กี ารคานวณหรือการทางาน
ภาษาระดบั สงู มากจะเปน็ ผจู้ ดั การเองท้ังสน้ิ บางครัง้ เรยี กวา่ non-procedure language
ตวั อย่างภาษาระดบั สูงมาก ไดแ้ ก่ ภาษา SQL (Structured Query Langauge) ซ่งึ นิยมใช้กันใน
ซอรฟ์ แวร์พัฒนาระบบจัดการฐานข้อมลู เช่น ORACLE เป็นต้น
1.2.5 ภาษาระดับธรรมชาติ (natural language)
ภาษาธรรมชาติจะเกี่ยวข้องกับระบบฐานความรู้ (knowledge based system ) และ
กฎอา้ งอิง (inference rules) เพยี งแต่ผ้ใู ช้ภาษาธรรมชาติปอ้ นคาถามผา่ นเข้าไปในคอมพิวเตอรท์ ่ีมี
ภาษาธรรมชาติก็จะทาการวิเคราะหค์ าถามแลว้ ไปคน้ หาคาตอบจากระบบฐานความรู้ทเ่ี ก็บไว้
ตัวอยา่ งของภาษาธรรมชาติ ได้แก่ ภาษา PROLOG และภาษา LISP (List Processing
Language)
1.3 การทางานของโปรแกรมแปลภาษา (translation program)
โปรแกรมแปลภาษาแบ่งเป็น 2 ลักษณะ ได้แก่ คอมไพเลอร์และอินเทอร์พรีเตอร์ ระบบ
ติดต่อ ใช้งานคอมพิวเตอร์ แบ่งเป็น 3 กลุ่ม ได้แก่ กลุ่มพิมพ์คาสั่งเข้าไปทีละบรรทัด กลุ่มเลือก
รายการเมนู และกลุ่มเลือกรูป ในการประมวลผลโปรแกรมท่ีเขียนข้ึนด้วยภาษาระดับสูงจาเป็นต้อง
อาศัย โปรแกรม ท่ีทาหน้าที่ช่วยในการแปลโปรแกรมภาษาระดับสูงให้เป็นภาษาเคร่ือง โปรแกรม
ภาษาทใ่ี ช้ แบ่งออกเปน็
2 ลกั ษณะ ได้แก่
1.3.1 คอมไพเลอร์ ( compiler ) เป็นโปรแกรมท่ที าหน้าที่ในการแปลโปรแกรมที่
เขียนดว้ ยภาษาระดบั สงู ท่เี รียกกนั วา่ โปรแกรมต้นฉบับ ( source program ) ใหเ้ ป็นโปรแกรม
ภาษาเคร่ือง ( object program ) ถา้ มีข้อผดิ พลาดเคร่ืองจะพิมพร์ หสั หรือข้อผิดพลาดออกมาด้วย
ภายหลงั การแปลถา้ ไมม่ ีข้อผิดพลาด ผใู้ ชส้ ามารถส่งั ประมวลผลโปรแกรมและสามารถเกบ็ โปรแกรมที่
แปลภาษาเครอื่ งไวใ้ ช้งานต่อไปได้อีกโดยไม่ตอ้ งทาการแปลโปรแกรมซ้าอกี ตวั อยา่ งโปรแกรม
แปลภาษาแบบนี้ ไดแ้ ก่ โปรแกรมแปลภาษาฟอร์แทรน โปรแกรมแปลภาษาโคบอล โปรแกรม
แปลภาษาปาสคาล โปรแกรมแปลภาษาซี
1.3.2 อนิ เทอรพ์ รีเตอร์ ( interpreter ) เปน็ โปรแกรมที่ทาหน้าท่ีในการแปล
โปรแกรมที่เขียนดว้ ยภาษาระดับสงู ใหเ้ ป็นภาษาเครื่องเชน่ เดยี วกบั คอมไพเลอร์ ความแตกต่างจะอยู่ที่
อนิ เทอร์พรีเตอร์ จะทาการแปลและประมวลผลทลี ะคาสั่ง ขอ้ เสียของอินเทอร์พรีเตอร์ก็คอื ถา้ นา
โปรแกรมน้ีมาใช้งานอกี จะต้องทาการแปลโปรแกรมทุกครง้ั ภาษาบางภาษามีโปรแกรมแปลท้ังสอง
ลักษณะ เช่น ภาษาเบสกิ เป็นต้น
ดงั นั้น ผูเ้ ขยี นโปรแกรม (programmer) จงึ จาเปน็ ต้องเรยี นรภู้ าษาคอมพวิ เตอร์ภาษาใด
ภาษาหน่ึงหรอื หลายภาษา แลว้ ฝึกฝนทกั ษะการเขียนโปรแกรมดว้ ยภาษาคอมพิวเตอร์ท่ตี ้องการใช้
งานใหเ้ กดิ ความชานาญจึงจะสามารถเขียนโปรแกรมคอมพิวเตอร์ได้อย่างมปี ระสิทธิภาพ
1.4 ขนั้ ตอนวิธีการทางคอมพิวเตอร์ ( computer algorithms )
ก่อนท่จี ะเขยี นโปรแกรมคอมพวิ เตอรภ์ าษาใดภาษาหนงึ่ เพ่ือแก้ปญั หาทาง
คอมพวิ เตอร์ ควรมกี ารศึกษาข้นั ตอนวิธีการทางคอมพิวเตอร์ เพ่อื ให้เกิดความรู้ความเข้าใจทีถ่ ูกต้อง
ตามขั้นตอนวธิ แี ละนาไปสู่การเขียนโปรแกรมได้ง่ายขนึ้ ขัน้ ตอนวธิ ีการทางคอมพวิ เตอร์ มีดงั นี้
1) การวเิ คราะห์งาน (job analysis)
2) การเขียนผังงานโปรแกรม (program flowcharting)
3) การเขยี นโปรแกรม (programming)
4) การทดสอบ และแก้ไขโปรแกรม (testing and editing program)
5) การจัดทาเอกสารประกอบ และการบารงุ รักษาโปรแกรม (documentation and
maintenance program)
1.4.1 การวเิ คราะหง์ าน (job analysis)
ในการวเิ คราะห์งานเราจะต้องกาหนดจดุ ประสงคข์ องการวเิ คราะห์งาน และขั้นตอน
วิธีการวเิ คราะห์งานแต่ละอย่างใหไ้ ด้ ซึ่งงานแต่ละอย่างมรี ายละเอียดดังนี้
1.4.1.1 จดุ ประสงค์ของการวิเคราะหง์ าน
ในการวิเคราะห์งานแตล่ ะอย่างมจี ุดประสงค์ของการวิเคราะหง์ านท่ีสาคัญดังนี้
1. เพือ่ หาวัตถปุ ระสงค์ของการเขียนโปรแกรม
2. เพือ่ หารูปแบบผลลพั ธ์ทต่ี ้องการ
3. เพอ่ื หาข้อมลู นาเข้าท่ีตอ้ งใสเ่ ขา้ ไปในโปรแกรม
4. เพือ่ หาตัวแปรท่จี าเปน็ ต้องใชใ้ นโปรแกรม
5. เพ่ือหาขน้ั ตอนวธิ กี ารทางานของโปรแกรม
1.4.1.2 ข้นั ตอนวิธีการวเิ คราะห์งาน
ในการวิเคราะหง์ านแตล่ ะอย่างมีขั้นตอนวธิ กี ารวเิ คราะห์งานทสี่ าคัญดังน้ี
1) การหาวัตถุประสงค์ของการเขยี นโปรแกรม ผ้เู ขียนโปรแกรมจะต้องหา
วตั ถปุ ระสงคจ์ ากงานทจี่ ะเขยี นโปรแกรมวา่ ต้องการเขียนโปรแกรมเพื่อแก้ปัญหาอะไรบ้างซงึ่ จะทาให้
เขียนโปรแกรมได้ตรงกบั ความตอ้ งการหรอื วตั ถปุ ระสงคข์ องงานนน้ั ๆ
2) การหารูปแบบผลลัพธท์ ตี่ อ้ งการ เม่อื ผู้เขยี นโปรแกรมหาวตั ถปุ ระสงคข์ องการ
เขียนโปรแกรมได้แล้ว ขั้นตอนต่อมาคอื การกาหนดรูปแบบผลลพั ธ์ทตี่ ้องการจากโปรแกรม ซง่ึ
รปู แบบผลลัพธ์อาจอยู่ในลกั ษณะของขอ้ ความหรอื ตวั เลข หรือตาราง หรอื แผนภูมิ หรืออาจใช้
ผสมกันระหว่างตัวเลขกับข้อความ หรอื ข้อความกบั ตัวเลข และตารางก็ได้ ข้ึนอยู่กบั ผู้เขยี น
โปรแกรมเป็นผู้กาหนดเอง แต่โดยส่วนมากนิยมแสดงผลลพั ธ์ของโปรแกรมให้อยู่ในรปู แบบที่เขา้ ใจ
งา่ ยมากกวา่ รปู แบบที่ซบั ซอ้ น
3) การหาขอ้ มลู นาเข้าทตี่ ้องใสเ่ ขา้ ไปในโปรแกรม ผู้เขียนโปรแกรมจะตอ้ งหาข้อมลู
นาเข้าจากผลลัพธท์ ่ีไดจ้ ากโปรแกรม โดยคานึงถึงขั้นตอนวิธกี ารคานวณ และขอ้ มลู ท่ีจาเป็นต้องใสเ่ ขา้
ไปเพื่อให้ได้ผลลพั ธท์ ตี่ ้องการ
ตวั อย่างที่ 1.3 ผลลพั ธ์ที่ตอ้ งการ คอื พื้นท่ีสามเหล่ียมมุมฉากข้อมูลนาเข้าที่ตอ้ งใส่เข้าไปใน
โปรแกรมคือ
1) สูตรคานวณพื้นทส่ี ามเหลย่ี มมมุ ฉาก
พื้นท่ีสามเหล่ียมมมุ ฉาก = ? x ฐาน x สูง
2) ความยาวของฐานและความสงู ของรปู สามเหลีย่ ม
3) การหาตวั แปรทจี่ าเป็นต้องใชใ้ นโปรแกรม
ตัวแปร หมายถงึ ชื่อทผ่ี ้เู ขยี นโปรแกรมสามารถตง้ั ข้นึ เองตามหลักการตั้งชือ่ ตวั แปรของ
ภาษา คอมพวิ เตอร์ท่ีนามาเขียนโปรแกรม เพื่อใชใ้ นการอา้ งอิงการเก็บข้อมูลและเรียกใชข้ อ้ มูลภายใน
ตัวแปร ดงั น้นั ผเู้ ขียนโปรแกรมจะต้องตัง้ ช่อื ตวั แปรท่ใี ชใ้ นการเกบ็ ข้อมลู ทัง้ หมดภายใน
โปรแกรม รวมถึงตัวแปรบางตัวท่ีใชใ้ นการนบั จานวนรอบของการทางานในโปรแกรมอีกดว้ ย
จากตัวอยา่ งที่ 1.3 สามารถแสดงการวิเคราะหง์ านตั้งแต่ขนั้ ตอนท่ี 1 ถึง 4 ได้ดังนี้
1) วตั ถุประสงค์ของการเขยี นโปรแกรม
เพื่อคานวณหาคา่ พื้นที่สามเหล่ียมมุมฉาก
2) รูปแบบผลลพั ธ์ที่ตอ้ งการ
พมิ พ์ผลลพั ธท์ ตี่ ้องการออกทางภาพดังน้ี
* ** output ***
Base = 5
High = 4
Area = 10
3) ขอ้ มลู นาเขา้ คอื ความยาวฐานและความสงู
4) ตัวแปรท่ีใช้
B = ตัวแปรทีเ่ กบ็ ความยาวของสามเหลีย่ มมุมฉาก
H = ตวั แปรที่เกบ็ ความสงู ของสามเหลีย่ มมมุ ฉาก
Area = ตัวแปรทเ่ี ก็บผลลพั ธท์ ่ีไดจ้ ากการคานวณตามสตู ร
Area = 1/2*B*H หรือ Area = 0.5*B*H
5) การหาข้นั ตอนวิธีการทางานของโปรแกรม
การหาขั้นตอนวิธีการทางานของโปรแกรมจะขน้ึ อยู่กับลักษณะของการแก้ปญั หา ดงั นน้ั
นักเขียนโปรแกรมทมี่ ีความชานาญในระดับหนึ่งแล้วจะสามารถหาข้นั ตอนวธิ กี ารทางานของโปรแกรม
ได้โดยไม่ยาก แต่สาหรับผ้ทู ่เี ร่ิมต้นศึกษาการเขยี นโปรแกรม ควรหาขัน้ ตอนวธิ กี ารทางานของ
โปรแกรมตามคาแนะนาโดยเรียงตามลาดบั ดังนี้
ขัน้ ตอนวธิ กี ารทางานของโปรแกรมท่ีแนะนา
5.1) เร่มิ ตน้ ทางาน
5.2) กาหนดค่าเริม่ ต้นให้กบั ตวั แปร
5.3) พิมพ์หัวรายงาน (ถา้ มีรายงาน)
5.4) รับขอ้ มลู เขา้ ทีละเรคอรด์
5.5) ตรวจสอบขอ้ มูลวา่ เปน็ ชุดสดุ ทา้ ยหรอื ไม่
5.5.1 ถ้าเปน็ ขอ้ มลู ชุดสุดท้าย ใหไ้ ปทางานข้อ 5.11
5.5.2 ถา้ ไม่ใช่ข้อมลู ชุดสดุ ท้าย ให้ทางานขอ้ ต่อมา (ข้อ 5.6)
5.6) คานวณผลลพั ธ์
5.7) เปรียบเทียบผลลัพธ์ (ถ้ามี)
5.8) เพมิ่ คา่ ตัวแปรสะสม (ถ้ามี)
5.9) พิมพ์ค่าผลลพั ธท์ ลี ะเรคอรด์
5.10) ย้อนกลบั ไปทางานข้อ 5.4
5.11) พมิ พ์สรุป (ถ้ามี)
5.12) จบการทางาน
ท้ังน้กี ารวิเคราะหง์ านเพอื่ แก้ปญั หาแต่ละอย่างอาจมบี างข้ันตอนแตกตา่ งกันไป ดงั นน้ั
คาแนะนาข้างตน้ จึงเป็นเพยี งแนวทางของการหาข้ันตอนวิธีการทางานของโปรแกรมเท่านั้น ซงึ่ เวลา
ใช้งานจริงผู้วเิ คราะห์งานต้องประยุกต์ใหเ้ ขา้ กับปัญหาทตี่ ้องการแก้ไขต่อไป เพื่อความเข้าใจเกีย่ วกับ
ข้นั ตอนวิธกี ารวเิ คราะห์งานมากยง่ิ ขึน้ ใหศ้ ึกษาจากตวั อย่างการวิเคราะห์งานดังต่อไปนี้
ตวั อยา่ งที่ 1.4 จงเขยี นวิเคราะหง์ าน เพ่ือเขยี นโปรแกรมคานวณ พื้นทส่ี ี่เหล่ยี มผนื ผ้า จานวน 1 รปู
โดยทผ่ี ใู้ ชโ้ ปรแกรม จะต้องป้อนความกว้าง และความยาวของสเี่ หลยี่ มผนื ผา้ เขา้ ไปในโปรแกรม
วธิ ที า
ขนั้ ตอนการวเิ คราะหง์ านท้ัง 5 ข้ันตอน สามารถแสดงได้ดังน้ี
1) วตั ถปุ ระสงค์ของการเขียนโปรแกรม
เพือ่ คานวณพื้นทสี่ เ่ี หลยี่ มผนื ผา้ จานวน 1 รปู
2) รปู แบบผลลัพธ์ที่ต้องการ
พิมพ์ผลลพั ธอ์ อกทางจอภาพ ดงั น้ี
--Input Data--
Width = 10
Length = 10
--Output--
Area = 100
3) ขอ้ มูลนาเขา้
3.1) สูตรคานวณพนื้ ท่สี เ่ี หลย่ี มผืนผา้
Area = Width*Length
3.2) รบั ค่าความกว้างและความยาวของสเี่ หลี่ยมผนื ผา้ ผา่ นทางคีย์บอรด์
4) ตัวแปรทต่ี ั้งขึน้ เพ่ือใชใ้ นโปรแกรม
Width = ตัวแปรทใ่ี ชเ้ กบ็ ความกว้างของสเ่ี หลี่ยมผนื ผา้
Length = ตวั แปรทีใ่ ชเ้ กบ็ ความยาวของส่เี หลี่ยมผืนผ้า
Area = ตัวแปรทีใ่ ชเ้ ก็บพ้นื ทข่ี องสี่เหล่ยี มผืนผ้า
โดยคานวณได้จากสูตร Area = Width*Length
5) ขน้ั ตอนวิธีการทางานของโปรแกรมมดี งั น้ี
5.1) เรมิ่ ตน้ ทางาน
5.2) รับข้อมลู คา่ ความยาวและความกว้างของสีเ่ หลย่ี มผืนผา้ ผ่านทางคยี ์บอรด์
5.3) คานวณพื้นท่ีสี่เหลีย่ มผนื ผ้าตามสูตร
Area = Width*Length
5.4) พมิ พ์ค่าความยาว ความกวา้ ง และพน้ื ทีส่ ่ีเหลยี่ มผืนผ้าออกทางจอภาพ
5.5) จบการทางาน
4.2 การเขยี นผงั งานโปรแกรม (program flowcharting)
ผงั งาน (flowchart) ทางคอมพิวเตอร์ หมายถึง แผนภาพทเี่ ขยี นขึน้ โดยใช้
สญั ลกั ษณ์
มาตรฐาน เพ่ือแสดงขน้ั ตอนวิธกี ารทางานของโปรแกรมหรือระบบงานท่ีต้องการ การเขยี นผังงาน
โปรแกรม ดังรายละเอยี ดต่อไปน้ี
4.2.1 ประเภทของผงั งาน ผังงานสามารถจาแนกออกได้ 2 ประเภท คือ
4.2.1.1 ผังงานระบบ (system flowchart) หมายถงึ ผังงานทแี่ สดงถงึ
ขน้ั ตอนวธิ กี ารทางานของระบบงานใดระบบหนึ่ง ซ่งึ ในผังงานระบบจะแสดงให้เห็นถึงส่ือทใ่ี ชร้ บั
ขอ้ มลู การบันทกึ ขอ้ มูล วธิ กี ารประมวลผล ขนั้ ตอนการทางานและความสัมพันธ์ของสว่ นต่าง ๆ ใน
ระบบงานอย่างกว้าง ๆ เพ่ือใหเ้ หน็ ภาพรวมของระบบงานใดระบบงานหน่งึ เช่น
รูปที่ 1.9 ผังงานระบบแสดงการตดั เกรด
(ทม่ี า : กรรณิการ์ กมลรัตน์)
4.2.1.2 ผังงานโปรแกรม (program flowchart) หมายถึงผังงานท่ีแสดงข้ันตอน
วิธกี ารทางานของโปรแกรมที่ตอ้ งการเขยี นขึน้ ภายในผังงานโปรแกรม จะแสดงใหเ้ ห็นขน้ั ตอน
วิธีการทางาน ของโปรแกรมอย่างละเอยี ด เพ่ือให้คอมพิวเตอร ์สามารถทางานตามท่เี ขียนไวใ้ นผงั งาน
โปรแกรม ได้อย่างถูกต้อง โดยเราสามารถนาข้นั ตอน วธิ กี ารทางานของโปรแกรมในข้ันการ
วเิ คราะหง์ าน มาเขยี นเป็นผังงานโปรแกรมได้ทนั ที จากนน้ั กส็ ามารถนาผงั งานโปรแกรม ไปเขียน
โปรแกรมตามที่ต้องการได้ ดังนน้ั ในเรอื่ งของการเขยี นผังงาน ท่ีจะกลา่ วต่อไปนจ้ี ะเกยี่ วขอ้ งกบั ผัง
งานโปรแกรมทั้งสิน้ เชน่
รูปท่ี 1.10 ผงั งานโปรแกรมแสดงรายละเอยี ดการทางานของโปรแกรมสาหรบั ตัดเกรด
( ทม่ี า : เฉลมิ พล ทัพซา้ ย )
4.2.2 สญั ลกั ษณ์มาตรฐานท่ใี ช้เขียนผังงานโปรแกรม สถาบันมาตรฐานแห่งชาติ
ของสหรัฐอเมริกา (American National Standard Institute) และองคก์ ารระหวา่ งประเทศว่า
ดว้ ยการมาตรฐาน (International Organization for Standardization) ได้ร่วมกนั กาหนด
สญั ลักษณม์ าตรฐานท่ีใช้เขียนผังงานโปรแกรม โดยในเอกสารเลม่ นีจ้ ะนาเสนอสัญลักษณ์ทีน่ ิยม
นามาใช้เขียนผงั งานโปรแกรม ดงั ตอ่ ไปน้ี
1. สัญลกั ษณ์ Process
ความหมายของ Process คือ การกาหนดคา่ หรือการคานวณค่า
ตัวอย่างที่ 1.5 แสดงการกาหนดค่าใหต้ ัวแปร Total
ตัวอย่างที่ 1.6 แสดงการคานวณค่าผลรวมของตัวแปร Total
2. สัญลกั ษณ์ Decision
ความหมายของ Decision คอื การทดสอบเงือ่ นไขหรือเปรยี บเทียบเงื่อนไข เพ่อื ตัดสินใจ
ทางานอย่างใดอยา่ งหนง่ึ ตามที่ตอ้ งการ
ตัวอย่างท่ี 1.7 แสดงการเปรยี บเทียบเงอื่ นไข 1 ทางเลอื ก
ตวั อย่างที่ 1.8 แสดงการเปรยี บเทยี บเง่ือนไข 2 ทางเลอื ก
3. สญั ลกั ษณ์ Start/ Stop program หรือ Terminal Interrupt
ความหมายของสัญลักษณ์ คือ การเรมิ่ ตน้ โปรแกรม หรอื การสิน้ สุดการทางานของ
โปรแกรม หรอื หยดุ การทางานช่วั คราว
ตัวอย่างท่ี 1.9 แสดงการใช้งานสญั ลกั ษณ์ Start/ Stop program หรือ Terminal Interrupt
4. สัญลักษณ์ Input / Output
ความหมายของสญั ลักษณ์ คอื การรับข้อมูล (input) หรอื การแสดง
ผลลพั ธ์ (output) โดยไม่ได้ระบสุ ื่อที่ใช้
ตัวอย่างที่ 1.10 แสดงการใช้งานสญั ลักษณ์ Input/ Output
5. สัญลักษณ์ Display
ความหมายของสญั ลกั ษณ์ คือ การแสดงผลลัพธท์ างจอภาพ
ตัวอย่างที่ 1.11 แสดงการใชง้ านสญั ลักษณ์ display
6. สัญลักษณ์ Document
ความหมายของสัญลกั ษณ์ คือ การพิมพผ์ ลลพั ธ์ออกทางกระดาษพมิ พ์
ตัวอย่างท่ี 1.12 แสดงการใช้งานสัญลกั ษณ์ Document
7. สัญลกั ษณ์ Manual Input
ความหมายของสัญลกั ษณ์ คือ การรับข้อมลู หรือคาส่ังผา่ นทางคยี ์บอรด์
ตัวอยา่ งท่ี 1.13 แสดงการใชง้ านสัญลักษณ์ Manual Input
8. สัญลักษณ์ Manual Operation
ความหมายของสัญลกั ษณ์คือการรบั ข้อมลู หรอื แสดงผลลพั ธ์โดยไม่ระบสุ ื่อ
ตวั อย่างท่ี 1.14 แสดงการใชง้ านสญั ลกั ษณ์ Manual Operation
9. สัญลักษณ์ Connector
ความหมายของสัญลกั ษณ์ คือ แสดงจุดเชือ่ มต่อจากทหี่ น่ึงไปยังอีกทห่ี นง่ึ ของผัง
งาน โดยที่จดุ เชอ่ื มต่อนี้อยใู่ นหนา้ เดยี วกนั
ตัวอย่างท่ี 1.15 แสดงการใชง้ านสญั ลกั ษณ์ Connector
10. สัญลกั ษณ์ Off page Connector
ความหมายของสัญลักษณ์ คือ แสดงจุดเชือ่ มต่อจากทีห่ น่ึงไปยงั อีกท่ีหน่ึงของผงั
งาน โดยที่จดุ เชอ่ื มต่อนี้อย่ตู ่างหน้ากนั
ตวั อย่างที่ 1.16 แสดงการใช้งานสญั ลักษณ์ Off page Connector
คานวณคา่ Avg = Total + N เสรจ็ แล้ว ไปทางานต่อไปทจี่ ดุ B โดยทจ่ี ดุ B อยูต่ า่ งหน้ากนั
11. สญั ลกั ษณ์ flow line and arrowheads
ความหมายของสัญลักษณ์ คอื แสดงทศิ ทาง การทางานของผังงาน โดยใช้ลูกศร เป็น
ตวั กาหนดทศิ ทาง การทางานของผงั งาน
ตัวอยา่ งท่ี 1.17 แสดงการใชง้ านสัญลักษณ์ flow line and arrowheads
12. สญั ลักษณ์ Punched Card
ความหมายของสัญลกั ษณ์คือการรบั ข้อมลู หรือแสดงผลลัพธบ์ นบตั รเจาะรู
ตวั อยา่ งที่ 1.18 แสดงการใช้งานสัญลักษณ์ Punched Card
4.2.3 หลกั การเขยี นผังงานโปรแกรม
การเขยี นผงั งานโปรแกรม มีหลักการเขยี นดังน้ี
1) เขยี นผังงานจากด้านบนลงดา้ นลา่ ง
2) ใช้สัญลกั ษณ์ให้ตรงกบั ความหมายของผงั งาน
3) ใช้เส้น flow line และ arrowheads แสดงทศิ ทางการทางานของผงั งาน
4) ใสค่ าอธบิ ายลงในสัญลกั ษณ์ส้ัน ๆ แตเ่ ขา้ ใจง่าย จะใชภ้ าษาไทยหรอื อังกฤษกไ็ ด้
5) หลกี เล่ียงการโยงเสน้ ทิศทางของผังงานให้ตัดกนั เพราะจะทาให้สบั สน ควรใช้
จดุ เช่ือมต่อ
(connector) หนา้ เดียวกันแทน จะเข้าใจไดง้ ่ายและเปน็ ระเบยี บ
6) พยายามเขียนผังงานให้จบในหนา้ กระดาษเดยี วกนั แตถ่ า้ ไม่จบในหนา้
เดียวกัน ควรใชจ้ ดุ เช่ือมตอ่ ต่างหนา้ กระดาษ (off page connector)
เพ่อื ความเขา้ ใจเกย่ี วกับข้ันตอนการเขยี นผังงานโปรแกรมไดถ้ กู ต้องให้ศกึ ษาจาก
ตัวอย่างดงั ต่อไปน้ี
ตวั อย่างที่ 1.19 จงเขียนผังงานโปรแกรมท่ีไดว้ ิเคราะหง์ านมาแล้วในตวั อยา่ งที่ 1.2
วธิ ที า
จากการวเิ คราะห์งานในตัวอย่างที่ 1.2 จะได้ว่า
ขน้ั ตอนวธิ กี ารทางานของโปรแกรม มดี งั น้ี
1) เร่ิมตน้ ทางาน
2) รบั ข้อมูลคา่ ความยาว และความกวา้ งของส่เี หล่ียมผนื ผ้าผ่านทางคียบ์ อรด์
3) คานวณพน้ื ทส่ี ่เี หลยี่ มผืนผ้าตามสูตร Area = Width * Length
4) พิมพค์ ่าความยาว ความกว้าง และพื้นทส่ี ่ีเหลยี่ มผืนผา้ ออกทาง จอภาพ
5) จบการทางาน
การเขยี นผงั งานโปรแกรม จะนาขนั้ ตอนวธิ ีการทางานของโปรแกรม ท่ีไดจ้ ากการวิเคราะห์
งาน มาเขยี นผังงานไดด้ ังนี้
รปู ท่ี 1.11 แสดงผงั งานขนั้ ตอนวธิ กี ารทางานของโปรแกรม
( ที่มา : สมชาย รัตนเลิศนสุ รณ์ )
4.3 การเขยี นโปรแกรม (programming)
การเขยี นโปรแกรม หมายถึง การเขยี นชดุ คาสั่งด้วยภาษาคอมพิวเตอร์ภาษาใด
ภาษาหนง่ึ
เพอ่ื ใหค้ อมพวิ เตอรท์ างานตามโปรแกรมทีเ่ ขียนขึน้ หลังจากที่เขียนโปรแกรมเสรจ็ แล้ว
4.4 การทดสอบ และแก้ไขโปรแกรม (testing and editing program)
การทดสอบโปรแกรมทเ่ี ขียนขน้ึ ซึง่ อาจพบความผดิ พลาดได้ 2 ชนิด ดังน้ี
1) ความผิดพลาดทางไวยากรณ์ภาษา (syntax error) เป็นความผิดพลาดที่เกิดจาก
การเขียนคาส่ังของภาษาคอมพิวเตอรผ์ ิด ตวั อยา่ งเช่น คาส่ัง printf( ) ในภาษา C ตอ้ งเขียนด้วย
ตวั อักษรตวั เลก็ แต่เขยี นเปน็ printf( ) เปน็ ต้น โดยส่วนมากความผดิ พลาดทางไวยากรณ์ จะถูก
ตรวจสอบพบเม่อื มีการแปลโปรแกรม ( compile ) ให้เป็นภาษาเครื่อง ซึ่งเราสามารถแก้ไขโดยการ
เขียนคาสง่ั ใหถ้ กู ตอ้ งตามไวยากรณข์ องภาษานั้น ๆ
2) ความผิดพลาดทางตรรกะ ( logical error ) เป็นความผิดพลาดท่ีเกิดจากการ
ลาดับการทางานผิดหรือป้อนสูตรคานวณผิด ตัวอย่างเช่น ต้องการหาค่า X = X + Y แต่ป้อนสูตร
เป็น X = X * Y เป็นต้น วิธีการตรวจหาความผิดพลาดแบบน้ี คือ ตรวจสอบการคานวณผลลัพธ์
ของโปรแกรมว่าตรงกับผลลัพธ์ท่ีคานวณด้วยมือหรือเครื่องคิดเลขหรือไม่ ถ้าไม่ตรงกันแสดงว่าเกิด
ความผิดพลาดทางตรรกะข้ึน วิธกี ารแก้ไขก็คือ การแก้ไขสตู รให้ถูกตอ้ ง หรือแก้ไขลาดบั การทางานให้
ถู ก ต้ อ ง
ดังนั้น จะเห็นได้ว่าผู้เขียนโปรแกรมจะต้องทาการทดสอบโปรแกรมและแก้ไขโปรแกรมให้
สามารถทางานไดต้ ามทีต่ อ้ งการ
4.5 การจัดทาเอกสารประกอบ และการบารุงรักษาโปรแกรม ( documentation and
Maintenance program )
เมือ่ ผเู้ ขียนโปรแกรมได้ทาการทดสอบโปรแกรมและแก้ไขความผดิ พลาดท่เี กิดขน้ึ
เรยี บร้อยแลว้ ข้นั ตอนต่อไปก็ควรจดั ทาคู่มือการใชโ้ ปรแกรม เพราะจะทาใหผ้ ใู้ ชโ้ ปรแกรมสามารถ
ใช้งานได้ถูกต้อง โดยคู่มือการใช้โปรแกรมท่ดี ีควรจดั ทาในลักษณะที่แสดงการทางานเปน็
ขนั้ ตอน ผใู้ ชโ้ ปรแกรมสามารถปฏิบัตติ ามได้จรงิ ส่วนการบารุงรกั ษาโปรแกรมท่ีพัฒนาขนึ้ กต็ ้องมี
คาแนะนาใหผ้ ู้ใชโ้ ปรแกรมปฏิบัติ ตวั อยา่ งเชน่ การเก็บโปรแกรมตน้ ฉบบั ควรเก็บไวใ้ นกล่อง
ท่มี ิดชิด ป้องกนั ฝ่นุ ได้ ไมค่ วรเกบ็ ไวบ้ นโต๊ะทางาน ไมค่ วรเก็บไวใ้ นรถยนตเ์ พราะอาจถูก
อากาศรอ้ นทาให้เสยี ได้ นอกจากนตี้ อ้ งมีการสาเนาโปรแกรมตน้ ฉบับเอาไว้ อยา่ ง
นอ้ ย 1 ชุด แลว้ นาชุดทส่ี าเนาไปใช้ ไมค่ วรใช้โปรแกรมตน้ ฉบบั โดยตรง ควรเก็บเอาไวส้ าหรับ
กรณที ่โี ปรแกรมสาเนาเกิดปัญหาจะได้นาโปรแกรมต้นฉบับมาทาสาเนาและใช้งานได้ทันที
1.5 ข้ันตอนการเขียนโปรแกรมคอมพิวเตอร์
ในการเขียนโปรแกรมเพือ่ แก้ปญั หาต่างๆจาเป็นต้องมกี ารวางแผน และออกแบบ
โปรแกรมไวล้ ว่ งหน้า โดยกาหนดข้นั ตอนวธิ ีการทางานให้ชัดเจน ซง่ึ กระบวนการวเิ คราะห์ และ
ออกแบบโปรแกรมเรยี กวา่ วัฏจักรการพัฒนาระบบงาน System Development Lift Cycle (
SDLC) ซ่ึงมกี ระบวนการทางานเร่ิมตน้ จากการวิเคราะหป์ ัญหาไปจนถงึ การนาโปรแกรมไปใชง้ าน และ
ปรับปรุงพฒั นาระบบให้ดีขน้ึ มีขัน้ ตอนของ วฏั จกั รการพัฒนาระบบงาน ดังต่อไปนี้
ข้นั ตอนที่ 1 การวเิ คราะห์ปัญหา (Problem Analysis)
ข้ันตอนที่ 2 การออกแบบโปรแกรม (Program Design)
ขน้ั ตอนที่ 3 การเขียนโปรแกรม (Program Coding)
ขัน้ ตอนที่ 4 การทดสอบและแก้ไขโปรแกรม ( Program Testing & Verification)
ขนั้ ตอนที่ 5 การจัดทาเอกสารและคู่มอื การใชง้ าน (Program Documentation)
ขัน้ ตอนที่ 6 การใชง้ านจริง (Program Implement)
ขน้ั ตอนท่ี 7 การปรับปรุงและพัฒนาโปรแกรม (Program Maintenance)
5.1 การวเิ คราะหป์ ัญหา (Problem Analysis) ข้นั ตอนการวิเคราะหป์ ัญหาสามารถ
จาแนกได้ดังน้ี
5.1.1 กาหนดขอบเขตของปัญหา เพื่อใหท้ ราบขน้ั ตอนการทางานต่างๆ โดยกาหนด
จุดประสงค์การทางาน เพื่อให้ทราบว่าเขยี นโปรแกรมเพ่ือต้องการแกป้ ญั หาอะไร เชน่ ปัญหาเกย่ี วกับ
การคานวณพื้นที่ของสามเหลี่ยม เปน็ ตน้ จากนั้นก็กาหนดเป้าหมายใหช้ ัดเจน เพ่ือใหไ้ ด้ผลลัพธท์ ่ี
ตอ้ งการ เชน่ โปรแกรมคานวณพืน้ ทขี่ องสามเหลยี่ ม ต้องการคานวณพนื้ ทีร่ ูปสามเหลยี่ มไดห้ ลาย
ขนาดและแสดงผลเป็นตัวเลข แลว้ จงึ ศกึ ษาวธิ ีการแก้ปัญหา เพื่อออกแบบขนั้ ตอนการทางานได้อยา่ ง
เหมาะสม เชน่ การใชส้ ตู รคานวณทางคณิตศาสตรต์ ่างๆ และสุดท้ายกาหนดข้อจากัดและศึกษาความ
เปน็ ไปได้เพ่ือใชใ้ นการแก้ปญั หาตามวัตถปุ ระสงค์ เชน่ โปรแกรมคานวณพ้นื ที่ของสามเหล่ียม ต้องการ
คานวณพ้นื ท่ีได้เฉพาะรูปสามเหลย่ี ม
5.1.2 กาหนดขอ้ มูลนาเขา้ ซง่ึ ประกอบหวั ขอ้ พจิ ารณา มวี ิธีดังนี้คือ กาหนดลกั ษณะการ
รับข้อมลู เชน่ รบั ข้อมูลจากแป้นพมิ พ์ หรอื อา่ นขอ้ มูลจากไฟล์ โดยคานึงถึงรูปแบบข้อมูลท่ีรับเข้ามา
เป็นอยา่ งไร เชน่ ขอ้ มูลช่ือนิสิตเก็บเปน็ ตัวอักษรหรือสตรงิ ข้อมลู เงินเดอื นพนักงานเก็บเปน็ จานวน
ทศนิยม เป็นต้น กาหนด ขอบเขตของข้อมูลมชี ่วงคา่ ของข้อมลู ได้เท่าไร เช่น รับข้อมลู เงินเดอื นมีค่าอยู่
ระหว่าง 0.00 ถึง 100,000.00 บาทการ รับข้อมูลได้เฉพาะคา่ ตวั เลขท่ีมากกวา่ 0 เก็บข้อมลู เปน็
จานวนทศนิยม เปน็ ต้น
5.1.3 วิธกี ารประมวลผล เป็นข้นั ตอนท่สี าคัญในการแก้ปัญหา ประกอบดว้ ยขอ้ กาหนด
ดังน้ี
1. กาหนดวธิ กี าร หรือเทคนิคที่ใช้แก้ปัญหา ปญั หาต่างๆ จะมีวธิ กี ารปญั หา
แตกตา่ งกนั ไปขนึ้ อยู่กบั สภาพของปญั หา และผแู้ ก้ปัญหา และปญั หาหนึ่งๆสามารถแก้ปญั หาได้ด้วย
หลายๆ วิธกี าร ดงั นั้นใหเ้ ลือกวิธกี ารแกป้ ัญหาทเ่ี หมาะสมกับปญั หานนั้ ๆ
2. กาหนดขัน้ ตอนทางานให้ชดั เจน เพอื่ แก้ปัญหาตามลาดับการทางานของวิธกี ารท่ี
ได้เลือกใช้ และประมวลผลให้ได้ผลลพั ธท์ ี่ต้องการ
5.1.4 กาหนดผลลพั ธ์