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

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

Transcript of หน่วยที่ 4 · 1.3...

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

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

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

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

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

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

หนวยท 4

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

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

109

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

สาระส าคญ

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

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

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

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

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

ตวอยางท 1 ลกษณะของรหสเทยม อธบำยขนตอนวธกำรท ำงำน Begin 1. เรมตนกำรท ำงำน Read Width , Length 2. รบคำ Width , Length Area = Width * Length 3. ค ำนวณคำ Area = Width * Length Print Area 4. แสดงคำ Area End 5. จบกำรท ำงำน

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

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

110

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: หน่วยที่ 4 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

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

111

ตวอยางท 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

Write C

Stop

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

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

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

112

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

ตารางท 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

Write Area

Stop

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

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

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

113

Y

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

N

ตารางท 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. ทดสอบเงอนไข (i <n ) ถำจรงกลบไป- While(i<n)

Start

Read n

i=0 , sum=0

Input age

i=i+1 ,

sum=sum+age

i < n

avg=sum/n

avg

Stop

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

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

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

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

114

N

N

Y

Y

Y

ท ำขอ 4 ถำเทจใหท ำขอ 7 7. ค ำนวณหำอำยเฉลย avg = sum / n 8. แสดงคำอำยเฉลย Print “ Age Average = ”,avg 9. จบกำรท ำงำน End

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

Start

n

i=0

id,name,salary

salary <10000 tax = salary*0%

salary <15000 tax =

(salary-10000)*5%

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

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

net = salary-tax

A

B

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

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

115

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

Y

N

ตารางท 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 10. แสดงคำ รหส,ชอ,เงนเดอน,ภำษ,เงนสทธ- Print id ,name ,salary ,tax ,net

i = i + 1

i < n

Stop

id ,name ,salary ,tax ,net

A

B

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

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

116

ของพนกงำนแตละคน 11. เพมคำนบจ ำนวนพนกงำนรอบละ 1 i = i + 1 12. ทดสอบเงอนไข (i<n) ถำจรงใหกลบไป

ท ำงำนในขอ 4 ถำเทจใหจบกำรท ำงำน while (i<n)

13. จบกำรท ำงำน End ตวอยางท 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

n

score

A

B

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

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

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

117

Y

Y

N Y

N Y

N Y

N

N

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

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

Stop

A

B

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

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

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

118

ตารางท 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: หน่วยที่ 4 · 1.3 รหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัด 1.4 รหัสเทียมไม่ไดข้ึ้นกบัภำษำใดภำษำหน่ึง

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

119

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

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

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

120

for j = 1 to 10 do Sum = sum + j

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