ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
ขั้นตอนวิธีและเครื่องมือในการพัฒนาโปรแกรม
(Algorithm and Program Development Tools) อ.จรรยา สายนุ้ย CS.313 ภาควิชาวิทยาการคอมพิวเตอร์
2
Notion of Algorithm problem algorithm Program or Software input output
3
Algorithm Definition An algorithm is a sequence of unambiguous instructions for solving a problem for any legitimate input in a finite time.
4
แนวทางการเขียนแสดงขั้นตอนวิธีที่ดี
เขียนแสดงการทำงานเป็นลำดับ ตามหมายเลข หรือ จากบนลงล่าง ชัดเจนและกะทัดรัด เข้าใจได้ง่ายและใช้เวลาเรียนรู้ไม่นาน แก้ปัญหาและให้คำตอบที่ถูกต้องได้อย่างมีประสิทธิภาพ
5
Algorithm Representation
ใช้สำหรับอธิบายขั้นตอนวิธีที่ออกแบบ ใช้ติดต่อสื่อสารกับโปรแกรมเมอร์หรือผู้ใช้ นำไปใช้เป็นแนวทางในการพัฒนาโปรแกรม ใช้ตรวจสอบข้อผิดพลาดในการทำงานของโปรแกรมได้ เป็นส่วนหนึ่งในเอกสารประกอบโปรแกรม
6
Methods of Specifying an Algorithm
There are 2 options that are most widely used nowadays: Pseudocode Flowchart
7
Pseudocode (รหัสจำลอง)
A pseudocode is a mixture of a natural language and programming language like constructs. ไม่ขึ้นกับรูปแบบการเขียนของภาษาการโปรแกรมใดๆ เขียนอธิบายเพื่อให้อ่านได้เข้าใจง่าย แปลงเป็นโปรแกรมภาษาระดับสูงได้ง่าย มีข้อมูลเพียงพอสำหรับการแปลขั้นตอนวิธีจากรหัสลำลองไปเป็นโปรแกรมซึ่งเขียนด้วยภาษาการโปรแกรมใดๆ ที่ต้องการได้
8
ตัวอย่างรหัสจำลอง Algorithm mean Algorithm max, min
total 0 , count 0 Loop (not end of file) 2.1 read number 2.2 total total + number 2.3 count count + 1 average total / count Print average end Algorithm max, min read number max number , min number Loop (not end of file) 2.1 read number 2.2 if number > max 2.2.1 max number 2.3 if number < min 2.3.1 min number Print max, min end
9
ตัวอย่างรหัสจำลอง Algorithm mean Algorithm mean read N total 0
total 0 , count 0 while count < N do 2.1 read number 2.2 total total + number 2.3 count count + 1 average total / count Print average end Algorithm mean read N total 0 For count 1 to N do 3.1 read number 3.2 total total + number 3.3 count count + 1 average total / count Print average end
10
Flowchart (ผังงาน) ใช้สัญลักษณ์ที่มีความหมายเฉพาะอย่าง
มีทิศทางการทำงานโดยใช้ลูกศร แปลเป็นโปรแกรมได้ง่ายเรียงตามลำดับที่แสดง
11
สัญลักษณ์ที่ใช้ในผังงาน
Start /End Decision Input/Output Process Print Connector
12
ตัวอย่างผังงาน Start Print max not end of file read number Stop
max number read number Print max not end of file A number > max Stop Y N
13
โครงสร้างพื้นฐานการทำงานภายในขั้นตอนวิธี
Standard Operations Basic Control Structures
14
Standard Operations Declaration Expression Assigning Values
15
Declaration module header : main, submodule data : input/output
e.g. Algorithm Euclid() , Module Sum(), Subprogram Mean() data : input/output e.g. Input: integer n , character d , array A with integer 30 elements Output: summation of n elements
16
Expression consist of operand , operator types :
arithmetic: a + (b – c) * 4 relational: x > y , i ≠ 10 logical: (i < 5) and (j < 10)
17
ตัวดำเนินการทางคณิตศาสตร์
Arithmetic operator
18
เครื่องหมายเปรียบเทียบ
Relational operator
19
ตัวดำเนินการตรรกะ Logical operator
20
Assigning Value variable expression Format: e.g. x 1 j i * i
sum sum + a[n] check (m<5) and (n<4) variable expression
21
Example Algorithm degree_conversion Input : a number as degree Celcius
Output : an equivalent degree Fahrenheit 1. read celcius 2. fahrenheit 9/5*celcius+32 3. write celcius , fahrenheit 4. end
22
Basic Control Structures
Sequence Control Selection/Decision Iteration /Repetition
23
Sequence Control Assignment stmt. Input/Output stmt.
24
Sequence Control Assignment stmt. e.g. j i+k*2 name “hawaii” i 0
25
Sequence Control Input/Output stmt. e.g. open file fn1, fn2
close file fn1 read var1, var2, … from fn1 write var1, var2, … to fn2 read var1, var2, … write var1,var2, …
26
Selection/Decision simple (if-then-else) nested if
multiple (switch-case)
27
Simple Selection if-then if-then-else sequence of if if-then (-else)
28
Simple Selection if-then e.g. if-then-else
29
Simple Selection sequence of if-then e.g.
30
Simple Selection sequence of if-then (-else) e.g.
31
Nested Selection stmt. if-then (if-then) if-then-else (if-then-else)
32
Nested Selection stmt. ตัวอย่าง if (เงื่อนไข) then ….. end if
รูปแบบ: if-then (if-then) ตัวอย่าง if (เงื่อนไข) then ….. end if
33
Nested Selection stmt. ตัวอย่าง if-then-else (if-then-else)
…. Else … [else] end if
34
Nested Selection stmt. ตัวอย่าง if-then (if-then-else)
-else (if-then-else) ตัวอย่าง if (เงื่อนไข) then …. [else] end if Else …
35
Multiple Selection stmt.
case/switch case ans of 1 : x n * n 2 : x n * m 3 : x n * n * m 4 : x n * n * n else write “input error !” end case
36
Iteration /Repetition (Loop)
for while-do repeat-until (do-while)
37
Iteration /Repetition (Loop)
for statement e.g. 1.for i0 to 10 1.1 read num 1.2 sumsum+num 2.write “sum =”,sum Requirement specification คือ ? <ขั้นตอนวิธีนี้แก้ปัญหาอะไร?>
38
Iteration /Repetition (Loop)
while-do statement e.g. 1.i 1 , sum 0 2.while (i<10) do 2.1 read num 2.2 sum sum + num 2.3 i i + 1 3.write “sum =”,sum
39
Iteration /Repetition (Loop)
repeat-until (do-while) statement e.g. 1.i 1 , sum 0 2.repeat 2.1 read num 2.2 sum sum + num 2.3 i i + 1 until (i>10) 3.write “sum =”,sum
40
Exercise1 เขียนขั้นตอนวิธีเพื่อหาค่า sum square (n)
แบบที่ 2 = {n (n+1)(2n+1)}/6
41
Answer แบบที่ 1 = 12 + 22 + 32 + … + n2 Algorithm sumsqr(n) read n
for i 1 to n 3.1 sumsq sumsq + i * i 4. display “sumsquare of ”,n,“=”,sumsq 5. end
42
Answer แบบที่ 2 = {n (n+1)(2n+1)}/6 Algorithm sumsqr(n) 1. read n
2. sumsq n * (n+1) * (2n+1) / 6 3. display “sumsquare of ”,n,“=”,sumsq 4. end
43
Exercise2 เขียนโปรแกรมเพื่อคำนวณหาค่า
BMI = น้ำหนัก(กิโลกรัม) / (ส่วนสูง(เมตร)) ของกลุ่มตัวอย่างจำนวน 10 คน และสรุปตามเงื่อนไขดังนี้ ค่า BMI ข้อสรุป >= อ้วนเกินไป >= 30 แต่ไม่เกิน อ้วน >= 25 แต่ไม่เกิน ท้วม >= แต่ไม่เกิน เหมาะสม < ผอมเกินไป Algorithmic Process and Programming , created by Dararat Saelee
44
Answer 1.4 if (bmi >= 40) then display (“too fat”) 2. end
Algorithm BMI 1. for i 1 to 10 1.1 read w,h 1.2 bmi w / (h * h) 1.3 display “BMI = ”, bmi 1.4 if (bmi >= 40) then display (“too fat”) else if (bmi >= 30) then display (“fat”) else if (bmi >= 25) then display (“quite fat”) else if (bmi >=18.5) then display (“slim”) else display (“too slim”) 2. end Algorithmic Process and Programming , created by Dararat Saelee
45
Exercise3 เขียนขั้นตอนวิธีด้วยรหัสลำลองเพื่อคำนวณหาค่า s จากสูตร
s = a + ar + ar arn โดยการอ่านค่า a, r และ n เข้ามาทางแป้นพิมพ์ Algorithmic Process and Programming , created by Dararat Saelee
46
การออกแบบข้อมูลสำหรับใช้ในการเขียนขั้นตอนวิธี
Input/Output Data Constant/Variable Data
47
Input/Output Data Input: data to be known before/while processing a program Output: result from program execution Types: decide appropriate type of input /output data ; e.g. int , longint, char, float , double Structure: relationship of each data : struct or record, series of data set (array)
48
Constant/Variable Data
Constant: its value is fixed before running until stop running e.g. 50, ‘y’ , “male” Variable: its value can be changed during the execution e.g. x = y + z
49
Data Design Exercise การแปลงค่าองศาเซลเซียสเป็นค่าองศาฟาเรนไฮต์
ค่าองศาฟาเรนไฮต์ f = (9 /5)* c + 32 ค่าคงที่ ตัวแปร ข้อมูลเข้า ข้อมูลผลลัพธ์
50
เครื่องมือในการพัฒนาโปรแกรม
Programming Environment Program Development Tools
51
S/W Development Environments
set of tools and techniques provided for users to develop programs in easier way and more convenient use e.g. compiler + editor + debugger + file system + GUI or windowed interface
52
Programming Environment
Integrated Development Environment (IDE) : Editor Compiler Preprocessor Libraries debugging tools and other utilities e.g. Turbo C, C-Free, DevC
53
Programming Environment
Development kits : compiler, libraries e.g. JDK/JRE Tools : only editor e.g. Notepad editor & tools e.g. EditPlus
54
Program Development Tools
Editor Libraries Preprocessor Compiler Debugger Utilities
55
Program Development Tools
Editors : Notepad , Turbo C/C++ editor , EditorPlus , EClipse Libraries : Header files (C - #include) Packages (Java - import)
56
Program Development Tools
Preprocessor : C - #define Compilers : C – gcc , cc , Turbo C/C++ Java – javac , java
57
Program Development Tools
Debuggers : Turbo C/C++ trace , watch DOS debug Utilities : C - online help Java – help message
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.