ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน...

280

Upload: others

Post on 09-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา
Page 2: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

ค ำน ำ คมอครใชรวมกบเอกสารประกอบการสอน เลมนประกอบไปดวยแบบทดสอบกอนเรยน/หลงเรยน แบบฝกหด ใบงาน ไดจดท าขนเพอใชงานรวมกบเอกสารประกอบการสอนรายวชา การโปรแกรมเชงวตถ 1 รหส 3901- 2006 หลกสตรประกาศนยบตรวชาชพชนสง (พ.ศ. 2546 ) ส านกงานคณะกรรมการการอาชวศกษา ส าหรบแบบทดสอบกอนเรยน/หลงเรยน นนผจดท าไดด าเนนการวเคราะหหาคาอ านาจจ าแนก ความยากงายของขอสอบ และท าการคดสรรมาเฉพาะขอทมคณภาพ เพอใหสามารถวดผลการศกษาของนกศกษาได สวนแบบฝกหดเปนการฝกสงเสรมการเรยนรใหกบนกศกษา เพอใหนกศกษาไดมความร ความเขาใจเกยวกบเนอหามากยงขน และใบงานใชส าหรบการฝกทกษะใหกบนกศกษา เพอใหนกศกษาไดมทกษะในการเขยนโปรแกรมคอมพวเตอรภาษา C++ มากยงขน

วฒวงศ เอยดศรชาย

30 มกราคม 2557

Page 3: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

สำรบญ

เรอง หนา ค าน า ก สารบญ ข ค าแนะน าการใชงาน ช

บทท 1 ควำมรพนฐำนเกยวกบคอมพวเตอร 1 แบบทดสอบกอนเรยน 2 เฉลยแบบทดสอบกอนเรยน 5 ใบแบบฝกหด 6 ใบเฉลยแบบฝกหด 7 แบบทดสอบหลงเรยน 10 เฉลยแบบทดสอบหลงเรยน 13

บทท 2 พนฐำนภำษำ C++ 15 แบบทดสอบกอนเรยน 16 เฉลยแบบทดสอบกอนเรยน 19 ใบแบบฝกหด 20 ใบเฉลยแบบฝกหด 21 ใบงานบทท 2 23 เฉลยใบงานบทท 2 26 แบบทดสอบหลงเรยน 30 เฉลยแบบทดสอบหลงเรยน 33 บทท 3 นพจนและตวด ำเนนกำร 35

แบบทดสอบกอนเรยน 36 เฉลยแบบทดสอบกอนเรยน 38 ใบแบบฝกหด 39 ใบเฉลยแบบฝกหด 40 ใบงาน 42 เฉลยใบงาน 44 แบบทดสอบหลงเรยน 46 เฉลยแบบทดสอบหลงเรยน 48

Page 4: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

สำรบญ

เรอง หนา บทท 4 โครงสรำงควบคมกำรเขยนโปรแกรม 49

แบบทดสอบกอนเรยน 50 เฉลยแบบทดสอบกอนเรยน 55 ใบแบบฝกหด 56 ใบเฉลยแบบฝกหด 57 ใบงาน 59 เฉลยใบงาน 65 แบบทดสอบหลงเรยน 73 เฉลยแบบทดสอบหลงเรยน 78

บทท 5 ฟงกชน 79 แบบทดสอบกอนเรยน 80 เฉลยแบบทดสอบกอนเรยน 83 ใบแบบฝกหด 84 ใบเฉลยแบบฝกหด 85 ใบงาน 87 เฉลยใบงาน 90 แบบทดสอบหลงเรยน 94 เฉลยแบบทดสอบหลงเรยน 97

บทท 6 คำคงท พอยนเตอรและกำรอำงอง 99 แบบทดสอบกอนเรยน 100 เฉลยแบบทดสอบกอนเรยน 103 ใบแบบฝกหด 104 ใบเฉลยแบบฝกหด 105 ใบงาน 107 เฉลยใบงาน 109 แบบทดสอบหลงเรยน 112 เฉลยแบบทดสอบหลงเรยน 115

Page 5: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

สำรบญ

เรอง หนา บทท 7 ควำมรพนฐำนเกยวกบกำรเขยนโปรแกรมเชงวตถ 117

แบบทดสอบกอนเรยน 118 เฉลยแบบทดสอบกอนเรยน 121 ใบแบบฝกหด 122 ใบเฉลยแบบฝกหด 123 ใบงาน 128 เฉลยใบงาน 129 แบบทดสอบหลงเรยน 133 เฉลยแบบทดสอบหลงเรยน 136

บทท 8 คลำสและวตถ 137 แบบทดสอบกอนเรยน 138 เฉลยแบบทดสอบกอนเรยน 141 ใบแบบฝกหด 142 ใบเฉลยแบบฝกหด 143 ใบงาน 144 เฉลยใบงาน 145 แบบทดสอบหลงเรยน 148 เฉลยแบบทดสอบหลงเรยน 151

บทท 9 โอเวอรโหลดดง 153 แบบทดสอบกอนเรยน 154 เฉลยแบบทดสอบกอนเรยน 158 ใบแบบฝกหด 159 ใบเฉลยแบบฝกหด 160 ใบงาน 162 เฉลยใบงาน 163 แบบทดสอบหลงเรยน 167 เฉลยแบบทดสอบหลงเรยน 171

Page 6: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

สำรบญ

เรอง หนา บทท 10 การสบทอดคณสมบต 173

แบบทดสอบกอนเรยน 174 เฉลยแบบทดสอบกอนเรยน 177 ใบแบบฝกหด 178 ใบเฉลยแบบฝกหด 179 ใบงาน 180 เฉลยใบงาน 182 แบบทดสอบหลงเรยน 185 เฉลยแบบทดสอบหลงเรยน 188

บทท 11 โพลมอรฟซม 189 แบบทดสอบกอนเรยน 190 เฉลยแบบทดสอบกอนเรยน 193 ใบแบบฝกหด 194 ใบเฉลยแบบฝกหด 195 ใบงาน 196 เฉลยใบงาน 202 แบบทดสอบหลงเรยน 208 เฉลยแบบทดสอบหลงเรยน 211

บทท 12 เทมเพลต 213 แบบทดสอบกอนเรยน 214 เฉลยแบบทดสอบกอนเรยน 217 ใบแบบฝกหด 218 ใบเฉลยแบบฝกหด 219 ใบงาน 221 เฉลยใบงาน 225 แบบทดสอบหลงเรยน 228 เฉลยแบบทดสอบหลงเรยน 231

Page 7: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

สำรบญ

เรอง หนา บทท 13 เอกเซพชน 233

แบบทดสอบกอนเรยน 234 เฉลยแบบทดสอบกอนเรยน 237 ใบแบบฝกหด 238 ใบเฉลยแบบฝกหด 239 ใบงาน 241 เฉลยใบงาน 243 แบบทดสอบหลงเรยน 246 เฉลยแบบทดสอบหลงเรยน 249

บทท 14 กำรจดกำรไฟล 251 แบบทดสอบกอนเรยน 252 เฉลยแบบทดสอบกอนเรยน 256 ใบแบบฝกหด 257 ใบเฉลยแบบฝกหด 258 ใบงาน 261 เฉลยใบงาน 262 แบบทดสอบหลงเรยน 266 เฉลยแบบทดสอบหลงเรยน 270

Page 8: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

ค ำแนะน ำกำรใชงำน 1. แบบทดสอบกอนเรยน ส าหรบแบบทดสอบกอนเรยนจะมการใชทดสอบกบนกศกษา

กอนการเรยนในแตละบทโดยครจะตองทดสอบกบนกศกษากอนเรยน เพอทจะตรวจสอบวานกศกษามความรพนฐานในเรองนน ๆ มากนอยเพยงใด

2. แบบทดสอบหลงเรยน ส าหรบแบบทดสอบหลงเรยนจะมการใชงานเมอนกศกษาไดมการเรยนเนอหา ท าแบบฝกหดและใบงานเสรจแลว ซงจะเปนการวดผลสมฤทธทางการเรยนของนกศกษา ดความกาวหนาทางการเรยน

3. แบบฝกหด ส าหรบสงเสรมการเรยนรของนกศกษา ฝกใหนกศกษาไดมความเขาใจเนอหาการเรยนมากยงขน โดยครท าการตรวจใหคะแนน และอธบายค าตอบใหนกศกษาเขาใจ

4. ใบงานส าหรบสงเสรมการเรยนรดานทกษะใหกบนกศกษา โดยนกศกษาจะตองฝกปฏบตตามใบงานทก าหนดให และครท าการตรวจใหคะแนน

Page 9: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา
Page 10: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

1

บทท 1 เรอง ควำมรพนฐำนเกยวกบคอมพวเตอร

Page 11: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

2

แบบทดสอบกอนเรยน

บทท 1 เรอง ควำมรพนฐำนเกยวกบคอมพวเตอร ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใดคอองคประกอบของระบบคอมพวเตอรทถกตองทสด

ก. ฮารดแวร ซอฟตแวร ขอมล นกวเคราะหระบบ ข. ข. ซอฟตแวร ฮารดแวร สารสนเทศ บคลากร ค. ฮารดแวร ซอฟตแวร ขอมล บคลากร ง. ง. ซอฟตแวร ฮารดแวร สารสนเทศ ผบรหารระบบคอมพวเตอร

2. ขอใดคอความหมายของซอฟตแวรคอมพวเตอรทถกตองทสด ก. โปรแกรมหรอชดค าสงทเขยนขนเพอสงใหคอมพวเตอรท างานไดโดยท าหนาทเปน

ตวกลางระหวางผใชกบอปกรณคอมพวเตอร ข. โปรแกรมหรอชดค าสงทเขยนขนเพอสงใหคอมพวเตอรท างานอตโนมต ค. สงสรางสรรคเชงปญญา เพอท าใหระบบท าการประมวลผลขอมล ซงประกอบจาก

โปรแกรม กระบวนการ ขอก าหนดและเอกสารทเกยวของ โปรแกรมเมอร ง. สงสรางสรรคเชงปญญา เพอท าใหระบบท าการประมวลผลขอมล ขอก าหนดและเอกสารท

เกยวของ 3. ขอใดตอไปนกลาวไดถกตองทสด

ก. การเขยนโปรแกรมภาษาแอสแซมบล จะตองใชตวแปลภาษา ท าการแปลเปนภาษาเครอง ซง อยในยคของโปรแกรมภาษาคอมพวเตอรยคท 1

ข. การเขยนโปรแกรมภาษาเครองสามารถเขยนไดเฉพาะยคการเขยนโปรแกรมภาษายคท1 ค. ภาษาคอมพวเตอร ยคท 3 เปนการเขยนโปรแกรมระดบสงมาก ง. ภาษาคอมพวเตอรในยคท 1 และยคท 2 ถอวาเปนโปรแกรมภาษาระดบต า

4. การเขยนโปรแกรมเทคนคเชงกระบวนการ เรมเกดขนในการเขยนโปรแกรมคอมพวเตอรยคใด ก. ยคท 2 ข. ยคท 3 ค. ยคท 4 ง. ยคท 5

Page 12: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

3

5. ตวแปลภาษาทมการแปลทงโปรแกรมในครงเดยว ผลจากการแปลสามารถเกบไวและเรยกใชงานไดภายหลงโดยไมตองท าการแปลโปรแกรมซ าอก เปนตวแปลภาษาชนดใด ก. แอสแซมเบลอร และ แอสแซมบล ข. อนเทอรพรเตอร ค. คอมไพเลอร ง. อนเทอรพรเตอรและคอมไพเลอร

6. ตวแปลภาษาทมการแปลทละบรรทดค าสง และเมอการใชงานแตละครงจะตองท าการแปลโปรแกรมใหมเสมอ ก. แอสแซมเบลอร และ แอสแซมบล ข. อนเทอรพรเตอร ค. คอมไพเลอร ง. อนเทอรพรเตอรและคอมไพเลอร

7. โปรแกรมภาษาในขอใดทมความเกาแกมากทสด ก. COBOL ข. FORTRAN ค. C ง. Pascal

8. โปรแกรมภาษาคอมพวเตอรในขอใดทมความยดหยนสง และไดรบความนยมใชงานกนอยางแพรหลาย ก. FORTRAN ข. Pascal ค. BASIC ง. C

9. ขอใดเปนระบบปฏบตการคอมพวเตอรแบบเดยว ก. Windows Server2000 ข. Linux ค. Unix ง. Max OS X

Page 13: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

4

10. ขอใดมใชอปกรณน าเขาขอมลเพอน าเขาสระบบคอมพวเตอรส าหรบการประมวล ก. จอภาพคอมพวเตอรชนด CRT ข. เมาส ค. จอภาพคอมพวเตอรแบบสมผส ง. เครองอานบารโคด

Page 14: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

5

เฉลยแบบทดสอบกอนเรยน บทท 1 เรอง ควำมรพนฐำนเกยวกบคอมพวเตอร

ขอท เฉลย

1 ค 2 ก 3 ง 4 ก 5 ค 6 ก 7 ข 8 ง 9 ง

10 ก

Page 15: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

6

ใบแบบฝกหด บทท 1 เรอง ควำมรพนฐำนเกยวกบคอมพวเตอร

ค ำชแจง 1. แบบฝกหดมทงหมด 4 ขอใหนกศกษาท าหมดทกขอ 2. คะแนนรวมทงหมด 50 คะแนน ===================================================================== 1. ใหนกศกษาบอกองคประกอบของระบบคอมพวเตอรมอะไรบาง พรอมอธบาย (20 คะแนน) 2. ใหนกศกษาบอกยคของคอมพวเตอรมกยค พรอมอธบาย (10 คะแนน) 3. ใหนกศกษาบอกตวแปลภาษาคออะไร และมกประเภท (10 คะแนน) 4. ใหนกศกษาบอกความหมายของโปรแกรมภาษา และยกตวอยางโปรแกรมภาษามาอยางนอย 2 ภาษาและอธบายรายละเอยด (10 คะแนน)

Page 16: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

7

ใบเฉลยแบบฝกหด บทท 1 เรอง ควำมรพนฐำนเกยวกบคอมพวเตอร

ค ำชแจง 1. แบบฝกหดมทงหมด 4 ขอใหนกศกษาท าหมดทกขอ 2. คะแนนรวมทงหมด 50 คะแนน ===================================================================== 1. ใหนกศกษาบอกองคประกอบของระบบคอมพวเตอรมอะไรบาง พรอมอธบาย (20 คะแนน) ตอบ องคประกอบของระบบคอมพวเตอร ประกอบดวย 4 อยาง คอ

1. ฮารดแวร คอ ชนสวนของเครองคอมพวเตอรทมองเหน จบตองได เชน จอภาพ แรม ซพย คยบอรด เมาส

2. ซอฟตแวร คอ โปรแกรมคอมพวเตอรทประกอบดวยค าสงตาง ๆ ทสามารถสงใหคอมพวเตอรท างานได โดยซอฟตแวรจะถกเขยนขนโดยโปรแกรมเมอร หรอผทสนใจในการเขยนโปรแกรม ซอฟตแวร เปนสงทเปนนามธรรม ไมสามารถมองเหน จบตองได โดยซอฟตแวรสามารถแบงออกไดเปน 2 ประเภทใหญ ๆ คอ

1. ซอฟตแวรระบบ คอ ซอฟตแวรทท าหนาทในการควบคมการท างานของฮารดแวร จดสรรทรพยากรของระบบใหมการใชงานทมประสทธภาพ เชน ระบบปฏบตการ Microsoft Windows 8 ระบบปฏบตการ Linux RedHat เปนตน

2. ซอฟตแวรประยกต คอ ซอฟตแวรทท างานบนซอฟตแวรระบบมหนาทท างานเฉพาะดานเทานน โดยท างานตดตอกบซอฟตแวรระบบและตดตอกบผใชงาน เชน โปรแกรม Microsoft Office2014 เปนตน

3. ขอมล คอ ขอเทจจรงใด ๆ ทน าเขาสระบบคอมพวเตอร ส าหรบการประมวลผลเพอใหไดสารสนเทศตามความตองการ

1. แหลงทมาของขอมลไดเปน 2 ประเภทคอ 1. แหลงขอมลภายใน 2. แหลงขอมลภายนอก

2. คณสมบตของขอมลทด 1. ความถกตอง 2. ความเปนปจจบน 3. ตรงตามความตองการ 4. ความสมบรณ 5. สามารถตรวจสอบได

Page 17: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

8

3. การแบงล าดบชนของขอมล สามารถแบงออกไดดงน บต ไบต ฟลด เรคคอรด ไฟล ฐานขอมล

4. บคลากร คอ บคคลทท างานเกยวของกบคอมพวเตอรโดยมรความสามารถแตกตางออกไปตามประเภทของบคลากร ประเภทของบคลากรประกอบดวย 3 กลม คอ 1. ผใชงานทวไป 2. ผเชยวชาญ และ 3. ผบรหาร

2. ใหนกศกษาบอกยคของคอมพวเตอรมกยค พรอมอธบาย (10 คะแนน) ตอบ ยคของภาษาคอมพวเตอรมทงหมด 5 ยค คอ 1. ภาษาคอมพวเตอรยคท 1 เปนการเขยนโปรแกรมดวยภาษาเครอง (machine language) ซงประกอบดวยสญลกษณคอ 0 กบ 1 เปนภาษาระดบต า ผทเขยนโปรแกรมจะตองมความร ความเชยวชาญสง 2. ภาษาคอมพวเตอรยคท 2 เปนการเขยนโปรแกรมดวยภาษาแอสแซมบล และมตวแปลภาษาชอแอสแซมเบลอร และยงถอวาเปนภาษาระดบต า 3. ภาษาคอมพวเตอรยคท 3 เปนการเขยนโปรแกรมดวยภาษาระดบสง มรปแบบการเขยนเปนเชงกระบวนการ มตวแปลภาษาท าหนาทในการแปลจากภาษาระดบสงเปนภาษาเครอง 4. ภาษาคอมพวเตอรยคท 4 เปนการเขยนโปรแกรมดวยภาษาระดบสงมาก ลกษณะการเขยนโปรแกรมเปนการหยบแลววาง หลงจากนนท าการเขยนโปรแกรมเพมเตม มการเขยนโปรแกรมไมเปนล าดบขนตอน ผเขยนโปรแกรมสามารถศกษาใหเขาใจไดอยางรวดเรว 5. ภาษาคอมพวเตอรยคท 5 เปนภาษาทมความใกลเคยงกบภาษามนษย เรยกวา ภาษาธรรมชาต มการท างานโดยอาศยฐานความรเพอชวยในการแปลความหมายของค าสงตาง ๆ และท าใหคอมพวเตอรเขาใจและจดจ าโครงสรางนน ๆ ไว 3. ใหนกศกษาบอกตวแปลภาษาคออะไร และมกประเภท (10 คะแนน) ตอบ ตวแปลภาษาคอมพวเตอร ท าหนาทเปนตวกลางในการแปลความหมาย ของภาษาชดค าสงทมนษยสรางขนมา ใหอยในรปแบบภาษาทเครองคอมพวเตอรสามารถรบร และเขาใจได โดยตวแปลภาษาแบงออกเปน 3 ประเภท คอ 1. ตวแปลภาษาแอสแซมเบลอร ท าหนาทแปลภาษาแอสแซมบล เปนภาษาเครอง 2. ตวแปลภาษาอนเทอรพรเตอร ท าหนาทแปลภาษาระดบสงเปนภาษาเปาหมาย โดยแปลทละบรรทด เมอมการใชงานจะตองท าการแปลใหมทกครง 3. ตวแปลภาษาคอมไพเลอร แปลภาษาระดบสงเปนภาษาเปาหมาย โดยแปลครงเดยวทงโปรแกรม และเกบภาษาเปาหมายไว เมอตองการใหท างานสามารถเรยกใชงานไดทนทโดยไมตองท าการแปลโปรแกรมใหม

Page 18: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

9

4. ใหนกศกษาบอกความหมายของโปรแกรมภาษา และยกตวอยางโปรแกรมภาษามาอยางนอย 2 ภาษาและอธบายรายละเอยด (10 คะแนน) ตอบ โปรแกรมภาษา หมายถง ระบบทมการใชงานสญลกษณหรอเครองหมายเพออธบายการค านวณ โดยคอมพวเตอรสามารถอานได และอยในรปแบบทมนษยสามารถรบรและเขาใจได โดยโปรแกรมภาษาจะมรปแบบกฎเกณฑ (Syntax) ของภาษาเปนเงอนไขในการท างาน และความหมาย (Semantics) ของค าสงในโปรแกรมภาษา ตวอยางโปรแกรมภาษา 2 ชนด 1. ภาษา C++ เปนโปรแกรมภาษาส าหรบงานทวไป เปนการเขยนโปรแกรมเชงกระบวนการ และเขยนโปรแกรมเชงวตถ พฒนาตอมาจาก ภาษา C 2. ภาษา JAVA เปนโปรแกรมภาษาส าหรบงานทวไป เขยนโปรแกรมเชงวตถ การท างานไมขนอยกบแพลตฟอรมคอมพวเตอร

Page 19: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

10

แบบทดสอบหลงเรยน บทท 1 เรอง ควำมรพนฐำนเกยวกบคอมพวเตอร

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใดคอความหมายของซอฟตแวรคอมพวเตอรทถกตองทสด

ก. โปรแกรมหรอชดค าสงทเขยนขนเพอสงใหคอมพวเตอรท างานไดโดยท าหนาทเปนตวกลางระหวางผใชกบอปกรณคอมพวเตอร

ข. โปรแกรมหรอชดค าสงทเขยนขนเพอสงใหคอมพวเตอรท างานอตโนมต ค. สงสรางสรรคเชงปญญา เพอท าใหระบบท าการประมวลผลขอมล ซงประกอบจาก

โปรแกรม กระบวนการ ขอก าหนดและเอกสารทเกยวของ โปรแกรมเมอร ง. สงสรางสรรคเชงปญญา เพอท าใหระบบท าการประมวลผลขอมล ขอก าหนดและเอกสารท

เกยวของ 2. ตวแปลภาษาทมการแปลทละบรรทดค าสง และเมอการใชงานแตละครงจะตองท าการแปล

โปรแกรมใหมเสมอ ก. แอสแซมเบลอร และ แอสแซมบล ข. อนเทอรพรเตอร ค. คอมไพเลอร ง. อนเทอรพรเตอรและคอมไพเลอร

3. ขอใดตอไปนกลาวไดถกตองทสด ก. การเขยนโปรแกรมภาษาแอสแซมบล จะตองใชตวแปลภาษา ท าการแปลเปนภาษาเครอง

ซง อยในยคของโปรแกรมภาษาคอมพวเตอรยคท 1 ข. การเขยนโปรแกรมภาษาเครอง สามารถเขยนไดเฉพาะยคของการเขยนโปรแกรมภาษายค

ท 1 ค. ภาษาคอมพวเตอร ยคท 3 เปนการเขยนโปรแกรมระดบสงมาก ง. ภาษาคอมพวเตอรในยคท 1 และยคท 2 ถอวาเปนโปรแกรมภาษาระดบต า

Page 20: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

11

4. ขอใดคอองคประกอบของระบบคอมพวเตอรทถกตองทสด ก. ฮารดแวร ซอฟตแวร ขอมล นกวเคราะหระบบ ข. ซอฟตแวร ฮารดแวร สารสนเทศ บคลากร ค. ฮารดแวร ซอฟตแวร ขอมล บคลากร ง. ซอฟตแวร ฮารดแวร สารสนเทศ ผบรหารระบบคอมพวเตอร

5. การเขยนโปรแกรมเทคนคเชงกระบวนการ เรมเกดขนในการเขยนโปรแกรมคอมพวเตอรยคใด ก. ยคท 2 ข. ยคท 3 ค. ยคท 4 ง. ยคท 5

6. โปรแกรมภาษาในขอใดทมความเกาแกมากทสด ก. COBOL ข. FORTRAN ค. C ง. Pascal

7. ตวแปลภาษาทมการแปลทงโปรแกรมในครงเดยว ผลจากการแปลสามารถเกบไวและเรยกใชงานไดภายหลงโดยไมตองท าการแปลโปรแกรมซ าอก เปนตวแปลภาษาชนดใด ก. แอสแซมเบลอร และ แอสแซมบล ข. อนเทอรพรเตอร ค. คอมไพเลอร ง. อนเทอรพรเตอรและคอมไพเลอร

8. โปรแกรมภาษาคอมพวเตอรในขอใดทมความยดหยนสง และไดรบความนยมใชงานกนอยางแพรหลาย ก. FORTRAN ข. Pascal ค. BASIC ง. C

9. ขอใดมใชอปกรณน าเขาขอมลเพอน าเขาสระบบคอมพวเตอรส าหรบการประมวล ก. จอภาพคอมพวเตอรชนดCRT ข. เมาส ค. จอภาพคอมพวเตอรแบบสมผส ง. เครองอานบารโคด

Page 21: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

12

10. ขอใดเปนระบบปฏบตการคอมพวเตอรแบบเดยว ก. Windows Server2000 ข. Linux ค. Unix ง. Max OS X

Page 22: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

13

เฉลยแบบทดสอบหลงเรยน บทท 1 เรอง ควำมรพนฐำนเกยวกบคอมพวเตอร

ขอท เฉลย

1 ก 2 ข 3 ง 4 ค 5 ข 6 ข 7 ค 8 ง 9 ก

10 ง

Page 23: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

14

Page 24: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

15

บทท 2 เรอง พนฐำนภำษำ C++

Page 25: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

16

แบบทดสอบกอนเรยน บทท 2 เรอง พนฐำนภำษำ C++

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. เมอโปรแกรมภาษา C++ ทสรางขนมาเปนไฟลตนฉบบ และท าการบนทกจะมการระบนามสกลของไฟลชอวาอะไร

ก. .cpp ข. .c ค. .cdx ง. .vcp

2. ขอใดคอขนตอนการเขยนโปรแกรมภาษาซ C++ ก. สรางโปรแกรมตนฉบบ คอมไพล ลงคไลบราร ข. สรางโปรแกรมตนฉบบ พรโปรเซสเซอรไดเรกทฟ คอมไพล วตถไฟล ค. สรางโปรแกรมตนฉบบ คอมไพล พรโปรเซสเซอรไดเรกทฟ วตถไฟล ง. สรางโปรแกรมตนฉบบ พรโปรเซสเซอรไดเรกทฟ คอมไพล วตถไฟล ลงคไลบราร ไฟล

นามสกล .exe 3. การตงชอตวแปรขอใดไมถกตอง

ก. 4sum ข. Total8 ค. maxValue_2 ง. A89

4. ขอใดคอการก าหนดคาใหกบตวแปรทถกตอง ก. int number = 8.0; ข. double max = 9; ค. float 7summation = 16.90; ง. char c = ‘9’;

Page 26: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

17

5. ขอใดคอการก าหนดคาคงทสญลกษณทถกตอง ก. #define salary 15000 ข. #define grade = 4.00; ค. const double sum 10.00; ง. const int val 30.00;

6. ขอใดมใช ชนดขอมลเบองตน ก. int ข. double ค. array ง. long double

7. ชนดขอมล int มขอบเขตในการจดเกบเลขจ านวนเตมสงสดเทากบ 2147483647 ถาบวกเพมอก 1 จะมคาตรงกบขอใด

ก. 2147483648 ข. -2147483648 ค. -2147483647 ง. 2147483649

8. ชนดขอมลอกขระ char มการเกบขอมลสงสดกไบต ก. 1 ไบต ข. 2 ไบต ค. 3 ไบต ง. 4 ไบต

9. จากค าสงตอไปน cout.fill(‘A’); cout.width(5); cout<< 12.00; จากค าสงดงกลาวจะมการแสดงผลลพธในขอใดถกตอง

ก. A12.00 ข. 12.00A ค. 12.00 ง. AAA12

Page 27: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

18

10. จากค าสงตอไปน cout.precition(4); cout<<30.12345; จากค าสงดงกลาวจะมการแสดงผลลพธในขอใดถกตอง

ก. 30 ข. 30.0 ค. 30.12 ง. 30.123

Page 28: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

19

เฉลยแบบทดสอบกอนเรยน บทท 2 เรอง พนฐำนภำษำ C++

ขอท เฉลย

1 ก 2 ง 3 ก 4 ง 5 ก 6 ค 7 ข 8 ก 9 ง

10 ค

Page 29: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

20

ใบแบบฝกหด บทท 2 เรอง พนฐำนภำษำ C++

ค ำชแจง 1. แบบฝกหดมทงหมด 5 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาอธบายขนตอนการสรางโปรแกรมภาษา C++ ( 10 คะแนน) 2. ใหนกศกษาบอกขอก าหนดในการตงชอตวแปร ( 10 คะแนน) 3. ใหนกศกษาตงชอตวแปรชนดเลขจ านวนเตมชนดเลขจ านวนจรงชนดอกขระมาอยางละ 5 ตวแปร ( 10 คะแนน) 3.1 เลขจ านวนจรง 3.2 เลขจ านวนเตม 3.3 อกขระ 4. ใหนกศกษาอธบายความหมายของค าวา นพจนและตวด าเนนการ ( 10 คะแนน) 5. ใหนกศกษาอธบายการรบคาและแสดงผลของโปรแกรมภาษา C++ ( 10 คะแนน)

Page 30: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

21

ใบเฉลยแบบฝกหด บทท 2 เรอง พนฐำนภำษำ C++

ค ำชแจง 1. แบบฝกหดมทงหมด 5 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาอธบายขนตอนการสรางโปรแกรมภาษา C++ ( 10 คะแนน) ตอบ 1.1 เปดโปรแกรมอดสเตอรในการเขยนโปรแกรมภาษา C++ บนทกเปนนามสกลดอตซพพ 1.2 เขยนโปรแกรม 1.3 ตรวจสอบความถกตองของการเขยนโปรแกรม 1.4 ท าการคอมไพลโปรแกรม ถาเกดความผดพลาดท าการแกไขโปรแกรมใหม 1.5 สงใหโปรแกรมรนการท างาน 2. ใหนกศกษาบอกขอก าหนดในการตงชอตวแปร ( 10 คะแนน) ตอบ 2.1 ประกอบดวยตวอกษร a – z ,A – Z , 0 – 9 หรอ _ 2.2 หามขนตนดวยตวเลข 2.2 ไมตรงกบค าสงวน 3. ใหนกศกษาตงชอตวแปรชนดเลขจ านวนเตมชนดเลขจ านวนจรงชนดอกขระมาอยางละ 5 ตวแปร (10 คะแนน) ตอบ 3.1 เลขจ านวนจรง double number1 = 7.89D, double PI = 3.141, float number2 = 1.23F, float price = 45.90f, float gpa = 3.98f; 3.2 เลขจ านวนเตม int index = 3, int count = 0, int myNum = 23, int age = 30, int page = 10 3.3 อกขระ char sex = ‘m’, char type = ‘x’, char color = ‘g’, char grade = ‘4’, char ch = ‘c’

Page 31: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

22

4. ใหนกศกษาอธบายความหมายของค าวา นพจนและตวด าเนนการ ( 10 คะแนน) ตอบ นพจน คอ ประโยคสญลกษณทมสวนประกอบของ คาคงท ตวแปร หรอ ฟงกชน ทมการท างานสมพนธรวมกบตวด าเนนการ ตวด าเนนการ คอ สงทท าใหคอมพวเตอรเกดการประมวลผลขนมาได ซงแบงออกไดเปน ตวด าเนนการทางคณตศาสตร ตวด าเนนการเปรยบเทยบ ตวด าเนนการก าหนดคา ตวด าเนนการเพมลดคา ตวด าเนนการความเทากน เปนตน 5. ใหนกศกษาอธบายการรบคาและแสดงผลของโปรแกรมภาษา C++ ( 10 คะแนน) ตอบ การรบคาและแสดงผลของภาษา C++ จะมการรบสงขอมลในลกษณะเปนกระแสของไบต โดยเมอมการรบขอมลเขามาจะท าการแยกแยะไบตออกจากสตรมอนพตใชค าสง cin การแสดงผล จะเปนการแทรกไบตเขาไปในสตรมเอาทพต ในการรบและสงขอมลจะมทพกขอมลชวคราวระหวางอปกรณกบโปรแกรม เพอรบคาทละไบตแลวเกบไวใชค าสง cout

Page 32: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

23

ใบงำน บทท 2 เรอง พนฐำนภำษำ C++

ค ำชแจง 1. ใบงานมทงหมด 5 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาเขยนโปรแกรมใหสมบรณและเมอโปรแกรมท างานจะแสดงขอความ ชอ นามสกล ตนเองออกทางจอภาพ และใหเขยนผลลพธทแสดงผลทางจอภาพ ( 10 คะแนน )

1 _______1________

2 using ____2____ std;

3 __3_____ main( ){

4 cout<<"__________4__________"<<endl;

5 ______5_______

6 }

2. ใหนกศกษาเขยนโปรแกรมใหสมบรณ และแสดงผลลพธการท างาน ( 10 คะแนน )

1 //Lab2_2.cpp

2 #include<iostream>

3 using namespace std;

4 #define ___1____ 10

5 #define number2 ____2____

6 __3__ findMin(number1,number2)(number1<number2?number1:number2)

7 int main( ){

8 cout<<"____4_____"<<number1<<endl;

9 cout<<”number2 "<<number2<<endl;

10 cout<<findMin(__5_,____)<<endl;

11 cout<<number1 * number2<<endl;

12 return 0;

13 }

Page 33: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

24

3. ใหนกศกษาเตมขอความในโปรแกรม และแสดงผลลพธการท างาน ( 10 คะแนน ) 1 //Lab2_3.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 ___1___ idstu[5];

6 idstu[0] = 2.34;

7 idstu[_2__] = 8.89;

8 idstu[2] = ____;

9 idstu[_3__] = 3.00;

10 cout<<idstu[0]<<endl;

11 cout<<idstu[1]<<endl;

12 cout<<__4___[2]<<endl;

13 cout<<idstu[3]<<endl;

14 return 0;

15 }

4. จากโปรแกรมค านวณหาพนทสามเหลยม โดยมการรบขอมลความยาว ฐาน(base) และ ความสง(height) จากผใช หลงจากนนท าการค านวณโดยสตรของการค านวณหา พนทสามเหลยม 0.5 * ฐาน * สง น าคาไวในตวแปร area แลวน ามาแสดงผลทางจอภาพ ใหนกศกษาเขยนโปรแกรมใหสมบรณจากชองวางทก าหนดไว พรอมแสดงผลลพธ ( 10 คะแนน )

1 //Lab2_4.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 double____1_______ = 0.00;

6 _____2_______ height = 0.00;

7 double _____3______ = 0.00;

8 cout<<"Enter base :";

9 ___4____>>base;

10 cout<<"Enter height :";

11 cin>>_____5______

12 area = 0.5 * base * height;

13 cout<<"Area of Triangle :"<<area<<endl;

14 return 0;

15 }

Page 34: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

25

5. จากโปรแกรมรบเลขจ านวนจรง 1 จ านวน น ามาแสดงผลทางจอภาพโดยมการก าหนดความกวางในการแสดงผลเทากบ 10 และท าการเตมอกขระ ‘$’ ในกรณทการแสดงผลไมครบ 10 อกขระ ( 10 คะแนน )

1 //Lab2_5.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 ___1___ number1;

6 cout<<"Enter number1 :";

7 cin>>number1;

8 cout.width(_2__);

9 cout.fill('$');

10 cout<<___3_____

11 return 0;

12 }

Page 35: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

26

เฉลยใบงำน บทท 2 เรอง พนฐำนภำษำ C++

ค ำชแจง 1. ใบงานมทงหมด 5 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาเตมขอความใหสมบรณโปรแกรม แสดงขอความ ชอ นามสกล ตนเองออกทางจอภาพ และใหเขยนโปรแกรมใหสมบรณพรอมทงแสดงผลลพธออกทางจอภาพ ( 10 คะแนน )

1 _______1________

2 using ____2____ std;

3 __3_____ main( ){

4 cout<<"__________4__________"<<endl;

5 ______5_______

6 }

เขยนโคดเพอใหโปรแกรมสมบรณ

1 #include<iostream>

2 namespace

3 int

4 Wuttiwong Eadsrichai

5 return 0;

ผลลพธกำรท ำงำนของโปรแกรม Wuttiwong Eadsrichai

ส าหรบการแสดงผลทางจอภาพขนอยกบ ชอและนามสกลของนกศกษาแตละคน 2. ใหนกศกษาเตมโคดในโปรแกรมใหสมบรณ และแสดงผลลพธการท างาน ( 10 คะแนน )

1 //Lab2_2.cpp

2 #include<iostream>

3 using namespace std;

4 #define ___1____ 10

5 #define number2 ___2_____

6 ___3__findMin(number1,number2)(number1<number2?number1:number2)

7 int main( ){

8 cout<<"____4_____"<<number1<<endl;

9 cout<<”number2 : "<<number2<<endl;

10 cout<<findMin(_5__,____)<<endl;

Page 36: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

27

11 cout<<number1 * number2<<endl;

12 return 0;

13 }

เขยนโคดเพอใหโปรแกรมสมบรณ

1 number1 :

2 20

3 #define

4 number1

5 3,4

ผลลพธกำรท ำงำนของโปรแกรม

numer1 : 10

number2 : 20

3

200

3. ใหนกศกษาเตมขอความในโปรแกรม และแสดงผลลพธการท างาน ( 10 คะแนน ) 1 //Lab2_3.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 ___1___ idstu[5];

6 idstu[0] = 2.34;

7 idstu[_2__] = 8.89;

8 idstu[2] = __3__;

9 idstu[_4__] = 3.00;

10 cout<<idstu[0]<<endl;

11 cout<<idstu[1]<<endl;

12 cout<<___5__[2]<<endl;

13 cout<<idstu[3]<<endl;

14 return 0;

15 }

เขยนโคดเพอใหโปรแกรมสมบรณ

1 double

2 1

3 5.50

4 3

5 idstu

Page 37: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

28

ผลลพธกำรท ำงำนของโปรแกรม 2.34

8.89

5.5

3

4. จากโปรแกรมค านวณหาพนทสามเหลยม โดยมการรบขอมลความยาว ฐาน(base) และ ความสง(height) จากผใช หลงจากนนท าการค านวณโดยสตรของการค านวณหา พนทสามเหลยม 0.5 * ฐาน * สง น าคาไวในตวแปร area แลวน ามาแสดงผลทางจอภาพ ใหนกศกษาเขยนโปรแกรมใหสมบรณจากชองวางทก าหนดไว พรอมแสดงผลลพธ ( 10 คะแนน )

1 //Lab2_4.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 double_____1______ = 0.00;

6 ______2______ height = 0.00;

7 double _____3______ = 0.00;

8 cout<<"Enter base :";

9 ___4____>>base;

10 cout<<"Enter height :";

11 cin>>_____5______

12 area = 0.5 * base * height;

13 cout<<"Area of Triangle :"<<area<<endl;

14 return 0;

15 }

เขยนโคดเพอใหโปรแกรมสมบรณ

1 base

2 double

3 area

4 cin

5 height;

ผลลพธกำรท ำงำนของโปรแกรม Enter base : 4.50

Enter height : 6.75

Area of Triangle : 15.1875

Page 38: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

29

5. จากโปรแกรมรบเลขจ านวนจรง 1 จ านวน น ามาแสดงผลทางจอภาพโดยมการก าหนดความกวางในการแสดงผลเทากบ 10 และท าการเตมอกขระ ‘$’ ในกรณทการแสดงผลไมครบ 10 อกขระ ( 10 คะแนน )

1 //Lab2_5.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 ___1___ number1;

6 cout<<"Enter number1 :";

7 cin>>number1;

8 cout.width(_2__);

9 cout.fill('$');

10 cout<<___3_____

11 return 0;

12 }

เขยนโคดเพอใหโปรแกรมสมบรณ

1 double

2 10

3 number1

ผลลพธกำรท ำงำนของโปรแกรม Enter number1 : 45.60

$$$$$$45.6

Page 39: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

30

แบบทดสอบหลงเรยน บทท 2 เรอง พนฐำนภำษำ C++

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. เมอโปรแกรมภาษา C++ ทสรางขนมาเปนไฟลตนฉบบ และท าการบนทกจะมการระบนามสกลของไฟลชอวาอะไร ก. .cpp ข. .c ค. .cdx ง. .vcp

2. ขอใดคอขนตอนการเขยนโปรแกรมภาษาซ C++ ก. สรางโปรแกรมตนฉบบ คอมไพล ลงคไลบราร ข. สรางโปรแกรมตนฉบบ พรโปรเซสเซอรไดเรกทฟ คอมไพล วตถไฟล ค. สรางโปรแกรมตนฉบบ คอมไพล พรโปรเซสเซอรไดเรกทฟ วตถไฟล ง. สรางโปรแกรมตนฉบบ พรโปรเซสเซอรไดเรกทฟ คอมไพล วตถไฟล ลงคไลบราร ไฟล

นามสกล .exe 3. การตงชอตวแปรขอใดไมถกตอง

ก. 4sum ข. Total8 ค. maxValue_2 ง. A89

4. ขอใดคอการก าหนดคาใหกบตวแปรทถกตอง ก. int number = 8.0; ข. double max = 9; ค. float 7summation = 16.90; ง. char c = ‘9’;

Page 40: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

31

5. ขอใดคอการก าหนดคาคงทสญลกษณทถกตอง ก. #define salary 15000 ข. #define grade = 4.00; ค. const double sum 10.00; ง. const int val 30.00;

6. ขอใดมใช ชนดขอมลเบองตน ก. int ข. double ค. array ง. long double

7. ชนดขอมล int มขอบเขตในการจดเกบเลขจ านวนเตมสงสดเทากบ 2147483647 ถาบวกเพมอก 1 จะมคาตรงกบขอใด ก. 2147483648 ข. -2147483648 ค. -2147483647 ง. 2147483649

8. ชนดขอมลอกขระ char มการเกบขอมลสงสดกไบต ก. 1 ไบต ข. 2 ไบต ค. 3 ไบต ง. 4 ไบต

9. จากค าสงตอไปน cout.fill(‘A’); cout.width(5); cout<< 12.00; จากค าสงดงกลาวจะมการแสดงผลลพธในขอใดถกตอง ก. A12.00 ข. 12.00A ค. 12.00 ง. AAA12

Page 41: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

32

10. จากค าสงตอไปน cout.precition(4); cout<<30.12345; จากค าสงดงกลาวจะมการแสดงผลลพธในขอใดถกตอง ก. 30 ข. 30.0 ค. 30.12 ง. 30.123

Page 42: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

33

เฉลยแบบทดสอบหลงเรยน บทท 2 เรอง พนฐำนภำษำ C++

ขอท เฉลย

1 ก 2 ง 3 ก 4 ง 5 ก 6 ค 7 ข 8 ก 9 ง

10 ค

Page 43: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

34

Page 44: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

35

บทท 3 เรอง นพจนและตวด ำเนนกำร

Page 45: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

36

แบบทดสอบกอนเรยน บทท 3 เรอง นพจนและตวด ำเนนกำร

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใดตอไปนเปน นพจน

ก. Number1; ข. cout<< “Hello”; ค. 34; ง. Number1++;

2. จากนพจนตอไปน 2 + B - 6 ขอใดถกตองทสด ก. มตวถกกระท า 3 ตว และตวด าเนนการ 2 ตว ข. มตวถกกระท า 2 ตว และตวด าเนนการ 3 ตว ค. มตวด าเนนการ 5 ตว ง. มตวถกกระท า 5 ตว

3. จากนพจนตอไปน 2 + 4 * 6 อะไรคอ ตวถกด าเนนการ ก. + , * ข. 2 , 4, 6 ค. 2 + 4 ง. 2 + 4 + 6

4. จากนพจนดงกลาว 3 + 4 * 5 / 2 ขอใดคอค าตอบทถกตอง ก. 17.5 ข. 11.5 ค. 13 ง. 13.00

5. จากนพจนดงกลาว (4 + 5) * 6 / 2 ขอใดคอค าตอบทถกตอง ก. 27 ข. 19 ค. 24

Page 46: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

37

ง. 12 6. จากนพจนดงกลาว ( (2 == 3) < ( 4 != 10) ) ขอใดคอค าตอบทถกตอง

ก. 0 ข. 2 ค. 1 ง. 3

7. จากนพจนดงกลาว ( (10 != 10 ) > (2 != 2) ) ขอใดคอค าตอบทถกตอง ก. 0 ข. 10 ค. 2 ง. 3

8. ก าหนดใหคา sum = 10 จากนพจนตอไปน cout>>sum++ โปรแกรมจะแสดงคาใดออกมา ก. 11 ข. 12 ค. 9 ง. 10

9. ก าหนดใหคา sum = 1 จากนพจนตอไปน cout>>++sum โปรแกรมจะแสดงคาใดออกมา ก. 2 ข. 1 ค. 3 ง. 0

10. ก าหนดใหคา sum = 1 จากนพจนตอไปน sum+=4 ตวแปร sum มคาตรงกบขอใด ก. 3 ข. 4 ค. 5 ง. 6

Page 47: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

38

เฉลยแบบทดสอบกอนเรยน บทท 3 เรอง นพจนและตวด ำเนนกำร

ขอท เฉลย

1 ง 2 ก 3 ข 4 ค 5 ก 6 ค 7 ก 8 ง 9 ก

10 ค

Page 48: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

39

ใบแบบฝกหด บทท 3 เรอง นพจนและตวด ำเนนกำร

ค ำชแจง 1. แบบฝกหดมทงหมด 7 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. นพจน หมายถง ( 5 คะแนน ) 2. ตวด าเนนการ หมายถง ( 5 คะแนน ) 3. ล าดบความส าคญของตวด าเนนการ คอ ( 5 คะแนน ) 4. ล าดบการท างานของตวด าเนนการ คอ ( 5 คะแนน ) 5. ใหเขยนขนตอนการด าเนนการของนพจนตอไปน x = 5 - 3 * 8 % 3 ( 10 คะแนน ) 6. ใหเขยนขนตอนการด าเนนการของนพจนตอไปน x = (2 * 3 – 4) + 4 – ( 1 + 1 ) ( 10 คะแนน ) 7. ใหเขยนขนตอนการด าเนนการของนพจนตอไปน x = ++a + b + c++ โดยก าหนดใหตวแปร a = 5, b = 5, c = 10 ( 10 คะแนน )

Page 49: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

40

ใบเฉลยแบบฝกหด บทท 3 เรอง นพจนและตวด ำเนนกำร

ค ำชแจง 1. แบบฝกหดมทงหมด 7 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. นพจน หมายถง ( 5 คะแนน ) ตอบ ประโยคทเขยนอยในรปสญลกษณโดยการน าคาคงท ตวแปร หรอฟงกชน มาสมพนธกบตวด าเนนการ (Operator) อยางใดอยางหนงซงนพจน 1 นพจนนนจะตองมโอเปอแรนด อยางนอยหนงตวและตวด าเนนการอยางนอยหนงตวเสมอ เชน 2 + A; 2. ตวด าเนนการ หมายถง ( 5 คะแนน ) ตอบ สงทท าใหคอมพวเตอรเกดการประมวลผลขนมา โดยตวด าเนนการจะเปนการท างานรวมกบนพจนใด ๆ ซงตวด าเนนการแบงออกไดดงตอไปน 1. ตวด าเนนการทางคณตศาสตร ประกอบดวย +, - , * , / , % 2. ตวด าเนนการความเทากน ประกอบดวย ==, != 3. ตวด าเนนการเปรยบเทยบ ประกอบดวย >, >= , < , <= 4. ตวด าเนนการทางตรรกะ ประกอบดวย ! , &&, || 5. ตวด าเนนการเพมคาและลดคา ประกอบดวย ivalue++, ivalue--, ++ivalue, --ivalue 6. ตวด าเนนการก าหนดคา ประกอบดวย =, +=, -=, *=, /=, %= 7. ตวด าเนนการเงอนไข มรปแบบ คอ นพจนท 1 ? นพจนท 2 : นพจนท 3 3. ล าดบความส าคญของตวด าเนนการ คอ ( 5 คะแนน ) ตอบ ล าดบความส าคญ คอ ล าดบความส าคญในการท างานของตวด าเนนการ โดยในการประมวลผลนนคอมพวเตอรจะท างานกบตวด าเนนการทมความส าคญสงสดกอนเปนอนดบแรก และรองลงมาตามล าดบความส าคญ ทกลไกของภาษา C++ ก าหนดไว 4. ล าดบการท างานของตวด าเนนการ คอ ( 5 คะแนน ) ตอบ ล าดบการท างาน คอ ล าดบการท างานของตวด าเนนการโดยมการพจารณาจากซายไปขวา หรอขวาไปซาย ส าหรบตวด าเนนการทมล าดบความส าคญเทากน การประมวลผลจะพจารณาล าดบการ

Page 50: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

41

ท างานมาใชในการประมวลผล ซงล าดบการท างานของตวด าเนนการใด ๆ กลไกของภาษา C++ ไดมการก าหนดไวแลว 5. ใหเขยนขนตอนการด าเนนการของนพจนตอไปน x = 5 - 3 * 8 % 3 ( 10 คะแนน ) ตอบ x = 5 - 3 * 8 % 3 x = 5 - 3 * 8 % 3 x = 5 - 24 % 3 x = 5 - 0 x = 5 6. ใหเขยนขนตอนการด าเนนการของนพจนตอไปน x = (2 * 3 – 4) + 4 – ( 1 + 1 ) ( 10 คะแนน ) ตอบ x = (2 * 3 – 4) + 4 – ( 1 + 1 ) x = (2 * 3 – 4) + 4 – ( 1 + 1 ) x = (6 – 4) + 4 – ( 1 + 1 ) x = (2) + 4 – ( 1 + 1 ) x = 2 + 4 – 2 x = 6 – 2 x = 4 7. ใหเขยนขนตอนการด าเนนการของนพจนตอไปน x = ++a + b + c++ โดยก าหนดใหตวแปร a = 5, b = 5, c = 10 ( 10 คะแนน ) ตอบ x = ++a + b + c++

x = ++a + b + 10 x = 6 + 5 + 10

x = 11 + 10 x = 21

Page 51: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

42

ใบงำน บทท 3 เรอง นพจนและตวด ำเนนกำร

ค ำชแจง 1. ใบงานมทงหมด 3 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. โปรแกรมรบเลขจ านวนเตม 2 จ านวน หลงจากนนมาหาคา number1 > number2 จรงหรอเทจ number1 < number2 จรงหรอเทจ และ number1 == number2 จรงหรอเทจ และใหเขยนผลลพธออกทางจอภาพ ( 15 คะแนน )

1 //Lab3_1.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 int _____________;

6 int _____________;

7 cout<<"Enter number1 :";

8 cin>>_____________

9 cout<<"Enter number2 :";

10 cin>>number2;

11 cout<<number1<<" > "<<number2<<" = "<<(_______________)<<endl;

12 cout<<number1<<" < "<<number2<<" = "<<(number1<number2)<<endl;

13 cout<<number1<<" == "<<_____<<" ="<<(number1==number2)<<endl;

14 return 0;

15 }

Page 52: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

43

2. โปรแกรมค านวณระยะทางเปนกโลเมตร โดยมการรบคาระยะทางเปนจ านวนไมล แลวท าการแปลงเปน กโลเมตร แสดงผลทางจอภาพ ก าหนดให 1 ไมล = 1.609344 กโลเมตร ( 15 คะแนน )

1 //Lab3_2.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 double _______ = 0.00d,kilometors = 0.00d;

6 cout<<"Enter miles : ";

7 cin>>miles;

8 kilometors = miles * 1.609344;

9 cout<<__________<<" miles = "<<___________<<" kilometors"<<endl;

10 return 0;

11 }

3. โปรแกรมค านวณคาองศาฟาเรนไฮ โดยรบขอมลจากผใชเปนองศาเซลเซยส( C ) แลวท าการแปลงเปนองศาฟาเรนไฮ ( F ) ก าหนดให F = C * (9/5) + 32 ( 20 คะแนน )

1 //Lab3_3.cpp

2 _______________

3 #include<iomanip>

4 using namespace std;

5 int main( ){

6 double celsius = 0.00d, ___________ = 0.00d;

7 cout<<"Enter celsius : ";

8 cin>>_________;

9 fahrenheit = ____________;

10 cout<<celsius<<" celsius = "<< fahrenheit<<" fahrenheit"<<endl;

11 return 0;

12 }

Page 53: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

44

เฉลยใบงำน บทท 3 เรอง นพจนและตวด ำเนนกำร

ค ำชแจง 1. ใบงานมทงหมด 3 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. โปรแกรมรบเลขจ านวนเตม 2 จ านวน หลงจากนนมาหาคา number1 > number2 จรงหรอเทจ number1 < number2 จรงหรอเทจ และ number1 == number2 จรงหรอเทจ และใหเขยนผลลพธออกทางจอภาพ ( 15 คะแนน )

1 //Lab3_1.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 int number1;

6 int number2;

7 cout<<"Enter number1 :";

8 cin>>number1;

9 cout<<"Enter number2 :";

10 cin>>number2;

11 cout<<number1<<" > "<<number2<<"="<<(number1>number2)<<endl;

12 cout<<number1<<" < "<<number2<<" = "<<(number1<number2)<<endl;

13 cout<<number1<<" == "<<number1 == number2<<"

="<<(number1 == number2)<<endl;

14 return 0;

15 }

ผลลพธการท างานของโปรแกรม Enter nuber1 : 10

Enter number2 : 20

number1>number2 = 0

number1<number2 = 1

number1 == number2 = 0

Page 54: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

45

2. โปรแกรมค านวณระยะทางเปนกโลเมตร โดยมการรบคาระยะทางเปนจ านวนไมล แลวท าการแปลงเปน กโลเมตร แสดงผลทางจอภาพ ก าหนดให 1 ไมล = 1.609344 กโลเมตร ( 15 คะแนน )

1 //Lab3_2.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 double miles = 0.00d , kilometors = 0.00d;

6 cout<<"Enter miles : ";

7 cin>>miles;

8 kilometors = miles * 1.609344;

9 cout<< miles <<" miles = "<< kilometors <<" kilometors" <<endl;

10 return 0;

11 }

ผลลพธการท างานของโปรแกรม Enter miles : 3

3 miles = 4.82803 kilometors

3. โปรแกรมค านวณคาองศาฟาเรนไฮ โดยรบขอมลจากผใชเปนองศาเซลเซยส( C ) แลวท าการแปลงเปนองศาฟาเรนไฮ ( F ) ก าหนดให F = C * (9/5) + 32 ( 20 คะแนน )

1 //Lab3_3.cpp

2 #include<iostream>

3 #include<iomanip>

4 using namespace std;

5 int main( ){

6 double celsius = 0.00d, fahrenheit = 0.00d;

7 cout<<"Enter celsius : ";

8 cin>>celsius;

9 fahrenheit = celsius * ( 9.00 / 5.00) + 32;

10 cout<<celsius<<" celsius = "<< fahrenheit<<" fahrenheit"<<endl;

11 return 0;

12 }

ผลลพธการท างานของโปรแกรม Enter Celsius : 100

100 celsius = 212 fahrenheit

Page 55: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

46

แบบทดสอบหลงเรยน บทท 3 เรอง นพจนและตวด ำเนนกำร

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. จากนพจนตอไปน 2 + B - 6 ขอใดถกตองทสด

ก. มตวถกกระท า 3 ตว และตวด าเนนการ 2 ตว ข. มตวถกกระท า 2 ตว และตวด าเนนการ 3 ตว ค. มตวด าเนนการ 5 ตว ง. มตวถกกระท า 5 ตว

2. ขอใดตอไปนเปน นพจน ก. Number1; ข. cout<< “Hello”; ค. 34; ง. Number1++;

3. จากนพจนตอไปน 2 + 4 * 6 อะไรคอ ตวถกด าเนนการ ก. + , * ข. 2 , 4, 6 ค. 2 + 4 ง. 2 + 4 + 6

4. จากนพจนดงกลาว (4 + 5) * 6 / 2 ขอใดคอค าตอบทถกตอง ก. 27 ข. 19 ค. 24 ง. 12

5. จากนพจนดงกลาว 3 + 4 * 5 / 2 ขอใดคอค าตอบทถกตอง ก. 17.5 ข. 11.5 ค. 13

Page 56: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

47

ง. 13.00 6. จากนพจนดงกลาว ( (2 == 3) < ( 4 != 10) ) ขอใดคอค าตอบทถกตอง

ก. 0 ข. 2 ค. 1 ง. 3

7. จากนพจนดงกลาว ( (10 != 10 ) > (2 != 2) ) ขอใดคอค าตอบทถกตอง ก. 0 ข. 10 ค. 2 ง. 3

8. ก าหนดใหคา sum = 1 จากนพจนตอไปน cout>>++sum โปรแกรมจะแสดงคาใดออกมา ก. 2 ข. 1 ค. 3 ง. 0

9. ก าหนดใหคา sum = 10 จากนพจนตอไปน cout>>sum++ โปรแกรมจะแสดงคาใดออกมา ก. 11 ข. 12 ค. 9 ง. 10

10. ก าหนดใหคา sum = 1 จากนพจนตอไปน sum+=4 ตวแปร sum มคาตรงกบขอใด ก. 3 ข. 4 ค. 5 ง. 6

Page 57: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

48

เฉลยแบบทดสอบหลงเรยน บทท 3 เรอง นพจนและตวด ำเนนกำร

ขอท เฉลย

1 ก 2 ง 3 ข 4 ก 5 ค 6 ค 7 ก 8 ก 9 ง

10 ค

Page 58: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

49

บทท 4 เรอง โครงสรำงควบคมกำรท ำงำน

Page 59: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

50

แบบทดสอบกอนเรยน บทท 4 เรอง โครงสรำงควบคมกำรท ำงำน

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 15 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใดคอลกษณะรปแบบของการควบคมการท างานแบบตามล าดบ

ก. การท างานของโปรแกรมเรมจากบรรทดบนลงไปบรรทดลาง ข. การท างานของโปรแกรมเรมจากบรรทดบนลงไปบรรทดลางแตจะไมมการท างานทก

บรรทด ขนอยกบค าสงของโปรแกรม ค. การท างานของโปรแกรมเรมจากบรรทดบนลงไปบรรทดลาง หรอจากบรรทดลางมา

บรรทดบน ง. การท างานของโปรแกรมเรมจากบรรทดบนลงไปบรรทดลางโดยมการท างานตามล าดบไม

มการขามบรรทดการท างาน

จากโปรแกรมตอไปนตอบค าถามขอ 2 - 3 1 #include<iostream>

2 using namespace std;

3 int main( ){

4 int number=20;

5 if(number > 10)

6 cout<<number<<endl;

7 number+=10;

8 return 0;

9 }

2. จากโปรแกรมดงกลาวขางตน เมอสงใหโปรแกรมท างานแลวการแสดงผลทจอภาพจะตรงกบค าตอบขอใด ก. 20 ข. 10 ค. 30 ง. number = 10

Page 60: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

51

3. จากโปรแกรมดงกลาวขางตน เมอสงใหโปรแกรมท างานแลวตวแปร number จะมคาตรงกบค าตอบในขอใด ก. 10 ข. 20 ค. 30 ง. 40

จากโปรแกรมตอไปนตอบค าถาม 4 - 6 1 #include<iostream>

2 using namespace std;

3 int main( ){

4 int number=2;

5 if(number > 15)

6 cout<<number<<endl;

7 else

8 cout<<++number<<endl;

9 return 0;

10 }

4. จากโปรแกรมดงกลาวขางตน เมอสงใหโปรแกรมท างานแลวตวแปร number จะมคาตรงกบค าตอบในขอใด ก. 15 ข. 2 ค. 3 ง. 4

5. จากโปรแกรมดงกลาวขางตน เมอสงใหโปรแกรมท างานแลวการแสดงผลทจอภาพจะตรงกบค าตอบขอใด ก. 2 ข. 3 ค. 4 ง. 15

Page 61: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

52

6. โครงสรางควบคมการท างาน switch() จะมการรบพารามเตอรชนดขอมลชนดใด ส าหรบการเลอก case ใด ๆ ในการท างาน ก. int และ float ข. int และ string ค. char และ int ง. int และ byte 1 #include<iostream>

2 using namespace std;

3 int main( ){

4 int i = 5;

5 while(i>0){

6 cout<<i<<” “

7 i--;

8 }

9 return 0;

10 }

7. จากโปรแกรมดงกลาวขางตน เมอมการท างานแลวจะมการแสดงผลทจอภาพตรงกบค าตอบขอใด ก. 5 4 3 2 1 ข. 5 4 3 2 1 0 ค. 1 2 3 4 5 ง. 0 1 2 3 4 5

8. จากโปรแกรมดงกลาวขางตน เมอโปรแกรมท างานแลวเสรจ ตวแปร i มคาตรงกบค าตอบขอใด ก. i = 5 ข. i = 1 ค. i = 0 ง. i = -1

1 #include<iostream>

2 using namespace std;

3 int main( ){

4 int i = 1;

5 do{

6 cout<<i<<” “;

7 i+=2;

Page 62: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

53

8 }while(i<10);

9 return 0;

10 }

9. จากโปรแกรมดงกลาวขางตน เมอท างานแลวจะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด

ก. 1 2 3 4 5 6 7 8 9 ข. 1 3 5 7 9 ค. 1 3 5 7 9 11 ง. 3 5 7 9

10. จากโปรแกรมดงกลาวขางตน ในบรรทดท 4 เปลยนการก าหนดคาเรมตน i = 10 เมอโปรแกรมท างานแลว จะไดผลลพธตรงกบค าตอบในขอใด ก. 8 ข. 9 ค. 10 ง. 12

11. จากโปรแกรมดงกลาวขางตน ในบรรทดท 7 เปลยนเปนค าสง เปน i+=5 เมอโปรแกรมท างานแลว จะไดผลลพธตรงกบค าตอบในขอใด ก. 1 5 ข. 1 5 10 ค. 1 5 6 10 ง. 1 6

1 #include<iostream>

2 using namespace std;

3 int main( ){

4 for(int i = 10;i>=5;i--)

5 cout<<i<<” “;

6 return 0;

7 }

Page 63: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

54

12. จากโปรแกรมดงกลาวขางตน เมอท างานแลวจะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด ก. 10 9 8 7 6 ข. 10 9 8 7 6 5 ค. 9 8 7 6 5 ง. 9 8 7 6 5 4

13. จากโปรแกรมดงกลาวขางตน เมอเปลยนค าสงในบรรทดท 5 เปน cout<<++i<<” “; เมอท างานแลวผลลพธทแสดงออกจอภาพตรงกบขอใด ก. 11 10 9 8 7 6 5 ข. 11 10 9 8 7 6 ค. 11 10 11 10 11 ง. แสดงขอความเลข 11 บนจอภาพ ไมรจบ

14. จากโปรแกรมดงกลาวขางตน เมอเปลยนค าสงในบรรทดท 5 เปน cout<<--i<<” “; เมอท างานแลวผลลพธทแสดงออกจอภาพตรงกบขอใด ก. 10 9 7 5 ข. 9 7 5 ค. 10 9 7 5 ง. แสดงขอความเลข 9 บนจอภาพ ไมรจบ

15. ค ากลาวขอใดตอไปนถกตองทสด ก. ค าสงท าซ า do..while จะมการท างานอยางนอย 1 ครงเสมอ ข. ค าสงท าซ า while ครงแรกจะมคาเปนจรงเสมอ ค. ค าสงท าซ า while จะใชกบการท าซ าทมจดสนสดทแนนอน ง. ค าสงท าซ า while, do…while และ for จะไมสามารถประยกตใชงานทดแทนกนได

Page 64: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

55

เฉลยแบบทดสอบกอนเรยน บทท 4 เรอง โครงสรำงควบคมกำรท ำงำน

ขอท เฉลย

1 ง 2 ก 3 ค 4 ค 5 ข 6 ค 7 ก 8 ค 9 ข

10 ค 11 ง 12 ข 13 ง 14 ข 15 ก

Page 65: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

56

ใบแบบฝกหด บทท 4 เรอง โครงสรำงควบคมกำรท ำงำน

ค ำชแจง 1. ใบแบบฝกหดมทงหมด 3 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกลกษณะการท างานของโครงสรางควบคมแบบตามล าดบ (10 คะแนน) 2. ใหนกศกษาบอกลกษณะการท างานของโครงสรางควบคมแบบเลอกท า (20 คะแนน) 3. ใหนกศกษาบอกลกษณะการท างานของโครงสรางควบคมแบบท าซ า (20 คะแนน)

Page 66: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

57

เฉลยใบแบบฝกหด บทท 4 เรอง โครงสรำงควบคมกำรท ำงำน

ค ำชแจง 1. ใบงานมทงหมด 3 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกลกษณะการท างานของโครงสรางควบคมแบบตามล าดบ พรอมยกตวอยาง ( 10 คะแนน ) ตอบ เปนการควบคมการท างานของโปรแกรมคอมพวเตอรแบบพนฐาน โดยการท างานจะเรมท างานจากบรรทดบนสดไปสบรรทดลางสด ซงจะมการท างานทกบรรทด 2. ใหนกศกษาบอกลกษณะการท างานของโครงสรางควบคมแบบเลอกท า พรอมยกตวอยาง ( 20 คะแนน ) ตอบ เปนการควบคมการท างานของโปรแกรมคอมพวเตอรทมการท างานจากบรรทดบนสดไปสบรรทดลางสด แตจะไมมการท างานทกบรรทดค าสง ทงนขนอยกบเงอนไขของนพจนบลน วาผลการทดสอบทออกมาจะมคาเปนจรงหรอเทจ ถาผลออกมาเปนจรงจะมการท างานเสนทางหนง และถาผลออกมาเปนเทจจะมการท างานอกเสนทางหนง ซงทงสองเสนทางนจะไมซ ากน ซงโครงสรางควบคมแบบเลอกท าแบงออกได 3 แบบ คอ ค าสงควบคมแบบเลอกท า if ค าสงควบคมแบบเลอกท า if...else และค าสงควบคมแบบเลอกท า if...else ซงมรายละเอยดตอไปน

1. if เปนการควบคมแบบเลอกท าโดยถาผลการทดสอบ นพจนบลน มคาเปนจรงจะมเสนทางในการท างานของ สเตทเมนท ใด ๆ ซงอาจจะมการท างานแคสเตทเมนทเดยวหรอหลาย สเตทเมนท กได แตถาผลออกมาเปนเทจ ไมตองท างาน สเตทเมนท ใด ๆ และสนสดการท างานของค าสง if

2. if...else เปนการควบคมแบบเลอกท าโดยผลการทดสอบ นพจนบลน ถามคาเปนจรงจะมเสนทางการท างานเสนทางหนง ซงจะมการท างานแค สเตทเมนท เดยว หรอหลาย สเตทเมนท กไดและเมอท างานครบตาม สเตทเมนท ทก าหนดไว กจะออกจากค าสงแบบเลอกท า if...else ส าหรบกรณผลการทดสอบออกมาเปนเทจ จะมเสนทางการท างานอกเสนทางหนงซงจะมการท างานแค สเตทเมนท เดยว หรอหลาย สเตทเมนท กไดและเมอท างานครบตาม สเตทเมนท ทก าหนดไว กจะออกจากค าสงแบบเลอกท า if...else ซงในการท างานของการควบคมแบบเลอกท าแตละครงจะมเสนทางในการท างานแคเสนทางเดยวเทานน

3. switch เปนการควบคมแบบเลอกท าโดยจะมการท างานคลายกบค าสง if...else ซงการท างานของค าสง switch จะท างานตรงกบกรณ (case) ทคาของ switch ตรงกนเทานน แตถาไมมกรณของ

Page 67: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

58

switch ทตรงกน กจะท างานทค าสง default ส าหรบการรบคา พารามเตอรของค าสง switch จะรองรบชนดขอมล 2 ชนด คอ เลขจ านวนเตมและอกขระ เทานน และเมอมการท างานของกรณใด ๆ เสรจ จะมคยเวรด break; ส าหรบการหยดการท างานและออกจากค าสงเลอกท า switch 3. ใหนกศกษาบอกลกษณะการท างานของโครงสรางควบคมแบบท าซ า พรอมยกตวอยาง ( 20 คะแนน ) ตอบ เปนโครงสรางส าหรบการควบคมการท างานทมลกษณะท าซ า ๆ กนหลาย ๆ ครง ซงจะสงใหการเขยนโปรแกรมมความกะทดรด คลองตว ซงค าสงควบคมแบบท าซ าประกอบดวย ค าสง while, do..while และ for

1. while เปนค าสงควบคมการท าซ าโดยมการทดสอบนพจนบลน วามคาเปนจรงหรอเทจ ถาผลการทดสอบออกมาเปน จรง กจะมเสนทางในการท างานของ สเตทเมนท ใด ๆ เมอมการท างานครบทก สเตทเมนท ทก าหนดไว กจะวนกลบมาทดสอบ นพจนบลน อก ถาเปนจรงกจะท างานซ า ๆ เหมอนเดมอก และจะมวงรอบการท างานแบบนไปเรอย ๆ จนกวาผลการทดสอบ นพจนบลน มคาเปนเทจ จงออกจากค าสงท าซ า while

2. do...while เปนค าสงควบคมการท าซ าโดยมการท างานของ สเตทเมนท ใด ๆ 1 ครง กอนทจะท าการทดสอบนพจนบลน และเมอผลการทดสอบนพจนบลนมคาเปนจรง กจะวนกลบมาท างาน สเตทเมนท ใด ๆ อกครง แลวท าการทดสอบนพจนบลนอกครง ถาผลการทดสอบออกมาเปนจรงกจะมการวนการท างานซ า ๆ แบบนไปเรอย ๆ จนกวาผลการทดสอบการท างานออกมาเปนเทจ จงจะจบการท างานค าสงท าซ า do...while

3. for เปนค าสงควบคมการท าซ าทมผลการท างานคลายกบค าสงท าซ า while และ do...while ส าหรบค าสงควบคมการท าซ า for จะนยมใชกบการท าซ าทมการรจดสนสดการท าซ าทแนนอนโดยภายในค าสงท าซ า for จะมการแบงออกเปน 3 สวน โดยสวนแรก จะเปนการก าหนดคาเรมตนใหกบตวแปร ใด ๆ ส าหรบสวนทสองจะเปนการทดสอบนพจนบลน ถาผลการทดสอบมคาเปนจรง กจะมการท างาน สเตทเมนท ใดๆ และเมอมการท างานครบตาม สเตทเมนท ทก าหนดไว จะกลบมาท างานในสวนท 3 ซงในสวนนอาจจะเปนการปรบปรงคาเรมตนกได หลงจากนนจะไปท าการทดสอบนพจนบลนอกครง ถาผลออกมาเปนจรง กจะมการวนรอบการท าซ าแบบนไปเรอย ๆ จนกวาผลการทดสอบออกมาเปนเทจ จงออกจากค าสงท าซ า for

Page 68: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

59

ใบงำน บทท 4 เรอง โครงสรำงควบคมกำรท ำงำน

ค ำชแจง 1. ใบงานมทงหมด 8 ขอ คะแนนเตม 100 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. โปรแกรมค านวณหาพนทสามเหลยม โดยมการรบคาจากผใชงานเปน ความยาวฐาน และความสง หลงจากนนท าการค านวณหาพนทสามเหลยม โดยใชสตร 0.5 * ฐาน * สง และแสดงผลพนทสามเหลยมทางจอภาพ ใหนกศกษาเขยนโปรแกรมใหสมบรณ และแสดงผลลพธการท างาน (10 คะแนน)

1 //Lab4_1.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 double base;

6 _________1___________;

7 _________2____________;

8 cout<<"Enter base :";

9 cin>>____3______

10 cout<<"Enter height :";

11 cin>>height;

12 area = 0.5 * base * height;

13 cout<<"base :"<<base<<endl;

14 cout<<"height :"<<height<<endl;

15 cout<<"area = "<<area<<endl;

16 }

Page 69: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

60

2. โปรแกรมรบเลขจ านวนเตมจากผใช หลงจากนนท าการทดสอบนพจนบลนวาตวเลขทรบมามคา มากกวา 100 จรงหรอเทจ ถาผลออกมาเปนจรง ใหแสดงขอความ คาทรบมา > 100 ออกทางจอภาพ จากโปรแกรมดงกลาวใหนกศกษาเขยนโปรแกรมใหสมบรณ พรอมทงเขยนผลลพธจากการท างานของโปรแกรม (10 คะแนน)

1 //Lab4_2.cpp

2 #include____1_______

3 using namespace std;

4 int main( ){

5 int ____2______ = 0;

6 cout<<"Enter number1 :";

7 ___3_____>>number1;

8 if(number1 ___4_____ 100)

9 cout<<number1<<" > "<< 100;

10 ____5______

11 }

3. โปรแกรมรบคาจากผใชเปนเลขจ านวนเตม 1 จ านวน หลงจากนนใหหาวาเลขจ านวนดงกลาวเปนเลขจ านวนเตมค หรอเลขจ านวนเตมค แลวแสดงผลทางจอภาพ จากโปรแกรมดงกลาวใหนกศกษาเขยนโปรแกรมใหสมบรณ พรอมทงเขยนผลลพธการท างานของโปรแกรม (10 คะแนน)

1 //Lab4_3.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 int _____1____ = 0;

6 cout<<"Enter number1 :";

7 cin>>number1;

8 if(____2_____ == 0)

9 cout<<number1<<" is Even number"<<endl;

10 ______3_________

11 cout<<number1<<" is Odd number"<<endl;

12 return 0;

13 }

Page 70: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

61

4. โปรแกรมรบคาจากผใชเปนเลขจ านวนเตม 1 จ านวน หลงจากนนใหหาวาเลขจ านวนดงกลาวมคามากกวา 0 หรอ นอยกวา 0 หรอมคาเทากบ 0 แลวแสดงผลทางจอภาพ จากโปรแกรมดงกลาวใหนกศกษาเขยนโปรแกรมใหสมบรณ พรอมทงเขยนผลลพธการท างานของโปรแกรม (10 คะแนน)

1 //Lab4_4.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 ______1______

6 cout<<"Enter number1 :";

7 _____2______

8 if(number1 ___3_____ 0)

9 cout<<number1<<" > "<<0<<endl;

10 else if(number1 ____4____ 0)

11 cout<<number1<<" < "<<0<<endl;

12 ____5_______

13 cout<<number1<<" == "<<0<<endl;

14 return 0;

15 }

Page 71: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

62

5. โปรแกรมรบคาจากผใชเปนตวอกษรภาษาองกฤษ หลงจากนนใหท าการประมวลผลวา ตวอกษรดงกลาวเปนพยญชนะ(Consonant) หรอ สระ(Vowel) และแสดงผลทางจอภาพ (10 คะแนน)

1 //Lab4_5.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 _____1_______

6 cout<<"Enter char :";

7 cin>>c;

8 switch(c){

9 case 'a' : case 'A': case 'e' : case 'E': case 'i' : case 'I':

10 case 'o' : case 'O': case 'u' : case 'U': cout<<"Vowel"; break;

11 case 'b' : case 'B' : case 'c' : case 'C' : case 'd' : case 'D' :

12 case 'f' : case 'F' : case 'g' : case 'G' : case 'h' : case 'H' :

13 case 'j' : case 'J' : case 'k' : case 'K' : case 'l' : case 'L' :

14 case 'm' : case 'M' : case 'n' : case 'N' : case 'p' : case 'P' :

15 case 'q' : case 'Q' : case 'r' : case 'R' : case 's' : case 'S' :

16 __________2_____________

17 case 'x' : case 'X' : case 'y' : case 'Y' : case 'z' : case 'Z' :

18 cout<<"Consonant"; break;

19 default : cout<<"no char";

20 }

21 return 0;

22 }

Page 72: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

63

6. โปรแกรมวนรอบการรบเลขจ านวนเตมจากผใชหลงจากนนน าตวเลขมารวมกนในแตละรอบและท าการวนซ าไปเรอย ๆ จนกวาผใชจะใสเลขนอยกวา 0 ใหหยดการวนรบคา แลวน าผลรวมของตวเลขทงหมดมาแสดงผลทางจอภาพ ใหนกศกษาเขยนโปรแกรมดงกลาวใหสมบรณ พรอมทงเขยนผลลพธทเกดจากการท างาน (10 คะแนน)

1 //Lab4_6.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 int number1=0;

6 int ____1____

7 while(number1 ___2_____ -1 ){

8 cout<<"Enter number1 :";

9 cin>>number1;

10 if(number1>__3_____)

11 sum+=___4_____

12 }

13 cout<<______5______

14 return 0;

15 }

Page 73: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

64

7. โปรแกรมวนรอบการรบเลขจ านวนเตมจากผใชหลงจากนนน าตวเลขมารวมกนในแตละรอบและท าการวนซ าไปเรอย ๆ จนกวาผใชจะใสเลขนอยกวา 0 ใหหยดการวนรบคา แลวน าผลรวมของตวเลขทงหมดมาแสดงผลทางจอภาพ ใหนกศกษาเขยนโปรแกรมดงกลาวดวยค าสงควบคมการท าซ า do..while พรอมทงเขยนผลลพธทเกดจากการท างาน (20 คะแนน)

1 //Lab4_7.cpp

2 #include<iostream>

3 using namespace std;

4 int main(){

5 int number1=0;

6 int sum=0;

7 do{

8 cout<<"Enter number1 :";

9 cin>>number1;

10 if(number1>-1)

11 sum+=number1;

12 }

13 while(number1 > -1 );

14 cout<<sum;

15 return 0;

16 }

8. โปรแกรมรบเลขจ านวนเตม 1 จ านวนหลงจากนนใหแสดงเลขคทางจอภาพ โดยเรมจากเลขจ านวนเตมทรบคา แลวลดคาลงจนกวาจะมคาเทากบ 1 และใหแสดงผลออกจอภาพ ใหนกศกษาเขยนโปรแกรม โดยมการแสดงผลตามทโจทยใหมาตอไปน (20 คะแนน) ผลลพธกำรท ำงำนของโปรแกรม Enter number1 : 6

5

3

1

Page 74: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

65

เฉลยใบงำน บทท 4 เรอง โครงสรำงควบคมกำรท ำงำน

ค ำชแจง 1. ใบงานมทงหมด 8 ขอ คะแนนเตม 100 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. โปรแกรมค านวณหาพนทสามเหลยม โดยมการรบคาจากผใชงานเปน ความยาวฐาน และความสง หลงจากนนท าการค านวณหาพนทสามเหลยม โดยใชสตร 0.5 * ฐาน * สง และแสดงผลพนทสามเหลยมทางจอภาพ ใหนกศกษาเขยนโปรแกรมใหสมบรณ และแสดงผลลพธการท างาน (10 คะแนน)

1 //Lab4_1.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 double base;

6 _________1___________;

7 _________2____________;

8 cout<<"Enter base :";

9 cin>>____3______

10 cout<<"Enter height :";

11 cin>>height;

12 area = 0.5 * base * height;

13 cout<<"base :"<<base<<endl;

14 cout<<"height :"<<height<<endl;

15 cout<<"area = "<<area<<endl;

16 }

เขยนโคดเพอใหโปรแกรมสมบรณ

1 double base

2 double height

3 base;

ผลลพธกำรท ำงำนของโปรแกรม Enter base : 2.5

Enter height : 5.5

Area of Triangle : 6.875

Page 75: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

66

2. โปรแกรมรบเลขจ านวนเตมจากผใช หลงจากนนท าการทดสอบนพจนบลนวาตวเลขทรบมามคา มากกวา 100 จรงหรอเทจ ถาผลออกมาเปนจรง ใหแสดงขอความ คาทรบมา > 100 ออกทางจอภาพ จากโปรแกรมดงกลาวใหนกศกษาเขยนโปรแกรมใหสมบรณ พรอมทงเขยนผลลพธจากการท างานของโปรแกรม (10 คะแนน)

1 //Lab4_2.cpp

2 #include____1_______

3 using namespace std;

4 int main( ){

5 int ____2______ = 0;

6 cout<<"Enter number1 :";

7 ___3_____>>number1;

8 if(number1 ___4_____ 100)

9 cout<<number1<<" > "<< 100;

10 ____5______

11 }

เขยนโคดเพอใหโปรแกรมสมบรณ

1 <iostream>

2 number1

3 cin

4 >

5 return 0;

ผลลพธกำรท ำงำนของโปรแกรม Enter base : 4.50

Enter height : 6.75

Area of Triangle : 15.1875

Page 76: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

67

3. โปรแกรมรบคาจากผใชเปนเลขจ านวนเตม 1 จ านวน หลงจากนนใหหาวาเลขจ านวนดงกลาวเปนเลขจ านวนเตมค หรอเลขจ านวนเตมค แลวแสดงผลทางจอภาพ จากโปรแกรมดงกลาวใหนกศกษาเขยนโปรแกรมใหสมบรณ พรอมทงเขยนผลลพธการท างานของโปรแกรม (10 คะแนน)

1 //Lab4_3.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 int _____1____ = 0;

6 cout<<"Enter number1 :";

7 cin>>number1;

8 if(____2_____ == 0)

9 cout<<number1<<" is Even number"<<endl;

10 ______3_________

11 cout<<number1<<" is Odd number"<<endl;

12 return 0;

13 }

เขยนโคดเพอใหโปรแกรมสมบรณ

1 number1

2 number1 % 2

3 else

ผลลพธกำรท ำงำนของโปรแกรม Enter number1 : 10

number1 is Even number

Page 77: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

68

4. โปรแกรมรบคาจากผใชเปนเลขจ านวนเตม 1 จ านวน หลงจากนนใหหาวาเลขจ านวนดงกลาวมคามากกวา 0 หรอ นอยกวา 0 หรอมคาเทากบ 0 แลวแสดงผลทางจอภาพ จากโปรแกรมดงกลาวใหนกศกษาเขยนโปรแกรมใหสมบรณ พรอมทงเขยนผลลพธการท างานของโปรแกรม (10 คะแนน)

1 //Lab4_4.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 ______1______

6 cout<<"Enter number1 :";

7 _____2______

8 if(number1 ___3_____ 0)

9 cout<<number1<<" > "<<0<<endl;

10 else if(number1 ____4____ 0)

11 cout<<number1<<" < "<<0<<endl;

12 ____5_______

13 cout<<number1<<" == "<<0<<endl;

14 return 0;

15 }

เขยนโคดเพอใหโปรแกรมสมบรณ

1 int number1;

2 cin >> number1;

3 >

4 <

5 else

ผลลพธกำรท ำงำนของโปรแกรม Enter number1 : 10

Number1 > 0

Page 78: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

69

5. โปรแกรมรบคาจากผใชเปนตวอกษรภาษาองกฤษ หลงจากนนใหท าการประมวลผลวา ตวอกษรดงกลาวเปนพยญชนะ(Consonant) หรอ สระ(Vowel) และแสดงผลทางจอภาพ (10 คะแนน)

1 //Lab4_5.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 _____1_______

6 cout<<"Enter char :";

7 cin>>c;

8 switch(c){

9 case 'a' : case 'A': case 'e' : case 'E': case 'i' : case 'I':

10 case 'o' : case 'O': case 'u' : case 'U': cout<<"Vowel"; break;

11 case 'b' : case 'B' : case 'c' : case 'C' : case 'd' : case 'D' :

12 case 'f' : case 'F' : case 'g' : case 'G' : case 'h' : case 'H' :

13 case 'j' : case 'J' : case 'k' : case 'K' : case 'l' : case 'L' :

14 case 'm' : case 'M' : case 'n' : case 'N' : case 'p' : case 'P' :

15 case 'q' : case 'Q' : case 'r' : case 'R' : case 's' : case 'S' :

16 __________2_____________

17 case 'x' : case 'X' : case 'y' : case 'Y' : case 'z' : case 'Z' :

18 cout<<"Consonant"; break;

19 default : cout<<"no char";

20 }

21 return 0;

22 }

เขยนโคดเพอใหโปรแกรมสมบรณ

1 Char c;

2 case 't' : case 'T' : case 'u' : case 'U' : case 'v' : case 'V' : case 'w' : case 'W':

ผลลพธกำรท ำงำนของโปรแกรม Enter char : o

Vowel

Page 79: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

70

6. โปรแกรมวนรอบการรบเลขจ านวนเตมจากผใชหลงจากนนน าตวเลขมารวมกนในแตละรอบและท าการวนซ าไปเรอย ๆ จนกวาผใชจะใสเลขนอยกวา 0 ใหหยดการวนรบคา แลวน าผลรวมของตวเลขทงหมดมาแสดงผลทางจอภาพ ใหนกศกษาเขยนโปรแกรมดงกลาวใหสมบรณ พรอมทงเขยนผลลพธทเกดจากการท างาน (10 คะแนน)

1 //Lab4_6.cpp

2 #include<iostream>

3 using namespace std;

4 int main( ){

5 int number1=0;

6 int ____1____

7 while(number1 ___2_____ -1 ){

8 cout<<"Enter number1 :";

9 cin>>number1;

10 if(number1>__3_____)

11 sum+=___4_____

12 }

13 cout<<______5______

14 return 0;

15 }

เขยนโคดเพอใหโปรแกรมสมบรณ

1 sum = 0;

2 >

3 -1

4 number1;

5 sum

ผลลพธกำรท ำงำนของโปรแกรม Enter number1 : 4

Enter number1 : 3

Enter number1 : 2

Enter number1 : -4

9

Page 80: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

71

7. โปรแกรมวนรอบการรบเลขจ านวนเตมจากผใชหลงจากนนน าตวเลขมารวมกนในแตละรอบและท าการวนซ าไปเรอย ๆ จนกวาผใชจะใสเลขนอยกวา 0 ใหหยดการวนรบคา แลวน าผลรวมของตวเลขทงหมดมาแสดงผลทางจอภาพ ใหนกศกษาเขยนโปรแกรมดงกลาวดวยค าสงควบคมการท าซ า do..while พรอมทงเขยนผลลพธทเกดจากการท างาน (20 คะแนน)

1 //Lab4_7.cpp

2 #include<iostream>

3 using namespace std;

4 int main(){

5 int number1=0;

6 int sum=0;

7 do{

8 cout<<"Enter number1 :";

9 cin>>number1;

10 if(number1>-1)

11 sum+=number1;

12 }

13 while(number1 > -1 );

14 cout<<sum;

15 return 0;

16 }

ผลลพธกำรท ำงำนของโปรแกรม Enter number1 : 9

Enter number1 : 8

Enter number1 : -1

17

Page 81: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

72

8. โปรแกรมรบเลขจ านวนเตม 1 จ านวนหลงจากนนใหแสดงเลขคทางจอภาพ โดยเรมจากเลขจ านวนเตมทรบคา แลวลดคาลงจนกวาจะมคาเทากบ 1 และใหแสดงผลออกจอภาพ ใหนกศกษาเขยนโปรแกรมดงกลาว พรอมเขยนผลลพธการท างาน ( 20 คะแนน)

1 //Lab4_8.cpp

2 #include<iostream>

3 using namespace std;

4 int main(){

5 int number1;

6 cout<<"Enter number1 :";

7 cin>>number1;

8 for(int i=1;number1>0;number1--){

9 if(number1%2 != 0){

10 cout<<number1<<endl;

11 }

12 }

13 return 0;

14 }

ผลลพธกำรท ำงำนของโปรแกรม Enter number1 : 6

5

3

1

Page 82: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

73

แบบทดสอบหลงเรยน บทท 4 เรอง โครงสรำงควบคมกำรท ำงำน

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 15 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใดคอลกษณะรปแบบของการควบคมการท างานแบบตามล าดบ

ก. การท างานของโปรแกรมเรมจากบรรทดบนลงไปบรรทดลาง ข. การท างานของโปรแกรมเรมจากบรรทดบนลงไปบรรทดลางแตจะไมมการท างานทก

บรรทด ขนอยกบค าสงของโปรแกรม ค. การท างานของโปรแกรมเรมจากบรรทดบนลงไปบรรทดลาง หรอจากบรรทดลางมา

บรรทดบน ง. การท างานของโปรแกรมเรมจากบรรทดบนลงไปบรรทดลางโดยมการท างานตามล าดบไม

มการขามบรรทดการท างาน

1 #include<iostream>

2 using namespace std;

3 int main( ){

4 int number=20;

5 if(number > 10)

6 cout<<number<<endl;

7 number+=10;

8 return 0;

9 }

2. จากโปรแกรมดงกลาวขางตน เมอสงใหโปรแกรมท างานแลวการแสดงผลทจอภาพจะตรงกบค าตอบขอใด ก. 20 ข. 10 ค. 30 ง. number = 10

Page 83: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

74

3. จากโปรแกรมดงกลาวขางตน เมอสงใหโปรแกรมท างานแลวตวแปร number จะมคาตรงกบค าตอบในขอใด ก. 10 ข. 20 ค. 30 ง. 40 1 #include<iostream>

2 using namespace std;

3 int main( ){

4 int number=2;

5 if(number > 15)

6 cout<<number<<endl;

7 else

8 cout<<++number<<endl;

9 return 0;

10 }

4. จากโปรแกรมดงกลาวขางตน เมอสงใหโปรแกรมท างานแลวตวแปร number จะมคาตรงกบค าตอบในขอใด ก. 15 ข. 2 ค. 3 ง. 4

5. จากโปรแกรมขางตน เมอใหโปรแกรมท างานการแสดงผลทจอภาพจะตรงกบค าตอบขอใด ก. 2 ข. 3 ค. 4 ง. 15

6. โครงสรางควบคมการท างาน switch() จะมการรบพารามเตอรชนดขอมลชนดใด ส าหรบการเลอก case ใด ๆ ในการท างาน ก. int และ float ข. int และ string ค. char และ int ง. int และ byte

Page 84: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

75

1 #include<iostream>

2 using namespace std;

3 int main( ){

4 int i = 5;

5 while(i>0){

6 cout<<i<<” “

7 i--;

8 }

9 return 0;

10 }

7. จากโปรแกรมดงกลาวขางตน เมอมการท างานแลวจะมการแสดงผลทจอภาพตรงกบค าตอบขอใด ก. 5 4 3 2 1 ข. 5 4 3 2 1 0 ค. 1 2 3 4 5 ง. 0 1 2 3 4 5

8. จากโปรแกรมดงกลาวขางตน เมอโปรแกรมท างานแลวเสรจ ตวแปร i มคาตรงกบค าตอบขอใด ก. i = 5 ข. i = 1 ค. i = 0 ง. i = -1

1 #include<iostream>

2 using namespace std;

3 int main( ){

4 int i = 1;

5 do{

6 cout<<i<<” “;

7 i+=2;

8 }while(i<10);

9 return 0;

10 }

Page 85: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

76

9. จากโปรแกรมดงกลาวขางตน เมอท างานแลวจะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด ก. 1 2 3 4 5 6 7 8 9 ข. 1 3 5 7 9 ค. 1 3 5 7 9 11 ง. 3 5 7 9

10. จากโปรแกรมดงกลาวขางตน ในบรรทดท 4 เปลยนการก าหนดคาเรมตน i = 10 เมอโปรแกรมท างานแลว จะไดผลลพธตรงกบค าตอบในขอใด ก. 8 ข. 9 ค. 10 ง. 12

11. จากโปรแกรมดงกลาวขางตน ในบรรทดท 7 เปลยนเปนค าสง เปน i+=5 เมอโปรแกรมท างานแลว จะไดผลลพธตรงกบค าตอบในขอใด ก. 1 5 ข. 1 5 10 ค. 1 5 6 10 ง. 1 6

1 #include<iostream>

2 using namespace std;

3 int main( ){

4 for(int i = 10;i>=5;i--)

5 cout<<i<<” “;

6 return 0;

7 }

12. จากโปรแกรมดงกลาวขางตน เมอท างานแลวจะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด

ก. 10 9 8 7 6 ข. 10 9 8 7 6 5 ค. 9 8 7 6 5 ง. 9 8 7 6 5 4

Page 86: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

77

13. จากโปรแกรมดงกลาวขางตน เมอเปลยนค าสงในบรรทดท 5 เปน cout<<++i<<” “; เมอท างานแลวผลลพธทแสดงออกจอภาพตรงกบขอใด ก. 11 10 9 8 7 6 5 ข. 11 10 9 8 7 6 ค. 11 10 11 10 11 ง. แสดงขอความเลข 11 บนจอภาพ ไมรจบ

14. จากโปรแกรมดงกลาวขางตน เมอเปลยนค าสงในบรรทดท 5 เปน cout<<--i<<” “; เมอท างานแลวผลลพธทแสดงออกจอภาพตรงกบขอใด ก. 10 9 7 5 ข. 9 7 5 ค. 10 9 7 5 ง. แสดงขอความเลข 9 บนจอภาพ ไมรจบ

15. ค ากลาวขอใดตอไปนถกตองทสด ก. ค าสงท าซ า do..while จะมการท างานอยางนอย 1 ครงเสมอ ข. ค าสงท าซ า while ครงแรกจะมคาเปนจรงเสมอ ค. ค าสงท าซ า while จะใชกบการท าซ าทมจดสนสดทแนนอน ง. ค าสงท าซ า while do..while และ for จะไมสามารถประยกตใชงานทดแทนกนได

Page 87: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

78

เฉลยแบบทดสอบหลงเรยน บทท 4 เรอง โครงสรำงควบคมกำรท ำงำน

ขอท เฉลย

1 ง 2 ก 3 ค 4 ค 5 ข 6 ค 7 ก 8 ง 9 ข

10 ค 11 ง 12 ข 13 ง 14 ข 15 ก

Page 88: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

79

บทท 5 เรอง ฟงกชน

Page 89: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

80

แบบทดสอบกอนเรยน บทท 5 เรอง ฟงกชน

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใด มใช ประโยชน จากการสรางฟงกชนในการใชงาน

ก. แตละฟงกชนมหนาทเพยงอยางเดยวเทานน ข. สามารถเรยกใชงานซ า ๆ ไดหลายครง ค. สามารถแบงกนแตละฟงกชนใหนกพฒนาโปรแกรมไปพฒนาแยกกนได ง. ฟงกชนเหมาะกนการพฒนาโปรแกรมทมความสลบซบซอน

2. ขอใดคอรปแบบการสรางฟงกชนทถกตอง ก. return_type function_name(parameter_list){ statements; return data_type; } ข. return_type function_name( ){ statements; return data_type; } ค. return_type function_name(parameter_list){ statements; } ง. void function_name(parameter_list){ statements; return data_type; }

3. เมอตองการจดการขอมลชนดขอความจะตองมการน าเขาไลบรารใด ก. #include<char> ข. #include<string> ค. #include “char” ง. #include “string”

4. เมอมการประกาศตวแปรโลคอล ซ ากบตวแปรโกลบอล เมอมการท างานภายในฟงกชนนน ๆ จะมการเรยกใชงานตวแปรชนดใดมาท างาน ก. คอมไพลโปรแกรมไมผาน ข. ตวแปรโลคอล ค. ตวแปรโกลบอล ง. คอมไพลโปรแกรมผาน แตเมอสงท างานจะแสดงขอความผดพลาดออกมา

Page 90: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

81

จากโปรแกรมตอไปนตอบค าถามขอ 5 - 7 1 #include<iostream>

2 using namespace std;

3 _______1________

4 _______2________

5 int main( ){

6 cout<<add(2.50,5.50);

7 show();

8 return 0;

9 }

10 double add(double n1, double n2){

11 return n1 + n2;

12 }

13 void show( ) {

14 cout<<add(4.50,5.00);

15 }

5. จากโปรแกรมดงกลาวบรรทดท 3 จะตองเตมโคดโปรแกรมอยางไร เพอใหโปรแกรมสามารถท างานไดถกตอง ก. double add(int, int ); ข. int add(double, double); ค. double add(double, double); ง. int add(int, double);

6. จากโปรแกรมดงกลาวบรรทดท 4 จะตองเตมโคดโปรแกรมอยางไร เพอใหโปรแกรมสามารถท างานไดถกตอง ก. double show( ); ข. int show(int ); ค. void show( double ); ง. void show( );

7. จากโปรแกรมดงกลาวเมอสงใหท างาน ผลลพธจะสอดคลองกบขอใด ก. 8.00 9.50 ข. 8 9.50 ค. 9.50 8.00 ง. 9.50 8

Page 91: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

82

1 #include<iostream>

2 using namespace std;

3 ________1__________

4 int main( ){

5 int number1 = 10;

6 int* pnumber1 = &number1;

7 int& rnumber1 = number1;

8 add(pnumber1,rnumber1);

9 cout<<*pnumber1<<" "<<rnumber1;

10 return 0;

11 }

12 void add(int* p, ___2_____ r){

13 *p = *p + r;

14 }

8. จากโปรแกรมดงกลาวบรรทดท 3 จะตองเตมโคดโปรแกรมอยางไร เพอใหโปรแกรมสามารถท างานไดถกตอง ก. void add(int*, int&); ข. void add(*int, &int); ค. void add(int, int); ง. void add(int*, int*);

9. จากโปรแกรมดงกลาวบรรทดท 12 จะตองเตมโคดโปรแกรมอยางไร เพอใหโปรแกรมสามารถท างานไดถกตอง ก. &int ข. *int ค. int& ง. int*

10. จากโปรแกรมดงกลาวเมอสงใหท างาน ผลลพธจะสอดคลองกบขอใด ก. 10 ข. 10 10 ค. 10 20 ง. 20 20

Page 92: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

83

เฉลยแบบทดสอบกอนเรยน

บทท 5 เรอง ฟงกชน

ขอท เฉลย 1 ง 2 ก 3 ข 4 ข 5 ค 6 ง 7 ข 8 ก 9 ค

10 ง

Page 93: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

84

ใบแบบฝกหด บทท 5 เรอง ฟงกชน

ค ำชแจง 1. แบบฝกหดมทงหมด 5 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาใหค านยามความหมายของค าวา ฟงกชน ( 10 คะแนน ) 2. ใหนกศกษาเขยนรปแบบฟงกชนเมอท างานเสรจมการสงคากลบ และรปแบบฟงกชนเมอท างานเสรจไมมการสงคากลบ ( 10 คะแนน ) 3. ใหนกศกษาอธบายขอแตกตางระหวางตวแปรโกลบอลและตวแปรโลคอล ( 10 คะแนน ) 4. ใหนกศกษายกตวอยางไลบรารมาตรฐานของภาษา C++ ทมการน าเขามาใชงานในโปรแกรมมา 5 ชนด ( 10 คะแนน ) 5. ใหนกศกษาอธบายการสงผานคาของฟงกชนดวยการผานคาพารามเตอร แบบสงผานดวยคา แบบสงผานดวยพอยนเตอร และ แบบสงผานดวยอางอง ( 10 คะแนน )

Page 94: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

85

ใบเฉลยแบบฝกหด บทท 5 เรอง ฟงกชน

ค ำชแจง 1. แบบฝกหดมทงหมด 5 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาใหค านยามความหมายของค าวา ฟงกชน ( 10 คะแนน ) ตอบ ฟงกชน คอ การรวมกลมของค าสงทมวตถประสงคในการท างานเรองใด เรองหนงโดยเฉพาะ มความเหมาะสมในการเรยกใชงานหลาย ๆ ครง

2. ใหนกศกษาเขยนรปแบบฟงกชนเมอท างานเสรจมการสงคากลบ และรปแบบฟงกชนเมอท างานเสรจไมมการสงคากลบ ( 10 คะแนน ) ตอบ รปแบบฟงกชนเมอท างานเสรจมการสงคากลบ

typename functionname ( parameterList ) {

statements;

return value;

}

รปแบบฟงกชนท างานเสรจไมมการสงคากลบ void functionname( parameterlist ) {

statements();

}

3. ใหนกศกษาอธบายขอแตกตางระหวางตวแปรโกลบอลและตวแปรโลคอล ( 10 คะแนน ) ตอบ ตวแปรโลคอลจะมการประกาศไวภายในฟงกชนใด ๆ จะมขอบเขตการท างานแคภายในฟงกชนเทานนไมสามารถเขาถงจากภายนอกฟงกชน สวนตวแปรโกลบอล จะเปนการประกาศตวแปรไวภายนอกฟงกชน สงผลใหทกสวนของโปรแกรมสามารถมองเหน แลวเขาถงไดจากภายนอกหรอภายในฟงกชนใด ๆ ( 10 คะแนน )

4. ใหนกศกษายกตวอยางไลบรารมาตรฐานของภาษา C++ ทมการน าเขามาใชงานในโปรแกรมมา 5 ชนด ( 10 คะแนน ) ตอบ ไลบรารทางดานคณตศาสตร #include<cmath>

ไลบรารจดการขอความ #include<string> ไลบรารแสดงขอบเขตชนดขอมล #include<climits>

Page 95: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

86

ไลบรารจดการการแสดงผล #include<iomanip> ไลบรารจดการไฟล #include<fstream>

5. ใหนกศกษาอธบายการสงผานคาของฟงกชนดวยการผานคาพารามเตอร แบบสงผานดวยคา แบบสงผานดวยพอยนเตอร และ แบบสงผานดวยอางอง ( 10 คะแนน ) ตอบ

1. กำรผำนคำพำรำมเตอรแบบสงผำนดวยคำ คอ ในการสงผานนนจะท าการคดลอกคาอารกวเมนต สงมาใหกบตวแปรพารามเตอร และสามารถใชงานในฟงกชนได โดยทตวแปรพารามเตอรเปนตวแปรทวไป ทสามารถท าการเปลยนแปลงคาทรบมาได โดยทคาอารกวเมนตตนแบบจะไมมการเปลยนแปลง หรอมผลกระทบ

2. กำรผำนคำพำรำม เตอรแบบสงผำนดวยพอยนเตอร คอ จะเปนการสงผานคาอารกวเมนตเปนแอดเดรสใหกบตวแปรพารามเตอรส าหรบการใชงานภายในฟงกชน ดงนนตวแปรพารามเตอรจะตองเปนพอยนเตอรเพอทจะรบคาทเปนแอดเดรสเกบไว ซงจะชไปยงคาของตวแปรอารกวเมนต ดงนนเมอมการเปลยนแปลงคาดวยตวแปรพารามเตอร คาของตวแปรอารกวเมนตจะเปลยนแปลงตามไปดวย

3. กำรผำนคำพำรำมเตอร แบบสงผำนดวยอำงอง คอ จะเปนการสงผานคาอารกวเมนตเปนแอดเดรสเหมอนกบการสงผานดวยพอยนเตอร ใหกบตวแปรพารามเตอร แตตวแปรพารามเตอรจะเปนตวแปรอางอง โดยจะอางไปยงคาของตวแปรอารกวเมนต และไมสามารถเปลยนการอางได

Page 96: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

87

ใบงำน บทท 5 เรอง ฟงกชน

ค ำชแจง 1. ใบงานมทงหมด 2 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ ===================================================================== 1. ใหนกศกษาเขยนโปรแกรมน าเขาไลบรารการจดการขอความ #include<string> จากนนใหรบคาจากผใชเปนชอ เกบไวในตวแปร fname และนามสกลเกบไวในตวแปร lname และอายเกบไวในตวแปร age จากนนใหแสดง ชอ ความยาวชอ นามสกล ความยาวนามสกล และอาย ทางจอภาพดงตอไปน ( 10 คะแนน )

Enter fname = Wuttiwong

Enter lname = Eadsrichai

fName : Wuttiwong length = 9

lname : Eadsrichai length = 10

Age : 40

Page 97: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

88

2. ใหนกศกษาเขยนโปรแกรมโดยมการรบขอมลจากผใชเปนเลขจ านวนจรงจ านวน 2 คาสรางฟงกชนชอ void input( ); และสรางฟงกชนค านวณคามากสด void findMax(double*,double*); ภายในฟงกชนหาคามากสดเกบไวในตวแปร max ฟงกชนหาคานอยสด void findMin(double&, double&); ภายในฟงกชนหาคานอยสดเกบไวในตวแปร min และฟงกชนหาคาเฉลย double avg(double, double); สงคากลบเกบไวในตวแปร average; หลงจากนนใหแสดงคาตวเลขทรบมา คามากสด คานอยสด และคาเฉลยทางจอภาพ ฟงกชนชอ void show( ); ( 40 คะแนน )

1 #include<iostream>

2 using namespace std;

3 void input( );

4 void findMax(____1____,___2______);

5 void findMin(___3_____,___4______);

6 double avg(_____5____,____6_____);

7 void show();

8 double average = 0.00;

9 double number1, number2;

10 double maxValue,minValue;

11 int main( ){

12 _______7___________

13 _______8___________

14 _______9___________

15 _______10__________

16 input( );

17 findMax(pnumber1,pnumber2 );

18 findMin(rnumber1,rnumber2 );

19 average = avg( number1,number2 );

20 show( );

21 return 0;

22 }

23 void input( ){

24 cout<<"Enter number1 = "; cin>>number1;

25 cout<<"Enter number2 = "; cin>>number2;}

26 void findMax(double* n1, double* n2){

27 maxValue = *n1 > * n2 ? *n1 : *n2;

28 }

29 void findMin(double& n1, double& n2){

30 minValue = (n1 < n2) ? n1 : n2;

31 }

Page 98: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

89

32 double avg(double n1, double n2){

33 _______11___________

34 }

35 void show(){

36 cout<<"number1 ="<<number1<<endl;

37 cout<<"number2 ="<<number2<<endl;

38 cout<<"Max = "<<maxValue<<endl;

39 cout<<"Min = "<<minValue<<endl;

40 cout<<"Average = "<<average<<endl;

41 }

Page 99: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

90

เฉลยใบงำน บทท 5 เรอง ฟงกชน

ค ำชแจง 1. ใบงานมทงหมด 2 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ ===================================================================== 1. ใหนกศกษาเขยนโปรแกรมน าเขาไลบรารการจดการขอความ #include<string> จากนนใหรบคาจากผใชเปนชอ เกบไวในตวแปร fname และนามสกลเกบไวในตวแปร lname และอายเกบไวในตวแปร age จากนนใหแสดง ชอ ความยาวชอ นามสกล ความยาวนามสกล และอาย ทางจอภาพดงตอไปน ( 10 คะแนน )

1 //Lab5_1.cpp

2 #include<iostream>

3 #include<string>

4 using namespace std;

5 int main( ){

6 string fname;

7 string lname;

8 int age;

9 cout<<"Enter fname : ";

10 cin>>fname;

11 cout<<"Enter lname : ";

12 cin>>lname;

13 cout<<"Enter age : ";

14 cin>>age;

15 cout<<"fName : "<<fname<<" length : "<<fname.length()<<endl;

16 cout<<"lName : "<<lname<<" length : "<<lname.length()<<endl;

17 cout<<"Age : "<<age;

18 return 0;

19 }

Page 100: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

91

ผลลพธกำรท ำงำนของโปรแกรม Enter fname = Wuttiwong

Enter lname = Eadsrichai

fName : Wuttiwong length = 9

lname : Eadsrichai length = 10

Age : 40

Page 101: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

92

2. ใหนกศกษาเขยนโปรแกรมโดยมการรบขอมลจากผใชเปนเลขจ านวนจรงจ านวน 2 คาสรางฟงกชนชอ void input( ); และสรางฟงกชนค านวณคามากสด void findMax(double*,double*); ภายในฟงกชนหาคามากสดเกบไวในตวแปร max ฟงกชนหาคานอยสด void findMin(double&, double&); ภายในฟงกชนหาคานอยสดเกบไวในตวแปร min และฟงกชนหาคาเฉลย double avg(double, double); สงคากลบเกบไวในตวแปร average; หลงจากนนใหแสดงคาตวเลขทรบมา คามากสด คานอยสด และคาเฉลยทางจอภาพ ฟงกชนชอ void show( ); ( 40 คะแนน )

1 #include<iostream>

2 using namespace std;

3 void input( );

4 void findMax(double*, double*);

5 void findMin(double&, double&);

6 double avg(double, double);

7 void show();

8 double average = 0.00;

9 double number1, number2;

10 double maxValue,minValue;

11 int main( ){

12 double *pnumber1 = &number1;

13 double *pnumber2 = &number2;

14 double &rnumber1 = number1;

15 double &rnumber2 = number2;

16 input( );

17 findMax(pnumber1,pnumber2 );

18 findMin(rnumber1,rnumber2 );

19 average = avg( number1,number2 );

20 show( );

21 return 0;

22 }

23 void input( ){

24 cout<<"Enter number1 = "; cin>>number1;

25 cout<<"Enter number2 = "; cin>>number2;}

26 void findMax(double* n1, double* n2){

27 maxValue = *n1 > * n2 ? *n1 : *n2;

28 }

29 void findMin(double& n1, double& n2){

30 minValue = (n1 < n2) ? n1 : n2;

31 }

Page 102: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

93

32 double avg(double n1, double n2){

33 return (n1 + n2)/2;

34 }

35 void show(){

36 cout<<"number1 ="<<number1<<endl;

37 cout<<"number2 ="<<number2<<endl;

38 cout<<"Max = "<<maxValue<<endl;

39 cout<<"Min = "<<minValue<<endl;

40 cout<<"Average = "<<average<<endl;

41 }

ผลลพธกำรท ำงำน

Enter number1 = 5

Enter number2 = 6

number1 = 5

number2 = 6

Max = 6

Min = 5

Average = 5.5

Page 103: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

94

ใบแบบทดสอบหลงเรยน บทท 5 เรอง ฟงกชน

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใดคอรปแบบการสรางฟงกชนทถกตอง

ก. return_type function_name(parameter_list){ statements; return data_type; } ข. return_type function_name( ){ statements; return data_type; } ค. return_type function_name(parameter_list){ statements; } ง. void function_name(parameter_list){ statements; return data_type; }

2. ขอใด มใช ประโยชน จากการสรางฟงกชนในการใชงาน ก. แตละฟงกชนมหนาทเพยงอยางเดยวเทานน ข. สามารถเรยกใชงานซ า ๆ ไดหลายครง ค. สามารถแบงกนแตละฟงกชนใหนกพฒนาโปรแกรมไปพฒนาแยกกนได ง. ฟงกชนเหมาะกนการพฒนาโปรแกรมทมความสลบซบซอน

3. เมอตองการจดการขอมลชนดขอความจะตองมการน าเขาไลบรารใด ก. #include<char> ข. #include<string> ค. #include “char” ง. #include “string”

4. เมอมการประกาศตวแปรโลคอล ซ ากบตวแปรโกลบอล เมอมการท างานภายในฟงกชนนน ๆ จะมการเรยกใชงานตวแปรชนดใดมาท างาน ก. คอมไพลโปรแกรมไมผาน ข. ตวแปรโลคอล ค. ตวแปรโกลบอล ง. คอมไพลโปรแกรมผาน แตเมอสงท างานจะแสดงขอความผดพลาดออกมา

Page 104: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

95

จากโปรแกรมตอไปนตอบค าถามขอ 5 - 7 1 #include<iostream>

2 using namespace std;

3 _______1________

4 _______2________

5 int main( ){

6 cout<<add(2.50,5.50);

7 show();

8 return 0;

9 }

10 double add(double n1, double n2){

11 return n1 + n2;

12 }

13 void show( ) {

14 cout<<add(4.50,5.00);

15 }

5. จากโปรแกรมดงกลาวบรรทดท 3 จะตองเตมโคดโปรแกรมอยางไร เพอใหโปรแกรมสามารถท างานไดถกตอง ก. double add(int, int ); ข. int add(double, double); ค. double add(double, double); ง. int add(int, double);

6. จากโปรแกรมดงกลาวบรรทดท 4 จะตองเตมโคดโปรแกรมอยางไร เพอใหโปรแกรมสามารถท างานไดถกตอง ก. double show( ); ข. int show(int ); ค. void show( double ); ง. void show( );

7. จากโปรแกรมดงกลาวเมอสงใหท างาน ผลลพธจะสอดคลองกบขอใด ก. 8.00 9.50 ข. 8 9.50 ค. 9.50 8.00 ง. 9.50 8

Page 105: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

96

จากโปรแกรมตอไปนตอบค าถามขอ 8 - 10 1 #include<iostream>

2 using namespace std;

3 ________1__________

4 int main( ){

5 int number1 = 10;

6 int* pnumber1 = &number1;

7 int& rnumber1 = number1;

8 add(pnumber1,rnumber1);

9 cout<<*pnumber1<<" "<<rnumber1;

10 return 0;

11 }

12 void add(int* p, ___2_____ r){

13 *p = *p + r;

14 }

8. จากโปรแกรมดงกลาวบรรทดท 3 จะตองเตมโคดโปรแกรมอยางไร เพอใหโปรแกรมสามารถท างานไดถกตอง ก. void add(int*, int&); ข. void add(*int, &int); ค. void add(int, int); ง. void add(int*, int*);

9. จากโปรแกรมดงกลาวบรรทดท 12 จะตองเตมโคดโปรแกรมอยางไร เพอใหโปรแกรมสามารถท างานไดถกตอง ก. &int ข. *int ค. int& ง. int*

10. จากโปรแกรมดงกลาวเมอสงใหท างาน ผลลพธจะสอดคลองกบขอใด ก. 10 ข. 10 10 ค. 10 20 ง. 20 20

Page 106: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

97

เฉลยแบบทดสอบหลงเรยน บทท 5 เรอง ฟงกชน

ขอท เฉลย

1 ก 2 ง 3 ข 4 ข 5 ค 6 ง 7 ข 8 ก 9 ค

10 ง

Page 107: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

98

Page 108: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

99

บทท 6 เรอง คำคงท พอยนเตอรและกำรอำงอง

Page 109: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

100

แบบทดสอบกอนเรยน บทท 6 เรอง คำคงท พอยนเตอรและกำรอำงอง

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. จากตวเลขตอไปนขอใดคอคาคงทเลขฐานแปด

ก. 05 ข. 0xA ค. 10 ง. 0x8

2. ขอใดมความหมายสอดคลองกบค าวาคาคงท ก. เปนการก าหนดคาในสวนของโปรแกรม ไมสามารถเปลยนแปลงคาไดขณะโปรแกรม

ท างาน ข. เปนการก าหนดคาในสวนของโปรแกรม สามารถเปลยนแปลงคาไดขณะโปรแกรมท างาน ค. เปนคาทก าหนดขนมาใชงานแตละครง ง. เปนคาทก าหนดขนมาใชงานแตละครง สามารถเปลยนแปลงไดขณะโปรแกรมก าลงท างาน

3. เอสเคปซเควนซในขอใด หมายถง การขนบรรทดใหม ก. \a ข. \b ค. \n ง. \l

4. ขอใดไมใชการประกาศคาคงทสญลกษณ ก. #define VAT 0.07 ข. const double PI = 3.141; ค. #define VAT = 0.07 ง. #define findMax(n1,n2) ( ( n1) > ( n2) ? (n1) : (n2) )

Page 110: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

101

5. ขอใดคอรปแบบการประกาศตวแปรพอยนเตอรคงท ทชไปยงต าแหนงทมคาสามารถเปลยนแปลงคาได แตตวพอยนเตอรเปลยนการชไปยงต าแหนงอนไมได ก. const int* pter; ข. int* const pter ค. const int* const pter ง. cont int pter*

6. ขอใดคอรปแบบการประกาศตวแปรพอยนเตอรชไปยงต าแหนงทเปนคาคงท ไมสามารถเปลยนแปลงคาได แตตวแปรพอยนเตอรสามารถเปลยนการชไปยงต าแหนงอนได ก. const int* pter; ข. int* const pter ค. const int* const pter ง. cont int pter*

7. ขอใดคอการประกาศตวแปรพอยนเตอรคงทชไปยงต าแหนงมคาคงทไมสามารถเปลยนแปลงคาได และไมสามารถเปลยนการชไปยงต าแหนงอนได ก. const int* pter; ข. int* const pter ค. const int* const pter ง. cont int pter*

จากโปรแกรมตอไปนตอบค าถามขอ 8 – 10 1 #include<iostream>

2 using namespace std;

3 int main( ){

4 int number1 = 10,number2 = 20,number3 = 30;

5 int& rnumber1 = number1;

6 int& rnumber2 = number2;

7 int& rnumber3 = number1;

8 number1 = 100;

9 cout<<rnumber1<<" "<<rnumber2<<" "<<rnumber3;

10 return 0;

11 }

Page 111: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

102

8. จากโปรแกรมดงกลาวเมอท างานจะไดผลลพธตรงกบขอใด ก. 10 20 10 ข. 10 20 100 ค. 100 20 30 ง. 100 20 100

9. จากโปรแกรมดงกลาวเมอ คอมเมนตบรรทดท 8 สงใหโปรแกรมท างานจะไดผลลพธตรงกบขอใด ก. 10 20 10 ข. 10 20 100 ค. 100 20 30 ง. 100 20 100

10. จากโปรแกรมดงกลาว บรรทดท 8 เปลยนค าสงเปน number1 = 20; เมอรนโปรแกรมจะไดผลลพธตรงกบขอใด ก. 10 20 30 ข. 10 20 20 ค. 20 20 30 ง. 20 20 20

Page 112: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

103

เฉลยแบบทดสอบกอนเรยน บทท 6 เรอง คำคงท พอยนเตอรและกำรอำงอง

ขอท เฉลย

1 ก 2 ก 3 ค 4 ค 5 ข 6 ก 7 ค 8 ง 9 ก

10 ง

Page 113: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

104

แบบฝกหด บทท 6 เรอง คำคงทพอยนเตอรและกำรอำงอง

ค ำชแจง 1. ใบแบบฝกหดมทงหมด 4 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกความหมายของคาคงทคออะไร แบงออกไดกแบบอะไรบาง ( 10 คะแนน ) 2. ใหนกศกษาบอกความหมายของพอยนเตอร พรอมเขยนภาพประกอบ ( 15 คะแนน ) 3. ใหนกศกษาอธบายการใชงานคาคงทกบพอยนเตอร มกแบบ อะไรบาง ( 15 คะแนน ) 4. ใหนกศกษาอธบายความหมายของการอางองคออะไร ( 10 คะแนน )

Page 114: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

105

เฉลยแบบฝกหด บทท 6 เรอง คำคงทพอยนเตอรและกำรอำงอง

ค ำชแจง 1. ใบแบบฝกหดมทงหมด 4 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกความหมายของคาคงทคออะไร แบงออกไดกแบบอะไรบาง ( 10 คะแนน ) ตอบ คาคงท คอการก าหนดคาทอยในสวนของโปรแกรมไมสามารถเปลยนแปลงคาไดขณะทโปรแกรมก าลงท างานอยแบงออกได 2 แบบ คอ คาคงทแทจรง และคาคงทสญลกษณ

1. คาคงทแทจรง คอการก าหนดคาโดยตรงในโปรแกรมสามารถแบงออกตามชนดของขอมลคอ คาคงทตวเลข และคาคงทตวอกษร

1.1 คาคงทตวเลข เปนคาทสามารถน าเอาไปค านวณได เชน เลขฐานสบมสญลกษณ 0 – 9 เลขฐานแปดมสญลกษณ 0 – 7 และเลขฐานสบหกมสญลกษณ 0 – 9 และ A – F หรอ a – f การก าหนดคาเลขทศนยมมตวแปรชนด double คาเลขทศนยมชนด float จะลงทายดวย f หรอ F และคาเลขทศนยม long double ลงทายดวย l หรอ L

1.2 คาคงทตวอกษร เปนการเขยนตวอกษร 1 ตว หรอ ตวเลข 1 ตว ภายใตเครองหมายอญประกาศเดยว (‘ ’) และมอกษรบางตวไมสามารถกดแปนคยบอรดได แตสามารถน าเอามาใชงานได เรยกวา เอสเคปซเควนซ เชน \n หมายถง ขนบรรทดใหม เปนตน

2. คาคงทสญลกษณ คอการก าหนดสญลกษณเปนตวแทนในการเรยกใชงานซงสามารถก าหนดได 2 แบบคอ ก าหนดดวยพรโปรเซสเซอรไดเรกทฟ และก าหนดดวยคยเวรด const

2.1 การก าหนดดวยพรโปรเซสเซอรไดเรกทฟ #define ตามดวยชอมาโคร และก าหนดคาใหกบมาโคร ไมตองปดทายดวยเซมโคลอน ( ; ) ในการก าหนดคานนสามารถก าหนดได 2 แบบ คอ การก าหนดคาคงท เชน #define PI 3.141 และการก าหนดเปนฟงกชน #define findMax(n1,n2) ( (n2) > ( n2 ) ? ( n1 ) : ( n2 ) ) เปนตน

2.2 ก าหนดดวยคยเวรด const เปนการประกาศ const ไวหนาชนดขอมล และชอตวแปร นยมเขยนเปนตวอกษรพมพใหญ เชน const double PI = 3.141; เปนตน

2. ใหนกศกษาบอกความหมายของพอยนเตอร พรอมเขยนภาพประกอบ ( 15 คะแนน ) ตอบ พอยนเตอร คอ ตวแปรชนดหนงทมการเกบคาชต าแหนงในหนวยความจ าของตวแปรอน โดยตวมนเองจะมต าแหนงในหนวยความจ าเชนกน การประกาศตวแปรคอ datatype* pointername;

Page 115: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

106

pInt number1

40

0x22f66 0x22f70

3. ใหนกศกษาอธบายการใชงานคาคงทกบพอยนเตอร มกแบบ อะไรบาง ( 15 คะแนน ) ตอบ การใชงานคาคงทกบพอยนเตอรสามารถก าหนดได 3 แบบคอ

แบบท 1 const int* Pnumber1; ตวแปรพอยนเตอร pNumber1 จะชไปยงต าแหนงทเปนคาคงท ซงจะไมสามารถเปลยนแปลงคาได แตตวแปรพอยนเตอร pNumber1 สามารถเปลยนการชไปยงต าแหนงอนได

แบบท 2 int* const pNumber1; คอตวแปรพอยนเตอร pNumber1 เปนพอยนเตอรคงท ทชไปยงต าแหนงทมคาสามารถเปลยนแปลงได แตตวพอยนเตอร pNumber1 เปลยนการชไปยงต าแหนงอนไมได

แบบท 3 const int* const pNumber1; คอตวแปรพอยนเตอร pNumber1 เปนพอยนเตอรคงท ทชไปยงต าแหนงทมคาคงท ไมสามารถเปลยนแปลงคาได และไมสามารถเปลยนการชไปยงต าแหนงอนได

4. ใหนกศกษาอธบายความหมายของการอางองคออะไร ( 10 คะแนน ) ตอบ การอางอง คอการประกาศตวแปรเปนเสมอนชอเลนของอกตวแปรหนงทถกอางองถงโดยตวแปรอางองจะมการอางไปยงต าแหนงเดยวกนกบตวแปรจรง ถามการเปลยนแปลงคาจากตวแปรจรงหรอตวแปรอางองกสามารถกระท าไดโดยจะสงผลใหกบทงสองตวแปรเปลยนไปเหมอนกน รปแบบการประกาศตวแปรอางอง typename& referenceName; ตวอยางเชน double number1 = 100.59; double& rnumber1 = number1;

Page 116: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

107

ใบงำน บทท 6 เรอง คำคงท พอยนเตอรและกำรอำงอง

ค ำชแจง 1. ใบงานมทงหมด 2 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาเขยนโปรแกรมรบคาเลขจ านวนจรงจ านวน 2 คา จากนนใหท าการหาคาเฉลยออกมา โดยมการใชงานตวแปรพอยนเตอร แสดงผลทางจอภาพ มการสรางฟงกชนในการรบคา input(); ฟงกชนในการค านวณคาเฉลย calAver(double*, double*); และฟงกชนแสดงผลทางจอภาพ output( ); พรอมทงแสดงผลลพธในการท างานของโปรแกรม ( 25 คะแนน)

1 //Lab6_1.cpp

2 #include<iostream>

3 using namespace std;

4 void input(double*, double*);

5 void calAver(double*,double*,double*);

6 void output(double*, double*, double*);

7 int main( ){

8 ______1_______

9 ______2_______

10 ______3_______

11 ______4_______

12 input(_______5_________);

13 calAver(_____6_________);

14 output(______7_________);

15 return 0;

16 }

17 void input(double* n1, double* n2){

18 ______8________

19 ______9________

20 }

21 void calAver(double* n1,double* n2,double* avg){

22 ______10_______

23 }

24 void output(double* n1, double* n2,double* a){

25 cout<<"number1 = "<<_____11_____<<endl;

26 cout<<"number2 = "<<_____12_____<<endl;

27 cout<<"average = "<<______13_____<<endl;

28 }

Page 117: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

108

2. ใหนกศกษาเขยนโปรแกรมรบคาเลขจ านวนจรงจ านวน 2 คา จากนนใหท าการหาคาเฉลยออกมา โดยมการใชงานตวแปรอางอง แสดงผลทางจอภาพ มการสรางฟงกชนในการรบคา input(); ฟงกชนในการค านวณคาเฉลย calAver(double&, double&); และฟงกชนแสดงผลทางจอภาพ output( ); พรอมทงแสดงผลลพธในการท างานของโปรแกรม ( 25 คะแนน)

1 //Lab6_2.cpp

2 #include<iostream>

3 using namespace std;

4 void input(double&, double&);

5 void calAver(double&,double&,double&);

6 void output(double&, double&, double&);

7 int main( ){

8 _______1__________

9 _______2__________

10 _______3__________

11 _______4__________

12 _______5__________

13 _______6__________

14 _______7__________

15 return 0;

16 }

17 void input(double& n1, double& n2){

18 _______8__________

19 _______9__________

20 }

21 void calAver(double& n1,double& n2,double& avg){

22 _______10_________

23 }

24 void output(double& n1, double& n2,double& a){

25 cout<<"number1 = "<<_______11________<<endl;

26 cout<<"number2 = "<<_______12_______<<endl;

27 cout<<"average = "<<________13________<<endl;

28 }

Page 118: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

109

เฉลยใบงำน บทท 6 เรอง คำคงท พอยนเตอรและกำรอำงอง

ค ำชแจง 1. ใบงานมทงหมด 2 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาเขยนโปรแกรมรบคาเลขจ านวนจรงจ านวน 2 คา จากนนใหท าการหาคาเฉลยออกมา โดยมการใชงานตวแปรพอยนเตอร แสดงผลทางจอภาพ มการสรางฟงกชนในการรบคา input(double*, double*); ฟงกชนในการค านวณคาเฉลย calAver(double*, double*, double*); และฟงกชนแสดงผลทางจอภาพ output(double*, double*, double* ); พรอมทงแสดงผลลพธในการท างานของโปรแกรม ( 25 คะแนน)

1 //Lab6_1.cpp

2 #include<iostream>

3 using namespace std;

4 void input(double*, double*);

5 void calAver(double*,double*,double*);

6 void output(double*, double*, double*);

7 int main( ){

8 double number1,number2, average ;

9 double* pnum1 = &number1;

10 double* pnum2 = &number2;

11 double* pavg = &average;

12 input(pnum1,pnum2);

13 calAver(pnum1,pnum2, pavg);

14 output(pnum1, pnum2, pavg);

15 return 0;

16 }

17 void input(double* n1, double* n2){

18 cout<<"Enter number1 space number2 : ";

19 cin>>*n1>>*n2;

20 }

21 void calAver(double* n1,double* n2,double* avg){

22 *avg = (*n1 + *n2)/2.00;

23 }

24 void output(double* n1, double* n2,double* a){

Page 119: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

110

25 cout<<"number1 = "<<*n1<<endl;

26 cout<<"number2 = "<<*n2<<endl;

27 cout<<"average = "<<*a<<endl;

28 }

ผลลพธกำรท ำงำน Enter number1 space number2 : 5 6

Number1 = 5

Number2 = 6

Average = 5.5

2. ใหนกศกษาเขยนโปรแกรมรบคาเลขจ านวนจรงจ านวน 2 คา จากนนใหท าการหาคาเฉลยออกมา โดยมการใชงานตวแปรอางอง แสดงผลทางจอภาพ มการสรางฟงกชนในการรบคา input(double&, double&); ฟงกชนในการค านวณคาเฉลย calAver(double&, double&, double&); และฟงกชนแสดงผลทางจอภาพ output(double& , double&, double& ); พรอมทงแสดงผลลพธในการท างานของโปรแกรม ( 25 คะแนน)

1 //Lab6_2.cpp

2 #include<iostream>

3 using namespace std;

4 void input(double&, double&);

5 void calAver(double&,double&,double&);

6 void output(double&, double&, double&);

7 int main( ){

8 double number1,number2,avg;

9 double& rnum1 = number1;

10 double& rnum2 = number2;

11 double& ravg = avg;

12 input(rnum1,rnum2);

13 calAver(rnum1,rnum2,ravg);

14 output(rnum1, rnum2, ravg);

15 return 0;

16 }

17 void input(double& n1, double& n2){

18 cout<<"Enter number1 space number2 : ";

19 cin>>n1>>n2;

20 }

Page 120: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

111

21 void calAver(double& n1,double& n2,double& avg){

22 avg = (n1 + n2)/2.00;

23 }

24 void output(double& n1, double& n2,double& a){

25 cout<<"number1 = "<<n1<<endl;

26 cout<<"number2 = "<<n2<<endl;

27 cout<<"average = "<<a<<endl;

28 }

ผลลพธกำรท ำงำน Enter number1 space number2 : 5 6

number1 = 5

number2 = 6

average = 5.5

Page 121: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

112

แบบทดสอบหลงเรยน บทท 6 เรอง คำคงท พอยนเตอรและกำรอำงอง

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. จากตวเลขตอไปนขอใดคอคาคงทเลขฐานแปด

ก. 05 ข. 0xA ค. 10 ง. 0x8

2. ขอใดมความหมายสอดคลองกบค าวาคาคงท ก. การก าหนดคาในสวนของโปรแกรมไมสามารถเปลยนแปลงคาไดขณะโปรแกรมท างาน ข. เปนการก าหนดคาในสวนของโปรแกรม สามารถเปลยนแปลงคาไดขณะโปรแกรมท างาน ค. เปนคาทก าหนดขนมาใชงานแตละครง ง. เปนคาทก าหนดขนมาใชงานแตละครง สามารถเปลยนแปลงไดขณะโปรแกรมก าลงท างาน

3. เอสเคปซเควนซในขอใด หมายถง การขนบรรทดใหม ก. \a ข. \b ค. \n ง. \l

4. ขอใดไมใชการประกาศคาคงทสญลกษณ ก. #define VAT 0.07 ข. const double PI = 3.141; ค. #define VAT = 0.07 ง. #define findMax(n1,n2) ( ( n1) > ( n2) ? (n1) : (n2) )

Page 122: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

113

5. ขอใดคอรปแบบการประกาศตวแปรพอยนเตอรคงท ทชไปยงต าแหนงทมคาสามารถเปลยนแปลงคาได แตตวพอยนเตอรเปลยนการชไปยงต าแหนงอนไมได ก. const int* pter; ข. int* const pter ค. const int* const pter ง. cont int pter*

6. ขอใดคอรปแบบการประกาศตวแปรพอยนเตอรชไปยงต าแหนงทเปนคาคงท ไมสามารถเปลยนแปลงคาได แตตวแปรพอยนเตอรสามารถเปลยนการชไปยงต าแหนงอนได ก. const int* pter; ข. int* const pter ค. const int* const pter ง. cont int pter*

7. ขอใดคอการประกาศตวแปรพอยนเตอรคงทชไปยงต าแหนงมคาคงทไมสามารถเปลยนแปลงคาได และไมสามารถเปลยนการชไปยงต าแหนงอนได ก. const int* pter; ข. int* const pter ค. const int* const pter ง. cont int pter*

จากโปรแกรมตอไปนตอบค าถามขอ 8 – 10

1 #include<iostream>

2 using namespace std;

3 int main( ){

4 int number1 = 10,number2 = 20,number3 = 30;

5 int& rnumber1 = number1;

6 int& rnumber2 = number2;

7 int& rnumber3 = number1;

8 number1 = 100;

9 cout<<rnumber1<<" "<<rnumber2<<" "<<rnumber3;

10 return 0;

11 }

Page 123: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

114

8. จากโปรแกรมดงกลาวเมอท างานจะไดผลลพธตรงกบขอใด ก. 10 20 10 ข. 10 20 100 ค. 100 20 30 ง. 100 20 100

9. จากโปรแกรมดงกลาวเมอ คอมเมนตบรรทดท 8 โปรแกรมท างานจะไดผลลพธตรงกบขอใด ก. 10 20 10 ข. 10 20 100 ค. 100 20 30 ง. 100 20 100

10. จากโปรแกรมดงกลาว บรรทดท 8 เปลยนค าสงเปน number1 = 20; เมอรนโปรแกรมจะไดผลลพธตรงกบขอใด ก. 10 20 30 ข. 10 20 20 ค. 20 20 30 ง. 20 20 20

Page 124: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

115

เฉลยแบบทดสอบหลงเรยน บทท 6 เรอง คำคงท พอยนเตอรและกำรอำงอง

ขอท เฉลย

1 ก 2 ก 3 ค 4 ค 5 ข 6 ก 7 ค 8 ง 9 ก

10 ง

Page 125: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

116

Page 126: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

117

บทท 7 เรอง ควำมรพนฐำนเกยวกบกำรเขยนโปรแกรมเชงวตถ

Page 127: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

118

แบบทดสอบกอนเรยน บทท 7 เรอง ควำมรพนฐำนเกยวกบกำรเขยนโปรแกรมเชงวตถ

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. จากแนวคดของ อลน เคย ผทมบทบาทตอการพฒนาโปรแกรมเชงวตถ ขอใดตอไปนมมใชแนวคดของ อลน เคย ก. ทกสงทกอยางในโปรแกรมลวนเปนวตถ ข. วตถจะท างานไดจะตองมการรองขอจากออกวตถอน ค. คลาสเปนทเกบพฤตกรรมตาง ๆ เกยวกบวตถ ง. คลาสแตละคลาสจะตองไมมความสมพนธกน

2. ขอใดคอองคประกอบของ วตถ ก. คณสมบต และ พฤตกรรม ข. คณสมบต และ ขอมล ค. ขอมล และ พฤตกรรม ง. พฤตกรรม และ เมธอด

3. วตถ รถยนต ขอใดตอไปน คอ คณสมบต ของวตถดงกลาว ก. เลยวซาย ข. ส ค. เลยวซาย เลยวขวา เรงเครอง ง. ตดเครองยนต

4. ขอใดคอองคประกอบการพฒนาวตถ ทเปนสวนของพฤตกรรม ก. การสบทอด ข. การหอหม ค. การท าหลายรปแบบ ง. คลาส

Page 128: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

119

5. จากนยามตอไปน “กลมของวตถทมคณสมบตและพฤตกรรมทเหมอนกน” สอดคลองกบขอใด ก. คลาส ข. วตถ ค. การสบทอด ง. การซอนเรนขอมล

6. ความสมพนธของคลาส ระหวาง นกศกษา ครทปรกษา และ โครงงาน เปนความสมพนธของคลาสลกษณะใด ก. ยนาร ข. ไบนาร ค. เทอนาร ง. ยนาร หรอ เทอนาร

7. ความสมพนธ ทม คณลกษณะของการสบทอด เชน ยานพาหนะ กบ รถยนต จะเปนความสมพนธสอดคลองกบขอใด ก. ความสมพนธแบบแอสโซชเอชน ข. ความสมพนธแบบโฮวลพารต ค. ความสมพนธแบบคอมโพสชน ง. ความสมพนธแบบแอกกรเกชน

8. ลกษณะการสงขอความเดยว ไปยงวตถตาง ๆ แลววตถมการตอบสนองแตกตางกนออกไป เราเรยกลกษณะนสอดคลองกบขอใด ก. การสบทอดคณสมบต ข. การท าหลายรปแบบ ค. การหอหม ง. โอเวอรโหลดดง

9. ขอใดคอองคประกอบของยเอมแอล ก. Things Relationship ข. Things Relationship Diagrams ค. Structure Meaning Diagrams ง. Relationship Diagrams

Page 129: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

120

10. ขอใดมใช ความสมพนธ ในภาษา ยเอมแอล ก. ดเพนเดนซ ข. แอสโซชเอชน ค. รไลเซชน ง. อนเทอรแอคชน

Page 130: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

121

เฉลยแบบทดสอบกอนเรยน บทท 7 เรอง ควำมรพนฐำนเกยวกบกำรเขยนโปรแกรมเชงวตถ

ขอท เฉลย

1 ง 2 ก 3 ข 4 ค 5 ก 6 ค 7 ก 8 ข 9 ข

10 ง

Page 131: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

122

ใบแบบฝกหด บทท 7 เรอง ควำมรพนฐำนเกยวกบกำรเขยนโปรแกรมเชงวตถ

ค ำชแจง 1. แบบฝกหดมทงหมด 5 ขอ ใหท าทกขอ 2. คะแนนรวมทงหมด 50 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกคณลกษณะของวธการเชงวตถ ตามแนวคดของ อลน เคย ( 10 คะแนน ) 2. ใหนกศกษาบอกความหมายของค าวา วตถ คลาสและเมธอด ( 10 คะแนน ) 3. ใหนกศกษาบอกความสมพนธระหวางคลาสโดยพจารณาตามคณลกษณะสามารถแบงออกไดกแบบ อะไรบาง ( 10 คะแนน ) 4. ใหนกศกษาบอกความหมายของการหอหม และการสงขอความ การมหลายรปแบบ การสบทอด คออะไร ( 10 คะแนน ) 5. ใหนกศกษาบอกโครงสรางของภาษายเอมแอล วามองคประกอบอะไรบาง พรอมอธบาย ( 10 คะแนน )

Page 132: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

123

ใบเฉลยแบบฝกหด บทท 7 เรอง ควำมรพนฐำนเกยวกบกำรเขยนโปรแกรมเชงวตถ

ค ำชแจง 1. แบบฝกหดมทงหมด 5 ขอ ใหท าทกขอ 2. คะแนนรวมทงหมด 50 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกคณลกษณะของวธการเชงวตถ ตามแนวคดของ อลน เคย ( 10 คะแนน ) ตอบ คณลกษณะของวธการเชงวตถ ตามแนวคดของ อลน เคย มดวยกน 6 ขอคอ

1. ทกสงทกอยางในโปรแกรมลวนเปนวตถ 2. วตถจะท างานไดจะตองมการรองขอจากวตถอนหรอเรยกวาเมสเสจพาสซง เพราะวา วตถ

จะไมสามารถท างานไดเองถาไมมการรองขอ 3. แตละวตถจะมหนวยความจ าของตวเอง เพอเกบขอมลของตวเอง และอาจจะมวตถยอย ๆ

ซอนอยภายในได 4. แตละวตถจะตองมการสรางมาจากคลาส เพราะคลาสเปนตนแบบของวตถ 5. คลาสเปนทเกบพฤตกรรมตาง ๆ เกยวกบวตถ ดงนนวตถทถกสรางมาจากคลาสเดยวกนจะม

พฤตกรรมทคลายกน 6. คลาสหลายคลาสอาจจะมความสมพนธกน

2. ใหนกศกษาบอกความหมายของค าวา วตถ คลาสและเมธอด ( 10 คะแนน ) ตอบ วตถ คอ สงใดกตามทเราคดเกยวกบสงนนซงมคณสมบต เพอบงบอกความเปนตวเองของวตถ และมพฤตกรรม เมอเรามองวตถเดยวกน แตมมมมองแตกตางกน โดยวตถจะเปนอะไรขนอยกบมมมองหรอคณลกษณะทมความเกยวของกบเรา และคณลกษณะและพฤตกรรมทเกยวของกบเราของแตละคนจะไมเหมอนกน ดงนนจงเรยก แนวคดของการก าหนดสาระส าคญ หรอแอบสแทรกชนของวตถ ดงนนวตถจะประกอบไปดวย 2 สวนคอ คณสมบตและพฤตกรรม

1. คณสมบตหรอแอตทรบวต หมายถง คณลกษณะของวตถแตละตวทสามารถก าหนดใหแตกตางกนตามความตองการ เชน วตถ รถยนต มคณลกษณะ น าหนก ส ความกวาง ความยาว ขนาดความจเครองยนต เปนตน

2. พฤตกรรมหรอเมธอด หมายถง ความสามารถในการท างานของวตถ เชน วตถรถยนต มพฤตกรรม เรงเครอง เบรก เลยวซาย เลยวขวา เปนตน

Page 133: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

124

คลาส คอกลมของวตถทมคณสมบตและพฤตกรรมทเหมอนกน เชนคลาสของเครองบนจะเปนกลมของวตถทมคณสมบตและพฤตกรรมแตกตางจากคลาสของรถยนต หรอคลาสของนกเรยนจะมคณสมบตและพฤตกรรมแตกตางจากคลาสของคร เปนตน ดงนนคลาสจงเปนการจ าแนกวตถตาง ๆ ออกจากกนได ในแนวคดเชงวตถนน แตละวตถคอ อนสแทนซของคลาส หรอในทางกลบกนกลาวไดวา คลาสนยามขนโดยมการพจารณาจากแอตทรบวตหรอคณสมบตของวตถในคลาส ซงแตละวตถเหลานนจงมคลาสรวมกน เมธอด คอ สงทวตถรวาท าไดอยางไร เปนกระบวนการทวตถรวาจะท างานไดอยางไร ดงนนเมธอดจะเปนการท าใหแนวคดเชงวตถมความสามารถมากขน เชน คลาสรถยนต รวา จะเรงเครอง เลยวขวา เลยวซาย ไดอยางไร คลาสนกศกษา จะรวา เพมขอมลนกศกษา ลบ ปรบปรง ไดอยางไร เปน

3. ใหนกศกษาบอกความสมพนธระหวางคลาสโดยพจารณาตามคณลกษณะสามารถแบงออกไดกแบบ อะไรบาง ( 10 คะแนน ) ตอบ

ความสมพนธระหวางคลาสพจารณาตามคณลกษณะ หากพจารณาความสมพนธระหวางคลาสตามคณลกษณะ สามารถแบงออกไดเปน 2 รป แบบคอ ความสมพนธในลกษณะการสบทอด และความสมพนธในลกษณะของการหอหม

3.1 ความสมพนธทมคณลกษณะของการสบทอด หรอเรยกวาความสมพนธแบบแอสโซซเอชน เปนความสมพนธแบบ “is a” ซงเปนความสมพนธในระดบคลาสโดยคลาสใด คลาสหนง เกดขนจากคลาสใด คลาสหนง เพยงคลาสเดยว เชน รถยนต เปน ยานพาหนะ พนกงานฝายขาย เปน บคลากร เปนตน

3.2 ความสมพนธทมคณลกษณะของการหอหม หรอเรยกวา ความสมพนธแบบ โฮวลพารต เปนความสมพนธแบบ “has a” เปนความสมพนธในระดบวตถ โดยวตถของคลาสหนงไปมความสมพนธกบอกวตถของอกคลาสหนง เชน วตถของครสมพนธกบวตถของแผนกวชา เปนตน โดยสามารถแบงออกเปน 2 รปแบบยอย คอ

3.2.1 แบบคอมโพสชน (Composition ) เปนความสมพนธของวตถลกจะมไมไดถาไมมวตถแม เชน วตถคอมพวเตอร สมพนธแบบคอมโพสชน กบวตถเมนบอรด เปนตน

3.2.2 แบบแอกกรเกชน (Aggregation) เปนความสมพนธทวตถหนงสมพนธกบอกวตถหนง โดยเมอวตถใด ถกลบไป อกวตถทเหลอกสามารถอยได เชน วตถนกศกษา กบ วตถรายวชาเรยน ถาวตถรายวชาถกลบไป วตถนกศกษา กยงสามารถอยได หรอวตถนกศกษาถกลบไป แตวตถรายวชายงคงอยตอไปได เปนตน

Page 134: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

125

4. ใหนกศกษาบอกความหมายของการหอหม และการสงขอความ การมหลายรปแบบ การสบทอด คออะไร ( 10 คะแนน ) ตอบ

การหอหม หมายถง การรวมเอาแอตทรบวตและเมธอดเขาไวดวยกนในวตถหนง ๆ เพอจ ากดการเขาถงขอมลภายในวตถจากวตถอนได การหอหมจงเปนเทคนคทใชส าหรบการออกแบบคลาสและวตถโดยมวตถประสงคเพอใหวตถหรอคลาสหนง ๆ มความเปนอสระจากวตถหรอคลาสอน ๆ การจดการสามารถด าเนนการโดยคลาสหรอวตถของตวเองเทานน คลาสอนหรอวตถอน ๆ ไมสามารถเขามาจดการได ซงจะเปนการปกปองไมใหขอมลไดรบความเสยหายได การหอหมจะอาศยแนวคดการซอนเรนขอมล จะเปนการปกปองขอมลภายในวตถ และไดมการสรางการตดตอสวนประสานไวใหวตถอน ไดมการตดตอสอสารได ดงนนการซอนเรนขอมลจงเปนการจ ากดการมองเหนขอมลภายในวตถและปองกนไมใหมการเปลยนแปลงแกไขสวนทตองการซอนเรน และสามารถด าเนนการไดเฉพาะสวนทอนญาตไวเทานน กำรสงขอควำม คอการสงขอความระหวางวตถ โดยจะเปนขนบททวตถหนงสงขอความ หรอรองขอไปยงวตถอน ๆ เพอเปนการสงงานใหเมธอดท างานตามความตองการการโปรแกรมเชงวตถนน จะเปนการใชการนยามขอความขนมาชดหนง ส าหรบใหวตถสงใหกนหรอเพอรองขอใหท างานอยางใดอยางหนง เชน วตถผดแลระบบสงขอความไปใหวตถปมค าสงเพอใหขอเรยกดชอ เปนตน ผใชงานสามารถมปฏสมพนธกบวตถ โดยการสงขอความใหกบวตถและวตถสงขอความใหกบผใช หรอวตถสงขอความใหกบวตถอน ๆ ได ดวยการใชหลกการหอหมจะเปนการชวยกนปกปองไมใหผใชท าการเปลยนแปลงขอมลภายในวตถได แตสามารถรองขอใหวตถเรยกใชงานเมธอดภายในวตถ และเมธอดภายในวตถนนไปเปลยนแปลงแกไขขอมลของวตถได ดงนนถาผใชงานตองการรองขอใหวตถท าสงใดกจะตองสงขอความไปยงวตถ รองขอใหวตถไปเรยกใชงานเมธอดตอไป

กำรมหลำยรปแบบหรอโพลมอรฟซม (polymorphism) คอมากกวาหนงรปแบบหรอหลายรปแบบนนเอง ซงกคอการทวตถสงขอความออกไปยงวตถตาง ๆ แตการตอบสนองแตละวตถจะมความแตกตางกน ส าหรบการเขยนโปรแกรมเชงวตถนน การมหลายรปแบบมหลกการท างานคอ การสงขอความเดยวกนไปยงวตถทแตกตางกนได โดยจะมกลไกของขอความในการเลอกใชเมธอดไดอยางถกตอง หรอในทางกลบกนวตถตางกนสามารถตอบสนองตอค าสงหรอขอความเดยวกนไดอยางเหมาะสม การใชหลกการนจะเปนการชวยลดความซ าซอนของระบบ และความยงยากในการเขยนโปรแกรมลงได กำรมหลำยรปแบบ คอจะเปนการใชความสามารถของการโปรแกรมภาษาเชงวตถในการผสวนทท างานจรงในเวลาทประมวลผลค าสง โดยเราเรยกการผกแบบนวา ไดนามคสไบดดง และส าหรบ

Page 135: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

126

การผกสวนประกอบทท างานจรงตงแตท าการคอมไพลโปรแกรม เรยกวา การผกแบบสแตตก ซงจะสงผลใหไมสามารถสรางเมธอดทท างานหลายรปแบบได

กำรสบทอด หมายถง การสบทอดแอตทรบวตและเมธอดของคลาสแมไปยงคลาสลก แตจะมขอมลแตกตางกน ส าหรบการสบทอดนน เมอมการสรางคลาสใหมขนมาจากคลาสเดม แอตทรบวตและเมธอดของคลาสเดมจะยงคงอยเหมอนเดม และในคลาสใหมยงสามารถเรยกใชงานไดเชนกน การสบทอดคณสมบต สามารถจ าแนกได 2 แบบ คอ

1. การสบทอดแบบเดยว หมายถง การทคลาสลกสามารถสบทอดคณสมบต แอตทรบวตและเมธอด จากคลาสแมเพยงคลาสเดยวเทานน

2. การสบทอดแบหลาย หมายถง การทคลาสหนงสามารถสบทอดคณสมบต แอตทรบวตและเมธอดไดมากกวาหนงคลาสได

การสบทอดคณสมบตจากคลาสแมไปยงคลาสลกนน หรอบางครงเราอาจจะเรยกคลาสแมวา ซปเปอรคลาส และเรยกคลาสลกวา ซบคลาส คลาสลกเมอสบทอดคณสมบตจากคลาสแมแลวคลาสลกจะมคณสมบต แอตทรบวต และเมธอด เหมอนกบคลาสแม และยงสามารถเพมแอตทรบวตและเมธอดในคลาสลกไดอก เพอใหตรงกบความตองการใชงาน

5. ใหนกศกษาบอกโครงสรางของภาษายเอมแอล วามองคประกอบอะไรบาง พรอมอธบาย ( 10 คะแนน ) ตอบ โครงสรางของภาษายเอมแอลจะม vocabulary ของภาษา และมองคประกอบ 3 สวนหลก คอ (1) Things (2) Relationship และ (3) Diagrams 1. Things เปนสงตาง ๆ ทน ามาสรางเปน ยเอมแอล โดย things เปนสวนทเลกสดของโมเดล ม relationships เปนสงทใชแสดงความสมพนธระหวาง things และถาหาก things ใด ๆ มคณสมบตทเหมอนกน กจะสามารถรวมอยในกลมเดยวกนได โดยการใช ไดอะแกรมมาท าการจดกลมออกมา ซง things สามารถจดแบงไดเปน 4 ประเภท คอ 1) Structural things เปนค านามของ ยเอมแอล 2) Behavioral things เปนกรยาของ ยเอมแอล 3) Grouping things เปนการจดกลมของภาษา ยเอมแอล 4) Annotation things เปนการเขยนค าอธบายของ ยเอมแอล 2. รปแบบความสมพนธในภาษา ยเอมแอล (Relationship) ภาษายเอมแอล จะมการมองความสมพนธออกเปน 3 ประเดน คอ การมองในแงของความหมาย(semantic relationship) มองในแงโครงสราง(structural relationship) และมองความสมพนธแบบพเศษ(generalization/specialization) ส าหรบความสมพนธในภาษา ยเอมแอล แบงออกได 4 ชนดคอ

Page 136: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

127

1. ด เพนเดนซ (Dependency) จะเปนความสมพนธในเชงความหมายโดยจะเปนความสมพนธระหวาง 2 things โดยเมอ things ใดเกดการเปลยนแปลงจะสงผลตออก things หนง สญลกษณของ dependency จะเปนการวาดรปลกศรทเปนเสนประและมขอความเขยนก ากบไว

2. แอสโซชเอชน (Association) จะเปนความสมพนธเชงโครงสรางส าหรบการอธบายการเชอมโยงระหวางวตถตาง ๆ แอสโซชเอชน จะมความสมพนธหนงทเรยกวา แอกกรเกชน (aggregation) ส าหรบการอธบายความสมพนธของวตถ ซงอาจจะเปนความสมพนธของวตถเพยงบางสวนหรอมความสมพนธตอวตถทงหมด สญลกษณจะเปนเสนตรง หรอ เสนตรงมหวลกศร

3. เจเนอรไลเซชน ( Generalization ) เปนความสมพนธแบบพเศษซงเปนการสบทอดคณสมบต จากอลเมนตแมไปยงอลเมนตลก โดยเราเรยกอลเมนตแมเปนอลเมนตทวไป (generalized element) และเรยกอลเมนตลกวาเปนอลเมนตพเศษ (specialized element) การเขยนสญลกษณจะเปนรปเครองหมายหวลกศรสามเหลยมโปรง โดยมหวลกศรชไปทางอลเมนตแม

4. รไลเชชน (Realization) เปนลกษณะความสมพนธในเชงความหมายระหวางอนเทอรเฟซ กบคลาส หรอ ระหวาง ยสเคส กบ โคลาโบเรชน (collaborations) ในการเขยนสญลกษณนน จะเปนเสนตรงประมหวลกศรโปรง 3.ไดอะแกรม โดยในภาษายเอมแอลจะมการแบงไดอะแกรมออกทงหมด 6 รปแบบ แตจะมบางรปแบบทมการแบงไดอะแกรมยอยลงไป คอ

1) Use case 2) Static structure ประกอบดวย 2.1 Class 2.2 Object 3) Interaction ประกอบดวย

3.1 Sequence 3.2 Communication 3.3 Interaction overview 3.4 Timing(optional)

4) State 5) Activity 6) Implementation 6.1 Component 6.2 Deployment

Page 137: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

128

ใบงำน บทท 7 เรอง ควำมรพนฐำนเกยวกบกำรเขยนโปรแกรมเชงวตถ

ค ำชแจง 1. ใบงานมทงหมด 2 ขอ ใหท าทกขอ 2. คะแนนรวมทงหมด 50 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาวเคราะหขอมลของวตถตอไปน ประกอบดวยคณสมบตและพฤตกรรมอะไรบาง ( 25 คะแนน )

1.1 ปากกา ( 5 คะแนน ) 1.2 ดนสอ ( 5 คะแนน ) 1.3 หนงสอ ( 5 คะแนน ) 1.4 รถยนต ( 5 คะแนน ) 1.5 ปลา ( 5 คะแนน )

2. ใหนกศกษาเขยนแผนภาพยเอมแอลของคลาสตอไปน ( 25 คะแนน ) 2.1 ยานพาหนะ ( 5 คะแนน ) 2.2 หนงสอ ( 5 คะแนน ) 2.3 คอมพวเตอร ( 5 คะแนน ) 2.4 ปลา ( 5 คะแนน ) 2.5 นก ( 5 คะแนน )

Page 138: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

129

เฉลยใบงำน บทท 7 เรอง ควำมรพนฐำนเกยวกบกำรเขยนโปรแกรมเชงวตถ

ค ำชแจง 1. ใบงานมทงหมด 2 ขอ ใหท าทกขอ 2. คะแนนรวมทงหมด 50 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาวเคราะหขอมลของวตถตอไปน ประกอบดวยคณสมบตและพฤตกรรมอะไรบาง ( 25 คะแนน ) วตถ คณสมบต พฤตกรรม ปากกาลกลนยหอ มา ยหอ, ส, น าหนก, ความสง เขยน ดนสอ 2B ขนาดไสดนสอ, น าหนก, ความสง เขยน ลบ หนงสอภาษาไทย ชอหนงสอ น าหนก ชอผแตง

จ านวนหนา เปด, ปด

รถยนตโตโยตา ส, น าหนก, ความกวาง, ความยาว, ขนาดเครองยนต

สตารทเครอง, เรงเครอง, เบรค, เลยวซาย, เลยวขวา

ปลาหมอ ชอ, น าหนก, กวาง, ยาว วายน า, กน, นอน

2. ใหนกศกษาเขยนแผนภาพยเอมแอลของคลาสตอไปน ( 25 คะแนน ) 2.1 ยานพาหนะ ( 5 คะแนน )

ยำนพำหนะ

-ส-ยหอ+เลยวขวา+เรงความเรว+เบรค

Page 139: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

130

2.2 หนงสอ ( 5 คะแนน )

หนงสอ

-น าหนก-ผแตง

+เปด+ปด+นบจ านวนหนา

-จ านวนหนา

2.3 คอมพวเตอร ( 5 คะแนน )

คอมพวเตอร

-ความเรว-ยหอ

+เปด+ปด+รสตารท

-น าหนก

2.4 ปลา ( 5 คะแนน )

ปลำ

-สายพนธ-กวาง

+วายน า+กน+นอน

-น าหนก-ยาว

Page 140: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

131

2.5 นก ( 5 คะแนน )

นก

-ชอ-น าหนก

+บน+กน+รอง

-ส

Page 141: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

132

แบบทดสอบหลงเรยน บทท 7 เรอง ควำมรพนฐำนเกยวกบกำรเขยนโปรแกรมเชงวตถ

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. จากแนวคดของ อลน เคย ผทมบทบาทตอการพฒนาโปรแกรมเชงวตถ ขอใดตอไปนมมใชแนวคดของ อลน เคย ก. ทกสงทกอยางในโปรแกรมลวนเปนวตถ ข. วตถจะท างานไดจะตองมการรองขอจากออกวตถอน ค. คลาสเปนทเกบพฤตกรรมตาง ๆ เกยวกบวตถ ง. คลาสแตละคลาสจะตองไมมความสมพนธกน

2. ขอใดคอองคประกอบของ วตถ ก. คณสมบต และ พฤตกรรม ข. คณสมบต และ ขอมล ค. ขอมล และ พฤตกรรม ง. พฤตกรรม และ เมธอด

3. วตถ รถยนต ขอใดตอไปน คอ คณสมบต ของวตถดงกลาว ก. เลยวซาย ข. ส ค. เลยวซาย เลยวขวา เรงเครอง ง. ตดเครองยนต

4. ขอใดคอองคประกอบการพฒนาวตถ ทเปนสวนของพฤตกรรม ก. การสบทอด ข. การหอหม ค. การท าหลายรปแบบ ง. คลาส

Page 142: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

133

5. จากนยามตอไปน “กลมของวตถทมคณสมบตและพฤตกรรมทเหมอนกน” สอดคลองกบขอใด ก. คลาส ข. วตถ ค. การสบทอด ง. การซอนเรนขอมล

6. ความสมพนธของคลาส ระหวาง นกศกษา ครทปรกษา และ โครงงาน เปนความสมพนธของคลาสลกษณะใด ก. ยนาร ข. ไบนาร ค. เทอนาร ง. ยนาร หรอ เทอนาร

7. ความสมพนธ ทม คณลกษณะของการสบทอด เชน ยานพาหนะ กบ รถยนต จะเปนความสมพนธสอดคลองกบขอใด ก. ความสมพนธแบบแอสโซชเอชน ข. ความสมพนธแบบโฮวลพารต ค. ความสมพนธแบบคอมโพสชน ง. ความสมพนธแบบแอกกรเกชน

8. ลกษณะการสงขอความเดยว ไปยงวตถตาง ๆ แลววตถมการตอบสนองแตกตางกนออกไป เราเรยกลกษณะนสอดคลองกบขอใด ก. การสบทอดคณสมบต ข. การท าหลายรปแบบ ค. การหอหม ง. โอเวอรโหลดดง

9. ขอใดคอองคประกอบของยเอมแอล ก. Things Relationship ข. Things Relationship Diagrams ค. Structure Meaning Diagrams ง. Relationship Diagrams

Page 143: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

134

10. ขอใดมใช ความสมพนธ ในภาษา ยเอมแอล ก. ดเพนเดนซ ข. แอสโซชเอชน ค. รไลเซชน ง. อนเทอรแอคชน

Page 144: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

135

เฉลยแบบทดสอบหลงเรยน บทท 7 เรอง ควำมรพนฐำนเกยวกบกำรเขยนโปรแกรมเชงวตถ

ขอท เฉลย

1 ง 2 ก 3 ข 4 ค 5 ก 6 ค 7 ก 8 ข 9 ข

10 ง

Page 145: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

136

Page 146: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

137

บทท 8 เรอง คลำสและวตถ

Page 147: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

138

แบบทดสอบกอนเรยน บทท 8 เรอง คลำสและวตถ

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใดคอความหมายของคลาส ทถกตองทสด

ก. กลมของวตถใด ๆ ข. เปนพมพเขยวของวตถ ค. การจดกลมของวตถใดทเหมอน ๆ กนโดยพจารณาจากคณสมบตและวธการ ง. สงทมองเหน จบตองได หรอสงทมองไมเหน แตมอยจรง

2. ระดบการเขาถงคลาสแบบใดทปกปองดาตาเมมเบอร โดยไมสามารถเขาถงจากภายนอก หรอคลาสลกไดโดยตรง ก. ไพรเวท (private) ข. โปรเทคเตด (protected) ค. พบลค (public) ง. ไพรเวท และ โปรเทคเตด (private and protected)

3. ขอใดคอการอมพลเมนตเตชนคลาส Circle ทถกตอง ก. void Circle : getRadius( ){ return 0; } ข. double circle :: getRadius(){ return 0.5 * r * r;} ค. void circle :: getRadius( ) { return 0.5 * r * r; } ง. double Circle :: getRadius( ){ return r; }

4. ขอใดคอการสรางวตถจาก Person ทถกตอง ก. P1 Person; ข. Person p1,p2; ค. Person p1 = 10; ง. P1,p2 Person;

Page 148: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

139

5. ขอใดกลาวถกตองเกยวกบการสรางเฮดเดอรไฟล ก. เปนการเขยนเพอระบรายละเอยดการท างานของโปรแกรม ข. เปนการเขยนเพอระบดาตาเมมเบอรและเมมเบอรฟงกชน ค. เปนการเขยนทระบ ดาตาเมมเบอร และ ชอเมมเบอรฟงกชน การรบพารามเตอร และชนด

ขอมลทสงกลบเมอท างานเสรจ ไมมการระบรายละเอยดการท างาน ง. เปนการเขยนเพอระบดาตาเมมเบอร และรายละเอยดการท างานของเมมเบอรฟงกชน

จากโปรแกรมดงกลาวตอไปนใหตอบค าถามขอ 6 - 8 1 //Point.h

2 class Point {

3 private : double x, double y;

4 public : 1 void setY(double);

5 double getX(); double getY();

6 };

1 //Point.cpp

2 ________2__________

3 void Point :: setX(double x1){ x = x1; }

4 void Point :: setY(_____3_____){ y = y1; }

5 double Point :: getX( ) { return x; }

6 double Point :: getY( ) { ______4______}

6. จากโปรแกรมดงกลาวขางตนบรรทดท 4 หมายเลข 1 ของไฟล Point.h เตมเมมเบอรฟงกชนใดท าใหโปรแกรมท างานถกตอง

ก. void setX(double); ข. void setx(double); ค. void setX( ); ง. void setx( );

7. จากโปรแกรมดงกลาวขางตนบรรทดท 2 หมายเลข 2 ของไฟล Point.cpp เตมค าสงใดท าใหโปรแกรมท างานถกตอง

ก. #include Point.h

ข. #include <Point.h>

ค. #include “Point.h”

ง. #include <“Point.h”>

Page 149: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

140

8. จากโปรแกรมดงกลาวขางตนบรรทดท 4 หมายเลข 3 ของไฟล Point.cpp เตมค าสงใดท าใหโปรแกรมท างานถกตอง

ก. int y; ข. double y; ค. double y1 ง. double y1;

9. จากโปรแกรมดงกลาวขางตนบรรทดท 6 หมายเลข 4 ของไฟล Point.cpp เตมค าสงใดท าใหโปรแกรมท างานถกตอง

ก. return y1; ข. return y; ค. Return Y; ง. return y

10. วตถคอมพวเตอรชอ c1 เมอวเคราะหและก าหนดเปนคลาสออกมา ขอใดตอไปนคอ ดาตาเมมเบอร ทควรจะมของวตถดงกลาว

ก. ก าหนดความกวางของจอภาพ

ข. เรยกดยหอของคอมพวเตอร

ค. ยหอ

ง. สถานทขาย

Page 150: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

141

เฉลยแบบทดสอบกอนเรยน บทท 8 เรอง คลำสและวตถ

ขอท เฉลย

1 ค 2 ก 3 ง 4 ข 5 ค 6 ก 7 ค 8 ค 9 ข

10 ค

Page 151: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

142

ใบแบบฝกหด บทท 8 เรอง คลำสและวตถ

ค ำชแจง 1. แบบฝกหดมทงหมด 4 ขอ ใหท าทกขอ 2. คะแนนรวมทงหมด 50 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกความหมายของวตถพรอมทงยกตวอยางวตถทนกศกษารจกมา 5 วตถ (10 คะแนน ) 2. ใหนกศกษาบอกความหมายของคลาส พรอมยกตวอยางประกอบ (10 คะแนน ) 3. บอกระดบการเขาถงคลาสมอะไรบาง (20 คะแนน ) 4. อธบายถงความจ าเปนในการสรางเฮดเดอรไฟลแยกจากการอมพลเมนตเตชนไฟล ในการใชงาน (10 คะแนน )

Page 152: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

143

ใบเฉลยแบบฝกหด บทท 8 เรอง คลำสและวตถ

ค ำชแจง 1. แบบฝกหดมทงหมด 4 ขอ ใหท าทกขอ 2. คะแนนรวมทงหมด 50 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกความหมายของวตถพรอมทงยกตวอยางวตถทนกศกษารจกมา 5 วตถ (10 คะแนน ) ตอบ วตถ หมายถง สงตาง ๆ ทอยในระบบโดยสามารถมองเหน จบตองได เชน รถยนต คน ตนไม คอมพวเตอร เปนตน หรอเปนสงท จบตองไมได แตมอยจรง เชน กฎขอบงคบ เปนตน การวเคราะหวตถน ามาสรางคลาส คอขนตอนการวเคราะหวตถโดยพจารณาหาคณสมบต และวธการ หลงจากนนน ามาเขยนเปนแผนภาพคลาสโดยภาษายเอมแอล แลวน าขอมลจากแผนภาพมาสรางเปนโปรแกรมภาษา C++ ตวอยางวตถ 1. แมวไทย 2. รถยนตโตโยตา 3. หนงสอภาษา c++ 4. คอมพวเตอรยหอเดล 5. นกศกษา 2. ใหนกศกษาบอกความหมายของคลาส พรอมยกตวอยางประกอบ (10 คะแนน ) ตอบ คลาส คอ สงทเปนนามธรรม ใชส าหรบการแบงกลมหรอประเภทของวตถ โดยกลมของวตถทมลกษณะเหมอนกน จะถกจดกลมเดยวกน โดยการสรางคลาสนนจะมการสรางคลาสตนตระกลเรยกวา Supperclass และคลาสลกหลานทมการสบทอดจากคลาสตนตระกลเรยกวา Subclass โดยคลาสลกจะมการสบทอดคณสมบตของคลาสตนตระกลมาดวย ระดบการเขาถง หมายถง การเขยนโปรแกรมเชงวตถจะมการปกปองขอมลเอาไวภายในคลาส การเขาถงขอมลภายในคลาสนนจะตองเขาทางทระบไวเทานน 3. บอกระดบการเขาถงคลาสมอะไรบาง (20 คะแนน ) ตอบ ระดบการเขาถงคลาสแบงออกเปน 3 ระดบ ระดบ คอ private , protected และ public

1. private จะมการอนญาตใหเขาถงเฉพาะภายในคลาสเทานน 2. protected จะมการอนญาตใหเขาถงเฉพาะภายในคลาส และคลาสลกเทานน 3. public จะมการอนญาตใหเขาถงภายในคลาส คลาสลก และ คลาสภายนอก

Page 153: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

144

4. อธบายถงความจ าเปนในการสรางเฮดเดอรไฟลแยกจากการอมพลเมนตเตชนไฟล ในการใชงาน (10 คะแนน ) ตอบ 1. ตองการทจะแยกรายละเอยดการท างานของโปรแกรมออก เพอการปรบปรงโปรแกรมในอนาคตมความสะดวก 2. สามารถปกปดรายละเอยดการท างานของโปรแกรมไมใหบคคลอนทราบการท างานได 3. มความยดหยนในการใชงานสง

Page 154: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

145

ใบงำน บทท 8 เรอง คลำสและวตถ

ค ำชแจง 1. มทงหมด 1 ขอ 2. คะแนนรวมทงหมด 100 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาวเคราะหวตถ สเหลยมลกบาศกเมตร แลวตอบค าถามตอไปน 1.1 วตถสเหลยมลกบาศกเมตร ประกอบดวยคณสมบต(ดาตาเมมเบอร) และวธการ ( เมมเบอรฟงกชน ) มอะไรบาง (20 คะแนน ) 1.2 เขยนแผนภาพคลาส ของสเหลยมลกบาศกเมตรดวยภาษายเอมแอลโดยตงชอคลาส Cubic (20 คะแนน ) 1.3 สรางโปรเจคในการท างานชอ Cubics และทกไฟลอยภายในโปรเจคดงกลาว 1.4 เขยนคลาสออกมาโดยแยกเปนเฮดเดอรไฟลชอ Cubic.h (20 คะแนน ) 1.5 เขยนการอมพลเมนตเตชนคลาสออกมาชอไฟล Cubic.cpp (20 คะแนน ) 1.6 เขยนโปรแกรมทดสอบการท างานชอไฟล TestCubic.cpp (20 คะแนน )

Page 155: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

146

เฉลยใบงำน บทท 8 เรอง คลำสและวตถ

1. ใหนกศกษาวเคราะหวตถ สเหลยมลกบาศกเมตร แลวตอบค าถามตอไปน 1.1 วตถสเหลยมลกบาศกเมตร ประกอบดวยคณสมบต(ดาตาเมมเบอร) และวธการ ( เมมเบอรฟงกชน ) มอะไรบาง (20 คะแนน ) วตถ คณสมบต วธกำร สเหลยมลกบาศกเมตร Cubic

กวาง ( width) ยาว ( lenght ) สง ( height )

ก าหนดความกวาง ( setWidth( ) ) ก าหนดความยาว ( setLenght( ) ) ก าหนดความสง ( setHeight ( ) ) เรยกดความกวาง ( getWidth ( ) ) เรยกดความยาว ( getLenght ( ) ) เรยกดความสง ( getHeight ( ) ) ค านวณปรมาตร ( getVolumn ( ) )

1.2 เขยนแผนภาพคลาส ของสเหลยมลกบาศกเมตรดวยภาษายเอมแอลโดยตงชอคลาส Cubic (20 คะแนน )

Cubic

-width : double

-length : double

+calVolumn( ) : double

+Cube( )

+setLength(double)

-height : double

+setHeight(double)

+getHeight( ) : double

+getWidth( ) : double

+getLength( ) : double

+setWidth(double)

1.3 สรางโปรเจคในการท างานชอ Cubics และทกไฟลอยภายในโปรเจคดงกลาว 1. เปดโปรแกรม Code::Blocks 2. เลอกเมน File > New > Project 3. เลอกรายการ ConsoleApplication > Go > next > C++ > next > Finish

Page 156: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

147

1.4 เขยนคลาสออกมาโดยแยกเปนเฮดเดอรไฟลชอ Cubic.h (20 คะแนน ) 1 #ifndef CUBIC_H_INCLUDED

2 #define CUBIC_H_INCLUDED

3 class Cubic{

4 private:

5 double width;

6 double lenght;

7 double height;

8 public:

9 Cubic(double,double,double);

10 void setWidth(double);

11 void setHeight(double);

12 void setLenght(double);

13 double getWidth();

14 double getHeight();

15 double getLenght();

16 double calVolumn();

17 };

18 #endif // CUBIC_H_INCLUDED

1.5 เขยนการอมพลเมนตเตชนคลาสออกมาชอไฟล Cubic.cpp (20 คะแนน )

1 #include"Cubic.h"

2 Cubic::Cubic(double w ,double l ,double h){

3 this->width = w; this->lenght=l; this->height = h;

4 }

5 void Cubic::setWidth(double w){this->width = w;}

6 void Cubic::setHeight(double h){this->height = h;}

7 void Cubic::setLenght(double l){ this->lenght = l;}

8 double Cubic::getWidth(){return this->width;}

9 double Cubic::getHeight(){return this->lenght;}

10 double Cubic::getLenght(){return this->height;}

11 double Cubic::calVolumn(){

12 return (this->getWidth() * this->getHeight() * this->getLenght());

13 }

Page 157: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

148

1.6 เขยนโปรแกรมทดสอบการท างานชอไฟล TestCubic.cpp (20 คะแนน ) 1 #include <iostream>

2 #include"Cubic.h"

3 using namespace std;

4 int main( )

5 {

6 Cubic c1(2,3,4);

7 cout<<"Volumn : "<<c1.calVolumn();

8 return 0;

9 }

Page 158: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

149

แบบทดสอบหลงเรยน บทท 8 คลำสและวตถ

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใดคอความหมายของคลาส ทถกตองทสด

ก. กลมของวตถใด ๆ ข. เปนพมพเขยวของวตถ ค. การจดกลมของวตถใดทเหมอน ๆ กนโดยพจารณาจากคณสมบตและวธการ ง. สงทมองเหน จบตองได หรอสงทมองไมเหน แตมอยจรง

2. ระดบการเขาถงคลาสแบบใดทปกปองดาตาเมมเบอร โดยไมสามารถเขาถงจากภายนอก หรอคลาสลกไดโดยตรง ก. ไพรเวท (private) ข. โปรเทคเตด (protected) ค. พบลค (public) ง. ไพรเวท และ โปรเทคเตด (private and protected)

3. ขอใดคอการอมพลเมนตเตชนคลาส Circle ทถกตอง ก. void Circle : getRadius( ){ return 0; } ข. double circle :: getRadius(){ return 0.5 * r * r;} ค. void circle :: getRadius( ) { return 0.5 * r * r; } ง. double Circle :: getRadius( ){ return r; }

4. ขอใดคอการสรางวตถจาก Person ทถกตอง ก. P1 Person; ข. Person p1,p2; ค. Person p1 = 10; ง. P1,p2 Person;

Page 159: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

150

5. ขอใดกลาวถกตองเกยวกบการสรางเฮดเดอรไฟล ก. เปนการเขยนเพอระบรายละเอยดการท างานของโปรแกรม ข. เปนการเขยนเพอระบดาตาเมมเบอรและเมมเบอรฟงกชน ค. เปนการเขยนทระบ ดาตาเมมเบอร และ ชอเมมเบอรฟงกชน การรบพารามเตอร และชนด

ขอมลทสงกลบเมอท างานเสรจ ไมมการระบรายละเอยดการท างาน ง. เปนการเขยนเพอระบดาตาเมมเบอร และรายละเอยดการท างานของเมมเบอรฟงกชน

จากโปรแกรมดงกลาวตอไปนใหตอบค าถามขอ 6 - 8 1 //Point.h

2 class Point {

3 private : double x, double y;

4 public : 1 void setY(double);

5 double getX(); double getY();

6 };

1 //Point.cpp

2 ________2__________

3 void Point :: setX(double x1){ x = x1; }

4 void Point :: setY(_____3_____){ y = y1; }

5 double Point :: getX( ) { return x; }

6 double Point :: getY( ) { ______4______}

6. จากโปรแกรมดงกลาวขางตนบรรทดท 4 หมายเลข 1 ของไฟล Point.h เตมเมมเบอรฟงกชนใดท าใหโปรแกรมท างานถกตอง

ก. void setX(double); ข. void setx(double); ค. void setX( ); ง. void setx( );

7. จากโปรแกรมดงกลาวขางตนบรรทดท 2 หมายเลข 2 ของไฟล Point.cpp เตมค าสงใดท าใหโปรแกรมท างานถกตอง

ก. #include Point.h

ข. #include <Point.h>

ค. #include “Point.h”

ง. #include <“Point.h”>

Page 160: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

151

8. จากโปรแกรมดงกลาวขางตนบรรทดท 4 หมายเลข 3 ของไฟล Point.cpp เตมค าสงใดท าใหโปรแกรมท างานถกตอง

ก. int y; ข. double y; ค. double y1 ง. double y1;

9. จากโปรแกรมดงกลาวขางตนบรรทดท 6 หมายเลข 4 ของไฟล Point.cpp เตมค าสงใดท าใหโปรแกรมท างานถกตอง

ก. return y1; ข. return y; ค. Return Y; ง. return y

10. วตถคอมพวเตอรชอ c1 เมอวเคราะหและก าหนดเปนคลาสออกมา ขอใดตอไปนคอ ดาตาเมมเบอร ทควรจะมของวตถดงกลาว

ก. ก าหนดความกวางของจอภาพ

ข. เรยกดยหอของคอมพวเตอร

ค. ยหอ

ง. สถานทขาย

Page 161: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

152

เฉลยแบบทดสอบหลงเรยน บทท 8 เรอง คลำสและวตถ

ขอท เฉลย

1 ค 2 ก 3 ง 4 ข 5 ค 6 ก 7 ค 8 ค 9 ข

10 ค

Page 162: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

153

บทท 9 เรอง โอเวอรโหลดดง

Page 163: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

154

ใบแบบทดสอบกอนเรยน บทท 9 เรอง โอเวอรโหลดดง

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. มการก าหนดชอเหมอนกบคลาส สามารถมไดหลายตว แตตองมพารามเตอร แตกตางกน และมการก าหนดคาเรมตนใหกบวตถ จากค ากลาวนมความหมายสอดคลองกบขอใด ก. โอเวอรโหลดดงโอเปอเรเตอร ข. โอเวอรโหลดดงคลาส ค. โอเวอรโหลดดงคอนสตรคเตอร ง. โอเวอรโหลดดงดสตรคเตอร

2. มไวส าหรบการท าลายว ตถทสนสดการท างานแลว เพอคนพนทหนวยความจ าใหกบระบบปฏบตการ จากค ากลาวนสอดคลองกบขอใด ก. โอเวอรโหลดดงโอเปอเรเตอร ข. โอเวอรโหลดดงคลาส ค. โอเวอรโหลดดงคอนสตรคเตอร ง. โอเวอรโหลดดงดสตรคเตอร

3. มการก าหนดส าหรบการท างานรวมกบวตถโดยตรง เชน วตถ c1 สามารถมการก าหนดใหท างานเปน c1=2 ได จากการท างานดงกลาวตรงกบขอใด ก. โอเวอรโหลดดงโอเปอเรเตอร ข. โอเวอรโหลดดงคลาส ค. โอเวอรโหลดดงคอนสตรคเตอร ง. โอเวอรโหลดดงดสตรคเตอร

4. มการก าหนดใหคลาสชอวา Person และจากคลาสดงกลาวมการสรางโอเวอรโหลดดงคอนสตรคเตอรขอใดถกตองมากทสด ก. person( ) ข. ~Person(double); ค. Person(int,double); ง. ~Person( )

Page 164: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

155

5. มการก าหนดใหคลาสชอวา Person และจากคลาสดงกลาวมการสรางโอเวอรโหลดดงดสตรคเตอรขอใดถกตองมากทสด ก. Person( ) ข. ~Person(double); ค. Person(int,double); ง. ~Person( )

จากโปรแกรมดงกลาวตอบค าถามขอ 6 - 10 1 //Cal.h

2 class Cal{

3 private:

4 int number1;

5 public:

6 Cal();

7 Cal(int);

8 ~Cal();

9 void operator=(int);

10 void operator+(int);

11 void operator*=(int);

12 int operator++(int);

13 };

14 Cal::Cal(){ number1=10;}

15 Cal::Cal(int n1){ number1 = n1;}

16 Cal::~Cal(){ }

17 void Cal::setNumber1(int n){number1 = n}

18 int Cal::getNumber1(){return number1;}

19 void Cal::operator=(int n){number1 = n;}

20 void Cal::operator*=(int n){ number1*=n;}

21 void Cal::operator+(int n){ number1 = number1 + n;}

22 int Cal::operator ++(int ){ return number1++;}

Page 165: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

156

1 //TestCal.cpp

2 #include “Cal.h”

3 int main( ) {

4 Cal c1

5 Cal c2(20);

6 c1=50;

7 c1+10;

8 c2++;

9 return 0;

10 }

6. เมอโปรแกรมท างาน บรรทดท 4 ของไฟล TestCal.cpp ดาตาเมมเบอร number1 จะมคาตรงกบขอใด ก. 0 ข. 10 ค. 20 ง. 50

7. เมอโปรแกรมท างาน บรรทดท 5 ของไฟล TestCal.cpp ดาตาเมมเบอร number1 จะมคาตรงกบขอใด ก. 0 ข. 10 ค. 20 ง. 50

8. เมอโปรแกรมท างาน บรรทดท 6 ของไฟล TestCal.cpp ดาตาเมมเบอร number1 จะมคาตรงกบขอใด ก. 10 ข. 20 ค. 50 ง. 60

Page 166: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

157

9. เมอโปรแกรมท างาน บรรทดท 7 ของไฟล TestCal.cpp ดาตาเมมเบอร number1 จะมคาตรงกบขอใด ก. 10 ข. 20 ค. 50 ง. 60

10. เมอโปรแกรมท างาน บรรทดท 8 ของไฟล TestCal.cpp ดาตาเมมเบอร number1 จะมคาตรงกบขอใด ก. 11 ข. 20 ค. 21 ง. 61

Page 167: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

158

เฉลยแบบทดสอบกอนเรยน บทท 9 เรอง โอเวอรโหลดดง

ขอท เฉลย

1 ค 2 ง 3 ก 4 ค 5 ง 6 ข 7 ค 8 ค 9 ง

10 ค

Page 168: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

159

ใบแบบฝกหด บทท 9 เรอง โอเวอรโหลดดง

ค ำชแจง 1. แบบฝกหดมทงหมด 4 ขอใหท าทกขอ 2. คะแนนรวมทงหมด 100 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกความหมายของโอเวอรโหลดดงคอนสตรคเตอร ( 25 คะแนน ) 2. ใหนกศกษาบอกความหมายของโอเวอรโหลดดงดสตรคเตอร ( 25 คะแนน ) 3. ใหนกศกษาบอกความหมายของโอเวอรโหลดดงโอเปอเรเตอร ( 25 คะแนน ) 4. ใหนกศกษาบอกโอเปอเรเตอรทสามารถท าการโอเวอรโหลดดงได ( 25 คะแนน )

Page 169: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

160

ใบเฉลยแบบฝกหด บทท 9 เรอง โอเวอรโหลดดง

ค ำชแจง 1. แบบฝกหดมทงหมด 4 ขอใหท าทกขอ 2. คะแนนรวมทงหมด 100 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกความหมายของโอเวอรโหลดดงคอนสตรคเตอร ( 25 คะแนน ) ตอบ โอเวอรโหลดดงคอนสตรคเตอร คอ การก าหนดคาเรมตนใหกบวตถซงคอนสตรคเตอรจะมชอเหมอนกบคลาส ไมมการสงคากลบเมอท างานเสรจ ไมก าหนดคยเวรด void ไวดานหนา สามารถก าหนดไดหลายตวแตจะตองมพารามเตอรไมเหมอนกน เมอมการสรางวตถจะตองเลอกคอนสตรคเตอรทตองการใชงานใหตรงกน ตวใดตวหนง และถาไมมการก าหนดคอนสตรคเตอรจะมการใชดฟอลตคอนสตรคเตอรในการท างานซงกลไกของภาษา C++ จะก าหนดใหอตโนมต ซงเปนคอนสตรคเตอรทไมมการรบพารามเตอร และเมอการสรางวตถกไมตองระบพารามเตอร 2. ใหนกศกษาบอกความหมายของโอเวอรโหลดดงดสตรคเตอร ( 25 คะแนน ) ตอบ โอเวอรโหลดดงดสตรคเตอร คอ จะมการท างานตรงกนขามกบคอนสตรคเตอรคอจะท าลายวตถทไมมการใชงานแลว เพอคนพนทหนวยความจ าใหกบระบบปฏบตการตอไป จะมการท างานอตโนมต การเขยนจะขนตนดวยสญลกษณไตล (~) น าหนาแลวตามดวยชอคลาส 3. ใหนกศกษาบอกความหมายของโอเวอรโหลดดงโอเปอเรเตอร ( 25 คะแนน ) ตอบ โอเวอรโหลดดงโอเปอเรเตอร คอ การน าโอเปอรเรเตอรตาง ๆ มาท างานรวมกบวตถ โดยท าการโอเวอรโหลดดง ซงโดยปกตแลวจะไมสามารถน าโอเปอรเรเตอรมากระท ากบวตถไดโดยตรง เชน วตถ x ตองการก าหนดคาใหกบ 2 ไมสามารถกระท าได (x = 2) แตถาท าการโอเวอรโหลดโอเปอรเรเตอร = แลว สามารถกระท าได รปแบบการโอเวอรโหลดโอเปอรเรเตอรคอ ชนดขอมลทสงกลบเมอท างานเสรจ operator ชอโอเปอรเรเตอร (พารามเตอรลสต) void operator = (int n) 4. ใหนกศกษาบอกโอเปอเรเตอรทสามารถท าการโอเวอรโหลดดงได ( 25 คะแนน ) ตอบ โอเปอเรเตอรในภาษาC++ ทสามารถท าการโอเวอรโหลดดงไดมดงตอไปน

Page 170: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

161

+ - * / % ^ &

| ~ ! = < > +=

-= *= /= %= ^= &= |=

<< >> >>= <<= == != <=

>= && || ++ -- ->* ,

-> [] ( ) new delete new[] delete[]

Page 171: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

162

ใบงำน บทท 9 เรอง โอเวอรโหลดดง

ค ำชแจง 1. ใบงานมทงหมด 2 ขอใหท าทกขอ 2. คะแนนรวมทงหมด 100 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาค านวณหาพนทสเหลยมลกบาศกเมตร โดยมการวเคราะหวตถดงกลาวแลวเขยนแผนภาพยเอมแอล พรอมทงเขยนโปรแกรมภาษา C++ โดยมการสรางโอเวอรโหลดดงคอนสตรคเตอรจ านวน 2 ตวและโอเวอรโหลดดงดสตรคเตอร พรอมทงแสดงการท างานของโปรแกรมดงกลาว ( 50 คะแนน ) 2. ใหนกศกษาเขยนโปรแกรมบวกเลข สามารถท าการบวกเลขจ านวนเตม จ านวนจรง และขอความ โดยถาบวกขอความจะเปนการน าขอความมาตอกน และน ามาแสดงผลทางจอภาพ ( 50 คะแนน )

Page 172: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

163

เฉลยใบงำน บทท 9 เรอง โอเวอรโหลดดง

ค ำชแจง 1. ใบงานมทงหมด 2 ขอใหท าทกขอ 2. คะแนนรวมทงหมด 100 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาค านวณหาพนทสเหลยมลกบาศกเมตร โดยมการวเคราะหวตถดงกลาวแลวเขยนแผนภาพยเอมแอล พรอมทงเขยนโปรแกรมภาษา C++ โดยมการสรางโอเวอรโหลดดงคอนสตรคเตอรจ านวน 2 ตวและโอเวอรโหลดดงดสตรคเตอร พรอมทงแสดงการท างานของโปรแกรมดงกลาว ( 50 คะแนน ) 1.วเคราะหวตถสเหลยมลกบาศกเมตร

2. ผลการวเคราะหวตถมาก าหนดเปนคลาส ชอคลำส สเหลยมลกบำศกเมตร Cube Data member ความกวาง

ความยาว ความสง

double widht double length double height

Function member ก าหนดความกวาง ก าหนดความยาว ก าหนดความสง เรยกดความกวาง เรยกดความยาว เรยกดความสง ค านวณหาพนท

void setWidht(double); vod setLength(double); void setHeight(double); double getWidht(); double getLength(); double getHeight(); double calArea(double,double,double );

Page 173: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

164

3. แผนภาพยเอมแอลคลาส

Cube

-width : double

+setWidth(double) : void

-height : double

+Cube(double,double,double)

+Cube()

+calArea(double,double,double) : double

-length : double

+setLegth(double) : void

+getLength( ) : double

+setHeight(double) : void

+getWidth( ) : double

+getHeight( ) : double

+~Cube() 4. สรางเฮดเดอรไฟล Cube.h

1 //Cube.h

2 #ifndef CUBE_H_INCLUDED

3 #define CUBE_H_INCLUDED

4 class Cube{

5 private:

6 double widht;

7 double length;

8 double height;

9 public:

10 Cube();

11 Cube(double,double,double);

12 void setWidht(double);

13 void setLength(double);

14 void setHeight(double);

15 double getWidht();

16 double getLength();

17 double getHeight();

18 double calArea(double,double,double);

19 ~Cube();

20 };

21 #endif // CUBE_H_INCLUDED

Page 174: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

165

4. ท าการอมพลเมนตเตชนไฟล Cube.h 1 //Cube.cpp

2 #include"Cube.h"

3 #include<iostream>

4 using namespace std;

5 Cube::Cube(){widht=0.00;length=0.00;height=0.00; cout<<"

Create Object\n";}

6 Cube::Cube(double w,double l,double h){widht = w, length = l, height = h;

cout<<"Create Object\n";}

7 void Cube::setWidht(double w){ widht = w;}

8 void Cube::setLength(double l){ length = l;}

9 void Cube::setHeight(double h){ height = h;}

10 double Cube::getWidht(){return widht;}

11 double Cube::getLength(){return length;}

12 double Cube::getHeight(){return height;}

13 Cube::~Cube(){cout<<"Destroy Object";}

14 double Cube::calArea(double w,double l,double h){return w * l * h;}

5. ท าการทดสอบการท างาน TestCube.cpp

1 //TestCube.cpp

2 #include <iostream>

3 #include"Cube.h"

4 using namespace std;

5 int main( ){

6 Cube c(4.00,5.00,6.00);

7 cout<<"Cube area = ";

8 cout<<c.calArea(c.getWidht(),c.getLength(),c.getHeight())<<endl;

9 return 0;

10 }

6. ผลลพธการท างานของโปรแกรม

Create Object

Cube area = 120

Destroy Object

Page 175: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

166

2. ใหนกศกษาเขยนโปรแกรมบวกเลข สามารถท าการบวกเลขจ านวนเตม จ านวนจรง และขอความ โดยถาบวกขอความจะเปนการน าขอความมาตอกน และน ามาแสดงผลทางจอภาพ ( 50 คะแนน )

1 #include<iostream>

2 using namespace std;

3 class Opp{

4 private:

5 double number1 = 10.00;

6 int number2 = 10;

7 string str = "ABC";

8 public:

9 double operator+ (double n1){ return number1+=n1; }

10 int operator+ (int n1){ return number2+= n1; }

11 string operator+ (string s){ return str+=s; }

12 };

13 int main( ){

14 Opp p1;

15 cout<<"p1 + 10.59 = "<<p1+10.59<<endl;

16 cout<<"p1 + 10 = "<<p1+10<<endl;

17 cout<<"p1 + 'XYZ' = "<<p1+"XYZ"<<endl;

18 return 0;

19 }

ผลลพธกำรท ำงำนของโปรแกรม

p1 + 10.59 = 20.59

p1 + 10 = 20

p1 + XYZ = ABCXYZ

Page 176: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

167

ใบแบบทดสอบหลงเรยน บทท 9 เรอง โอเวอรโหลดดง

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. มการก าหนดชอเหมอนกบคลาส สามารถมไดหลายตว แตตองมพารามเตอร แตกตางกน และมการก าหนดคาเรมตนใหกบวตถ จากค ากลาวนมความหมายสอดคลองกบขอใด ก. โอเวอรโหลดดงโอเปอเรเตอร ข. โอเวอรโหลดดงคลาส ค. โอเวอรโหลดดงคอนสตรคเตอร ง. โอเวอรโหลดดงดสตรคเตอร

2. มไวส าหรบการท าลายว ตถทสนสดการท างานแลว เพอคนพนทหนวยความจ าใหกบระบบปฏบตการ จากค ากลาวนสอดคลองกบขอใด ก. โอเวอรโหลดดงโอเปอเรเตอร ข. โอเวอรโหลดดงคลาส ค. โอเวอรโหลดดงคอนสตรคเตอร ง. โอเวอรโหลดดงดสตรคเตอร

3. มการก าหนดส าหรบการท างานรวมกบวตถโดยตรง เชน วตถ c1 สามารถมการก าหนดใหท างานเปน c1=2 ได จากการท างานดงกลาวตรงกบขอใด ก. โอเวอรโหลดดงโอเปอเรเตอร ข. โอเวอรโหลดดงคลาส ค. โอเวอรโหลดดงคอนสตรคเตอร ง. โอเวอรโหลดดงดสตรคเตอร

4. มการก าหนดใหคลาสชอวา Person และจากคลาสดงกลาวมการสรางโอเวอรโหลดดงคอนสตรคเตอรขอใดถกตองมากทสด ก. person( ) ข. ~Person(double); ค. Person(int,double); ง. ~Person( )

Page 177: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

168

5. มการก าหนดใหคลาสชอวา Person และจากคลาสดงกลาวมการสรางโอเวอรโหลดดงดสตรคเตอรขอใดถกตองมากทสด ก. Person( ) ข. ~Person(double); ค. Person(int,double); ง. ~Person( )

จากโปรแกรมดงกลาวตอบค าถามขอ 6 - 10 1 //Cal.h

2 class Cal{

3 private:

4 int number1;

5 public:

6 Cal();

7 Cal(int);

8 ~Cal();

9 void operator=(int);

10 void operator+(int);

11 void operator*=(int);

12 int operator++(int);

13 };

14 Cal::Cal(){ number1=10;}

15 Cal::Cal(int n1){ number1 = n1;}

16 Cal::~Cal(){ }

17 void Cal::setNumber1(int n){number1 = n}

18 int Cal::getNumber1(){return number1;}

19 void Cal::operator=(int n){number1 = n;}

20 void Cal::operator*=(int n){ number1*=n;}

21 void Cal::operator+(int n){ number1 = number1 + n;}

22 int Cal::operator ++(int ){ return number1++;}

Page 178: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

169

1 //TestCal.cpp

2 #include “Cal.h”

3 int main( ) {

4 Cal c1

5 Cal c2(20);

6 c1=50;

7 c1+10;

8 c2++;

9 return 0;

10 }

6. เมอโปรแกรมท างาน บรรทดท 4 ของไฟล TestCal.cpp ดาตาเมมเบอร number1 จะมคาตรงกบขอใด ก. 0 ข. 10 ค. 20 ง. 50

7. เมอโปรแกรมท างาน บรรทดท 5 ของไฟล TestCal.cpp ดาตาเมมเบอร number1 จะมคาตรงกบขอใด ก. 0 ข. 10 ค. 20 ง. 50

8. เมอโปรแกรมท างาน บรรทดท 6 ของไฟล TestCal.cpp ดาตาเมมเบอร number1 จะมคาตรงกบขอใด ก. 10 ข. 20 ค. 50 ง. 60

Page 179: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

170

9. เมอโปรแกรมท างาน บรรทดท 7 ของไฟล TestCal.cpp ดาตาเมมเบอร number1 จะมคาตรงกบขอใด ก. 10 ข. 20 ค. 50 ง. 60

10. เมอโปรแกรมท างาน บรรทดท 8 ของไฟล TestCal.cpp ดาตาเมมเบอร number1 จะมคาตรงกบขอใด ก. 11 ข. 20 ค. 21 ง. 61

Page 180: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

171

เฉลยแบบทดสอบหลงเรยน บทท 9 เรอง โอเวอรโหลดดง

ขอท เฉลย

1 ค 2 ง 3 ก 4 ค 5 ง 6 ข 7 ค 8 ค 9 ง

10 ค

Page 181: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

172

Page 182: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

173

บทท 10 เรอง กำรสบทอดคณสมบต

Page 183: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

174

แบบทดสอบกอนเรยน บทท 10 เรอง กำรสบทอดคณสมบต

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใดกลาวถงการสบทอดคณสมบตไดถกตองทสด

ก. เปนการสบทอดคณสมบตจากคลาสแมไปยงคลาสลกเฉพาะดาตาเมมเบอรเทานน ข. เปนการสบทอดคณสมบตจากคลาสแมไปยงคลาสลกเฉพาะเมมเบอรฟงกชนเทานน ค. เปนการสบทอดคณสมบตจากคลาสแมไปยงคลาสลกทงดาตาเมมเบอรและเมมเบอร

ฟงกชน ง. เปนการสบทอดคณสมบตจากคลาสแมไปยงคลาสลกทงดาตาเมมเบอรและเมมเบอร

ฟงกชน ยกเวนระดบการเขาถงในคลาสแมเปนแบบ private 2. ขอใดตอไปน มใช ชนดของการสบทอดคณสมบต

ก. private ข. protect ค. public ง. protected

3. ระดบการเขาถงใดเมอมการสบทอดคณสมบตชนด public แลวจะไมถกปรบเปลยนระดบการเขาถง ก. private, protected ข. private, protect ค. private, protected, public ง. protected, public

4. ระดบการเขาถงใดเมอมการสบทอดคณสมบตชนด protected แลวจะถกปรบเปลยนระดบการเขาถง ก. private ข. private, protect ค. private, public ง. public

Page 184: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

175

5. ขอใดตอไปนกลาวถกตองเกยวกบคอนสตรคเตอรเมอมการสบทอดคณสมบต ก. คอนสตรคเตอรของคลาสแมจะท างานกอนคอนสตรคเตอรของคลาสลก ข. คอนสตรคเตอรของคลาสลกจะท างานกอนคอนสตรคเตอรของคลาสแม ค. คอนสตรคเตอรของคลาสลกจ าเปนจะตองรบพารามเตอรเหมอนคอนสตรคเตอรของคลาส

แม ง. คอนสตรคเตอรของคลาสลกสามารถมไดหลายตว

จากโปรแกรมดงกลาวตอบค าถามขอ 6 - 8

1 #include<iostream>

2 using namespace std;

3 class A{

4 public:

5 A(){cout<<"A ";}

6 A(int a){cout<<a;}

7 ~A(){cout<<"~A ";}

8 };

9 class B : public A{

10 public :

11 B():A(3){cout<<"B ";}

12 ~B(){cout<<"~B ";}

13 };

14 int main( ){

15 B b;

16 return 0;

17 }

6. จากโปรแกรมดงกลาวเมอท างานจะมผลลพธสอดคลองกบขอใด

ก. 3B ~B ~A ข. A B ~B ~A ค. B A ~B ~A ง. B 3 ~B ~A

Page 185: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

176

7. จากโปรแกรมดงกลาวในบรรทดท 9 ปรบเปลยนการสบทอดคณสมบตชนด public เปน private จะมผลลพธสอดคลองกบขอใด ก. โปรแกรมคอมไพลไมผาน ข. 3B ~B ~A ค. B ~B ง. A ~A

8. จากโปรแกรมดงกลาวในบรรทดท 9 ปรบเปลยนการสบทอดคณสมบตชนด public เปน protected จะมผลลพธสอดคลองกบขอใด ก. โปรแกรมคอมไพลไมผาน ข. 3B ~B ~A ค. B ~B ง. A ~A

9. จากโปรแกรมดงกลาวเมอท าการคอมเมนตบรรทดท 7 และ 12 แลว เมอท าการรนโปรแกรมจะมผลลพธสอดคลองกบขอใด ก. A ข. B ค. 3A ง. 3B

10. เมอมการสรางวตถขนภายในโปรแกรม เมอมการท างานเสรจวตถเหลานนจะถกท าลายเพอคนพนทหนวยความจ าใหกบระบบ ซงการท าลายวตถจะเปนหนาทของอะไร ก. คอนสตรคเตอร ข. ดสตรคเตอร ค. วตถ ง. คลาส

Page 186: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

177

เฉลยแบบทดสอบกอนเรยน บทท 10 เรอง กำรสบทอดคณสมบต

ขอท เฉลย

1 ค 2 ข 3 ก 4 ง 5 ก 6 ก 7 ข 8 ข 9 ง

10 ข

Page 187: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

178

ใบแบบฝกหด บทท 10 เรอง กำรสบทอดคณสมบต

ค ำชแจง 1. แบบฝกหดมทงหมด 2 ขอใหท าทกขอ 2. คะแนนรวมทงหมด 25 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกลกษณะการสบทอดคณสมบตจากคลาสแมไปยงคลาสลกมลกษณะอยางไร ( 25 คะแนน ) 2. ใหนกศกษาบอกชนดการสบทอดคณสมบตวามกชนด อะไรบาง พรอมอธบาย ( 25 คะแนน )

Page 188: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

179

ใบเฉลยแบบฝกหด บทท 10 เรอง กำรสบทอดคณสมบต

ค ำชแจง 1. แบบฝกหดมทงหมด 2 ขอใหท าทกขอ 2. คะแนนรวมทงหมด 50 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกลกษณะการสบทอดคณสมบตจากคลาสแมไปยงคลาสลกมลกษณะอยางไร ( 25 คะแนน ) ตอบ คอการสรางคลาสขนมาใหมโดยมการอางองถงคลาสทมอยแลวโดยคลาสทสรางขนมาใหมเรยกวา คลาสลก และคลาสทมอยแลวทมการอางองถงเรยกวา คลาสแม ส าหรบคลาสลกนนจะมการสบทอดคณสมบตจากคลาสแมแตทงนขนอยกบชนดการสบทอดวาเปนชนดใดดวย

2. ใหนกศกษาบอกชนดการสบทอดคณสมบตวามกชนด อะไรบาง พรอมอธบาย ( 25 คะแนน ) ตอบ ชนดของการสบทอดคณสมบต เปนการสบทอดคณสมบตจากคลาสแมมายงคลาสลก โดยสามารถก าหนดได 3 ชนด คอ การสบทอดคณสมบตแบบไพรเวท ( private ) การสบทอดคณสมบตแบบโปรเทคเตด ( protected ) และการสบทอดคณสมบตแบบ พบลค ( public ) 1. การสบทอดคณสมบตแบบไพรเวท ( private ) ดาตาเมมเบอรและเมมเบอรฟงกชนในคลาสแมทเปน protected และ public จะถกปรบเปลยนเปน private ในคลาสสบทอด สวน private จะยงคงเหมอนเดม 2. การสบทอดคณสมบตแบบโปรเทคเตด ( protected ) ดาตาเมมเบอรและเมมเบอรฟงกชนในคลาสแมทเปน public จะถกปรบเปลยนเปน protected ในคลาสสบทอด สวน private และ protected จะยงคงเหมอนเดม 3. การสบทอดคณสมบตแบบพบลค ( public ) ดาตาเมมเบอรและเมมเบอรฟงกชนในคลาสแมทเปน private , protected และ public เมอสบทอดมายงคลาสสบทอดยงคงเหมอนเดม

Page 189: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

180

ใบงำน บทท 10 เรอง กำรสบทอดคณสมบต

ค ำชแจง 1. ใบงานมทงหมด 1 ขอ 2. คะแนนรวมทงหมด 150 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. จากโปรแกรมดงกลาวเมอท าการคอมไพลโปรแกรมใหนกศกษาอธบายผลลพธทเกดขน ( 150คะแนน ) 1.1 การสบทอดคณสมบตจากคลาสแมไปยงคลาสลกชนด private

1 //Lab10_1.cpp

2 #include<iostream>

3 using namespace std;

4 class X{

5 int x,y;

6 public:

7 A(int x,int y){ this->a = x; this->b=y;}

8 int getXY(){ return x + y;}

9 };

10 class Y : private X{

11 public :

12 Y(int a, int b) : X(a,b){ }

13 };

14 int main( ){

15 Y y(2,3);

16 cout<<y.getXY();

17 return 0;

18 }

Page 190: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

181

1.2 การสบทอดคณสมบตจากคลาสแมไปยงคลาสลกชนด protected 1 //Lab10_2.cpp

2 #include<iostream>

3 using namespace std;

4 class X{

5 int x,y;

6 public:

7 A(int x,int y){ this->a = x; this->b=y;}

8 int getXY(){ return x + y;}

9 };

10 class Y : protected X{

11 public :

12 Y(int a, int b) : X(a,b){ }

13 };

14 int main( ){

15 Y y(2,3);

16 cout<<y.getXY();

17 return 0;

18 }

1.3 การสบทอดคณสมบตจากคลาสแมไปยงคลาสลกชนด public 1 //Lab10_3.cpp

2 #include<iostream>

3 using namespace std;

4 class X{

5 int x,y;

6 public:

7 A(int x,int y){ this->a = x; this->b=y;}

8 int getXY(){ return x + y;}

9 };

10 class Y : public X{

11 public :

12 Y(int a, int b) : X(a,b){ }

13 };

14 int main( ){

15 Y y(2,3);

16 cout<<y.getXY();

17 return 0;

18 }

Page 191: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

182

เฉลยใบงำน บทท 10 เรอง กำรสบทอดคณสมบต

ค ำชแจง 1. แบบฝกหดมทงหมด 1 ขอ 2. คะแนนรวมทงหมด 150 คะแนน ---------------------------------------------------------------------------------------------------------------------- 1. จากโปรแกรมดงกลาวเมอท าการคอมไพลโปรแกรมใหนกศกษาอธบายผลลพธทเกดขน ( 150คะแนน ) 1.1 การสบทอดคณสมบตจากคลาสแมไปยงคลาสลกชนด private

1 //Lab10_1.cpp

2 #include<iostream>

3 using namespace std;

4 class X{

5 int x,y;

6 public:

7 A(int x,int y){ this->a = x; this->b=y;}

8 int getXY(){ return x + y;}

9 };

10 class Y : private X{

11 public :

12 Y(int a, int b) : X(a,b){ }

13 };

14 int main( ){

15 Y y(2,3);

16 cout<<y.getXY();

17 return 0;

18 }

ตอบ วตถ y ทสรางขนมาจากคลาส Y ในบรรทดท 15 จะไมสามารถมองเหนและเขาถงเมธอด y.getXY( ); เนองจากเมธอด getXY(); เมออยทคลาส X จะมระดบการเขาถงเปน public แตเมอคลาส Y สบทอดมาเปนชนด private ท าใหเมธอด getXY(); ถกปรบเปลยนการเขาถงเปน private สงผลการการเรยกใชงานจากภายนอกคลาส Y ไมสามารถเขาถงเมธอด getXY() ดงกลาวได

Page 192: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

183

1.2 การสบทอดคณสมบตจากคลาสแมไปยงคลาสลกชนด protected 1 //Lab10_2.cpp

2 #include<iostream>

3 using namespace std;

4 class X{

5 int x,y;

6 public:

7 A(int x,int y){ this->a = x; this->b=y;}

8 int getXY(){ return x + y;}

9 };

10 class Y : protected X{

11 public :

12 Y(int a, int b) : X(a,b){ }

13 };

14 int main( ){

15 Y y(2,3);

16 cout<<y.getXY();

17 return 0;

18 }

ตอบ วตถ y ทสรางขนมาจากคลาส Y ในบรรทดท 15 จะไมสามารถมองเหนและเขาถงเมธอด y.getXY( ); เนองจากเมธอด getXY(); เมออยทคลาส X จะมระดบการเขาถงเปน public แตเมอคลาส Y สบทอดมาเปนชนด protected ท าใหเมธอด getXY(); ถกปรบเปลยนการเขาถงเปน protected สงผลการการเรยกใชงานจากภายนอกคลาส Y ไมสามารถเขาถงเมธอด getXY() ดงกลาวได

Page 193: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

184

1.3 การสบทอดคณสมบตจากคลาสแมไปยงคลาสลกชนด public 1 //Lab10_3.cpp

2 #include<iostream>

3 using namespace std;

4 class X{

5 int x,y;

6 public:

7 A(int x,int y){ this->a = x; this->b=y;}

8 int getXY(){ return x + y;}

9 };

10 class Y : public X{

11 public :

12 Y(int a, int b) : X(a,b){ }

13 };

14 int main( ){

15 Y y(2,3);

16 cout<<y.getXY();

17 return 0;

18 }

ตอบ วตถ y ทสรางขนมาจากคลาส Y ในบรรทดท 15 จะสามารถมองเหนและเขาถงเมธอด y.getXY( ); เนองจากเมธอด getXY(); เมออยทคลาส X จะมระดบการเขาถงเปน public แตเมอคลาส Y สบทอดมาเปนชนด public กยงคงสามารถเขาถงแบบ public ไดสงผลการการเรยกใชงานจากภายนอกคลาส Y สามารถเขาถงได

Page 194: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

185

แบบทดสอบหลงเรยน บทท 10 เรอง กำรสบทอดคณสมบต

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใดกลาวถงการสบทอดคณสมบตไดถกตองทสด

ก. เปนการสบทอดคณสมบตจากคลาสแมไปยงคลาสลกเฉพาะดาตาเมมเบอรเทานน ข. เปนการสบทอดคณสมบตจากคลาสแมไปยงคลาสลกเฉพาะเมมเบอรฟงกชนเทานน ค. เปนการสบทอดคณสมบตจากคลาสแมไปยงคลาสลกทงดาตาเมมเบอรและเมมเบอร

ฟงกชน ง. เปนการสบทอดคณสมบตจากคลาสแมไปยงคลาสลกทงดาตาเมมเบอรและเมมเบอร

ฟงกชน ยกเวนระดบการเขาถงในคลาสแมเปนแบบ private 2. ขอใดตอไปน มใช ชนดของการสบทอดคณสมบต

ก. private ข. protect ค. public ง. protected

3. ระดบการเขาถงใดเมอมการสบทอดคณสมบตชนด public แลวจะไมถกปรบเปลยนระดบการเขาถง ก. private, protected ข. private, protect ค. private, protected, public ง. protected, public

4. ระดบการเขาถงใดเมอมการสบทอดคณสมบตชนด protected แลวจะถกปรบเปลยนระดบการเขาถง ก. private ข. private, protect ค. private, public ง. public

Page 195: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

186

5. ขอใดตอไปนกลาวถกตองเกยวกบคอนสตรคเตอรเมอมการสบทอดคณสมบต ก. คอนสตรคเตอรของคลาสแมจะท างานกอนคอนสตรคเตอรของคลาสลก ข. คอนสตรคเตอรของคลาสลกจะท างานกอนคอนสตรคเตอรของคลาสแม ค. คอนสตรคเตอรของคลาสลกจ าเปนตองรบพารามเตอรเหมอนคอนสตรคเตอรคลาสแม ง. คอนสตรคเตอรของคลาสลกสามารถมไดหลายตว

จากโปรแกรมดงกลาวตอบค าถามขอ 6 - 8

1 #include<iostream>

2 using namespace std;

3 class A{

4 public:

5 A(){cout<<"A ";}

6 A(int a){cout<<a;}

7 ~A(){cout<<"~A ";}

8 };

9 class B : public A{

10 public :

11 B():A(3){cout<<"B ";}

12 ~B(){cout<<"~B ";}

13 };

14 int main( ){

15 B b;

16 return 0;

17 }

6. จากโปรแกรมดงกลาวเมอท างานจะมผลลพธสอดคลองกบขอใด

ก. 3B ~B ~A ข. A B ~B ~A ค. B A ~B ~A ง. B 3 ~B ~A

Page 196: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

187

7. จากโปรแกรมดงกลาวในบรรทดท 9 ปรบเปลยนการสบทอดคณสมบตชนด public เปน private จะมผลลพธสอดคลองกบขอใด ก. โปรแกรมคอมไพลไมผาน ข. 3B ~B ~A ค. B ~B ง. A ~A

8. จากโปรแกรมดงกลาวในบรรทดท 9 ปรบเปลยนการสบทอดคณสมบตชนด public เปน protected จะมผลลพธสอดคลองกบขอใด ก. โปรแกรมคอมไพลไมผาน ข. 3B ~B ~A ค. B ~B ง. A ~A

9. จากโปรแกรมดงกลาวเมอท าการคอมเมนตบรรทดท 7 และ 12 แลว เมอท าการรนโปรแกรมจะมผลลพธสอดคลองกบขอใด ก. A ข. B ค. 3A ง. 3B

10. เมอมการสรางวตถขนภายในโปรแกรม เมอมการท างานเสรจวตถเหลานนจะถกท าลายเพอคนพนทหนวยความจ าใหกบระบบ ซงการท าลายวตถจะเปนหนาทของอะไร ก. คอนสตรคเตอร ข. ดสตรคเตอร ค. วตถ ง. คลาส

Page 197: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

188

เฉลยแบบทดสอบหลงเรยน บทท 10 เรอง กำรสบทอดคณสมบต

ขอท เฉลย

1 ค 2 ข 3 ก 4 ง 5 ก 6 ก 7 ข 8 ข

9 ง 10 ข

Page 198: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

189

บทท 11 เรอง โพลมอรฟซม

Page 199: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

190

แบบทดสอบกอนเรยน บทท 11 เรอง โพลมอรฟซม

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใดมความหมายตรงกบค าวา โอเวอรโหลดดง ถกตองทสด

ก. การสบทอดคณสมบตจากคลาสแมมายงคลาสลก ข. ชอเมมเบอรฟงกชนของคลาสลกตรงกบชอเมมเบอรฟงกชนของคลาสแม ค. ชอเมมเบอรฟงกชนภายในคลาสเหมอนกนแตมการรบพารามเตอรตางกน ง. ชอเมมเบอรฟงกชนเหมอนกบชอของคลาส

2. ขอใดมความหมายตรงกบค าวา โอเวอรไรด ถกตองทสด ก. การสบทอดคณสมบตจากคลาสแมมายงคลาสลก ข. ชอเมมเบอรฟงกชนของคลาสลกตรงกบชอเมมเบอรฟงกชนของคลาสแม ค. ชอเมมเบอรฟงกชนภายในคลาสเหมอนกนแตมการรบพารามเตอรไมเหมอนกน ง. ชอเมมเบอรฟงกชนเหมอนกบชอของคลาส

3. โพลมอรฟซม คอ เมมเบอรฟงกชนเดยวแตสามารถท างานไดหลายรปแบบ ซงประกอบดวยอะไรบาง ขอใดตอไปนถกตองมากทสด ก. โอเวอรโหลดดง โอเวอรไรด สแตตกไบดดง ไดนามคสไบดดง ข. โอเวอรโหลดดง โอเวอรไรด เวอรชวลฟงกชน ไดนามคสไบดดง ค. โอเวอรโหลดดง โอเวอรไรด ไบดดง ง. โอเวอรโหลดดง โอเวอรไรด เวอรชวลฟงกชน ไบดดง

4. การท างานในลกษณะ พอยนเตอรของคลาสแมมความสามารถในการไบดการท างานไปยงคลาสลกได และแสดงผลขอมลของคลาสลกไดอยางถกตอง การท างานเชนนเรยกวาอะไร ก. ไดนามคสไบดดง ข. สแตตกไบดดง ค. ไบดดง ง. เวอรชวลฟงกชน

Page 200: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

191

จากโปรแกรมดานลางตอไปนตอบค าถามขอท 5 – 10 1 #include <iostream>

2 using namespace std;

3 class A{

4 public :

5 A(){}

6 void output(){cout<<"Class A\n";}

7 };

8 class B : public A{

9 public:

10 B(){}

11 void output(){cout<<"Class B\n";}

12 };

13 class C : public A{

14 public:

15 C(){}

16 void output(){cout<<"Class C\n";}

17 };

18 int main( ){

19 A* ptra;

20 B b;

21 C c;

22 ptra = &b;

23 ptra->output();

24 ptra = &c;

25 ptra->output();

26 return 0;

27 }

5. จากโปรแกรมดงกลาวเมอรนโปรแกรม บรรทดท 23 จะแสดงผลลพธทางจอภาพตรงกบค าตอบ

ขอใด ก. Class A ข. Class B ค. Class C ง. Class A\n

Page 201: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

192

6. จากโปรแกรมดงกลาวเมอรนโปรแกรม บรรทดท 25 จะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด ก. Class A\n ข. Class B ค. Class C ง. Class A

7. จากโปรแกรมดงกลาวเพมค าวา virtual หนาค าสงในบรรทดท 6 เมอรนโปรแกรม บรรทดท 23 จะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด ก. Class A ข. Class B ค. Class C ง. Class A\n

8. จากโปรแกรมดงกลาวเพมค าวา virtual หนาค าสงในบรรทดท 6 เมอรนโปรแกรม บรรทดท 25 จะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด ก. Class A ข. Class B ค. Class C ง. Class A\n

9. จากโปรแกรมดงกลาวเพมค าวา virtual หนาค าสงในบรรทดท 6 และเตมเครองหมาย คอมเมนตในบรรทดท 24 เมอรนโปรแกรม บรรทดท 25 จะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด ก. Class A ข. Class B ค. Class C ง. Class A\n

10. จากโปรแกรมดงกลาวเตมเครองหมาย คอมเมนตในบรรทดท 24 เมอรนโปรแกรม บรรทดท 25 จะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด ก. Class A ข. Class B ค. Class C ง. Class A\n

Page 202: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

193

เฉลยแบบทดสอบกอนเรยน บทท 11 เรอง โพลมอรฟซม

ขอท เฉลย

1 ค 2 ข 3 ง 4 ก 5 ก 6 ง 7 ข 8 ค 9 ข

10 ก

Page 203: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

194

ใบแบบฝกหดท 11 บทท 11 เรอง โพลมอรฟซม

ค ำชแจง 1. แบบฝกหดมทงหมด 5 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกความหมายของลกษณะการท างานแบบ โพลมอรฟซม ( 10 คะแนน ) 2. ใหนกศกษาบอกความหมายของ โอเวอรโหลดดง ( 10 คะแนน ) 3. ใหนกศกษาบอกความหมายของ โอเวอรไรด ( 10 คะแนน ) 4. ใหนกศกษาบอกความหมายของ ไบดสแตตค ( 10 คะแนน ) 5. ใหนกศกษาบอกความหมายของ ไบดไดนามคส ( 10 คะแนน )

Page 204: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

195

ใบเฉลยแบบฝกหดท 11 บทท 11 เรอง โพลมอรฟซม

ค ำชแจง 1. แบบฝกหดทงหมดม 5 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกความหมายของลกษณะการท างานแบบ โพลมอรฟซม ( 10 คะแนน ) ตอบ โพลมอรฟซม คอ สมาชกฟงกชนตวเดยวสามารถมไดหลายรปแบบของการท างานประกอบ ดวยโอเวอรโหลดดง โอเวอรไรด เวอรชวลฟงกชน และการไบดดง 2. ใหนกศกษาบอกความหมายของ โอเวอรโหลดดง ( 10 คะแนน ) ตอบ ภายในคลาสเดยวกนสามารถสราง เมมเบอรฟงกชน ทชอเหมอนกนไดแตจะตองมการรบพารามเตอรไมเหมอนกน เรยกวา ฟงกชนโอเวอรโหลดดง 3. ใหนกศกษาบอกความหมายของ โอเวอรไรด ( 10 คะแนน ) ตอบ การสบทอดคณสมบตจากคลาสแมมายงคลาสลก สามารถมชอฟงกชนเหมอนกนไดแตมรายละเอยดภายในฟงกชนไมเหมอนกน หรอมการรบพารามเตอรไมเหมอนกน เรยกวา การโอเวอรไรดดง

4. ใหนกศกษาบอกความหมายของ ไบดสแตตค ( 10 คะแนน ) ตอบ เปนการสบทอดคณสมบตจากคลาสแมมายงคลาสลก จะมการผกของโปรแกรมขณะก าลงคอมไพล เมอโปรแกรมท างานการผกจะยงคงเหมอนเดมถงแมวาจะมการชไปยงวตถลกอน ๆ แลวกตาม 5. ใหนกศกษาบอกความหมายของ ไบดไดนามคส ( 10 คะแนน ) ตอบ เปนการสบทอดคณสมบตคลาสแมมายงคลาสลกมการผกขณะโปรแกรมก าลงท างาน สงผลการใหการชไปยงวตถลกอน ๆ ถกตองและเปนปจจบน

Page 205: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

196

ใบงำน บทท 11 เรอง โพลมอรฟซม

ค ำชแจง 1. ใบงานมทงหมด 1 ขอ คะแนนเตม 50 คะแนน --------------------------------------------------------------------------------------------------------------------- 1. จากแผนภาพคลาสตอไปนเปนคลาสยานพาหนะ (vehicles) ซงเปนคลาสแม และประกอบดวยคลาสลกจ านวน2 คลาสคอ คลาสรถยนต (Car) และคลาสรถจกรยานยนต (CarBike) มเมมเบอรฟงกชนท างานในลกษณะโพลมอรฟซม คอ การเรงความเรว (accelerate)โดยรถยนตเรงความเรวดวยการเหยยบคนเรง (tread) แต รถจกรยานยนตเรงความเรวโดยการ บดคดเรง (twist) จากแผนภาพดงกลาวใหเขยนโปรแกรมภาษา C++ ( 50 คะแนน ) 1.1 แผนภาพภาษายเอมแอล

Page 206: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

197

Vehicles

-brand : string

+virtual accelerate() : void

Car CarBike

+CarBike(string,string)

-volumn : double

+Vehicles(string,string)

+break : void

+virtual accelerate() : void+Vechicles(string,string)

+virtual accelerate() : void

-color : string-models : string

+setBrand(string) : void

+stop : void

+setModels(string) : void

+setVolumn(double) : void+setColor(string) : void

+getModels() : string

+getBrand() : string+getVolumn() : string+getColor() : string

+start : void

Page 207: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

198

1.2 การสรางเฮดเดอรไฟลชอ Vehicle.h 1 //Vehicles.h

2 #ifndef VEHICLES_H_INCLUDED

3 #define VEHICLES_H_INCLUDED

4 #include<iostream>

5 using namespace std;

6 class Vehicles{

7 protected:

8 string brand;

9 string volumn;

10 string color;

11 string models;

12 public:

13 Vehicles(string,string);

14 void virtual accelerate();

15 void setBrand(string);

16 void setVolumn(string);

17 void setColor(string);

18 void setModels(string);

19 string getBrand();

20 string getVolumn();

21 string getColor();

22 string getModels();

23 void breaks();

24 void start();

25 void stop();

26 };

27 #endif // VEHICLES_H_INCLUDED

Page 208: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

199

1.3 สรางอมพลเมนตเตชนไฟลชอ Vehicles.cpp 1 //Vehicles.cpp

2 #include"Vehicles.h"

3 using namespace std;

4 Vehicles::Vehicles(string b,string m){

5 brand = b;

6 models = m;

7 cout<<"Brand : "<<getBrand()<<endl;

8 cout<<"Models : "<<getModels()<<endl;

9 }

10 void Vehicles::accelerate(){

11 cout<<"accelerate by vehicles\n";

12 }

13 void Vehicles::setBrand(string b){ brand = b;}

14 void Vehicles::setVolumn(string v) { volumn = v;}

15 void Vehicles::setColor(string c){color = c;}

16 void Vehicles::setModels(string m){models = m;}

17 string Vehicles::getBrand(){return brand;}

18 string Vehicles::getVolumn(){return volumn;}

19 string Vehicles::getColor(){return color;}

20 string Vehicles::getModels(){return models;}

21 void Vehicles::start(){ cout<<"Start\n";}

22 void Vehicles::stop(){ cout<<"Stop\n";}

23 void Vehicles::breaks(){ cout<<"Break\n";}

1.4 สรางเฮดเดอรไฟลคลาสลกชอ Car.h ซงสบทอดคณสมบตจากคลาส Vehicles.h

1 //Car.h

2 #ifndef CAR_H_INCLUDED

3 #define CAR_H_INCLUDED

4 #include"Vehicles.h"

5 using namespace std;

6 class Car : public Vehicles{

7 public:

8 Car(string,string);

9 void virtual accelerate();

10 };

11 #endif // CAR_H_INCLUDED

Page 209: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

200

1.5 สรางอมพลเมนตเตชนไฟลชอ Car.cpp 1 //Car.cpp

2 #include"Car.h"

3 using namespace std;

4 Car::Car(string b,string m):Vehicles(b,m){

5 }

6 void Car::accelerate(){

7 cout<<"tread\n";

8 }

1.6 สรางเฮดเดอรไฟลคลาสลกชอ CarBike.h ซงสบทอดคณสมบตจากคลาส Vehicles.h

1 //CarBike.h

2 #ifndef CARBIKE_H_INCLUDED

3 #define CARBIKE_H_INCLUDED

4 #include"Vehicles.h"

5 class CarBike : public Vehicles{

6 public:

7 CarBike(string,string);

8 void virtual accelerate();

9 };

10 #endif // CARBIKE_H_INCLUDED

1.7 สรางอมพลเมนตเตชนไฟลชอ CarBike.cpp

1 //CarBike.cpp

2 #include"CarBike.h"

3 using namespace std;

4 CarBike::CarBike(string b,string m):Vehicles(b,m){

5 }

6 void CarBike::accelerate(){

7 cout<<"twist\n";

8 }

Page 210: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

201

1.8 สรางไฟลทดสอบการท างานชอ TestVehiclesDynamics.cpp 1 //TestVehicleDynamics.cpp

2 #include"Car.h"

3 #include"CarBike.h"

4 int main( ){

5 Vehicles* p;

6 Car c("Toyota","Vios");

7 p = &c;

8 p->accelerate();

9 CarBike cb("Yamaha","F80");

10 p = &cb;

11 p->accelerate();

12 return 0;

13 }

1.9 ผลลพธการท างานของโปรแกรม

Page 211: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

202

เฉลยใบงำน บทท 11 เรอง โพลมอรฟซม

ค ำชแจง 1. ใบงานมทงหมด 1 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. จากแผนภาพคลาสตอไปนเปนคลาสยานพาหนะ (vehicles) ซงเปนคลาสแม และประกอบดวยคลาสลกจ านวน2 คลาสคอ คลาสรถยนต (Car) และคลาสรถจกรยานยนต (CarBike) มเมมเบอรฟงกชนท างานในลกษณะโพลมอรฟซม คอ การเรงความเรว (accelerate)โดยรถยนตเรงความเรวดวยการเหยยบคนเรง (tread) แต รถจกรยานยนตเรงความเรวโดยการ บดคดเรง (twist) จากแผนภาพดงกลาวใหเขยนโปรแกรมภาษา C++ ( 50 คะแนน )

Page 212: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

203

1.1 แผนภาพภาษายเอมแอล

Vehicles

-brand : string

+virtual accelerate() : void

Car CarBike

+CarBike(string,string)

-volumn : double

+Vehicles(string,string)

+break : void

+virtual accelerate() : void+Vechicles(string,string)

+virtual accelerate() : void

-color : string-models : string

+setBrand(string) : void

+stop : void

+setModels(string) : void

+setVolumn(double) : void+setColor(string) : void

+getModels() : string

+getBrand() : string+getVolumn() : string+getColor() : string

+start : void

Page 213: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

204

1.2 การสรางเฮดเดอรไฟลชอ Vehicle.h 1 //Vehicles.h

2 #ifndef VEHICLES_H_INCLUDED

3 #define VEHICLES_H_INCLUDED

4 #include<iostream>

5 using namespace std;

6 class Vehicles{

7 protected:

8 string brand;

9 string volumn;

10 string color;

11 string models;

12 public:

13 Vehicles(string,string);

14 void virtual accelerate();

15 void setBrand(string);

16 void setVolumn(string);

17 void setColor(string);

18 void setModels(string);

19 string getBrand();

20 string getVolumn();

21 string getColor();

22 string getModels();

23 void breaks();

24 void start();

25 void stop();

26 };

27 #endif // VEHICLES_H_INCLUDED

Page 214: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

205

1.3 สรางอมพลเมนตเตชนไฟลชอ Vehicles.cpp 1 //Vehicles.cpp

2 #include"Vehicles.h"

3 using namespace std;

4 Vehicles::Vehicles(string b,string m){

5 brand = b;

6 models = m;

7 cout<<"Brand : "<<getBrand()<<endl;

8 cout<<"Models : "<<getModels()<<endl;

9 }

10 void Vehicles::accelerate(){

11 cout<<"accelerate by vehicles\n";

12 }

13 void Vehicles::setBrand(string b){ brand = b;}

14 void Vehicles::setVolumn(string v) { volumn = v;}

15 void Vehicles::setColor(string c){color = c;}

16 void Vehicles::setModels(string m){models = m;}

17 string Vehicles::getBrand(){return brand;}

18 string Vehicles::getVolumn(){return volumn;}

19 string Vehicles::getColor(){return color;}

20 string Vehicles::getModels(){return models;}

21 void Vehicles::start(){ cout<<"Start\n";}

22 void Vehicles::stop(){ cout<<"Stop\n";}

23 void Vehicles::breaks(){ cout<<"Break\n";}

1.4 สรางเฮดเดอรไฟลคลาสลกชอ Car.h ซงสบทอดคณสมบตจากคลาส Vehicles.h

1 //Car.h

2 #ifndef CAR_H_INCLUDED

3 #define CAR_H_INCLUDED

4 #include"Vehicles.h"

5 using namespace std;

6 class Car : public Vehicles{

7 public:

8 Car(string,string);

9 void virtual accelerate();

10 };

11 #endif // CAR_H_INCLUDED

Page 215: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

206

1.5 สรางอมพลเมนตเตชนไฟลชอ Car.cpp 1 //Car.cpp

2 #include"Car.h"

3 using namespace std;

4 Car::Car(string b,string m):Vehicles(b,m){

5 }

6 void Car::accelerate(){

7 cout<<"tread\n";

8 }

1.6 สรางเฮดเดอรไฟลคลาสลกชอ CarBike.h ซงสบทอดคณสมบตจากคลาส Vehicles.h

1 //CarBike.h

2 #ifndef CARBIKE_H_INCLUDED

3 #define CARBIKE_H_INCLUDED

4 #include"Vehicles.h"

5 class CarBike : public Vehicles{

6 public:

7 CarBike(string,string);

8 void virtual accelerate();

9 };

10 #endif // CARBIKE_H_INCLUDED

1.7 สรางอมพลเมนตเตชนไฟลชอ CarBike.cpp

1 //CarBike.cpp

2 #include"CarBike.h"

3 using namespace std;

4 CarBike::CarBike(string b,string m):Vehicles(b,m){

5 }

6 void CarBike::accelerate(){

7 cout<<"twist\n";

8 }

Page 216: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

207

1.8 สรางไฟลทดสอบการท างานชอ TestVehiclesDynamics.cpp 1 //TestVehicleDynamics.cpp

2 #include"Car.h"

3 #include"CarBike.h"

4 int main( ){

5 Vehicles* p;

6 Car c("Toyota","Vios");

7 p = &c;

8 p->accelerate();

9 CarBike cb("Yamaha","F80");

10 p = &cb;

11 p->accelerate();

12 return 0;

13 }

1.9 ผลลพธการท างานของโปรแกรม

Brand : Toyota

Model : Vios

tread

Brad : Yamaha

Model : F80

twist

Page 217: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

208

แบบทดสอบหลงเรยน บทท 11 เรอง โพลมอรฟซม

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใดมความหมายตรงกบค าวา โอเวอรไรด ถกตองทสด

ก. การสบทอดคณสมบตจากคลาสแมมายงคลาสลก ข. ชอเมมเบอรฟงกชนของคลาสลกตรงกบชอเมมเบอรฟงกชนของคลาสแม ค. ชอเมมเบอรฟงกชนภายในคลาสเหมอนกนแตมการรบพารามเตอรไมเหมอนกน ง. ชอเมมเบอรฟงกชนเหมอนกบชอของคลาส

2. ขอใดมความหมายตรงกบค าวา โอเวอรโหลดดง ถกตองทสด ก. การสบทอดคณสมบตจากคลาสแมมายงคลาสลก ข. ชอเมมเบอรฟงกชนของคลาสลกตรงกบชอเมมเบอรฟงกชนของคลาสแม ค. ชอเมมเบอรฟงกชนภายในคลาสเหมอนกนแตมการรบพารามเตอรตางกน ง. ชอเมมเบอรฟงกชนเหมอนกบชอของคลาส

3. โพลมอรฟซม คอ เมมเบอรฟงกชนเดยวแตสามารถท างานไดหลายรปแบบ ซงประกอบดวยอะไรบาง ขอใดตอไปนถกตองมากทสด ก. โอเวอรโหลดดง โอเวอรไรด สแตตกไบดดง ไดนามคสไบดดง ข. โอเวอรโหลดดง โอเวอรไรด เวอรชวลฟงกชน ไดนามคสไบดดง ค. โอเวอรโหลดดง โอเวอรไรด ไบดดง ง. โอเวอรโหลดดง โอเวอรไรด เวอรชวลฟงกชน ไบดดง

4. การท างานในลกษณะ พอยนเตอรของคลาสแมมความสามารถในการไบดการท างานไปยงคลาสลกได และแสดงผลขอมลของคลาสลกไดอยางถกตอง การท างานเชนนเรยกวาอะไร ก. ไดนามคสไบดดง ข. สแตตกไบดดง ค. ไบดดง ง. เวอรชวลฟงกชน

Page 218: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

209

จากโปรแกรมดานลางตอไปนตอบค าถามขอท 5 – 10 1 #include <iostream>

2 using namespace std;

3 class A{

4 public :

5 A(){}

6 void output(){cout<<"Class A\n";}

7 };

8 class B : public A{

9 public:

10 B(){}

11 void output(){cout<<"Class B\n";}

12 };

13 class C : public A{

14 public:

15 C(){}

16 void output(){cout<<"Class C\n";}

17 };

18 int main( ){

19 A a;

20 B b;

21 C c;

22 a.out();

23 b.out();

24 c.out();

25 return 0;

26 }

5. จากโปรแกรมดงกลาวเมอรนโปรแกรม บรรทดท 22 จะแสดงผลลพธทางจอภาพตรงกบค าตอบ

ขอใด ก. Class A ข. Class B ค. Class C ง. Class A\n

6. จากโปรแกรมดงกลาวเมอรนโปรแกรม บรรทดท 23 จะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด ก. Class A ข. Class B ค. Class C ง. Class A\n

Page 219: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

210

7. จากโปรแกรมดงกลาวเมอรนโปรแกรม บรรทดท 24 จะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด ก. Class A\n ข. Class B ค. Class C ง. Class A

8. จากโปรแกรมดงกลาวเพมค าวา virtual หนาค าสงในบรรทดท 6 เมอรนโปรแกรม บรรทดท 22 จะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด ก. Class A ข. Class B ค. Class C ง. Class A\n

9. จากโปรแกรมดงกลาวเพมค าวา virtual หนาค าสงในบรรทดท 6 เมอรนโปรแกรม บรรทดท 23 จะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด ก. Class A ข. Class B ค. Class C ง. Class A\n

10. จากโปรแกรมดงกลาวเพมค าวา virtual หนาค าสงในบรรทดท 6 เมอรนโปรแกรม บรรทดท 24 จะแสดงผลลพธทางจอภาพตรงกบค าตอบขอใด ก. Class A ข. Class B ค. Class C ง. Class A\n

Page 220: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

211

เฉลยแบบทดสอบหลงเรยน บทท 11 เรอง โพลมอรฟซม

ขอท เฉลย

1 ข 2 ค 3 ง 4 ก 5 ก 6 ข 7 ค 8 ก 9 ข

10 ค

Page 221: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

212

Page 222: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

213

บทท 12 เรอง เทมเพลต

Page 223: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

214

แบบทดสอบกอนเรยน บทท 12 เรอง เทมเพลต

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอความตอไปน กลาวถงเทมเพลตฟงกชน ในขอใดไมถกตอง

ก. เทมเพลตฟงกชนเปนการก าหนดรปแบบชนดขอมลโดยทวไปไมเฉพาะเจาะจง ข. เทมเพลตฟงกชนสามารถรองรบการท างานของชนดขอมลทแตกตางกนได ค. ในการใชงานเทมเพลตฟงกชนคอมไพลเลอรจะท าการสรางฟงกชนทใชงานกบชนดขอมล

ของอารกวเมนตใหอตโนมต ง. ภายในเทมเพลตฟงกชนสามารถรองรบลอจกการท างานทแตกตางกนได

2. ขอใดคอการก าหนดเทมเพลตฟงกชนทไมถกตอง ก. Template < typename T, typename X > ข. template < typename Y > ค. template < class T> ง. template < typename T, typename X >

3. ขอความตอไปน กลาวถงเทมเพลตคลาส ในขอใดไมถกตอง ก. ขนตอนการสรางเทมเพลตคลาสจะมขนตอนแตกตางจากการสรางคลาสปกต ข. เมอมการสรางวตถจากเทมเพลตคลาสจะตองระบชนดขอมลดวย ค. การอมพลเมนตเตชนเทมเพลตคลาสจะไมสามารถแยกไฟลในการอมพลเมนตเตชนได ง. รองรบการสรางวตถจากเทมเพลตคลาสทมชนดขอมลแตกตางกนได

4. มชอเทมเพลตฟงกชนเหมอนกนแตมพารามเตอรแตกตางกน คอลกษณะของอะไร ก. เทมเพลตฟงกชน ข. เทมเพลตฟงกชนเฉพาะ ค. โอเวอรโหลดดงเทมเพลตฟงกชน ง. โอเวอรไรดฟงกชน

Page 224: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

215

จากโปรแกรมตอไปนตอบค าถามขอ 5 -7 1 #include<iostream>

2 template<typename ____1____>

3 void print(T t){std::cout<<t<<std::endl;}

4 template<typename T>

5 T __2__(T t1,T t2){return t1+t2;}

6 int main( ){

7 print(5);

8 std::cout<<add(4,9);

9 return 0;

10 }

5. จากโปรแกรมดงกลาวชองหมายเลข 1 จะตองเตมค าใดตอไปน

ก. t ข. T ค. print ง. add

6. จากโปรแกรมดงกลาวชองหมายเลข 2 จะตองเตมค าใดตอไปน ก. add ข. print ค. T ง. Template

7. จากโปรแกรมดงกลาวเมอท างานแลวไดผลลพธตรงกบขอใด ก. 5 ข. 5 9 ค. 13 5 ง. 5 13

Page 225: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

216

จากโปรแกรมดงกลาวตอบค าถามขอ 8 - 10 1 #include<iostream>

2 template <class T,class __1___>

3 class Avg{

4 private:

5 T number1;

6 Q number2;

7 public:

8 Avg<T,Q>(T __2__,Q t2){number1 = t1; number2 = t2;}

9 Q cal(){return (number1 + number2)/2;}

10 };

11 int main( ){

12 Avg<int,double> a(2,3);

13 std::cout<<a.cal();

14 return 0;

15 }

8. จากโปรแกรมดงกลาวชองหมายเลข 1 จะตองเตมค าใดตอไปน

ก. T ข. Q ค. X ง. Z

9. จากโปรแกรมดงกลาวชองหมายเลข 2 จะตองเตมค าใดตอไปน ก. t1 ข. t2 ค. number1 ง. number2

10. จากโปรแกรมดงกลาวเมอท างานแลวไดผลลพธตรงกบขอใด ก. 1 ข. 2.00 ค. 2.50 ง. 2.5

Page 226: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

217

เฉลยแบบทดสอบกอนเรยน บทท 12 เรอง เทมเพลต

ขอท เฉลย

1 ง 2 ก 3 ค 4 ค 5 ข 6 ก 7 ง 8 ข 9 ก

10 ง

Page 227: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

218

ใบแบบฝกหด บทท 12 เรอง เทมเพลต

ค ำชแจง 1. แบบฝกหดมทงหมด 3 ขอ คะแนนเตม 100 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกลกษณะการท างานของเทมเพลต ( 20 คะแนน ) 2. ใหนกศกษาบอกลกษณะการท างานของเทมเพลตฟงกชน ( 40 คะแนน ) 3. ใหนกศกษาบอกลกษณะการท างานของเทมเพลตคลาส ( 40 คะแนน )

Page 228: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

219

ใบเฉลยแบบฝกหด บทท 12 เรอง เทมเพลต

ค ำชแจง 1. แบบฝกหดมทงหมด 3 ขอ คะแนนเตม 100 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกลกษณะการท างานของเทมเพลต ( 20 คะแนน ) ตอบ เทมเพลต เปนการน ากลบมาใชอกรปแบบหนง ซงมการก าหนดไวแลวลวงหนา ไมใชเปนฟงกชนหรอคลาส โดยมชดการท างานเพยงชดเดยว แตสามาถน ามาใชงานแทนฟงกชนหรอหลายคลาส โดยมการใชชนดขอมลตางกน และเมอมการคอมไพลโปรแกรม คอมไพลเลอรจะท าการสรางฟงกชน หรอคลาส พรอมกบชนดขอมลทมการเรยกใช 2. ใหนกศกษาบอกลกษณะการท างานของเทมเพลตฟงกชน ( 40 คะแนน ) ตอบ คอ การสรางตนแบบของฟงกชนทตองการใชงานสามารถรองรบการท างานของขอมลตางชนดโดยการสรางตนแบบฟงกชนเพยงครงเดยว การก าหนดเทมเพลตฟงกชนจะเรมตนดวยคยเวรด template และตามดวยสญลกษณ < รายชอพารามเตอรชนดขอมลตาง ๆ ทก าหนดและปดดวยสญลกษณ > แตละพารามเตอรขอมลจะขนตนดวยคยเวรด class หรอ typename โดยพารามเตอรนจะเปนชนดขอมลเบองตน หรอชนดขอมลทผเขยนก าหนดเอง เทมเพลตฟงกชนสามารถท าการโอเวอรโหลดและสรางเปนเทมเพลตฟงกชนเฉพาะได โดยรปแบบของเทมเพลตฟงกชนมดงน template < typename T >

T function_name( T variable1, T variable2 ) {

return data type T;

}

3. ใหนกศกษาบอกลกษณะการท างานของเทมเพลตคลาส ( 40 คะแนน ) ตอบ คอ การสรางตนแบบของคลาสทตองการใชงานสามารถรองรบการท างานของขอมลตางชนดกน โดยการสรางตนแบบคลาสเพยงครงเดยว พารามเตอรชนดขอมล T จะมคยเวรด class หรอ typename น าหนา โดยอกษร T นนเปนตวรบอารกวเมนตเขามา ซงจะเปนชอชนดขอมลทสงมา และเมอมการเรยกใชงานเทมเพลตคลาส พารามเตอรชนดขอมล T ทก าหนดไวยงต าแหนงตาง ๆ ภายในคลาส จะมการถกแทนทดวยชนดขอมลทสงเขามา ดงนนในการสรางเทมเพลตคลาสจะมขนตอนเหมอนกบการสรางคลาสปกตทกอยาง แตจะไมมการระบชนด ชนดขอมลจะถกระบบททมการเรยกใชงานเทานน ส าหรบการอมพลเมนตเมมเบอรฟงกชนของเทมเพลตคลาสจะตองมการ

Page 229: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

220

ระบ template < class T > กอน จากนนจะเปนการระบชอคลาส classname < T >:: classname( ) { } โดยมรปแบบตอไปน

template < class T>

class className{

private :

T data member;

protected:

T data member;

public:

T data member;

T member function

};

template < T >

className < T > :: member function

Page 230: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

221

ใบงำน บทท 12 เรอง เทมเพลต

ค ำชแจง 1. ใบงานมทงหมด 2 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาสรางเทมเพลตฟงกชนของการค านวณหาคาเฉลยของเลข 4 จ านวน พรอมทงเขยนโปรแกรมแสดงการท างานดวย (15 คะแนน)

1 #include<iostream>

2 using namespace std;

3 template <typename T>

4 T avg(___,___,___,___);

5 int main( ){

6 int t1,t2,t3,t4;

7 double d1,d2,d3,d4;

8 cout<<"Enter number :";cin>>___>>___>>___>>___;

9 _______<<"Average = "<<avg(t1,t2,t3,t4)<<endl;

10 cout<<"Enter number :";cin>>d1>>d2>>d3>>d4;

11 cout<<"Average = "<<_____________<<endl;

12 return 0;

13 }

14 template <__________>

15 T avg(T t1,T t2,T t3,T t4){return (t1+t2+t3+t4)/_____;}

16

ผลลพธกำรท ำงำนของโปรแกรม

Page 231: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

222

2. ใหนกศกษาสรางเทมเพลตคลาสของการค านวณหาผลบวก ลบ คณ หาร โดยมการสรางเฮดเดอรไฟลแยกจากอมพลเมนตเตชนไฟล และไฟลในการทดสอบการท างาน (35 คะแนน) 2.1 สรางเฮดเดอรไฟลชอ Lab4.h

1 //Lab4.h

2 #ifndef LAB4_H_INCLUDED

3 #define LAB4_H_INCLUDED

4 template <class T>

5 class Cal{

6 private:

7 T number1, number2;

8 public:

9 Cal(T,T);

10 void setNumber1(T);

11 void setNumber2(T);

12 T getNumber1();

13 T getNumber2();

14 T add(T,T);

15 T sub(T,T);

16 T mul(T,T);

17 T div(T,T);

18 };

19 #include"Lab4.cpp"

20 #endif // LAB4_H_INCLUDED

Page 232: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

223

2.2 อมพลเมนตเตชนไฟลชอ Lab4.cpp 1 //Lab4.cpp

2 #ifdef LAB4_H_INCLUDED

3 template <class T>

4 Cal<T>::Cal(T n1,T n2){number1 = n1; number2 = n2;}

5 template <class T>

6 void Cal<T>::setNumber1(T n1){number1 = n1;}

7 template <class T>

8 void Cal<T>::setNumber2(T n2){number2 = n2;}

9 template <class T>

10 T Cal<T>::getNumber1(){return number1;}

11 template <class T>

12 T Cal<T>::getNumber2(){return number2;}

13 template <class T>

14 T Cal<T>::add(T n1,T n2){return n1+n2;}

15 template <class T>

16 T Cal<T>::sub(T n1,T n2){return n1-n2;}

17 template <class T>

18 T Cal<T>::mul(T n1,T n2){return n1*n2;}

19 template <class T>

20 T Cal<T>::div(T n1,T n2){return n1/n2;}

21 #endif LAB4_H_INCLUDED

2.3 ทดสอบการท างานไฟลชอ TestLab4.cpp

Page 233: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

224

1 //TestLab4.cpp

2 #include<iostream>

3 #include"Lab4.h"

4 using namespace std;

5 int main( ){

6 Cal<double> c(3.5,5.6);

7 c.setNumber1(20.5);

8 c.setNumber2(10.5);

9 cout<<c.getNumber1()<<" + "<<c.getNumber2()<<" = ";

10 cout<<c.add(c.getNumber1(),c.getNumber2())<<endl;

11 cout<<c.getNumber1()<<" - "<<c.getNumber2()<<" = ";

12 cout<<c.sub(c.getNumber1(),c.getNumber2())<<endl;

13 cout<<c.getNumber1()<<" * "<<c.getNumber2()<<" = ";

14 cout<<c.mul(c.getNumber1(),c.getNumber2())<<endl;

15 cout<<c.getNumber1()<<" / "<<c.getNumber2()<<" = ";

16 cout<<c.div(c.getNumber1(),c.getNumber2())<<endl;

17 return 0;

18 }

ผลลพธการท างานของโปรแกรม

Page 234: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

225

เฉลยใบงำน บทท 12 เรอง เทมเพลต

ค ำชแจง 1. ใบงานมทงหมด 2 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาสรางเทมเพลตฟงกชนของการค านวณหาคาเฉลยของเลข 4 จ านวน พรอมทงเขยนโปรแกรมแสดงการท างานดวย ( 15 คะแนน )

1 #include<iostream>

2 using namespace std;

3 template <typename T>

4 T avg(T,T,T,T);

5 int main( ){

6 int t1,t2,t3,t4;

7 double d1,d2,d3,d4;

8 cout<<"Enter number :";cin>>t1>>t2>>t3>>t4;

9 cout<<"Average = "<<avg(t1,t2,t3,t4)<<endl;

10 cout<<"Enter number :";cin>>d1>>d2>>d3>>d4;

11 cout<<"Average = "<<avg(d1,d2,d3,d4)<<endl;

12 return 0;

13 }

14 template <typename T>

15 T avg(T t1,T t2,T t3,T t4){return (t1+t2+t3+t4)/4;}

ผลลพธการท างานของโปรแกรม

Enter number : 2 3 4 5

Average = 3

Enter number : 3.5 4.6 9.9 8.9

Average = 6.725

Page 235: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

226

2. ใหนกศกษาสรางเทมเพลตคลาสของการค านวณหาผลบวก ลบ คณ หาร โดยมการสรางเฮดเดอรไฟลแยกจากอมพลเมนตเตชนไฟล และไฟลในการทดสอบการท างาน ( 35 คะแนน ) 2.1 สรางเฮดเดอรไฟลชอ Lab4.h

1 //Lab4.h

2 #ifndef LAB4_H_INCLUDED

3 #define LAB4_H_INCLUDED

4 template <class T>

5 class Cal{

6 private:

7 T number1, number2;

8 public:

9 Cal(T,T);

10 void setNumber1(T);

11 void setNumber2(T);

12 T getNumber1();

13 T getNumber2();

14 T add(T,T);

15 T sub(T,T);

16 T mul(T,T);

17 T div(T,T);

18 };

19 #include"Lab4.cpp"

20 #endif // LAB4_H_INCLUDED

Page 236: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

227

2.2 อมพลเมนตเตชนไฟลชอ Lab4.cpp 1 //Lab4.cpp

2 #ifdef LAB4_H_INCLUDED

3 template <class T>

4 Cal<T>::Cal(T n1,T n2){number1 = n1; number2 = n2;}

5 template <class T>

6 void Cal<T>::setNumber1(T n1){number1 = n1;}

7 template <class T>

8 void Cal<T>::setNumber2(T n2){number2 = n2;}

9 template <class T>

10 T Cal<T>::getNumber1(){return number1;}

11 template <class T>

12 T Cal<T>::getNumber2(){return number2;}

13 template <class T>

14 T Cal<T>::add(T n1,T n2){return n1+n2;}

15 template <class T>

16 T Cal<T>::sub(T n1,T n2){return n1-n2;}

17 template <class T>

18 T Cal<T>::mul(T n1,T n2){return n1*n2;}

19 template <class T>

20 T Cal<T>::div(T n1,T n2){return n1/n2;}

21 #endif LAB4_H_INCLUDED

ผลลพธการท างานของโปรแกรม 20.5 + 10.5 = 31

20.5 – 10.5 = 10

20.5 * 10.5 = 215.25

20.5 / 10.5 = 1.95238

Page 237: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

228

แบบทดสอบหลงเรยน บทท 12 เรอง เทมเพลต

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอใดคอการก าหนดเทมเพลตฟงกชนทไมถกตอง

ก. Template < typename T, typename X > ข. template < typename Y > ค. template < class T> ง. template < typename T, typename X >

2. ขอความตอไปน กลาวถงเทมเพลตฟงกชน ในขอใดไมถกตอง ก. เทมเพลตฟงกชนเปนการก าหนดรปแบบชนดขอมลโดยทวไปไมเฉพาะเจาะจง ข. เทมเพลตฟงกชนสามารถรองรบการท างานของชนดขอมลทแตกตางกนได ค. ในการใชงานเทมเพลตฟงกชนคอมไพลเลอรจะท าการสรางฟงกชนทใชงานกบชนดขอมล

ของอารกวเมนตใหอตโนมต ง. ภายในเทมเพลตฟงกชนสามารถรองรบลอจกการท างานทแตกตางกนได

3. มชอเทมเพลตฟงกชนเหมอนกนแตมพารามเตอรแตกตางกน คอลกษณะของอะไร ก. เทมเพลตฟงกชน ข. เทมเพลตฟงกชนเฉพาะ ค. โอเวอรโหลดดงเทมเพลตฟงกชน ง. โอเวอรไรดฟงกชน

4. ขอความตอไปน กลาวถงเทมเพลตคลาส ในขอใดไมถกตอง ก. ขนตอนการสรางเทมเพลตคลาสจะมขนตอนแตกตางจากการสรางคลาสปกต ข. เมอมการสรางวตถจากเทมเพลตคลาสจะตองระบชนดขอมลดวย ค. การอมพลเมนตเตชนเทมเพลตคลาสจะไมสามารถแยกไฟลในการอมพลเมนตเตชนได ง. รองรบการสรางวตถจากเทมเพลตคลาสทมชนดขอมลแตกตางกนได

Page 238: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

229

จากโปรแกรมตอไปนตอบค าถามขอ 5 -7 #include<iostream>

template<typename T>

void print(T __1__){std::cout<<t<<std::endl;}

template<typename T>

__2__ add(T t1,T t2){return t1+t2;}

int main( ){

print(5);

std::cout<<add(2,2);

return 0;

}

5. จากโปรแกรมดงกลาวชองหมายเลข 1 จะตองเตมค าใดตอไปน

ก. t ข. T ค. print ง. add

6. จากโปรแกรมดงกลาวชองหมายเลข 2 จะตองเตมค าใดตอไปน ก. add ข. print ค. T ง. Template

7. จากโปรแกรมดงกลาวเมอท างานแลวไดผลลพธตรงกบขอใด ก. 5 ข. 5 4 ค. 4 5 ง. 5 4

Page 239: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

230

จากโปรแกรมดงกลาวตอบค าถามขอ 8 - 10 1 #include<iostream>

2 template <class T,class __1___>

3 class Avg{

4 private:

5 T number1;

6 Q number2;

7 public:

8 Avg<T,Q>(T __2__,Q t2){number1 = t1; number2 = t2;}

9 Q cal(){return (number1 + number2)/2;}

10 };

11 int main( ){

12 Avg<int,double> a(2,3);

13 std::cout<<a.cal();

14 return 0;

15 }

8. จากโปรแกรมดงกลาวชองหมายเลข 1 จะตองเตมค าใดตอไปน

ก. T ข. Q ค. X ง. Z

9. จากโปรแกรมดงกลาวชองหมายเลข 2 จะตองเตมค าใดตอไปน ก. t1 ข. t2 ค. number1 ง. number2

10. จากโปรแกรมดงกลาวเมอท างานแลวไดผลลพธตรงกบขอใด ก. 1 ข. 2.00 ค. 2.50 ง. 2.5

Page 240: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

231

เฉลยแบบทดสอบหลงเรยน บทท 12 เรอง เทมเพลต

ขอท เฉลย

1 ก 2 ง 3 ค 4 ค 5 ก 6 ค 7 ง 8 ข 9 ก

10 ง

Page 241: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

232

Page 242: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

233

บทท 13 เรอง เอกเซพชน

Page 243: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

234

แบบทดสอบกอนเรยน บทท 13 เรอง เอกเซพชน

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอผดพลาดของโปรแกรมคอมพวเตอรแบงออกไดเปนกประเภท

ก. 2 ประเภท ข. 3 ประเภท ค. 4 ประเภท ง. 5 ประเภท

2. ค าสงภาษา C++ ในการรบขอมลจากผใช cin<<number1 เกบไวในตวแปร number1 เปนความผดพลาดตรงกบขอใด ก. ขอผดพลาดทางไวยากรณของภาษา ข. ล าดบขนตอนการตความผดพลาด ค. ความผดพลาดขณะโปรแกรมท างาน ง. ความผดพลาดขณะคอมไพลโปรแกรม

3. จากนพจนตอไปน x = 10/0 เปนความผดพลาดตรงกบขอใด ก. ขอผดพลาดทางไวยากรณของภาษา ข. ล าดบขนตอนการตความผดพลาด ค. ความผดพลาดขณะโปรแกรมท างาน ง. ความผดพลาดขณะคอมไพลโปรแกรม

4. ความผดพลาดในขอใดทท าการคนหาและแกไขไดยากทสด ก. ขอผดพลาดทางไวยากรณของภาษา ข. ล าดบขนตอนการความผดพลาด ค. ความผดพลาดขณะโปรแกรมท างาน ง. ความผดพลาดขณะคอมไพลโปรแกรม

Page 244: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

235

5. ขอใดคอค าสงในการดกจบการท างานทผดพลาดของโปรแกรมภาษา C++ ก. try ข. throw ค. catch ง. throw..catch

จากโปรแกรมตอไปนตอบค าถามขอท 6 - 7 1 #include<iostream>

2 using namespace std;

3 int main( ){

4 int number1,number2,sum;

5 cout<<"Enter number1,number2 :";

6 cin>>number1>>number2;

7 _____1______

8 if(number2 == 0)

9 throw "Division by zero";

10 sum = number1 / number2;

11 cout<<sum<<endl;

12 }

13 catch(______2_______){

14 cerr << "ERROR CODE: " << e;

15 }

16 return 0;

17 }

6. จากโปรแกรมดงกลาวบรรทดท 7 หมายเลข 1 เตมคาใดท าใหการท างานของโปรแกรมสมบรณ ก. { try ข. catch( ) ค. throw ง. try {

7. จากโปรแกรมดงกลาวบรรทดท 13 หมายเลข 2 เตมคาใดท าใหการท างานของโปรแกรมสมบรณ ก. char ข. const char e ค. const char* e ง. char* e

Page 245: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

236

จากโปรแกรมตอไปนตอบค าถามขอท 8 - 9 1 #include <iostream>

2 #include <stdexcept>

3 #include <vector>

4 using namespace std;

5 int main () {

6 vector<int> v(30);

7 try {

8 v.at(___1___)=10;

9 }

10 catch (out_of_range& _____2_____) {

11 cerr << "Out of Range error: " << outOfRange.what();

12 }

13 return 0;

14 }

8. จากโปรแกรมดงกลาวในบรรทดท 8 หมายเลข 1 จะตองเตมโคดอะไรทท าใหมการโยนขอผดพลาดออกมา ก. 10 ข. 15 ค. 20 ง. 40

9. จากโปรแกรมดงกลาวในบรรทดท 10 หมายเลข 2 จะตองเตมโคดอะไรทท าใหโปรแกรมรบขอผดพลาดท างานไดอยางสมบรณ ก. OutOfRange ข. Out_of_range ค. Out_of_range& ง. int

10. การเขยนโปรแกรมภาษา C++ โดยเราตองการน าคลาสมาตรฐานในการดกจบขอผดพลาดในการท างานมาใชในการดกจบ การจองพนทหนวยความจ า ขอใดถกตอง ก. std::bad_alloc ข. std::runtime_error ค. std::out_of_range ง. std::length_error

Page 246: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

237

เฉลยแบบทดสอบกอนเรยน บทท 13 เรอง เอกเซพชน

ขอท เฉลย

1 ข 2 ก 3 ค 4 ข 5 ก 6 ง 7 ค 8 ง 9 ก

10 ก

Page 247: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

238

ใบแบบฝกหด บทท 13 เรอง เอกเซพชน

ค ำชแจง 1. แบบฝกหดมทงหมด 4 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกประเภทของขอผดพลาดของโปรแกรมคอมพวเตอรมอะไรบาง ( 10 คะแนน ) 2. บอกรปแบบการจดการขอผดพลาดดวย try…throw…catch ( 10 คะแนน ) 3. บอกรปแบบการใชค าสง catch มากกวาหนงตว ( 15 คะแนน ) 4. บอกคลาสมาตรฐานของการดกจบขอผดพลาดคออะไร ประกอบดวยอะไรบาง ( 15 คะแนน )

Page 248: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

239

ใบเฉลยแบบฝกหด บทท 13 เรอง เอกเซพชน

ค ำชแจง 1. แบบฝกหดมทงหมด 4 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. ใหนกศกษาบอกประเภทของขอผดพลาดของโปรแกรมคอมพวเตอรมอะไรบาง ( 10 คะแนน ) ตอบ ประเภทของขอผดพลาด คอ เปนความผดพลาดของโปรแกรมคอมพวเตอรแบงออกเปน 3 ชนด คอ ขอผดพลาดทางไวยากรณของภาษา (Syntax error) 2. ขอผดพลาดจากการตความหมายผดพลาด(Logical error ) และ 3. ขอผดพลาดขณะโปรแกรมก าลงท างาน (Run-time error) 2. บอกรปแบบการจดการขอผดพลาดดวย try…throw…catch ( 10 คะแนน ) ตอบ การจดการขอผดพลาดดวย try...throw…catch เปนการใชงานค าสง try ตรวจสอบการท างานทผดพลาดของโปรแกรม เมอพบการท างานทผดพลาด กจะโยนความผดพลาดนนออกมาดวยค าสง throw จากนนใชค าสง catch ในการรบขอผดพลาดนนมา โดยมรปแบบค าสงตอไปน

try{

…………

throw statements;

}catch(exception& e){

………….

}

3. บอกรปแบบการใชค าสง catch มากกวาหนงตว ( 15 คะแนน ) ตอบ การใชค าสง catch มากกวาหนงตว เปนการการใชงานค าสงรบขอผดพลาดไดหลายกรณขนอยกบวา การโยนขอผดพลาดนนตรงกบเงอนไขของค าสง catch ไหน แลวค าสง catch ทรบความผดพลาดนนมาจะรบไปด าเนนการตอไป มรปแบบดงตอไปน

Page 249: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

240

try {

statements;

throw statement;

statements;

throw statement;

}catch(datatype identifier ){

statements;

}catch(datatype identifier ) {

statements;

}

4. บอกคลาสมาตรฐานของการดกจบขอผดพลาดคออะไร ประกอบดวยอะไรบาง ( 15 คะแนน ) ตอบ คลาสมาตรฐานของการดกจบขอผดพลาด เปนการจดการขอผดพลาดทเกดขนโดยใชค าสงจากคลาสมาตรฐานของภาษา C++ ซงจะมคลาสแมชอวา std::exception และมคลาสลกทสบทอดม า ป ร ะ ก อ บ ด ว ย ค อ bad_alloc, bad_cast, bad_typeid, bad_exception, logic_failure แ ล ะ runtime_error ส วนคลาส logic_failure จะ มคลาสลก คอ domain_error, invalid_argument, length_error และ out_of_range ส วนคลาส runtime_error ประกอบดว ยคล าส ลก ค อ overflow_error, range_error และ underflow_error

Page 250: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

241

ใบงำน บทท 13 เรอง เอกเซพชน

ค ำชแจง 1. ใบงานมทงหมด 3 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. จงเขยนโปรแกรมตอไปนใหสมบรณพรอมทงแสดงผลลพธ ( 15 คะแนน )

1 #include <iostream>

2 using namespace std;

3 double division(int a, int b){

4 if( b == 0 ){

5 throw "Division by zero";

6 }

7 return (a/b);

8 }

9 int main (){

10 int x = 50;

11 int y = 0;

12 double z = 0;

13 try {

14 z = division(x, y);

15 cout << z << endl;

16 }catch (_____________) {

17 cerr << err << endl;

18 }

19 return 0;

20 }

Page 251: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

242

2. จงเขยนโปรแกรมตอไปนใหสมบรณพรอมทงแสดงผลลพธ ( 15 คะแนน ) 1 #include <iostream>

2 #include <stdexcept>

3 #include <vector>

4 using namespace std;

5 int main (void) {

6 vector<string> vector1(20);

7 try {

8 vector1.at(58)=10;

9 cout<<vector1.capacity();

10 }

11 catch (______________) {

12 cerr << "Out of Range error: " << oor.what();

13 }

14 return 0;

15 }

3. จงเขยนโปรแกรมตอไปนใหสมบรณพรอมทงแสดงผลลพธ ( 20 คะแนน ) 1 #include<iostream>

2 #include<stdexcept>

3 using namespace std;

4 int main( ){

5 string x;

6 try{

7 x.resize(x.max_size()+1);

8 }

9 catch(________________){

10 cerr << "ERROR : "<< e.what();

11 }

12 catch(int e){

13 cerr << "ERROR "<<e;

14 }

15 return 0;

16 }

Page 252: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

243

เฉลยใบงำน บทท 13 เรอง เอกเซพชน

ค ำชแจง 1. ใบงานมทงหมด 3 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. จงเขยนโปรแกรมตอไปนใหสมบรณพรอมทงแสดงผลลพธ ( 15 คะแนน )

1 #include <iostream>

2 using namespace std;

3 double division(int a, int b){

4 if( b == 0 ){

5 throw "Division by zero";

6 }

7 return (a/b);

8 }

9 int main (){

10 int x = 50;

11 int y = 0;

12 double z = 0;

13 try {

14 z = division(x, y);

15 cout << z << endl;

16 }catch (const char* err) {

17 cerr << err << endl;

18 }

19 return 0;

20 }

ผลลพธกำรท ำงำนของโปรแกรม

Division by zero

Page 253: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

244

2. จงเขยนโปรแกรมตอไปนใหสมบรณพรอมทงแสดงผลลพธ ( 15 คะแนน ) 1 #include <iostream>

2 #include <stdexcept>

3 #include <vector>

4 using namespace std;

5 int main (void) {

6 vector<string> vector1(20);

7 try {

8 vector1.at(58)=10;

9 cout<<vector1.capacity();

10 }

11 catch (out_of_range& oor) {

12 cerr << "Out of Range error: " << oor.what();

13 }

14 return 0;

15 }

ผลลพธกำรท ำงำนของโปรแกรม

Out of Range error: vector::_M_range_check

Page 254: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

245

3. จงเขยนโปรแกรมตอไปนใหสมบรณพรอมทงแสดงผลลพธ ( 20 คะแนน ) 1 #include<iostream>

2 #include<stdexcept>

3 using namespace std;

4 int main( ){

5 string x;

6 try{

7 x.resize(x.max_size()+1);

8 }

9 catch(const length_error& e){

10 cerr << "ERROR : "<< e.what();

11 }

12 catch(int e){

13 cerr << "ERROR "<<e;

14 }

15 return 0;

16 }

ผลลพธกำรท ำงำนของโปรแกรม

ERROR : basic_string::resize

Page 255: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

246

แบบทดสอบหลงเรยน บทท 13 เรอง เอกเซพชน

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. ขอผดพลาดของโปรแกรมคอมพวเตอรแบงออกไดเปนกประเภท

ก. 2 ประเภท ข. 3 ประเภท ค. 4 ประเภท ง. 5 ประเภท

2. ค าสงภาษา C++ ในการรบขอมลจากผใช cin<<number1 เกบไวในตวแปร number1 เปนความผดพลาดตรงกบขอใด ก. ขอผดพลาดทางไวยากรณของภาษา ข. ล าดบขนตอนการตความผดพลาด ค. ความผดพลาดขณะโปรแกรมท างาน ง. ความผดพลาดขณะคอมไพลโปรแกรม

3. จากนพจนตอไปน x = 10/0 เปนความผดพลาดตรงกบขอใด ก. ขอผดพลาดทางไวยากรณของภาษา ข. ล าดบขนตอนการตความผดพลาด ค. ความผดพลาดขณะโปรแกรมท างาน ง. ความผดพลาดขณะคอมไพลโปรแกรม

4. ความผดพลาดในขอใดทท าการคนหาและแกไขไดยากทสด ก. ขอผดพลาดทางไวยากรณของภาษา ข. ล าดบขนตอนการความผดพลาด ค. ความผดพลาดขณะโปรแกรมท างาน ง. ความผดพลาดขณะคอมไพลโปรแกรม

Page 256: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

247

5. ขอใดคอค าสงในการดกจบการท างานทผดพลาดของโปรแกรมภาษา C++ ก. try ข. throw ค. catch ง. throw..catch

จากโปรแกรมตอไปนตอบค าถามขอท 6 - 7 1 #include<iostream>

2 using namespace std;

3 int main( ){

4 int number1,number2,sum;

5 cout<<"Enter number1,number2 :";

6 cin>>number1>>number2;

7 _____1______

8 if(number2 == 0)

9 throw "Division by zero";

10 sum = number1 / number2;

11 cout<<sum<<endl;

12 }

13 catch(______2_______){

14 cerr << "ERROR CODE: " << e;

15 }

16 return 0;

17 }

6. จากโปรแกรมดงกลาวบรรทดท 7 หมายเลข 1 เตมคาใดท าใหการท างานของโปรแกรมสมบรณ ก. { try ข. catch( ) ค. throw ง. try {

7. จากโปรแกรมดงกลาวบรรทดท 13 หมายเลข 2 เตมคาใดท าใหการท างานของโปรแกรมสมบรณ ก. char ข. const char e ค. const char* e ง. char* e

Page 257: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

248

จากโปรแกรมตอไปนตอบค าถามขอท 8 - 9 1 #include <iostream>

2 #include <stdexcept>

3 #include <vector>

4 using namespace std;

5 int main () {

6 vector<int> v(30);

7 try {

8 v.at(___1___)=10;

9 }

10 catch (out_of_range& _____2_____) {

11 cerr << "Out of Range error: " << outOfRange.what();

12 }

13 return 0;

14 }

8. จากโปรแกรมดงกลาวในบรรทดท 8 หมายเลข 1 จะตองเตมโคดอะไรทท าใหมการโยนขอผดพลาดออกมา ก. 10 ข. 15 ค. 20 ง. 40

9. จากโปรแกรมดงกลาวในบรรทดท 10 หมายเลข 2 จะตองเตมโคดอะไรทท าใหโปรแกรมรบขอผดพลาดท างานไดอยางสมบรณ ก. OutOfRange ข. Out_of_range ค. Out_of_range& ง. int

10. การเขยนโปรแกรมภาษา C++ โดยเราตองการน าคลาสมาตรฐานในการดกจบขอผดพลาดในการท างานมาใชในการดกจบ การจองพนทหนวยความจ า ขอใดถกตอง ก. std::bad_alloc ข. std::runtime_error ค. std::out_of_range ง. std::length_error

Page 258: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

249

เฉลยแบบทดสอบหลงเรยน บทท 13 เรอง เอกเซพชน

ขอท เฉลย

1 ข 2 ก 3 ค 4 ข 5 ก 6 ง 7 ค 8 ง 9 ก

10 ก

Page 259: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

250

Page 260: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

251

บทท 14 เรอง กำรจดกำรไฟล

Page 261: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

252

แบบทดสอบกอนเรยน บทท 14 เรอง กำรจดกำรไฟล

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. คลาสในขอใดทใชส าหรบการจดการสตรมเอาทพต

ก. ofstream ข. fstream ค. ifstream ง. fstream

2. คลาสในขอใดทใชส าหรบการจดการสตรมอนพต ก. ofstream ข. fstream ค. ifstream ง. fstream

3. ขอใดเปนการก าหนดใหวตถเปดไฟลขนมาใชงาน ก. ifile(“data.dat”); ข. ifile(data.dat); ค. ofile(data.txt); ง. ofile.open(“data.txt”);

4. ขอใดคอการเปดไฟลในโหมดการเพมขอมลทายไฟล ก. ios_base :: in | ios_base :: app ข. ios_base :: in ค. ios_base :: out | ios_base :: app ง. ios_base :: out

Page 262: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

253

5. การจดเกบขอมลภายในไฟลจะเปนโครงสรางขอมล สามารถเขยนอานขอมลทงชดเปนเรคอรดในครงเดยว คอลกษณะของการจดเกบไฟลแบบใด ก. Textfile ข. Binary file ค. Document file ง. Database file

จากโปรแกรมตอไปนใชตอบค าถามขอท 6 – 7 1 #include<iostream>

2 #include<fstream>

3 using namespace std;

4 int main( ){

5 ____1____ ofile;

6 ofile.open("person.dat");

7 ofile<<"Thailand";

8 ____2____

9 return 0;

10 }

6. จากโปรแกรมดงกลาวบรรทดท 5 หมายเลข 1 จะตองเตมค าสงใดทท าใหโปรแกรมท างานได ก. ofstream ข. fstream ค. ifstream ง. ifile

7. จากโปรแกรมดงกลาวบรรทดท 8 หมายเลข 2 จะตองเตมค าสงใดทท าใหโปรแกรมท างานได ก. ofile<< “phone”; ข. ofile.close(); ค. ofile.open(); ง. ofile(close);

Page 263: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

254

จากโปรแกรมตอไปนใชตอบค าถามขอท 8 - 10 1 #include<iostream>

2 #include<fstream>

3 using namespace std;

4 struct ___1____{

5 char id_sub[10];

6 char name_sub[20];

7 double credit_sub = 0.00;

8 double grade_sub = 0.00;

9 };

10 subject sub;

11 int main( ){

12 ofstream ofile ( "stu.dat", ___2___ | ios_base::app );

13 int i = 1;

14 while(i<4){

15 cout<<"Enter id_sub =";

16 cin.getline(sub.id_sub,10);

17 cout<<"Enter name_sub =";

18 cin.getline(sub.name_sub,20);

19 cout<<"Enter credit_sub =";

20 cin>>sub.credit_sub;

21 cin.get();

22 cout<<"Enter grade_sub = ";

23 cin>>sub.grade_sub;

24 cin.get();

25 ___3___( ( char*)& sub, sizeof sub);

26 i++;

27 }

28 ofile.close();

29 }

30 return 0;

31 }

8. จากโปรแกรมบรรทดท 4 หมายเลข 1 จะตองเตมค าสงใดทท าใหโปรแกรมท างานได ก. class ข. main ค. ifile ง. subject

Page 264: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

255

9. จากโปรแกรมบรรทดท 12 หมายเลข 2 จะตองเขยนโคดอยางไร จะตองเตมค าสงใดทท าใหโปรแกรมท างานได ก. ios_base::binary ข. ios_base::in ค. ios_base::out ง. ios_base::app

10. จากโปรแกรมบรรทดท 25 หมายเลข 1 จะตองเตมค าสงใดทท าใหโปรแกรมท างานได ก. ifile.write ข. ofile.write ค. ofile.out ง. ofile.in

Page 265: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

256

เฉลยแบบทดสอบกอนเรยน บทท 14 เรอง กำรจดกำรไฟล

ขอท เฉลย

1 ก 2 ค 3 ง 4 ค 5 ข 6 ก 7 ข 8 ง 9 ก

10 ข

Page 266: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

257

ใบแบบฝกหด บทท 14 เรอง กำรจดกำรไฟล

ค ำชแจง 1. แบบฝกหดมทงหมด 5 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. จงบอกลกษณะการอนพตขอมลในไฟล ( 10 คะแนน ) 2. จงบอกลกษณะการเอาทพตขอมลในไฟล ( 10 คะแนน ) 3. จงบอกการใชงานไฟลโหมดตาง ๆ ( 10 คะแนน ) 4. จงบอกลกษณะของไฟลแบบล าดบ ( 10 คะแนน ) 5. จงบอกลกษณะของไฟลไบนาร ( 10 คะแนน )

Page 267: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

258

ใบเฉลยแบบฝกหด บทท 14 เรอง กำรจดกำรไฟล

ค ำชแจง 1. แบบฝกหดมทงหมด 5 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. จงบอกลกษณะการอนพตขอมลในไฟล ( 10 คะแนน ) ตอบ อนพตเปนการจดการกบอนพตสตรมโดยมการสรางวตถจากคลาส ifstream โดยจะตองน าเขาไฟล fstream เขามา หลงจากนนด าเนนการใหวตถตดตอกบไฟล ใชเมธอด open(“ชอไฟล”) การอานขอมลภายในไฟลจะใชเมธอดของคลาส istream กบคลาส ifstream การอานขอมลสามารถอานทละตวอกษร getch() และทละบรรทด getline() เมออานไฟลเสรจใชเมธอด close() ในการปดไฟล โดยมรปแบบตอไปน

#include<fstream> น าเขาไฟล fstream ifstream ifile; สรางวตถ ifile จากคลาส ifstream ifile.open(“data.dat”); วตถ ifile สงเปดไฟลชอ data.dat char ch; ประกาศตวแปร ch ชนดอกขระ ifile>>ch; อานขอมลจากไฟลทละอกขระ ifile.close(); วตถ ifile สงปดไฟล

2. จงบอกลกษณะการเอาทพตขอมลในไฟล ( 10 คะแนน ) ตอบ เอาทพตสตรมเปนการจดการเกยวกบสตรมเอาทพต โดยมการน าเขาไฟล fstream และท าการสรางวตถขนมา ใหวตถเชอมตอกบไฟลดวยเมธอด open(“ชอไฟล”) จากนนน าขอมลจดเกบในไฟลดวยค าสง cout หลงจากใชงานไฟลเสรจจะตองท าการปดไฟลดวยเมธอด close() มรปแบบตอไปน #include <fstream> น าเขา fstream ofstream ofile; สรางวตถ ofile จากคลาส ofstream ofile(“data.txt”); สงใหวตถ ofile ตดตอไฟล ofile << “Phangnga”; น าขอมล Phangnag เกบลงไฟล ofile.close(); วตถสงปดไฟลเมอท างานเสรจ

Page 268: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

259

3. จงบอกการใชงานไฟลโหมดตาง ๆ ( 10 คะแนน ) ตอบ โหมดไฟล เปนการระบรายละเอยดในการเปดไฟลขนมาเพออาน เขยน หรอเพมขอมลตอจากบรรทดสดทาย โดยในการเปดไฟลนนสามารถระบอารกวเมนตจ านวน 2 ตว ตวแรกจะเปนชอไฟลสวนตวทสองจะเปนการระบโหมดไฟลในการเปด ในคลาส ios_base ไดมการก าหนดชนดโหมดเปดไฟลเปนตวแทนของโหมดตาง ๆ ซงเปนบตมารกและคาคงท และสามารถน ามารวมกนได โดยใชตวด าเนนการ OR ( | ) ดงตวอยางโหมดไฟลตอไปน

ios_base::in เปดไฟลส าหรบการอาน ios_base::out เปดไฟลส าหรบการเขยน ถามไฟลอยแลว ขอมลจะถกลบทงกอน ios::base::in| ios_base :: app เปดไฟลส าหรบการเขยนตอทายไฟลเทานน

รปแบบค าสงในการเปดไฟลส าหรบการอานหรอเขยน ifstream ifile(filename, filemode); ofstream ofile; ofile.open( filename, filemode ) 4. จงบอกลกษณะของไฟลแบบล าดบ ( 10 คะแนน ) ตอบ การเขาถงไฟลแบบล าดบ ในการจดเกบขอมลของไฟลแบบล าดบนนจะไมเปนโครงสราง ไมมการระบชนดขอมล การเขาไฟลสามารถเขาถงจากโปรแกรมอดสเตอรโดยทวไปได การอานขอมลจะมการอานจากบรรทดแรกตวอกษรตวแรก ไปจนกวาจะหมดขอความ และครบทกบรรทดและไมสามารถยอนกลบมาได การเขยนขอมลลงไปในไฟลจะเปนการเขยนตอจากบรรทดสดทายเทานน ดงตวอยางค าสงตอไปน การเปดไฟลส าหรบการเขยนตอจากขอมลเดม ofstream ofile; ofile.open(“student.txt”,ios_base::out | ios_base::app ) การเปดไฟลส าหรบการอาน ifstream ifile; ifile.open(“student.txt”,ios_base::in); 5. จงบอกลกษณะของไฟลไบนาร ( 10 คะแนน ) ตอบ ไบนารไฟล เปนการจดเกบขอมลเปนโครงสราง จะมการเกบขอมลในรปแบบของบตและขอมลทจดเกบดวยไบนารไฟลนนจะมสามารถเปดอานดวยโปรแกรมอดสเตอรโดยทวไปได มการก าหนดโหมดขอมลเปนไบนาร ( ios_base::binary) และมการจดเกบขอมลเปนเรคคอรดในครง

Page 269: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

260

เดยวโดยมการใชงานเมธอด write() และอานดวยเมธอด read() ซงเปนเมธอดของคลาส fstream ดงตวอยางโครงสรางการจดเกบขอมลตอไปน

struct student ( char id[11]; char fname[25]; char lname[25]; }; student stu; ofstream ofile( “Student.dat”, ios_base::binary ); ส าหรบการเขยนขอมลของตวแปร stu ลงไบนารไฟล สามารถใชเมธอด write( ) ofile.write( ( char*)& stu, sizeof stu );

Page 270: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

261

ใบงำนท 14 บทท 14 เรอง กำรจดกำรไฟล

ค ำชแจง 1. ใบงานมทงหมด 2 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. จงเขยนโปรแกรมการจดเกบขอมลไวในไฟลแบบตามล าดบ และน าขอมลมาแสดงผลได โดยจดเกบขอมลหนงสอ ประกอบดวย ชอหนงสอ(name_book) ผแตง(author) ราคา(price) จดเกบในชอไฟล Book.txt ( 25 คะแนน ) 2. จงเขยนโปรแกรมการจดเกบขอมลไวในไฟลแบบไบนาร โดยจดเกบขอมลหนงสอ ประกอบดวย ชอหนงสอ(name_book) ผแตง(author) ราคา(price) จดเกบในชอไฟล Book.dat ( 25 คะแนน )

Page 271: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

262

เฉลยใบงำนท 14 บทท 14 เรอง กำรจดกำรไฟล

ค ำชแจง 1. ใบงานมทงหมด 2 ขอ คะแนนเตม 50 คะแนน 2. ใหนกศกษาท าหมดทกขอ --------------------------------------------------------------------------------------------------------------------- 1. จงเขยนโปรแกรมการจดเกบขอมลไวในไฟลแบบตามล าดบ และน าขอมลมาแสดงผลได โดยจดเกบขอมลหนงสอ ประกอบดวย ชอหนงสอ(name_book) ผแตง(author) ราคา(price) จดเกบในชอไฟล Book.txt ( 25 คะแนน ) 1 //Lab14_1.cpp

2 #include<iostream>

3 #include<fstream>

4 #include<iomanip>

5 using namespace std;

6 struct Book{

7 char namebook[11];

8 char authorbook[16];

9 double price;

10 };

11 Book book;

12 int main( ){

13 ofstream ofile ( "Book.txt");

14 if(!ofile.is_open()){

15 cout<<"Unable open file ";

16 }else{

17 int i = 1;

18 while(i<4){

19 cout<<"\nNameBook =";

20 cin.getline(book.namebook,11);

21 cout<<"AuthorBook =";

22 cin.getline(book.authorbook,16);

23 cout<<"Price =";

24 cin>>book.price;

25 cin.get();

26 ofile.write( ( char*)& book, sizeof book);

27 i++;

28 }

29 ofile.close();

30 }

31

32

33 ifstream ifile ( "Book.txt" );

34 if(!ifile.is_open()){

35 cout<<"Unable open file ";

Page 272: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

263

36 }else{

37 ifile.read( ( char*)& book, sizeof book);

38 double sum = 0.00; int i = 1;

39 cout<<setprecision(6);

40 cout<<left<<setw(10)<<"Order"<<setw(15)<<"NameBook"<<

left<<setw(20)<<"AuthorBook"<<left

41 <<setw(20)<<"Price"<<endl;

42 cout<<"-----------------------------------------------------"<<endl;

43 while(!ifile.eof()){

44 cout<<left<<setw(10)<<i<<setw(15)<<book.namebook<<left

<<setw(20)<<book.authorbook<<left

45 <<setw(20)<<book.price<<endl;

46 sum += book.price;

47 i++;

48 ifile.read( ( char*)& book, sizeof book);

49 }

50 cout<<"-----------------------------------------------------"<<endl;

51 cout<<left<<setw(35)<<"Sum = "<<sum;

52 ifile.close();

53 }

54 return 0;

55 }

ผลลพธการท างานของโปรแกรม NameBook = Java

AuthorBook = Wuttiwong

Price = 500

NameBook = C++

AuthorBook = Jaroon

Price = 450

NameBook = HTML

AuthorBook = Luksamee

Price = 230

Order NameBook AuthorBook Price

------------------------------------------------------------------------

1 Java Wuttiwong 500

2 C++ Jaroon 450

3 HTML Luksamee 230

------------------------------------------------------------------------

Sum = 1180

------------------------------------------------------------------------

Page 273: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

264

2. จงเขยนโปรแกรมการจดเกบขอมลไวในไฟลแบบไบนาร โดยจดเกบขอมลหนงสอ ประกอบดวย ชอหนงสอ(name_book) ผแตง(author) ราคา(price) จดเกบในชอไฟล Book.dat ( 25 คะแนน )

1 //Lab14_2.cpp

2 #include<iostream>

3 #include<fstream>

4 #include<iomanip>

5 using namespace std;

6 struct Book{

7 char namebook[11];

8 char authorbook[16];

9 double price;

10 };

11 Book book;

12 int main( ){

13 ofstream ofile ( "Book.dat", ios_base::binary |

ios_base::out | ios_base::app );

14 if(!ofile.is_open()){

15 cout<<"Unable open file ";

16 }else{

17 int i = 1;

18 while(i<4){

19 cout<<"\nNameBook =";

20 cin.getline(book.namebook,11);

21 cout<<"AuthorBook =";

22 cin.getline(book.authorbook,16);

23 cout<<"Price =";

24 cin>>book.price;

25 cin.get();

26 ofile.write( ( char*)& book, sizeof book);

27 i++;

28 }

29 ofile.close();

30 }

31 ifstream ifile ( "Book.dat", ios_base::binary | ios_base::in );

32 if(!ifile.is_open()){

33 cout<<"Unable open file ";

34 }else{

Page 274: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

265

35 ifile.read( ( char*)& book, sizeof book);

36 double sum = 0.00; int i = 1;

37 cout<<setprecision(6);

38 cout<<left<<setw(10)<<"Order"<<setw(15)<<"NameBook

"<<left<<setw(20)<<"AuthorBook"<<left

39 <<setw(20)<<"Price"<<endl;

40 cout<<"-----------------------------------------------------"<<endl;

41 while(!ifile.eof()){

42 cout<<left<<setw(10)<<i<<setw(15)<<book.namebook

<<left<<setw(20)<<book.authorbook<<left

43 <<setw(20)<<book.price<<endl;

44 sum += book.price;

45 i++;

46 ifile.read( ( char*)& book, sizeof book);

47 }

48 cout<<"-----------------------------------------------------"<<endl;

49 cout<<left<<setw(35)<<"Sum = "<<sum;

50 ifile.close();

51 }

52 return 0;

53 }

ผลลพธการท างานของโปรแกรม NameBook = Java

AuthorBook = Wuttiwong

Price = 500

NameBook = C++

AuthorBook = Jaroon

Price = 450

NameBook = HTML

AuthorBook = Luksamee

Price = 230

Order NameBook AuthorBook Price

------------------------------------------------------------------------

1 Java Wuttiwong 500

2 C++ Jaroon 450

3 HTML Luksamee 230

------------------------------------------------------------------------

Sum = 1180

------------------------------------------------------------------------

Page 275: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

266

แบบทดสอบหลงเรยน บทท 14 เรอง กำรจดกำรไฟล

ค ำชแจง 1. ใหนกศกษาเลอก กากบาท X ลงในกระดาษค าตอบทแจกใหโดยเลอกขอทถกทสดเพยงขอเดยว 2. ตอบถกไดคะแนนขอละ 1 คะแนน ตอบผดได 0 คะแนน 3. แบบทดสอบมทงหมด 10 ขอ ---------------------------------------------------------------------------------------------------------------------- 1. คลาสในขอใดทใชส าหรบการจดการสตรมเอาทพต

ก. ofstream ข. fstream ค. ifstream ง. fstream

2. คลาสในขอใดทใชส าหรบการจดการสตรมอนพต ก. ofstream ข. fstream ค. ifstream ง. fstream

3. ขอใดเปนการก าหนดใหวตถเปดไฟลขนมาใชงาน ก. ifile(“data.dat”); ข. ifile(data.dat); ค. ofile(data.txt); ง. ofile.open(“data.txt”);

4. ขอใดคอการเปดไฟลในโหมดการเพมขอมลทายไฟล ก. ios_base :: in | ios_base :: app ข. ios_base :: in ค. ios_base :: out | ios_base :: app ง. ios_base :: out

Page 276: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

267

5. การจดเกบขอมลภายในไฟลจะเปนโครงสรางขอมลสามารถเขยนอานขอมลทงชดเปนเรคอรดในครงเดยว คอลกษณะของการจดเกบไฟลแบบใด ก. Textfile ข. Binary file ค. Document file ง. Database file

จากโปรแกรมตอไปนใชตอบค าถามขอท 6 – 7 1 #include<iostream>

2 #include<fstream>

3 using namespace std;

4 int main( ){

5 ____1____ ofile;

6 ofile.open("person.dat");

7 ofile<<"Thailand";

8 ____2____

9 return 0;

10 }

6. จากโปรแกรมดงกลาวบรรทดท 5 หมายเลข 1 จะตองเตมค าสงใดทท าใหโปรแกรมท างานได ก. ofstream ข. fstream ค. ifstream ง. ifile

7. จากโปรแกรมดงกลาวบรรทดท 8 หมายเลข 2 จะตองเตมค าสงใดทท าใหโปรแกรมท างานได ก. ofile<< “phone”; ข. ofile.close(); ค. ofile.open(); ง. ofile(close);

Page 277: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

268

จากโปรแกรมตอไปนใชตอบค าถามขอท 8 - 10 1 #include<iostream>

2 #include<fstream>

3 using namespace std;

4 struct ___1____{

5 char id_sub[10];

6 char name_sub[20];

7 double credit_sub = 0.00;

8 double grade_sub = 0.00;

9 };

10 subject sub;

11 int main( ){

12 ofstream ofile ( "stu.dat", ___2___ | ios_base::app );

13 int i = 1;

14 while(i<4){

15 cout<<"Enter id_sub =";

16 cin.getline(sub.id_sub,10);

17 cout<<"Enter name_sub =";

18 cin.getline(sub.name_sub,20);

19 cout<<"Enter credit_sub =";

20 cin>>sub.credit_sub;

21 cin.get();

22 cout<<"Enter grade_sub = ";

23 cin>>sub.grade_sub;

24 cin.get();

25 ___3___( ( char*)& sub, sizeof sub);

26 i++;

27 }

28 ofile.close();

29 }

30 return 0;

31 }

8. จากโปรแกรมบรรทดท 4 หมายเลข 1 จะตองเตมค าสงใดทท าใหโปรแกรมท างานได ก. class ข. main ค. ifile ง. subject

Page 278: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

269

9. จากโปรแกรมบรรทดท 12 หมายเลข 2 จะตองเขยนโคดอยางไร จะตองเตมค าสงใดทท าใหโปรแกรมท างานได ก. ios_base::binary ข. ios_base::in ค. ios_base::out ง. ios_base::app

10. จากโปรแกรมบรรทดท 25 หมายเลข 1 จะตองเตมค าสงใดทท าใหโปรแกรมท างานได ก. ifile.write ข. ofile.write ค. ofile.out ง. ofile.in

Page 279: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา

270

เฉลยแบบทดสอบหลงเรยน บทท 14 เรอง กำรจดกำรไฟล

ขอท เฉลย

1 ก 2 ค 3 ง 4 ค 5 ข 6 ก 7 ข 8 ง 9 ก

10 ข

Page 280: ค ำน ำ - pntc.ac.th€¦ · เรียน แบบฝึกหัด ใบงาน ได้จดัทาข้ึนเพื่อใช้งานร่วมกับเอกสารประกอบการสอนรายวิชา