หน่วยที่ 5 · 1.3...

13
การเขียนรหัสเทียม 1. ความหมายของรหัสเทียม 2. ลักษณะของรหัสเทียม 3. รูปแบบการเขียนรหัสเทียม 4. การเขียนรหัสเทียมจากลาดับขั ้นตอนของวิธีการประมวลผล 5. การเขียนรหัสเทียมจากขั ้นตอนการทางานด้วยคาสั่งควบคุมแบบต่างๆ 1. บอกความหมายของรหัสเทียมได้ 2. บอกลักษณะของรหัสเทียมได้ 3. บอกรูปแบบการเขียนรหัสเทียมได้ 4. เขียนรหัสเทียมจากลาดับขั ้นตอนของวิธีการประมวลผลได5. เขียนรหัสเทียมจากขั ้นตอนการทางานด้วยคาสั่งควบคุมแบบต่างๆได้ สาระการเรียนรู จุดประสงค์การเรียนรู หน่วยที่ 5

Upload: others

Post on 16-Oct-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: หน่วยที่ 5 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

การเขยนรหสเทยม

1. ความหมายของรหสเทยม 2. ลกษณะของรหสเทยม 3. รปแบบการเขยนรหสเทยม 4. การเขยนรหสเทยมจากล าดบขนตอนของวธการประมวลผล 5. การเขยนรหสเทยมจากขนตอนการท างานดวยค าสงควบคมแบบตางๆ

1. บอกความหมายของรหสเทยมได 2. บอกลกษณะของรหสเทยมได 3. บอกรปแบบการเขยนรหสเทยมได 4. เขยนรหสเทยมจากล าดบขนตอนของวธการประมวลผลได 5. เขยนรหสเทยมจากขนตอนการท างานดวยค าสงควบคมแบบตางๆได

สาระการเรยนร

จดประสงคการเรยนร

หนวยท 5

Page 2: หน่วยที่ 5 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

การเขยนรหสเทยม โดย อรรณพ ทองธรกล วทยาลยอาชวศกษาขอนแกน

116

การเขยนรหสเทยม

สาระส าคญ

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

1. ความหมายของรหสเทยม รหสเทยม (Pseudocode) คอ รหสค ำส งทมลกษณะกำรเขยนใกลเคยงกบภำษำองกฤษม

โครงสรำงทเกอบจะเปนภำษำโปรแกรมคอมพวเตอร รหสเทยมไมมกฎในการเขยนตายตว โดยมากขนอยกบความถนดของผใช (ปญญำพล หอระตะ.2545:16) แตมขอตกลงบางอยางรวมกนเปนสากล สวนประกอบทส าคญของรหสเทยม ไดแก ชอ, ค าสงก าหนดงาน, ค าสงควบคม, กลมของค าสง และขอบนทกหรอค าอธบาย

1. ลกษณะของรหสเทยม

รหสเทยม เปนเครองมออกชนดหนงทชวยในกำรเขยนโปรแกรม มลกษณะดงน 1.1 จดเรมตนใชค ำวำ “Begin” จดสนสดใชค ำวำ “End” 1.2 ใชค ำทเขำใจไดงำย 1.3 รหสเทยมแตละค ำสงควรเขยนเปนบรรทด 1.4 รหสเทยมไมไดขนกบภำษำใดภำษำหนง 1.5 มยอหนำเพอควำมสะดวกตอกำรตรวจสอบ 1.6 เขยนจำกบนลงลำง 1.7 ไมเขยนหมำยเลขก ำกบแตละขนตอน ลกษณะของรหสเทยม อธบำยขนตอนวธกำรท ำงำน

Begin 1. เรมตนกำรท ำงำน Read Width , Length 2. รบคำ Width , Length Area = Width * Length 3. ค ำนวณคำ Area = Width * Length Print Area 4. แสดงผลคำ Area End 5. จบกำรท ำงำน

Page 3: หน่วยที่ 5 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

การเขยนรหสเทยม โดย อรรณพ ทองธรกล วทยาลยอาชวศกษาขอนแกน

117

3. รปแบบการเขยนรหสเทยม มรปแบบทส าคญดงน

ตารางท 5-1 รปแบบการเขยนรหสเทยม (อ าภา กลธรรมโยธน.2550:76) ล าดบท ขนตอนการท างาน รปแบบรหสเทยม ความหมาย

1 การรบขอมล Read อานคาจากแฟมขอมล Get รบคาทางแปนพมพหรออปกรณน าเขาอน

2 การค านวณ +,-,*,/,^ เครองหมายการกระท าทางคณตศาสตร DIV หารปดเศษ MOD หารเอาเศษ

3 การแสดงผลขอมล Print แสดงผลลพธออกทางเครองพมพ Write การบนทกขอมลลงแฟมขอมล Put,Output,Display การแสดงผลลพธออกทางจอภาพ

4 การก าหนดคา Initialize,Set ก าหนดคาเรมตนใหกบตวแปรทใช

= เกบคาผลลพธซงอยขวาของเครองหมาย Save,Store ก าหนดคาใหกบตวแปร

5 การเปรยบเทยบ If…Else… การเปรยบเทยบคา

6 การท างานวนรอบ While/Do …While ทดสอบเงอนไขถาจรงท าการวนรอบ ถาไมจรงกขามไปท างานทค าสงถดไป

4. การเขยนรหสเทยมจากล าดบขนตอนของวธการประมวลผล

การเขยนรหสเทยมจากล าดบขนตอนของวธการประมวลผลหรอจากผงงาน เปนขนตอน

การท างานในลกษณะของขอความแลวเปลยนค าอธบายขนตอนการท างานจากผงงานเปนรหสเทยม (อ าภา กลธรรมโยธน.2550:76)

Page 4: หน่วยที่ 5 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

การเขยนรหสเทยม โดย อรรณพ ทองธรกล วทยาลยอาชวศกษาขอนแกน

118

ตวอยางท 1 จงเขยนรหสเทยม จากล าดบขนตอนการท างานของผงงาน แสดงตามภาพท 5-1

ตารางท 5-2 การเขยนรหสเทยมจากภำพท 5-1 ของตวอยางท 1 ล าดบขนตอนของวธการประมวลผล รหสเทยม

1. เรมตนกำรท ำงำน Begin

2. รบคำ A,B Read A,B

3. ค ำนวณ C = A * B C = A * B

4. แสดงผลคำ C Print C

5. จบกำรท ำงำน End

Start

Read A,B

C = A * B

Print C

Stop

ภำพท 5-1 ผงงำนประกอบกำรเขยนรหสเทยม 1(ทมำ : อรรณพ ทองธรกล.2555)

Input

Process

Output

Page 5: หน่วยที่ 5 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

การเขยนรหสเทยม โดย อรรณพ ทองธรกล วทยาลยอาชวศกษาขอนแกน

119

ตวอยางท 2 จงเขยนรหสเทยม จากล าดบขนตอนการท างานของผงงาน เพอค านวณหาพนท ของรปสามเหลยม แสดงตามภาพท 5-2 Process

ตารางท 5-3 การเขยนรหสเทยมจากภาพท 5-2 ของตวอยางท 2 ล าดบขนตอนของวธการประมวลผล รหสเทยม

1. เรมตนกำรท ำงำน Begin

2. รบคำ ควำมสง,ควำมยำวของฐำน Read h , l

3. ค ำนวณพนทสำมเหลยม = ½*ฐำน*สง Area = ½* h * l

4. แสดงผลคำ พนทของรปสำมเหลยม Print Area

5. จบกำรท ำงำน End

Start

Read l,h

Area = ½*l*h

Print Area

Stop

ภำพท 5-2 ผงงำนประกอบกำรเขยนรหสเทยม 2 (ทมำ : อรรณพ ทองธรกล.2555)

Input

Output

Page 6: หน่วยที่ 5 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

การเขยนรหสเทยม โดย อรรณพ ทองธรกล วทยาลยอาชวศกษาขอนแกน

120

Yes

No

ตวอยางท 3 จงเขยนรหสเทยม จากล าดบขนตอนการท างานของผงงาน เพอค านวณหาอายเฉลย ของพนกงาน แสดงตามภาพท 5-3 Process Output

ตารางท 5-4 การเขยนรหสเทยมจากภาพท 5-3 ของตวอยางท 3 ล าดบขนตอนของวธการประมวลผล รหสเทยม

1. เรมตนกำรท ำงำน Begin

2. ก ำหนดคำเรมตนใหกบ i,sum i = 0,sum = 0

3. รบคำจ ำนวนพนกงำนทงหมด (n) Read n

4. รบคำอำยของพนกงำนแตละคน (age) Get age

5. สะสมจ ำนวนพนกงำนทละคน(i) สะสมอำยของพนกงำนแตละคน (sum)

i = i + 1

sum = sum + age

6. เงอนไข ถำจรงกลบไป 4 ถำเทจไป 7 While (i<n)

Start

Read n

i=0,sum=0

Input

age

i=i+1,

sum=sum+age

i<n?

avg=sum/n

Print avg

Stop

ภำพท 5-3 ผงงำนประกอบกำรเขยนรหสเทยม 3

(ทมำ : อรรณพ ทองธรกล.2555)

Decision

Process

Input

Input

Initialize

Page 7: หน่วยที่ 5 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

การเขยนรหสเทยม โดย อรรณพ ทองธรกล วทยาลยอาชวศกษาขอนแกน

121

N

Yes

Yes

Yes

Process

No

No

No No

7. ค ำนวณหำอำยเฉลย avg = sum / n

8. แสดงผลคำอำยเฉลย Print “ Age Average =”,avg

9. จบกำรท ำงำน End

ตวอยางท 4 จงเขยนรหสเทยม จากล าดบขนตอนการท างานของผงงาน เพอค านวณหารายไดสทธของพนกงานแตละคน โดยมเงอนไขในการค านวณภาษ แสดงตามภาพท 5-4 ถำไดเงนเดอนไมเกน 10,000 บำท ไมคดภำษ ถำเงนเดอนสวนท 10,001-15,000 บำท คดภำษ 5% ของเงนเดอนสวนทเกน 10,000 ถำเงนเดอนสวนท 15,001-20,000 บำท คดภำษ 10% ของเงนเดอนสวนทเกน 15,000 ถำเงนเดอนสวนท 20,001 บำทขนไปคดภำษ 15% ของเงนเดอนสวนทเกน 20,000

Start

n

i=0

id,name,sal

sal<10000? tax = sal*0%

sal<15000? tax =

(sal-10000)*5%

sal<20000?

tax=

(salary-5000)

*10%+250

tax = (sal-20000)*15%+250+500

A

B

Input

Decision

Decision

Decision

Connect

Connect to next page

Initialize

Input Process

Connect

Page 8: หน่วยที่ 5 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

การเขยนรหสเทยม โดย อรรณพ ทองธรกล วทยาลยอาชวศกษาขอนแกน

122

ภำพท 5-4 ผงงำนประกอบกำรเขยนรหสเทยม 4 (ทมำ : อรรณพ ทองธรกล.2555)

Y Connect Yes

No

Process Output Process Decision

ตารางท 5-5 การเขยนรหสเทยมจากภาพท 5-4 ของตวอยางท 4 ล าดบขนตอนของวธการประมวลผล รหสเทยม

1. เรมตนกำรท ำงำน Begin

2. ก ำหนดคำเรมตนใหกบ i i = 0

3. รบคำจ ำนวนพนกงำนทงหมด (n) Read n

4. รบขอมล รหส,ชอ,เงนเดอน ของพนกงำนทละคน

Get id,name,salary

5. ทดสอบเงอนไขถำ เงนเดอน ไมเกน 10,000 ไมคดภำษ

if (salary<10000)tax = 0

6. ทดสอบเงอนไขถำ เงนเดอน ไมเกน 15,000 คดภำษ 5% ของสวนทเกน 10,000

else if (salary<15000)

tax=(salary-10000)*5%

7. ทดสอบเงอนไขถำ เงนเดอน ไมเกน 20,000 คดภำษ 10% ของสวนทเกน 15,000

else if (salary<20000)

tax=(salary-15000)*10%+250

8. ทดสอบเงอนไขถำ เงนเดอน 20,001 ขนไป คดภำษ 15% ของสวนทเกน 20,000

else tax=(salary-

20000)*15%+250+500

9. ค ำนวณหำเงนสทธ=เงนเดอน-ภำษ net = salary - tax

net = sal-tax

i = i + 1

i<n?

Stop

Print id,name,sal,tax,net

A

B

Connect

Page 9: หน่วยที่ 5 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

การเขยนรหสเทยม โดย อรรณพ ทองธรกล วทยาลยอาชวศกษาขอนแกน

123

Connect from previous page

Connect to next page

Initialize

Connect

10. แสดงคำ รหส,ชอ,เงนเดอน,ภำษ,เงนสทธ-ของพนกงำนแตละคน

Print

id,name,salary,tax,net

11. เพมคำนบจ ำนวนพนกงำนรอบละ 1 i = i + 1

12. ทดสอบเงอนไข (i<n) ถำเปนจรงใหกลบไปท ำงำนในขอ 4 ถำเปนเทจใหจบกำรท ำงำน

while(i<n)

13. จบกำรท ำงำน End

ตวอยางท 5 จงเขยนรหสเทยมจากล าดบขนตอนการท างานของผงงาน เพอคดตดเกรดและค านวณหา จ านวนเกรดของนกเรยนโดยมขอมลน าเขาคอ รหส ชอนกเรยน จ านวนวชาทเรยน คะแนนแตละวชา ใหแสดงเกรดและจ านวนเกรดละกวชา โดยมเงอนไขดงน แสดงตามภาพท 5-5 ถาคะแนน ตงแต 80 ขนไป ไดเกรด 4 ถาคะแนน 70-79 ไดเกรด 3

ถาคะแนน 60-69 ไดเกรด 2 ถาคะแนน 50-59 ไดเกรด 1 ถาคะแนนต ากวา 50 ไดเกรด 0

Start

id,name

i=0,g4=0,g3=0,g2=0,g1=0,g0=0

Input n

score

A

B

ภำพท 5-5 ผงงำนประกอบกำรเขยนรหสเทยม 5 (ทมำ : อรรณพ ทองธรกล.2555)

Input

Input

Input

Page 10: หน่วยที่ 5 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

การเขยนรหสเทยม โดย อรรณพ ทองธรกล วทยาลยอาชวศกษาขอนแกน

124

Yes

Yes

Connect

Connect

N

Connect

No

Output

Output

Yes

Yes

Yes

No

No

No

No

Decision Decision

Decision Y

Decision Y

Process

ตารางท 5-6 การเขยนรหสเทยมจากภาพท 5-5 ของตวอยางท 5

score>=80? Grade

4

g4=g4+1

score>=70? Grade

3

g3=g3+1

score>=60? Grade

2

g2=g2+1

score>=50? Grade

1

g1=g1+1

Grade 0

g0=g0+1

i=i+1

i < n ?

Print

id,name,g4,g3,g2,g1,g0

Stop

A

B

ภำพท 5-5 ผงงำนประกอบกำรเขยนรหสเทยม 5 (ทมำ : อรรณพ ทองธรกล.2555)

Page 11: หน่วยที่ 5 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

การเขยนรหสเทยม โดย อรรณพ ทองธรกล วทยาลยอาชวศกษาขอนแกน

125

ตารางท 5-6 การเขยนรหสเทยมจากภาพท 5-5 ของตวอยำงท 5

ล าดบขนตอนของวธการประมวลผล รหสเทยม 1. เรมตนกำรท ำงำน Begin

2. ก ำหนดคำเรมตนใหกบ i,g4,g3,g2,g1,g0

i=0,g4=0,g3=0,g2=0,g1=0,g0=0

3. รบขอมลเขำ รหส ชอนกเรยน Read id , name

4. รบขอมลเขำจ ำนวนวชำเรยนทงหมด (n) Read n

5. รบคะแนนสอบของนกเรยนแตละวชำ Get score

6. ทดสอบเงอนไขถำคะแนนสอบตงแต 80 ขนไปไดเกรด 4 แลวสะสมเกรด 4

if (score>=80) Print

“Grade 4”

g4 = g4 +1

7. ทดสอบเงอนไขถำคะแนนสอบตงแต 70 ขนไปแตไมถง 80 ไดเกรด 3 แลวสะสมเกรด 3

if (score>=70) Print

“Grade 3”

g3 = g3 +1

8. ทดสอบเงอนไขถำคะแนนสอบตงแต 60 ขนไปแตไมถง 70 ไดเกรด 2 แลวสะสมเกรด 2

if (score>=60) Print

“Grade 2”

g2 = g2 +1

9. ทดสอบเงอนไขถำคะแนนสอบตงแต 50 ขนไปแตไมถง 60 ไดเกรด 1 แลวสะสมเกรด 1

if (score>=50) Print

“Grade 1”

g1 = g1 +1

10. ถำคะแนนสอบต ำกวำ 50 ไดเกรด 0 แลวสะสมเกรด 0

Print “Grade 0”

g0 = g0 +1

11. เพมคำตวนบจ ำนวนวชำเรยนรอบละ 1 i = i + 1

12. ทดสอบเงอนไข (i<n) ถำเปนจรงใหไปท ำงำนขอ 5 ถำเปนเทจ ใหท ำค ำสงถดไป

While (i<n)

13. แสดงผล รหส ชอนกเรยน จ ำนวนวชำทเรยน ไดเกรดละกวชำ

Print “ID,Name,Amount

of Subject Grade 4,Grade 3,

Grade 2,Grade 1,Grade 0”

14. จบกำรท ำงำน End

Page 12: หน่วยที่ 5 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

การเขยนรหสเทยม โดย อรรณพ ทองธรกล วทยาลยอาชวศกษาขอนแกน

126

5. การเขยนรหสเทยมจากขนตอนการท างานดวยค าสงควบคมแบบตางๆ

การเขยนรหสเทยมจากขนตอนการท างานดวยค าสงควบคมแบงไดเปน 2 ชนด (อ าภา กลธรรมโยธน.2550:79) คอ

5.1. ค าสงการท างานแบบเงอนไข การทดสอบเงอนไขการท างานดวยค าสง if ถาผลการทดสอบเงอนไขเปนจรงจะท า

ชดค าสงทก าหนดไว ถาผลการทดสอบเงอนไขเปนเทจกจะท าชดค าสงอนแทน ค าสงเงอนไขมรปแบบ คอ if (เงอนไข) then ค าสง (หรอกลมของค าสง) ทตองปฏบตเมอ ผลการทดสอบเงอนไขเปนจรง หรอ if (เงอนไข) then ค าสง (หรอกลมของค าสง) ทตองปฏบตเมอผลการทดสอบเงอนไขเปนจรง else ค าสง (หรอกลมของค าสง) ทตองปฏบตเมอผลการทดสอบเงอนไขเปนเทจ

เงอนไขคอ นพจนทถกทดสอบหรอค านวณแลวจะมคาความจรงเปนจรงหรอเทจเทานน เชน if (a < b) then smaller = a else smaller = b

บางครงเงอนไขททดสอบมมากกวาหนงเงอนไข สามารถเขยนไดเปนระบบเชน if (n > 80) then Point = 4

else if (n > 70) then Point = 3

else if (n > 60) then Point = 2

else if (n > 50) then Point = 1

else Point = 0

5.2 ค าสงการท างานวนรอบ แบงไดเปน 2 แบบ คอ 5.2.1 ค าสงการท างานวนรอบท าซ าตามดชน (for loop) เรมตนดวยการก าหนดคาของดชน

ใหมคาเทากบ คาเรมตน แลวจงปฏบตค าสง (หรอกลมของค าสง) จนสนสด จากนนคาของดชนจะถกเพมขนอกครงละ 1 สลบกบการปฏบตค าสง (หรอกลมของค าสง) 1 ครง ค าสงวนรอบตามดชนจะสนสดกตอเมอตวแปรทเปนดชนมคามากกวาคาสดทาย ค าสงวนรอบตามดชนมรปแบบ คอ for ตวแปรทเปนดชน = คาเรมตน to คาสดทาย do ค าสง (หรอกลมของค าสง) ทตองปฏบต เชน Power = n

for i = 1 to 5 do

Power = power*n

หรอ Sum = 0

for j = 1 to 10 do

Sum = sum + j

Page 13: หน่วยที่ 5 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

การเขยนรหสเทยม โดย อรรณพ ทองธรกล วทยาลยอาชวศกษาขอนแกน

127

5.2.2 ค าสงการท างานวนรอบในขณะทผลการทดสอบเงอนไขเปนจรง (While) เรมดวยการทดสอบเงอนไขกอน ถาผลการทดสอบเปนจรงจะท างานวนรอบตามทก าหนดไว แลวกลบไปทดสอบเงอนไขอก จนกวาผลการทดสอบเงอนไขจะเปนเทจจงไปท างานอนหรอหยดการท างาน ค าสงวนรอบในขณะทผลการทดสอบเงอนไขเปนจรงมรปแบบคอ While (เงอนไข) ค าสง (หรอกลมของค าสง) ทตองปฏบต เชน N = 10000

While (n>1)

begin

N = n/10

end