Transcript Chapter 3

เนือ้ หา
ประเภทของโปรแกรมภาษา
ขัน้ ตอนการพัฒนาโปรแกรม
กาหนดและวิเคราะห์ ปัญหา
การเขียนผังงาน (Flowchart)
1
1.1 ประเภทโปรแกรมภาษา
ประเภทของโปรแกรมภาษา
1. ภาษาระดับต่า (Low-Level Language)
เช่น ภาษาเครื่ อง (Machine language)
ภาษาแอสเซมบลี (Assembly Language)
2. ภาษาระดับกลาง (Middle-Level Language)
เช่น ภาษาฟอร์ ท ภาษา C
3. ภาษาระดับสูง (High-Level Language)
เช่น Basic, Pascal, Fortran, JAVA, Cobol
2
1.1.3 ภาษาระดับสูง
ภาษาระดับสูง (High-Level Languages)
ใช้ ภาษาที่มนุษย์เข้ าใจ (English-like language)
เช่น Basic, Pascal, Fortran, JAVA, ...
ใช้ คอมไพเลอร์ (Compiler) หรื อ Interpreter
ในการแปลภาษาระดับสูงให้ เป็ นภาษาเครื่ อง
Compiler แปลทังโปรแกรม
้
(เช่น Pascal, C, ...)
Interpreter แปลทีละบรรทัด (เช่น Basic, ...)
3
1.2 การพัฒนาโปรแกรม
5 ขัน้ ตอนในการพัฒนาโปรแกรม
1. กาหนดและวิเคราะห์ปัญหา (State problem & Problem analysis)
2. เขียนผังงาน (Flowchart)
3. เขียนโปรแกรม (Programming)
4. ทดสอบและแก้ ไขโปรแกรม (Testing & debugging)
5. ทาเอกสารและบารุงรักษาโปรแกรม (Document & maintenance)
4
1.3 กาหนด&วิเคราะห์ ปัญหา
กาหนดขอบเขตของปั ญหา (State problem)
ให้ ชดั เจนว่า จะให้ คอมพิวเตอร์ ทาอะไร (What?)
วิเคราะห์ ปัญหา (Problem analysis)
Input: กาหนดลักษณะข้ อมูลเข้ า
Process: กาหนดวิธีการประมวลผล (How?)
Output: กาหนดลักษณะข้ อมูลออก
5
ตัวอย่ างที่ 1
ออกแบบโปรแกรมให้ คอมพิวเตอร์ ทางานเป็ น
เครื่ องคิดเลขอย่างง่าย โดยรับข้ อมูล 2 ค่า (X, Y)
และแสดงผลบวกทางจอภาพ
Problem: คานวณผลบวกของ 2 ค่า
Problem Analysis
1. Input: รับข้ อมูล (X, Y) จากคีย์บอร์ ด
2. Process: คานวณ sum = X + Y
3. Output: แสดงผลบวก (sum) ทางจอภาพ
6
1.4 การเขียนผังงาน
ผังงาน (Flowchart) เป็ นแผนภาพที่ใช้ อธิบาย
การทางานของโปรแกรมอย่างเป็ นขันตอน
้
ประโยชน์ ของ Flowchart
1. อธิบายลาดับขันตอนการท
้
างานของโปรแกรม
2. ทาให้ ตรวจสอบข้ อผิดพลาดของโปรแกรมได้ ง่าย
3. ทาให้ ผ้ อู ื่นสามารถศึกษาการทางานและแก้ ไข
โปรแกรมได้ งา่ ย
7
1.4.1 ประเภทของผังงาน
ผังงานระบบ (System Flowchart)
แสดงขันตอนการท
้
างานภายในระบบงาน
โดยจะกล่าวอย่างกว้ างๆ
ผังงานโปรแกรม (Program Flowchart)
แสดงขันตอนของค
้
าสัง่ ที่ใช้ ในโปรแกรม
8
1.4.2 สัญลักษณ์ ในผังงาน
การเริ่ มต้ น และการสิ ้นสุดการทางาน
ลูกศรแสดงทิศทางการทางาน และการไหลของข้ อมูล
การประมวลผล หรื อการคานวณ
การรับข้ อมูล หรื อแสดงผล (ไม่ระบุชนิดอุปกรณ์)
การแสดงผลทางเครื่ องพิมพ์
การตรวจสอบเงื่อนไข
จุดเชื่อมต่อของผังงาน
9
1.4.3 รูปแบบของผังงาน
แบบลาดับ (Sequence)
แบบมีทางเลือก (Selection)
การเลือกทาแบบ 1 เส้ นทาง
การเลือกทาแบบ 2 เส้ นทาง
การเลือกทาแบบหลายเส้ นทาง
แบบทาซา้ (Looping)
10
1.4.3.1 แบบลาดับ
Flowchart แบบลาดับ (Sequence)
start
Input
statement
แสดงขันตอนการท
้
างานที่เรี ยงลาดับ
ไม่มีการข้ ามขัน้ หรื อย้ อนกลับ
output
end
11
1.4.3.2 แบบมีทางเลือก
แสดงการตรวจสอบเงื่อนไขให้ โปรแกรมเลือกทา
อย่างใดอย่างหนึง่ ซึง่ มี 3 กรณี
1. การเลือกแบบ 1 เส้ นทาง
check
condition
yes
statement(s)
no
จะทางานเฉพาะเมื่อเงื่อนไข
เป็ นจริงเท่านัน้
12
1.4.3.2 แบบมีทางเลือก
2. การเลือกแบบ 2 เส้ นทาง
yes
statement 1
check
condition
no
statement 2
เมื่อเงื่อนไขเป็ นจริงจะทาอย่างหนึง่
เมื่อเงื่อนไขเป็ นเท็จจะทาอีกอย่างหนึง่
13
1.4.3.2 แบบมีทางเลือก
3. การเลือกแบบหลายเส้ นทาง (n)
check
condition
1
2
3
statement1
statement2
statement3
n
...
statement n
เมื่อเงื่อนไขเท่ากับทางเลือกใดจะทาตามทางนัน้
14
1.4.3.3 แบบทาซา้
แสดงการทาซ ้าซึง่ มี 3 กรณี
1. การทาซา้ แบบเงื่อนไขเป็ นจริง
ตรวจสอบเงื่อนไขก่อน
check
condition
yes
statement(s)
no
exit loop
จะทางานซ ้าเมื่อเงื่อนไขเป็ นจริง
(ออกจากทางานซ ้าเมื่อเงื่อนไข
เป็ นเท็จ)
15
1.4.3.3 แบบทาซา้
2. การทาซา้ แบบจนเงื่อนไขเป็ นจริ ง
statement(s)
check
condition
yes
exit loop
ทางานก่อนการตรวจเงื่อนไข
ทางานซ ้าจนเงื่อนไขเป็ นจริง
(จึงออกจากทางานซ ้า)
no
16
1.4.3.3 แบบทาซา้
3. การทาซา้ ตามจานวนที่ระบุ
for i=1 to N
iN
statement(s)
i>N
exit loop
ทางานตามรอบที่กาหนด
โดยเริ่ มจากรอบเริ่มต้ น (i=1)
ไปยังรอบสุดท้ าย (i=N)
(ปกติการนับรอบจะเพิ่มที่
ละ 1 ค่า (i = i+1))
17
1.4.4 ตัวอย่ างผังงาน
ตัวอย่ างที่ 1: ออกแบบ Flowchart ให้ คอมพิวเตอร์
ทางานเป็ นเครื่ องคิดเลขอย่างง่าย โดยรับข้ อมูล 2 ค่า
(X, Y) และแสดงผลบวกทางจอภาพ
start
Read X,Y
sum = X+Y
sum
end
18
1.4.4 ตัวอย่ างผังงาน
ตัวอย่ างที่ 2: ออกแบบ Flowchart ให้
คอมพิวเตอร์ รับข้ อมูล 3 ค่า (X1, X2, X3)
คานวณค่าเฉลี่ย และแสดงค่าเฉลี่ย ทางจอภาพ
start
Read X1,X2,X3
sum=X1+X2+X3
mean = sum/3
mean
end
19
1.4.4 ตัวอย่ างผังงาน
ตัวอย่ างที่ 3: ออกแบบ Flowchart ให้
คอมพิวเตอร์ รับข้ อมูล N ค่า X (X1, X2, ..., XN) คานวณ
ค่าเฉลี่ย (iN Xi/N) และแสดงค่าเฉลี่ย ทางจอภาพ
start
sum = 0
Read N
for i=1 to N
iN
Read X
i>N
mean = sum/N
mean
sum=sum+X
end 20
1.4.4 ตัวอย่ างผังงาน
ตัวอย่ างที่ 5: ออกแบบ Flowchart ในการบวก
1+2+...+100
กาหนดให้
I = 1, 2, 3, ..., 100
และ SUM = 1+2+3+...+100
start
I=1
SUM = 0
while I<=100
no
yes
SUM = SUM+I
I = I+1
SUM
21
end
1.4.4 ตัวอย่ างผังงาน
ตัวอย่ างที่ 6: ออกแบบ Flowchart ให้ คอมพิวเตอร์
รับคะแนนนักศึกษา (X) แล้ วนามาจัดกลุม่ ตามเงื่อนไข
start
และแสดงผลทางจอภาพ
Read X
เงื่อนไข
คะแนน 80-100 กลุม่ G
คะแนน 50-79 กลุม่ P
คะแนนต่ากว่า 50 กลุม่ F
X > 79
X > 49
yes
yes
grade = ‘G’
grade = ‘P’
grade = ‘F’
grade
end
22
1.4.4 ตัวอย่ างผังงาน
start
ตัวอย่ างที่ 7: ออกแบบ Flowchart Read X
ให้ คอมพิวเตอร์ รับคะแนนนักศึกษา (X)X > 79
แล้ วนามาตัดเกรดตามเงื่อนไขและ
X > 69
แสดงผลทางจอภาพ
X > 59
เงื่อนไข
คะแนน 80-100 เกรด A
คะแนน 70-79 เกรด B
คะแนน 60-69 เกรด C
คะแนน 50-59 เกรด D
คะแนนต่ากว่า 50 เกรด F
X > 49
yes
yes
yes
yes
grade = ‘A’
grade = ‘B’
grade = ‘C’
grade = ‘D’
grade = ‘F’
grade
end
23
การใช้ IF
รู ปแบบคาสั่ง
IF เงื่อนไข[ทาเมื่อเงื่อนไขเป็ นจริง]
หรื อ
IF เงื่อนไข
[
คาสั่งทาเมื่อเงื่อนไขจริง
]
ทาต่ อไป.......
24
การใช้ IF
ตัวอย่ างการใช้ งาน
To Test :A
IF :A>10[STOP]
PRINT :A
TEST :A+1
END
25
การใช้ IFELSE
รู ปแบบคาสั่ง
IFELSE เงื่อนไข[ทาเมื่อเงื่อนไขจริง] [ทาเมื่อเงื่อนไขเท็จ]
หรื อ
IFELSE เงื่อนไข
[
คาสั่ง1ทาเมื่อเงื่อนไขจริง
คาสั่ง2ทาเมื่อเงื่อนไขจริง
]
[
คาสั่ง1ทาเมื่อเงื่อนไขเท็จ
คาสั่ง2ทาเมื่อเงื่อนไขเท็จ
]
คาสั่งต่ อไป
26
โปรแกรมสลับค่ าข้ อมูล
มีวัตถุประสงค์ ท่ จี ะทาการสลับค่ า
ข้ อมูลที่รับเข้ ามา 2 ตัว การเขียน
โปรแกรมเพื่อให้ คอมพิวเตอร์ สลับ
ค่ าโดยตรงไม่ ได้ จะต้ องมีตัวแปรอีก
ตัวหนึ่งมาเป็ นที่พกั ข้ อมูลระหว่ าง
ทาการย้ ายข้ อมูลต่ างๆ เพื่อให้
เข้ าใจการสั่งให้ คอมพิวเตอร์ สลับ
ค่ าข้ อมูล
27
โปรแกรมสลับค่ าข้ อมูล
A
(2)
B
(1)
C
(3)
28