Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
โครงการบรการวชาการอบรมเชงปฏบตการ
เรองการออกแบบและการเขยนโปรแกรม
คอมพวเตอรเบองตนดวยภาษาซ
โดย
อาจารย ปรยากร บวทอง
หลกสตรวศวกรรมคอมพวเตอร
มหาวทยาลยราชภฏเพชรบรณ
หวขอในการอบรม
Part I : พ นฐานการออกแบบและเขยนโปรแกรม
Part II : การเขยนผงงาน
Part III : การเขยนโปรแกรมภาษาซ
2
Part I : พนฐานการออกแบบ
และเขยนโปรแกรม
อาจารย ปรยากร บวทอง
พนฐานการออกแบบและเขยนโปรแกรม
เมอการเขยนโปรแกรมเปนศาสตรวชาแขนงหนง ดงนน จงมวชาทวา
ดวยหลกการเขยนโปรแกรมข นมา ซงหลกการดงกลาว ท าใหผเรมตนศกษา
ไดเขาใจวา กวาจะไดโปรแกรมข นมาสกโปรแกรมหนง จะตองผานขนตอน
อะไรมากอน เพอน าไปสโปรแกรมทไดรบการพฒนาข น สามารถใช
แกปญหาไดจรงและบรรลผลไดในทสด ดงนน เมอตองการฝกฝนการเขยน
โปรแกรมทถกตอง มระบบระเบยบ จงสมควรฝกปฏบตตามขนตอนแลวฝก
ใหเปนนสย
Part I : พนฐานการออกแบบและเขยนโปรแกรม
4
มหาวทยาลยราชภฏเพชรบรณ
ขนตอนการเขยนโปรแกรม
ท ำควำมเขำใจกบปญหำ (Understand the Problem)
พฒนำวธแกปญหำ (Develop the Solution)
เขยนโปรแกรม (Write the Program)
ทดสอบโปรแกรม (Test the Program)
จดท ำเอกสำรและบ ำรงรกษำโปรแกรม (Document and Maintain the Program)
ตองเขาใจกบปญหาใหไดกอน แลวตองวเคราะห
ความตองการของปญหาอยางระมดระวง
เรยกวาขนตอนวธหรออลกอรทม ซงโดยทวไป การเขยน
อลกอรทมมกจะใชภาษาพดในการก าหนดล าดบขนตอนเพอ
การแกไขปญหาใดปญหาหนง
เลอกใชภาษาโปรแกรมโดยพจารณาจากคณสมบต
และความเหมาะสมเปนส าคญ
ทดสอบโปรแกรม เพอคนหาขอผดพลาด
หรอบก (Bug) ทเกดจากโปรแกรม
จะถกจดท าตงแตขนตอนแรกจนถงการทดสอบ โดยจะม
การระบรายละเอยดในหวขอ วตถประสงค ขนตอนการ
ท างาน ใครเปนผเขยน วธหรอขนตอนการใชงาน
5
ความรเบองตนเกยวกบอลกอรทม
ในความจรงแลว การด าเนนชวตปจจบนของมนษย ลวนเกยวของกบ
อลกอรทมทงสน ใหลองนกดวากจกรรมของแตละคน ลวนมขนตอนทมการ
ล าดบกจกรรมอยางชดเจนตงแตจดเรมตนจนกระทงไปสผลลพธตามท
ตองการ เชน อลกอรทมการตมบะหม
1. จดเตรยมบะหมกงส าเรจรป
2. ตมน าสะอาดใหเดอด
3. น าบะหมใสลงในชาม
4. ฉกซองเทเครองปรงลงในชาม
5. น าน าทตมเดอดเทลงในชาม
6. ปดฝา
7. รอประมาณ 3 นาท
6
Part I : พนฐานการออกแบบและเขยนโปรแกรม มหาวทยาลยราชภฏเพชรบรณ
คณสมบตของอลกอรทม
อลกอรทมเปนกระบวนการทสรางขนจากกฎเกณฑ
กฎเกณฑทน ามาสรางเปนอลกอรทม ตองไมคลมเครอ
การประมวลผลตองเปนล าดบขนตอน
กระบวนการตองใหผลลพธตามทก าหนดในปญหา
อลกอรทมตองมจดส นสด
7
Part I : พนฐานการออกแบบและเขยนโปรแกรม มหาวทยาลยราชภฏเพชรบรณ
ประสทธภาพของอลกอรทม
อลกอรทมทตองใชเวลาในการด าเนนการนอยทสด
อลกอรทมทดตองใชหนวยความจ านอยทสด
อลกอรทมทดตองมความยดหยน
อลกอรทมทดตองใชเวลาในการพฒนานอยทสด
อลกอรทมทดตองงายตอการท าความเขาใจ
8
Part I : พนฐานการออกแบบและเขยนโปรแกรม มหาวทยาลยราชภฏเพชรบรณ
การวเคราะหงาน
ก าหนดสงทโจทยตองการ
เปนขนตอนวเคราะหปญหาจากโจทย โจทยตองการอะไร ซงความตองการของโจทยอาจ
มมากกวาหนงงานกเปนได กระบวนการนจดไดวาเปนขนตอนแรกทส าคญทเดยว เพรา
หากตโจทยผดพลาด นนหมายถงขนตอนทจะกระท าตอไปนน กจะผดพลาดทงหมด
ก าหนดรปแบบผลลพธ (Output)
เปนขนตอนการออกแบบผลลพธหรอรายงาน โดยขอมลทแสดงบนรายงานนนจะตองม
รายละเอยดครบถวน และทส าคญ รายละเอยดขอมลในรายงาน จะท าใหเราไดทราบถง
ขอมลน าเขาวามอะไรบาง
ก าหนดขอมลน าเขา (Input)
เปนขนตอนการก าหนดขอมลน าเขา วาโปรแกรมตองมขอมลน าเขาอะไรบาง เพอน าไป
ประมวลผลใหไดผลลพธตามทไดออกแบบไว อยางไรกตาม ขอมลน าเขา สามารถ
พจารณาไดจากรายงานทถกก าหนดขนในขนตอนท 2 ทผานมา
9
การวเคราะหงาน
ก าหนดตวแปร
เปนขนตอนการก าหนดตวแปรทใชแทนความหมายคาขอมลตางๆ ซงการก าหนด
ตวแปร ควรก าหนดชอตวแปรทสอความหมายไดด เมออานแลวกรวา เปนตวแปร
เกบคาใด เชน ชอนกศกษา อาจตงชอวา std_name ซงยอมสอความหมายไดดกวาการใชชอตวแปร a เปนตน
ก าหนดขนตอนการประมวลผล
เปนการก าหนดอลกอรทมเพอน าไปสการประมวลผล จนไดผลลพธตามทตองการ
โดยจะมการน าขอมลเขา และตวแปรทตองใชงานตางๆ มาผนการประมวลผล ไม
วาจะเปนสตรการค านวณ การตรวจสอบเงอนไขเพอการคดแยก เปนตน ซง
อลกอรทมจะถกเขยนข นมาเปนขอๆ โดยอาจเขยนอยในรปแบบของขอความ รหส
เทยม หรอผงงานกไดแลวแตความเหมาะสม
10
Part I : พนฐานการออกแบบและเขยนโปรแกรม มหาวทยาลยราชภฏเพชรบรณ
ตวอยางท 1 11
จงค านวณชดตวเลข 3 คา เพอหาผลรวม และผลเฉลยทได
1. สงทโจทยตองการ
ค านวณผลรวมและคาเฉลยจากชดตวเลข 3 คา
2. รปแบบผลลพธ
Number 1 = 10 Number 2 = 20
Number 3 = 30
Sumation = 60
Average = 20
Part I : พนฐานการออกแบบและเขยนโปรแกรม มหาวทยาลยราชภฏเพชรบรณ
ตวอยางท 1 12
3. ขอมลน าเขา
ตวเลข 3 คา
4. ตวแปร
num1 คอคาตวเลขตวท 1
num2 คอคาตวเลขตวท 2
num3 คอคาตวเลขตวท 3 sum คอคาผลรวมจากตวเลขทง 3
คา
avg คอคาเฉลยจากตวเลขทง 3 คา
5. ขนตอนการประมวลผล 1. เรมตน 2. ประกาศตวแปรทตองการใชงาน 3. รอรบคาตวเลข num1, num2 และ num3 4. ก าหนดให sum = num1+ num2 + num3 5. ก าหนดให avg = sum / 3 6. พมพคา sum และ avg 7. จบการท างาน
Part I : พนฐานการออกแบบและเขยนโปรแกรม มหาวทยาลยราชภฏเพชรบรณ
ลองท าด 13
จงเขยนขนตอนการวเคราะหงาน เพอค านวณหาพ นท ของสามเหลยม
Area = ½ x ฐาน x สง โดยมขอมลเขา (Input) จากคยบอรด คอ
คาของฐานของสามเหลยม (b: Base) และคาความสงของสามเหลยม
(h: Height)พรอมพมพผลลพธ
Part I : พนฐานการออกแบบและเขยนโปรแกรม มหาวทยาลยราชภฏเพชรบรณ
Part II : การเขยนผงงาน (Flowchart)
อาจารย ปรยากร บวทอง
การเขยนผงงาน (Flowchart) 17
ผงงาน (Flowchart)จดเปนวธการออกแบบโปรแกรมทเกาแก
และหลายคนรจกกนด ซงปกตนกเขยนโปรแกรมลวนเคยใชผงงานเพอการ
ออกแบบโปรแกรม หรอน ามาใชเพอการเขยนโปรแกรมมากอน โดยเฉพาะ
ในชวงทเรมศกษาเกยวกบการเขยนโปรแกรมใหมๆ แตอยางไรกตาม ใชวา
ผงงานจะถกน ามาใชเพองานเขยนโปรแกรมเทานน ซงความจรงแลวไมวาจะ
เปนงานชนดใดกตาม หากมการก าหนดและล าดบขนตอนในแตละกจกรรม
ทชดเจนแนนอน กสามารถน าผงงานมาประยกตใชไดทงสน รวมถงกจกรรม
ทเกยวของกบการด าเนนชวตประจ าวนของเรา
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
ตวอยางผงงานทวไป 1
แสดงการโยนเหรยญ 3 ครง ถา
ออกหว ผโยนจะไดเงน 10
บาท ถาออกกอย ผโยนจะเสย
เงน 10 บาท
เรมตน
โยนเหรยญ
ผลการโยน
ไดเงน 10 บาท เสยเงน 10 บาท
หยด
หว กอย
ยง
ครบ
ครบ 3 ครง
หรอยง?
Part II : การเขยนผงงาน
ตวอยางผงงานทวไป 2
ผงงานแสดงการเดนขามถนนท
มสญญาณไฟจราจร
เรมตน
รอสญญาณไฟ
ไฟแดง
หรอไม
เดนขามถนน
หยด
Y
N
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
ตวอยางผงงานทวไป 3
ผงงานพจารณาการใชยาตามฉลาก
ยาทปดขางขวด แยกตามขนาดการ
ใชดงน
อายต ากวา 5 ป หามรบประทาน
อาย 5 - 7 ป ครงละ 1 เมด
อาย 8 - 14 ป ครงละ 2 เมด
อาย 15 ปข นไป ครงละ 3 เมด
เรมตน
< 5 ป หามรบประทาน
ครงละ 1 เมด
ครงละ 2 เมด
ครงละ 3 เมด
หยด
Y
Y
Y
N
N
N
>=5 ป และ < 8ป
>= 8 ป และ < 15ป
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
การเขยนผงงาน (Flowchart) 21
ผงงานทางคอมพวเตอรแบงออกเปน 2 ประเภท ไดแก
ผงงานระบบ (System flowchart)
ผงงานโปรแกรม (Program flowchart)
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
ผงงานระบบ (System Flowchart) 22
เปนผงงานทน ามาใชเพอแสดงขนตอนการท างานของระบบทงหมดใน
ลกษณะแบบกวางๆ ดวยการแสดงเฉพาะตวช นงานของระบบ วาตองท า
อะไรบาง โดยไมตองแสดงรายละเอยดงานนนๆ ตองท าอยางไร ซงผงงาน
ระบบโดยปกตจะเกยวของกบงานในภาพรวมทงหมด ไมวาจะเปนสอ
อปกรณ เครองมอ คอมพวเตอร และบคคล
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
ตวอยางผงงานระบบ
ผงงานแสดงการค านวณพ นท
สามเหลยมจ านวน 100 รป
เร มตน
บนทกความสงและความยาวฐาน ลงในดสก
รบความสง และความยาวฐาน ของสามเหลยม 100 รป
ค านวณพนทของสามเหลยม
พมพรายงานของ พนทสามเหลยม
จบ
ดสกท บนทกแลว
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
ผงงานโปรแกรม (Program Flowchart) 24
เปนผงงานทแสดงรายละเอยดขนตอนการประมวลผลในคอมพวเตอร โดย
จะมการล าดบขนตอนการท างานอยางละเอยด และโปรแกรมเมอรสามารถ
น าไปใชประกอบการเขยนโปรแกรมไดตอไป
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
ตวอยางผงงานโปรแกรม 25
จบการท างาน
เรมตน
พมพค าวา Fail
ผงงานแสดงการตรวจสอบคะแนน
ถามคะแนนนอยกวา 50 พมพค า
วา Fail ถาไมใชใหพมพค าวา
Pass >= 50
ท าตอ?
พมพค าวา Pass
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
รบคาคะแนนรวม
N
สญลกษณทใชในผงงาน 26
สญลกษณ ตวอยาง
สญลกษณการประมวลผล
เปนสญลกษณรปสเหลยมผนผา
ใชแทนการประมวลผล และการแทนดวยสตร
ค านวณทางคณตศาสตร
การก าหนดคา 0 ใหกบตวแปร num1 และ
num2
การก าหนดสตร income ใหมคาเทากบ
salary + ot
(รายได เทากบเงนเดอนบวกดวยคาลวงเวลา)
PROCESS
income = salary + ot
Store 0 to Num1, num2
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
สญลกษณทใชในผงงาน 27
สญลกษณ ตวอยาง
สญลกษณค าอธบายเพมเตม
เปนสญลกษณแทนขอความทใชอธบาย
รายละเอยดของกจกรรมนนๆ เพมเตม เพอให
การสอสารมความเขาใจตรงกนยงข น
แสดงการอธบายวา ตวแปร amount วามา
จากการน าตวแปร total มาลบดวย credit
Move
Amount to Output Amount is Total
Minus Credit COMMENT
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
สญลกษณทใชในผงงาน 28
สญลกษณ ตวอยาง
สญลกษณอนพต/เอาตพต
เปนสญลกษณแทนการรบขอมลน าเขา หรอ
การแสดงผลลพธขอมล โดยมไดระบชนดของ
อปกรณทชดเจนลงไป
การรบคาขอมล std_name และ grade
โดยมไดระบชนดของอปกรณทใชรบขอมล
การแสดงผลคาของ gpa โดยมไดระบชนด
ของอปกรณทน ามาแสดงผล
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
INPUT/OUTPUT READ std_name, grade
PRINT gpa
สญลกษณทใชในผงงาน 29
สญลกษณ ตวอยาง
สญลกษณจดเชอมตอ
เปนสญญลกษณแทนจดเชอมโยงของแผนภาพ
ทอยในหนาเดยวกน
• ใชเปนจดเชอมตอเพอเชอมโยงแผนภาพ ท
อยภายในหนาเดยวกน
• ใชเปนจดเชอมตอของเสนโฟลวทมาบรรจบ
กนส าหรบกรณการสรางเงอนไขเปรยบเทยบ
สญลกษณแทนการเชอมโยงไปยงอกหนาหนง เปนสญลกษณทใชเชอมโยงจดเชอมโยงตอกรณแผนภาพอยคนละหนา
ใชเปนจดเชอมโยงแผนภาพในกรณอยคนละหนา
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
สญลกษณทใชในผงงาน 30
สญลกษณ ตวอยาง
สญลกษณแสดงผลทางเครองพมพ
เปนสญลกษณทใชส าหรบก าหนดทศทาง
เสนโฟลวทใชก าหนดทศทางในผงงาน
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
สญลกษณทใชในผงงาน 31
สญลกษณ ตวอยาง
สญลกษณแสดงจดเรมตน/จดจบของ
โปรแกรม
เปนสญลกษณแทนการแสดงถงจดเรมตนการ
ท างานของโปรแกรมและจดจบหรอจดสนสด
ของโปรแกรม
ล าดบขนตอนการประเมนผลตงแตจดเรมตน
ของโปรแกรมจนกระทง
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
START
STOP
START
STOP
Process 1
Process 2
สญลกษณทใชในผงงาน 32
สญลกษณ ตวอยาง
สญลกษณการตดสนใจ
เปนสญลกษณทใชส าหรบการสรางเงอนไขเพอ
ตดสนใจทางเลอก
การตดสนใจดวยการตรวจสอบเงอนไขของ
คะแนนเพอน าไปคดเกรด
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
DECISION
IF score>=80 Y
N
สญลกษณทใชในผงงาน 33
สญลกษณ ตวอยาง
สญลกษณการท างานเปนรอบ
เปนสญลกษณทใชแทนการท างานซ าๆหรอ
ท างานเปนรอบ (LOOP)
การท างานเปนรอบดวยลป FOR…NEXT
โดยในทนวนลป 5 รอบ เพอหาผลรวมของชด
ตวเลขตงแต 1-5 Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
PREPARATION
FOR i = 1 to 5
Sum = sum + 1
PRINT sum
โครงสรางการควบคมพนฐาน 34
1. แบบเรยงล าดบ (Sequence)
2. แบบเลอกการท างาน (Selection)
3. แบบท างานซ า (Repettion)
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
แบบเรยงล าดบ (Sequence)
ท างานตามล าดบ
ท างานจากบนลงลาง (จดเรมตนถงสนสด)
มจดเรมตนจดเดยว – จดสนสดจดเดยว
อาจเรยกใชโมดลอนได
35
ค าสง 1
ค าสง 2
ค าสง 3
START
STOP
35
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
36
36
ประเภทของโครงสรางแบบเลอก
เลอกท างานเฉพาะเมอเงอนไขเปนจรง
เลอกท างานอยางใดอยางหนงระหวางเงอนไขจรงและเทจ
ค าสงเลอกแบบซอนกน
ค าสงแบบหลายทางเลอก เมอมทางเลอกมากกวา 2 ทาง
แบบเลอกการท างาน (Selection)
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
37
1. ท างานเมอเงอนไขเปนจรง
เงอนไข
ค าสง A
เทจ/FALSE จรง/TRUE
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
38
เง อนไข
- ถาไดคะแนนสอบ 50 คะแนนข นไป ใหพมพขอความความ ‘You pass’ - ถาไดคะแนนต ากวา 50 คะแนน ใหจบการท างาน
ตวอยาง โปรแกรมแสดงผลการสอบทางหนาจอ
START
Score>=50
Read Score
Write ‘You pass’
Y
N
STOP
อลกอรทม
1. เรมตนท างาน
2. รบคา คะแนนสอบ(Score) 3. ถาคะแนนสอบตงแต 50
คะแนนขนไป ใหพมพทาง
หนาจอวา ‘You pass’ 4. จบการท างาน
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
39
2. ท างานอยางใดอยางหนงตามเงอนไข
ค าสง B
เงอนไข
เทจ/FALSE จรง/TRUE
ค าสง A
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
40
ตวอยาง โปรแกรมแสดงผลการสอบทางหนาจอ
เง อนไข
- ถาไดคะแนนสอบ 50 คะแนนข นไป ใหพมพขอความวา ‘Pass’ - ถาไดคะแนนต ากวา 50 คะแนน ใหพมพขอความวา ‘Fail’ - ตวแปร Grade เกบคาผลลพธ
START
Score>=50 Y
N
Read Score
STOP
Grade = ‘Pass’
Grade = ‘Fail’
Write Grade
อลกอรทม
1. เรมตนท างาน
2. รบคา คะแนนสอบ (Score) 3. ถาคะแนนสอบตงแต 50 คะแนนขนไป
ใหท านพจน Grade=‘Pass’ ถานอยกวา 50 คะแนน ใหท านพจน Grade=‘Fail’
4. แสดงผล เกรด (Grade) 5. จบการท างาน
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
41
3. แบบค าสงเลอกท าซอนกน
เงอนไข1 เทจ/FALSE จรง/TRUE
ค าสง A
เงอนไข2 เทจ/FALSE จรง/TRUE
ค าสง B ค าสง C
เงอนไข3
เทจ/FALSE จรง/TRUE
ค าสง D
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
42
ตวอยาง โปรแกรมประมวลผลการเรยน
เง อนไข
-คะแนนสอบสงกวา 80 คะแนน ไดเกรด A
-คะแนนสอบ 70-79 คะแนนข นไป ไดเกรด B
-คะแนนสอบ 60-69 คะแนนข นไป ไดเกรด C
-คะแนนสอบ 50-59 คะแนนข นไป ไดเกรด D
-คะแนนสอบต ากวา 50 คะแนน ไดเกรด F
อลกอรทม
1. เรมตนท างาน
2. รบคา คะแนนสอบ (Score) 3. เปรยบเทยบคะแนนสอบ>=80 ถาเปน
จรง ใหท านพจน Grade=‘A’ ถาเปนเทจ ใหเปรยบเทยบคะแนนสอบ >=70 ถาเปนจรง ใหท านพจน Grade=‘B’ ถาเปนเทจ ใหเปรยบเทยบคะแนนสอบ >=60 ถาเปนจรง ใหท านพจน Grade=‘C’ ถาเปนเทจ ใหเปรยบเทยบคะแนนสอบ >=50 ถาเปนจรง ใหท านพจน Grade=‘D’ ถาเปนเทจ ใหใหท านพจน Grade=‘F’
4. แสดงผล เกรด (Grade) 5. จบการท างาน Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
43
ตวอยาง
STOP Write Grade
START
Score>=80
Read Score
Y
Grade = ‘A’
Grade = ‘F’
Score>=70
Grade = ‘B’ Score>=60
Grade = ‘C’ Score>=50
Grade = ‘D’
Y
Y
N
N
N
N Y
มหาวทยาลยราชภฏเพชรบรณ
44
เงอนไข
ค าสง A ค าสง B ค าสง C ค าสง D
4. แบบค าสงหลายทางเลอก
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
45
ตวอยาง โปรแกรมประมวลผลการเรยน
เง อนไข
-คะแนนสอบสงกวา 80 คะแนน ไดเกรด A
-คะแนนสอบ 70-79 คะแนนข นไป ไดเกรด B
-คะแนนสอบ 60-69 คะแนนข นไป ไดเกรด C
-คะแนนสอบ 50-59 คะแนนข นไป ไดเกรด D
-คะแนนสอบต ากวา 50 คะแนน ไดเกรด F
อลกอรทม
1. เรมตนท างาน
2. รบคา คะแนนสอบ (Score) 3. เปรยบเทยบ ชวงคะแนนสอบ
80-100 คะแนน ให Grade=‘A’ 70- 79 คะแนน ให Grade=‘B’ 60- 69 คะแนน ให Grade=‘C’ 50- 59 คะแนน ให Grade=‘D’ นอกจากน ให Grade=‘Fail’
4. จบค าสงการเปรยบเทยบ 5. แสดงผล เกรด (Grade) 6. จบการท างาน Part II : การเขยนผงงาน
46
START
CASE Score OF
Read Score
STOP
Grade = ‘A’
Write Grade
Grade = ‘B’ Grade = ‘C’ Grade = ‘D’ Grade = ‘F’
80-100 70-79 60-69 ELSE 50-59
ตวอยาง
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
47
แบบท างานซ า (Repettion)
สวน a
X
จรง เทจ
เปนโครงสรางควบคมใหท างานทตองการ
ซ ากนหลาย ๆ ครง ท าใหเขยนโปรแกรม
ไดงายขน และโปรแกรมมขนาดสนลง
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
48
END
START
N=0,SUM=0
N<100
N=N+2
SUM=SUM+N
N,SUM
T
F
อลกอรทม
1. เรมตนท างาน
2. ก ำหนดคำตวแปร N และ SUM ใหเทำกบ 0
3. ขณะท N มคานอยกวา 100 1. N มคาเทากบ N+2
2. SUM มคาเทากบ SUM+N
3. แสดงคา N และ SUM 4. จบการท างาน
ตวอยาง
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
ตวอยาง 49
จงเขยน อลกอรทมของ กำรหำคำ 0 + 2 + 4 + 6 + 8 + … 100
1. เรมตน 2. ก ำหนด SUM = 0 , I = 0 3. ตรวจดวำ I <=100 หรอไม
1. ถำนอยกวำหรอเทำกบ ให SUM = SUM + I , I = I + 2
2. ถำไมใช ให ไปท ำขอ ถดไป 4. แสดงคำ SUM 5. จบกำรท ำงำน
START
SUM = 0 I = 0
I <=100
SUM = SUM + I I = I + 2
SUM
STOP
Y
N
ลองท าด 50
จงเขยนผงงาน (Flowchart) ในการค านวณหาพ นท ของสามเหลยม
Area = ½ x ฐาน x สง โดยมขอมลเขา (Input) จากคยบอรด คอ
คาของฐานของสามเหลยม (b: Base) และคาความสงของสามเหลยม
(h: Height)พรอมพมพผลลพธ
จงเขยน อลกอรทมและ ผงงาน (Flowchart) ของ การหาคา
เลขคตงแต 1 – 99
จงเขยน อลกอรทมและ ผงงาน (Flowchart) ของ การหาคา ตวเลขท
หารดวย 5 ลงตว ตงแต 1 – 100
Part II : การเขยนผงงาน มหาวทยาลยราชภฏเพชรบรณ
Part III : การเขยนโปรแกรมภาษาซ
อาจารย ปรยากร บวทอง
ท าไมตองภาษา C
ภาษาC ถอเปนรากฐานของอกหลายๆภาษา เชน C++ ,Visual
C และ C# แมแตภาษา java กกลายพนธมาจากภาษาซ อาจกลาววา
ภาษา C เปนภาษาแมแบบของการเขยนโปรแกรมทคลาสสกทสด ไมเคย
เสอมความนยม
55
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
ภาษา C 56
ภาษา C เปนภาษาคอมพวเตอรทถกคนคดข นโดย Denis Ritchie ในป
ค.ศ. 1970 โดยใชระบบปฏบตการของยนกซ (UNIX) นบจากนนมาก
ไดรบความนยมเพมขนจนถงปจจบน ภาษา C สามารถตดตอในระดบ
ฮารดแวรไดดกวาภาษาระดบสงอน ๆ ไมวาจะเปนภาษาเบสกฟอรแทน
ขณะเดยวกนกมคณสมบตของภาษาระดบสงอยดวย ดวยเหตผลดงกลาวจง
จดไดวาภาษา C เปนภาษาระดบกลาง (Middle –lever
language)
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
โครงสรางพนฐานของภาษาซ 57
# header
main( )
{ /* เรมโปรแกรม */
Local Variables
………
ค าสงตาง ๆ }
สวนท 1
สวนท 2
สวนท 3
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
โครงสรางพนฐานของภาษาซ 58
สวนท 1 เปนสวนทระบใหซคอมไพเลอรเตรยมการท างานทก าหนดในสวนนไว
โดยหนาค าสงจะมเครองหมาย # เชน
# include <stdio.h>
เปนการระบใหน าไฟล stdio.h มารวมกบไฟลน เพอทจะสามารถใช
ค าสงทอยในไฟลนมาใชงานได
หรอ # define START 0
เปนการก าหนดคาคงทใหกบตวแปร START โดยใหมคาเปน 0
หรอ # define temp 37
เปนการก าหนดใหตวแปร temp มคาเทากบ 37
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
โครงสรางพนฐานของภาษาซ 59
สวนท 2 Local Variables เปนการก าหนดชนดขอมลทจะใชในโปรแกรมซงตวแปร
หรอขอมลตาง ๆ นนจะตองถกประกาศในสวนนกอน จงจะสามารถ
น าไปใชในโปรแกรมได เชน
int std;
เปนการก าหนดวาตวแปร std เปนขอมลชนดจ านวนเตมหรอ interger
ซงอาจไดแกคา 0,4,-1,-3,…. เปนตน
float score;
เปนการก าหนดวาตวแปร score เปนขอมลชนดเลขมจดทศนยม
(floating point)ซงอาจมคา 0.23, 1.34, -21.002, เปนตน
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
โครงสรางพนฐานของภาษาซ 60
สวนท 3 Body คอสวนของตวโปรแกรม โดยจะตองเรมตนดวยฟงกชน main ( )
แลวใสเครองหมายก าหนดขอบเขตเรมตนของตวโปรแกรมคอ {
หลงจากนนใสค าสงหรอฟงกชนตาง ๆ โดยแตละค าสงหรอฟงกชนนน ๆ
จะตองปดดวยเครองหมาย ; เมอตองการจบโปรแกรมใหใสเครองหมาย
} ปดทาย เชน
main ( )
{ /* เรมตนโปรแกรม */
ค าสงตาง ๆ ;
ฟงกชน;
……………
} /* จบโปรแกรม */
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
มาเรมเขยนโปรแกรมกนเลย 61
โปรแกรมทใชคอ DEV C++ ตดตงไวแลวใน d: Dev-Cpp
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
ตวแปรทใช 62
สญลกษณ ใชส าหรบ
%d
%s
%f
%c
แสดงคาทเปนเลขจ านวนเตม int
แสดงคาทเปนสตรง char ชอตวแปร [15]
แสดงคาทเปนเลขทศนยม float
แสดงคาทเปนตวอกษร 1 ตว char
int a;
char b[15];
float int c;
char d; Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
ค าสงทตองใช
1. printf ความหมาย ใชแสดงขอความออกทางจอภาพ
รปแบบ printf ( “ ขอความทตองการแสดง ” ) ;
2. scanf ความหมาย ใชรบคาจากแปนพมพมาเกบทตวแปร
รปแบบ scanf ( “รหสของชนดตวแปร ” , ชอตวแปรทตองการเกบ ) ;
3. if ความหมาย ใชตรวจสอบเงอนไขโดยจะท าถาเงอนไขเปนจรง
รปแบบ if (เงอนไขทตองการตรวจสอบ)
{ ค าสงทตองการใหท า }
if .. else ความหมาย ใชตรวจสอบเงอนไขโดยจะท าอยางหนงถาเงอนไขเปนจรง และท าอกอยางหนงถา
เงอนไขเปนเทจ
รปแบบ if (เงอนไขทตองการตรวจสอบ)
{ ค าสงทตองการใหท าเมอเงอนไขเปนจรง }
else
{ ค าสงทตองการใหท าเมอเงอนไขเปนเทจ }
63
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
4. while ความหมาย ใชท างานซ าขณะทเงอนไขเปนจรง
รปแบบ while ( เงอนไขทตองการตรวจสอบ )
{ ค าสงทตองการใหท าซ าขณะทเงอนไขเปนจรง }
do... while ความหมาย ใหท างานตามค าสงกอน 1 รอบแลวจงตรวจสอบเงอนไข และในขณะทเงอนไขเปน
จรงจะท าซ าไปจนกวาเงอนไขจะเปนเทจ
รปแบบ do { ค าสงทตองการใหท าซ าขณะทเงอนไขเปนจรง }
while ( เงอนไขทตองการตรวจสอบ );
5. for ความหมาย ใชในการท างานซ าเมอเราทราบจ านวนครงทแนนอน
รปแบบ for (ตวนบ=คำเรมตน ; เงอนไข ; เปลยนคำตวนบ)
{ ค าสงทตองการใหท าซ าขณะทเงอนไขเปนจรง }
64
ค าสงทตองใช
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
6. getche ความหมาย ใชในการรบอกขระจากแปนพมพมาเกบทตวแปร
รปแบบ ชอตวแปร = getche ( ) ;
7. gets ความหมาย ใชในการรบขอความจากแปนพมพมาเกบทตวแปร
รปแบบ gets (ชอตวแปร) ;
8. getch ความหมาย ใชในการรบอกขระจากแปนพมพโดยไมแสดงอกขระ
รปแบบ getch ( ) ;
65
ค าสงทตองใช
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
มาเรมเขยนโปรแกรมกนเลย 66
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
#include <stdio.h> #include <conio.h> int main() { printf (“C is easy\n”); printf (“I love C\n”); printf (“Good bye\n”); getch(); }
มาเรมเขยนโปรแกรมกนเลย 67
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
การค านวณหาพ นท ของสามเหลยม
1. เรมตน
2. ประกาศตวแปรทตองการใชงาน
3. รบคาตวเลข b และ h
4. ก าหนดให
Area = ½ x b x h
5. แสดงคา Area
6. จบการท างาน
#include<stdio.h> #include<conio.h> int main() { int b; int h; int Area; printf (“b = ”); scanf(“%d”,&b); printf (“h = ”); scanf(“%d”,&h); Area = (b * h)/2 ; printf(“Area = %d\n”,Area); getch(); }
มาเรมเขยนโปรแกรมกนเลย 68
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
การหาคา เลขคตงแต 1 – 99
1. เรมตน
2. ก าหนดคาตวแปร NUM =1
3. ตรวจดวา NUM <=99 หรอไม
1. ถานอยกวาหรอเทากบ
แสดงคาตวแปร NUM
2. ให NUM = NUM + 2
3. กลบไปท าขอ 3
4. จบการท างาน
#include<stdio.h> #include<conio.h> int main() { int NUM =1; while (NUM <= 99) { printf(“NUM = %d\n”,NUM); NUM = NUM + 2; } getch(); }
มาเรมเขยนโปรแกรมกนเลย 69
Part II : การเขยนโปรแกรมภาษาซ มหาวทยาลยราชภฏเพชรบรณ
กำรหำคำ ตวเลขทหำรดวย 5 ลงตว ตงแต 1 – 100
1. เรมตน
2. ก ำหนดคำตวแปร NUM =1
3. ตรวจดวำ NUM <=100 หรอไม
1. ถำนอยกวำหรอเทำกบ
2. ถำ NUM หำรดวย 5 ลงตว แลว 1. แสดงคำ NUM
3. NUM = NUM + 1
4.ไปท ำขอ 3.
4. จบกำรท ำงำน
#include<stdio.h> #include<conio.h> int main() { int NUM =1; while (NUM <= 100) { if (NUM % 5 == 0 ) printf(“NUM = %d\n”,NUM); NUM = NUM + 1; } getch(); }
THANK YOU