New โครงการบริการวิชาการอบรมเชิง...

Preview:

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

Recommended