การเขียนผังงาน (Flow Chart) และซูโดโค้ด(Pseudo Code)
Download
Report
Transcript การเขียนผังงาน (Flow Chart) และซูโดโค้ด(Pseudo Code)
ครูวรี ศั กดิ ์
จันทรสุ
์ ข
([email protected])
กลุมสาระการงานอาชี
พและเทคโนโลยี
โรงเรียน
่
หันคาพิทยาคม
นักเรียนสามารถเขียนซูโดโคดได
้
้
นักเรียนเขาใจถึ
งความหมายของ
้
สั ญลักษณต
ทีใ่ ช้ในผังงาน และสามารถ
์ างๆ
่
นาไปใช้ไดอย
กตอง
้ างถู
่
้
นักเรียนสามารถเขียนผังงานแบบ if-else
ไดอย
กตอง
้ างถู
่
้
นักเรียนสามารถเขียนผังงานแบบวนซา
้ ได้
นักเรียนสามารถอานและเข
าใจผั
งงานทีม
่ ี
่
้
ให้ไดอย
กตอง
้ างถู
่
้
2
อัลกอริทม
ึ
(Algorithm) หมายถึง ขัน
้ ตอน
การทางานทีเ่ ป็ นลาดับ
คอมพิวเตอรท
์ างานทีละคาสั่ งตามลาดับ
โปรแกรมคอมพิวเตอรจะประกอบด
วยค
าสั่ ง
์
้
จานวนมากทีค
่ วบคุมให้คอมพิวเตอรท
์ างาน
ไปตามขัน
้ ตอนทีก
่ าหนดไว้
3
อัลกอริทม
ึ จะช่วยอธิบายลาดับขัน
้ ตอนที่
สอดคลองกั
บการทางานของโปรแกรม
้
อาจใช้เครือ
่ งมือตางๆ
ช่วยในการแสดง
่
อัลกอริทม
ึ เช่น
ผังงาน (FLOW CHART)
ซูโดโคด
้ (PSEUDOCODE)
4
อยูในขั
น
้ ตอนการออกแบบโปรแกรม
่
โดยคิด
วา่
อะไรเป็ นขอมู
้ ลเขา้ (Input)
อะไรเป็ นขอมู
้ ลออก (Output)
วิธก
ี ารประมวลผลทีจ
่ ะนามาซึง่ คาตอบ
(Process)
ตัวอยางเช
าเฉลี
ย
่ ของคะแนน
่
่ น ตองการหาค
้
่
วิชาการเขียนโปรแกรม ของนักเรียนจานวน
50 คน
INPUT: คะแนนของนักเรียนแตละคน
่
(จานวน 50 คน)
5
Pseudo
การอธิบายขัน
้ ตอนการประมวลผลโดยใช้
“วลีภาษาอังกฤษ” ในการแสดง อธิบาย หรือ
กาหนดลาดับการทางาน
Flow
Code
Chart
การอธิบายขัน
้ ตอนการประมวลผลโดย ใช้
สั ญลักษณ ์ ในการแสดงความหมาย หรือ
กาหนดลาดับการทางาน
6
การอธิบายขัน
้ ตอนวิธก
ี ารทางาน
ซูโดโค้ด
เริม
่ ต้นการทางาน
Start หรือ Begin
จบการทางาน
Stop หรือ End
รับคา่ Data
Read Data หรือ Input Data
แสดงคาของ
Data
่
Write Data หรือ Output Data
กาหนดคาให
่
้ Sum มีคาเท
่ ากั
่ บ0
Sum 0 , Sum = 0
คานวณคา่ Answer เทากั
่ บ X2+Y2
Answer
แสดงคาของ
Answer
่
Write Answer หรือ Output Answer
= X2
+ Y2
7
การปฏิบต
ั ก
ิ ารของคอมพิวเตอรแบ
น
์ งออกเป็
่
6
แบบดังนี้
1. คอมพิวเตอรสามารถก
าหนดคาให
์
่
้กับตัวเก็บ
ขอมู
้ ล
1.1 กาหนดคาเริ
่ ตน
่ ม
้ คาทีใ่ ช้ Initialize หรือ
Set เช่น Set x = 500
1.2 กาหนดคาที
่ เ่ กิดจากการประมวลผลไวที
้ ่
ตัวเก็บ จะใช้เครือ
่ งหมาย
= เช่น x = 500 + 1 หรือ y = 100
หรือ z = y
2. รับขอมู
้ ล คาทีใ่ ช้ Read หรือ Get เช่น
8
สมมุตใิ ห้
Set x = -1
Set y = 1
, * ,มพ
( อะไรออกมา
)
จะพิ
์
บ้าง??
4. ปฏิบต
ั ก
ิ ารทางคณิตศาสตร ์ + , เช่น C = (F-32) * 5/9
5. เปรียบเทียบและทาการเลือก คาทีใ่ ช้ IF, THEN,
ELSE เช่น
IF (x > y) THEN
IF (x >0) THEN
print “x is grater than y”print “This is positive numbe
ELSE
ELSE
print “x is less than y” print “This is negative numb
END IF
END IF
9
FIND AVERAGE OF X
1.
2.
3.
4.
5.
6.
Set TOTAL=0, COUNT=1
READ X
IF (COUNT <= 3) DO 3.1
3.1 TOTAL = TOTAL + X
3.2 COUNT = COUNT +1
IF (COUNT > 3) DO 5
MEAN = TOTAL / COUNT
WRITE MEAN
สมมุตใิ ห้
x = 1,2,3
MEAN
จะมีคา่
เทาไร
่
จะพิ
มพอะไรออกมา
์
บ้าง??
การหาคาเฉลี
ย
่
่
ของตัวเลขที่
รับเขามา
้
ทัง้ หมด 3 ตัว
10
ตัวอยางการวิ
เคราะหงานและ
่
์
ออกแบบโปรแกรม
1. สิ่ งทีต
่ ้องการจากระบบ => พืน
้ ทีว่ งกลม
2. รูปแบบผลลัพธ ์ => The area of circle
is …....
3. ขอมู
้ ลเขา้ => รัศมีวงกลม
4. ตัวแปร => รัศมี (r) เป็ นตัวเลขจานวน
เต็มหรือทศนิยมก็ได้ (ตัวแปร r อาจเป็ น
ชือ
่ อืน
่ ได้ เช่น radius หรือ R )
5. วิธก
ี ารประมวลผล => พืน
้ ทีว่ งกลม
(area) = (22/7)*r*r
11
ตัวอยางการวิ
เคราะหงานและ
่
์
ออกแบบโปรแกรม
Program design -- วิธก
ี ารประมวลผล
5.1) รับข้อมูล r
5.2) ประมวลผล area = (22/7)*r*r
5.3) พิมพ ์ “The area of circle is
”, area
5.4)
จบการทางาน
12
จากตัวอยางที
่
่
1 จงเขียนซูโดโค้ดหา
พืน
้ ทีว่ งกลม
เฉลยตัวอยางที
่1
่
1. Read r
2. Set area = (22/7) * r * r
3. Write “The area of circle is ”,
area
13
1. ให้เขียนซูโดโคดเพื
อ
่ ทาการหาคาเฉลี
ย
่ ของเลข
้
่
1 ถึง 10
2. ให้เขียนซูโดโคดเพื
อ
่ ทาการหาคาเฉลี
ย
่ ของเลข
้
่
กีจ
่ านวนก็ไดที
่ ใช
ู้ ้
้ ผ
input เขามา
และหยุดรับขอมู
่ ผูใช
้
้ ลเมือ
้ ้ใส่เลข 0
14
ผังงาน
(Flowchart) คือ แผนภาพทีแ
่ สดงลาดับขึน
้
ตอนของการทางาน โดยใช้ลูกศรและสั ญลักษณ ์
แบบตางๆ
เพือ
่ ทาให้งายต
อการท
าความเขาใจใน
่
่
่
้
การทางานของโปรแกรม
ยนผังงาน
หลักเกณฑในการเขี
์
1. ทิศทางของลูกศรในผังงาน ควรจะมีทศ
ิ ทางจาก
บนลงลาง
่ หรือจากซ้ายไปขวาเสมอ
2. พยายามหลีกเลีย
่ งการเขียนลูกศรทีท
่ าให้เกิด
จุดตัด เพราะจะทาให้
ผังงานอานและท
าความเขาใจได
ยาก
่
้
้
3. เขียนขอความให
้
้สั้ นกระทัดรัดและไดใจความ
้
15
แสดงถึงจุดเริม
่ ตนหรื
อ
้
จุดสิ้ นสุดการทางาน
Start
Start - แสดงถึง
จุดเริม
่ ตนการท
างาน
้
End
Stop - แสดงถึง
จุดสิ้ นสุดการทางาน
16
Process - แสดงถึงการ
ประมวลผล
ตัวอยาง
่
pay=hours*5 นา 5 คูณ hours ผลลัพธเก็
้ ่
์ บไวที
pay
ให้ตัวแปร m มีคาเป็
m=0
่ น0
x= 5
y=10
x = x+y
17
แสดงถึง การรับหรือ
แสดงผล
ขอมู
สื่อ
้ ล – ไมระบุ
่
Read X
Write Sum
แสดงถึงการรับขอมู
้ ล (Input)ไมระบุ
สื่อ
่
แสดงถึงการแสดงผลขอมู
้ ล
สื่อ
(Output)-ไมระบุ
่
18
การรับขอมู
้ ลเขาทาง
้
แป้นพิมพ ์
A, B
แสดงถึงการรับขอมู
้ ลสาหรับ
x ทางคียบอร
ด
์
์
x
แสดงถึงการรับขอมู
้ ลสาหรับ A, B
ทางคียบอร
ด
์
์
19
การแสดงผลขอมู
้ ลออกทางจอภาพ
ANS
x,y
การแสดงผลขอมู
่ งพิมพ ์
้ ลออกทางเครือ
ANS
x,y
20
สั ญลักษณส
์ าหรับการเขียนผังงาน
การติดตอกั
่ บอุปกรณที
้ ง
์ เ่ ป็ นการเขาถึ
ขอมู
้ ลแบบลาดับ(sequential access )
เช่น เทปแมเหล็
ก
่
การติดตอกั
่ บอุปกรณที
้ ง
์ เ่ ป็ นการเขาถึ
ขอมู
้ ลแบบตรง (direct or random
access) เช่น ฮารดดิ
์ สก,CD
์
21
Decision – แสดงถึงการ
เลือก/ตัดสิ นใจ /เงือ
่ นไข
การตัดสิ นใจ
No
Pay=Hours*100
Hours <= 40
Yes
Pay=Hours*200
22
A
B
2
Direction – แสดงถึงทิศทางการ
ทางานโดยทัว่ ไป ลูกศรจะมีทศ
ิ ทาง
จาก บนลงลาง
่ และ จากซ้ายไป
ขวา
Onpage Connector – แสดงถึงจุด
เชือ
่ มตอที
่ ยูภายในหน
่ อ
่
้ าเดียวกัน
Offpage Connector – แสดงถึงจุด
เชือ
่ มตอกั
่
่ บเอกสารหน้าอืน
23
A
Onpage
Connector
B
24
Start
2
Offpage
Connector
Stop
2
25
ทุกผังงานตองมี
จุดเริม
่ ตนและจุ
ดสิ้ นสุดเพียง
้
้
อยางละหนึ
่งแหงเท
่
่ านั
่ ้น
ทุกสั ญลักษณของผั
งงานตองมี
ลก
ู ศรชีท
้ ศ
ิ ทางเขา้
้
์
และลูกศรชีท
้ ศ
ิ ทางออกอยางละหนึ
่งลูกศร
่
Start
ยกเวนสั
ญ
ลั
ก
ษณ
จุ
ด
เริ
ม
่
ต
น
จุ
ด
สิ
้
น
สุ
ด การ
้
้
์
ตัดสิ นใจ และ จุดตอ
่
End
สั ญลักษณจุ
่ ตนมี
้ ศ
ิ ทางออก
้ เฉพาะลูกศรชีท
์ ดเริม
สั ญลักษณจุ
้ ศ
ิ ทางเขา้
์ ดสิ้ นสุดมีเฉพาะลูกศรชีท
สั ญลักษณการตั
ดสิ นใจมีลก
ู ศรชีท
้ ศ
ิ ทางเขา้ 1
์
ทิศทาง มีลก
ู ศรชีท
้ ศ
ิ ทางออก 2 ทิศทางหรือ
มากกวา่
26
ทิศทางของลาดับขัน
้ ตอนการทางาน
นิยม
เขียนจากบนลงลางหรื
อจากซ้ายไปขวา
่
เส้นของลูกศรทีใ
่ ช้บอกทิศทางของลาดับ
ขัน
้ ตอนวิธก
ี ารทางาน ไมควรเขี
ยนตัดกัน
่
หรือทับกัน
ไมควรเขี
ยนเส้นของลูกศรเพือ
่ ทาการ
่
เชือ
่ มโยงลาดับขัน
้ ตอนทีอ
่ ยูห
นมาก
่ างกั
่
หากจาเป็ นควรใช้สั ญลักษณจุ
์ ดตอแทน
่
การเขียนผังmงานส
0 ่ วนของการกาหนดค
m=0า
่
หรือการคานวณคา่ นิยมใช้เครือ
่ ง หมาย
ลูกศร () แทนการใชเครือ
่ งหมาย
27
START
TOTAL= 0
COUNT=0
READ X
END OF DATA
NO
YES
TOTAL= TOTAL + X
MEAN = TOTAL/COUNT
WRITE MEAN
COUNT =COUNT+1
STOP
WRITE X
READ X
28
โลกของคอมพิวเตอร์ สารสนเทศ และอินเทอร์เน็ต
โดย ผศ. วาสนา
สุ ขกระสานติ
เทคโนโลยีคอมพิวเตอร์และสารสนเทศ โดย ผศ. ลานนา ดวงสิงห์
ความรู ท้ ว่ ั ไปเกี่ยวกับคอมพิวเตอร์ รศ. ประศาสตร์ บุญสนอง
29
จากตัวอยางที
่
่
1
จงเขียนผังงานของ
การหาพืน
้ ทีว่ งกลม
START
Read r
area = 22/7*r*r
Write r, area
STOP
30
ตัวอยางที
่
่
1 จงเขียนซูโดโคดและผั
งงานเพือ
่
้
คานวณหาผลรวมของเลข 5 ถึง 20
1. สิ่ งทีต
่ ้องการจากระบบ =
2. รูปแบบผลลัพธ ์ =
3. ขอมู
้ ลเขา้ =
4. ตัวแปร =
5. วิธก
ี ารประมวลผล =
31
ตัวอยางที
่
่
2 จงเขียนซูโดโคดและผั
งงาน
้
เพือ
่ คานวณหาความยาวของทีด
่ น
ิ แปลงหนึ่ง
ซึง่ มี1.
พน
ื้ สิที
่ ต
ตารางวา และกว
10
่ งที
่ 120
= าง
้
้องการจากระบบ
วา
2. รูปแบบผลลัพธ ์ =
3. ขอมู
้ ลเขา้ =
4. ตัวแปร =
5. วิธก
ี ารประมวลผล =
32
ตัวอยางที
่
่
3 จงเขียนซูโดโคดและผั
งงานเพือ
่
้
รับขอมู
้
่งชิน
้ และจานวนชิน
้ ลราคาสิ นคาต
้ อหนึ
่
ทีซ
่ อ
ื้ สิ นคานั
่ นไข คือ
้ ้น โดยมีเงือ
ถาซื
้ น้อยกวา่
้ อ
ถาซื
้ ตัง้ แต่ 6
้ อ
6 ชิน
้ ลดราคา 10%
ชิน
้ ขึน
้ ไป ลดราคา 15%
แลวพิ
นคารวมออกมาแสดงบนหน
าจอ
้ 1.มสิพ่ งราคาสิ
์ ทีต
้
้
่ องการจากระบบ
=
้
2. รูปแบบผลลัพธ ์ =
3. ข้อมูลเขา้ =
4. ตัวแปร =
5. วิธก
ี ารประมวลผล =
33
ตัวอยางที
่
่
4 จงเขียนซูโดโคดและผั
งงาน
้
เพือ
่ รับขอมู
้ ลตัวเลข 3 จานวน และพิมพ ์
เฉพาะเลขทีม
่ ค
ี าน
่ ้ อยกวา่ 0 ออกมาแสดงบน
1. สิ่ งทีต
่ องการจากระบบ
=
จอภาพ
้
2. รูปแบบผลลัพธ ์ =
3. ขอมู
้ ลเขา้ =
4. ตัวแปร =
5. วิธก
ี ารประมวลผล =
34
ตัวอยางที
่
่
5 จงเขียนซูโดโคดและผั
งงานเพือ
่
้
จานวน
รับขอมู
้ ดหนึ่ง ไมระบุ
้ ลรหัสสิ นคาชุ
่
แลวค
ร่ ายการ หาก
้ านวณหาวารั
่ บสิ นคามากี
้
ตองการหยุ
ด ให้ใส่รหัสสิ นคาเป็
้
้ น “xxxx”
1. สิ่ งทีต
่ องการจากระบบ
=
้
2. รูปแบบผลลัพธ ์ =
3. ขอมู
้ ลเขา้ =
4. ตัวแปร =
5. วิธก
ี ารประมวลผล =
35
ตัวอยางที
่
่
6 จงเขียนซูโดโค้ดและผังงานเพือ
่
รับขอมู
่ อ
ี ยู่ (ลิตร) ถาต
้ ลปริมาณน้าทีม
้ ้องการแบง่
น้านั้นใส่ขวด ขวดละ 800 มิลลิลต
ิ ร จง
เขียนโปรแกรมคานวณวาจะเติ
มน้าไดเต็
่
้ มขวด
จ
านวนกี
ข
่
วด
และเหลื
อ
น
า
ปริ
ม
าณเท
าใด
้
่
1. สิ่ งทีต
่ องการจากระบบ
=
้
2. รูปแบบผลลัพธ ์ =
3. ข้อมูลเขา้ =
4. ตัวแปร =
5. วิธก
ี ารประมวลผล =
36
ตัวอยางที
่
่
7 จงเขียนซูโดโค้ด และผังงานสาหรับ
อานค
าคะแนนสอบวิ
ชาคณิตศาสตรของนั
กเรียน 10
่
่
์
คน ซึง่ มีคะแนนเต็ม 50 คะแนน แลวค
้ านวณหา
คาเฉลี
ย
่ ของคะแนนสอบนั้น ๆ พรอมทั
ง้ นับดวยว
ามี
่
้
้
่
นักเรียนสอบตก (ไดคะแนนน
้
้ อยกวา่ 25 คะแนน) กี่
่ องการจากระบบ
=
คน1. สิ่ งทีต
้
2. รูปแบบผลลัพธ ์ =
3. ขอมู
้ ลเขา้ =
4. ตัวแปร =
5. วิธก
ี ารประมวลผล =
37
START
่ 9 ถ้ า
ตัวอยางที
่
กาหนดให้ a = 3 และ
b = -2 ผลลัพธเป็
์ น
เทาใด
่
INPUT a,b
c=a-b
d=c-a
Yes
c<d
Print c - d
No
Print c + d
STOP
38
ตัวอยางที
่ 10 เมือ
่
่
พิมพค
์ า่ C ทาง
จอภาพคา่ C มีคา่
เทาใด
่
START
C=0
S=0
I =0
C >= 50
No
S=S+ C
C=C+2
I = I +1
Yes
Print S, C
STOP
39
ตัวอย่ างที่ 11
40
Start
ตัวอย่ างที่ 12 จงหาว่ า Flowchart ต่ อไปนีม้ ี
ข้ อผิดพลาดอยู่ก่ ีท่ ี
J=0
J : 20
>=
sum
Start
<
J = J+2
sum = sum + J
41
ตัวอย่ างที่ 13 เมื่อให้ คา่ N = 5 จง
วิเคราะห์วา่ จะมีการพิมพ์คา่ ของ N
กี่ครัง้ จากผังงานต่อไปนี ้
start
N
I = 1, K = 1
I<=N
yes
K=1, I=I+2
no
stop
>N
K:N
<=N
พิมพ์ N
K = K+1
42
Start
ตัวอย่ างที่ 17 Ans มีคา่ เท่าไร
M
Ans = 0, Odd = 1
Odd<=M
yes Ans = Ans + Odd
Odd = Odd+2
no
Ans
Stop
43