ขั้นตอนวิธีและเครื่องมือในการพัฒนาโปรแกรม

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Advertisements

Application Development Overview Nithi Thanon Computer Science Prince of Songkla University.
1 C Programming An Introduction. 2 Preprocessing Directives เขียนได้ 2 รูปแบบ #include คอมไพเลอร์จะทำ การค้นหาเฮดเดอร์ไฟล์ที่ระบุ จากไดเร็คทอรีที่ใช้
Set is a basic term in Mathematics. There is no precise definition for term “set”, But roughly speaking, a set is a collection of objects, Things or symbols,
ขั้นตอนวิธีและเครื่องมือในการพัฒนาโปรแกรม (ต่อ)
จำนวน สถานะ NUMBER OF STATES. ประเด็นที่ สนใจ The number of distinct states the finite state machine needs in order to recognize a language is related.
การซ้อนทับกัน และคลื่นนิ่ง
Chapter 8 : Logic Modeling & Data Modeling
Chapter 9 : Designing Approach
รายวิชา ง40206 โครงสร้างข้อมูลและขั้นตอนวิธี
Graphical User Interface charturong.ee.engr.tu.ac.th/CN208
Braille OCR Mobile Application
Basic programming (JAVA)
การอบรมเชิงปฏิบัติการเรื่อง “การสร้างข้อสอบ OSCE”
Database Management System
VARIABLES, EXPRESSION and STATEMENTS. Values and Data Types Value เป็นสิ่งพื้นฐาน มีลักษณะเป็น ตัวอักษร หรือ ตัวเลข อาทิ 2+2 หรือ “Hello world” Value.
อาจารย์ มธ. อธิบายการใช้ โมเดลของ
Data Structures and Algorithms
ระบบการจัดเก็บในคลังสินค้า
6. โครงสร้างข้อมูลแบบแฟ้ม
: Chapter 1: Introduction 1 Montri Karnjanadecha ac.th/~montri Image Processing.
Color Standards A pixel color is represented as a point in 3-D space. Axis may be labeled as independent colors such as R, G, B or may use other independent.
เฉลย Lab 10 Loop.
ออโตมาตาจำกัด FINITE AUTOMATA
REGULAR EXPRESSION การบรรยายแบบสม่ำเสมอ
ผังงานโปรแกรม (Program Flowchart)
Course Software Engineering SE Overview and Introduction.
Chapter 12 Riveted, Bolted & Welded Connections
Database to Ontology Mapping & Semantic Search System Tutorial
คำสั่ง READ รูปแบบ READ file-name RECORD [INTO identifier] [AT END imperative- statement] ตัวอย่าง READ STUDENT-FILE AT END GO TO END-PROCESS. READ CUSTOMER-FILE.
Stored Procedure.
ผศ.ดร.สุพจน์ นิตย์สุวัฒน์
การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 7 การทดสอบโปรแกรม
Functions Standard Library Functions User-defined Functions.
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (3) Function Growth & Time-Complexity
8/3/2014The Realities of software Testing1 Software testing Realities What is the realities of software testing Why does the software testing not complete.
Merchant Marine Training Centre วิชาการเป็นเลิศ เชิดชู คุณธรรม ผู้นำ.
1 นายทินวัฒน์ พงษ์ทองเมือง. 2 การเปิดให้ Program ทำงาน 3  p:\xampplite\ xampplite-control.exe  Start Apache.
By Dr Nongyao Premkamolnetr Policy Innovation Center, KMUTT 17 January 2009.
หน่วยที่ 17 แอเรย์ของสตรัคเจอร์. แอเรย์ของข้อมูลสตรัคเจอร์ student_info student[30]; Student[0]Student[0].Name Student[0].Midterm Student[0].Assignment.
Chapter 2 Introduction to The C++ Language. Figure 2-1.
Page: 1 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้ ผศ. บุรินทร์ รุจจน พันธุ์.. ปรับปรุง 19 ตุลาคม 2555 Introduction to Batch.
Page: 1 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้ Gate & Karnaugh Map มหาวิทยาลัยเนชั่น จังหวัดลำปาง
Data Data are Raw material Data are values of qualitative or quantitative variables, belonging to a set of items. Sample 23, 36, 60 male, female like,
Menu and Interactive with Powerpoint ให้นำเรื่อง Input /Output Technology มา จัดทำ การนำเสนอ โดยใช้หลักการ Menu and Interactive with powerpoint มาประยุกต์
Algorithm Efficiency There are often many approaches (algorithms) to solve a problem. How do we choose between them? At the heart of computer program.
โครงสร้างควบคุมการทำงาน
ครั้งที่ 3.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Java Programming Language สาขาวิชาระบบสารสนเทศ คณะบริหารธุรกิจ มหาวิทยาลัยเทคโนโลยีราชมงคลกรุงเทพ.
MIS: Pichai Takkabutr EAU DESIGN:- META DATA describe by Data Directory/ Data dictionary Architecture PWHW/SW DW/DB TABLE / FILE ROW / RECORD COLUMN.
การสร้าง WebPage ด้วย Java Script Wachirawut Thamviset.
Chapter 3 Simple Supervised learning
Chapter 1/1 Arrays. Introduction Data structures are classified as either linear or nonlinear Linear structures: elements form a sequence or a linear.
21 August ดรุณี ศมาวรรตกุล 1 2. ADT List - Unsorted list ADT - list implementation - Sorted List - Circular list - Doubly linked list.
An Online Computer Assisted Instruction Development of Electronics Devices Subject for Learning Effectiveness Testing By Assoc.Prof. Suwanna Sombunsukho.
หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรที่ ๑ ทักษะการโปรแกรม เบื้องต้น วันที่สาม.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
 Mr.Nitirat Tanthavech.  HTML forms are used to pass data to a server.  A form can contain input elements like text fields, checkboxes, radio-buttons,
Concept of Programing.
INC 161 , CPE 100 Computer Programming
การแสดงขั้นตอนวิธีด้วยรหัสเทียม (Pseudo-Code)
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
คำอธิบายรายวิชา การเขียนผังงาน รหัสเทียม ตรรกศาสตร์เบื้องต้น การเขียนโปรแกรมคอมพิวเตอร์แบบโครงสร้าง ชนิดตัวแปร ตัวดำเนินการทางตรรกะ ตัวดำเนินการเปรียบเทียบ.
บทที่ 2 ขั้นตอนการทำงาน (Algorithm)
การออกแบบระบบ System Design.
Problem Solving ขั้นตอนวิธีและการแก้ปัญหาสำหรับวิทยาการคอมพิวเตอร์
การเขียนโปรแกรมคอมพิวเตอร์
ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์
อัลกอริทึม (Algorithm) ???
ใบสำเนางานนำเสนอ:

ขั้นตอนวิธีและเครื่องมือในการพัฒนาโปรแกรม (Algorithm and Program Development Tools) อ.จรรยา สายนุ้ย CS.313 ภาควิชาวิทยาการคอมพิวเตอร์

Notion of Algorithm problem algorithm Program or Software input output

Algorithm Definition An algorithm is a sequence of unambiguous instructions for solving a problem for any legitimate input in a finite time.

แนวทางการเขียนแสดงขั้นตอนวิธีที่ดี เขียนแสดงการทำงานเป็นลำดับ ตามหมายเลข หรือ จากบนลงล่าง ชัดเจนและกะทัดรัด เข้าใจได้ง่ายและใช้เวลาเรียนรู้ไม่นาน แก้ปัญหาและให้คำตอบที่ถูกต้องได้อย่างมีประสิทธิภาพ

Algorithm Representation ใช้สำหรับอธิบายขั้นตอนวิธีที่ออกแบบ ใช้ติดต่อสื่อสารกับโปรแกรมเมอร์หรือผู้ใช้ นำไปใช้เป็นแนวทางในการพัฒนาโปรแกรม ใช้ตรวจสอบข้อผิดพลาดในการทำงานของโปรแกรมได้ เป็นส่วนหนึ่งในเอกสารประกอบโปรแกรม

Methods of Specifying an Algorithm There are 2 options that are most widely used nowadays: Pseudocode Flowchart

Pseudocode (รหัสจำลอง) A pseudocode is a mixture of a natural language and programming language like constructs. ไม่ขึ้นกับรูปแบบการเขียนของภาษาการโปรแกรมใดๆ เขียนอธิบายเพื่อให้อ่านได้เข้าใจง่าย แปลงเป็นโปรแกรมภาษาระดับสูงได้ง่าย มีข้อมูลเพียงพอสำหรับการแปลขั้นตอนวิธีจากรหัสลำลองไปเป็นโปรแกรมซึ่งเขียนด้วยภาษาการโปรแกรมใดๆ ที่ต้องการได้

ตัวอย่างรหัสจำลอง 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

ตัวอย่างรหัสจำลอง 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

Flowchart (ผังงาน) ใช้สัญลักษณ์ที่มีความหมายเฉพาะอย่าง มีทิศทางการทำงานโดยใช้ลูกศร แปลเป็นโปรแกรมได้ง่ายเรียงตามลำดับที่แสดง

สัญลักษณ์ที่ใช้ในผังงาน Start /End Decision Input/Output Process Print Connector

ตัวอย่างผังงาน 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

โครงสร้างพื้นฐานการทำงานภายในขั้นตอนวิธี Standard Operations Basic Control Structures

Standard Operations Declaration Expression Assigning Values

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

Expression consist of operand , operator types : arithmetic: a + (b – c) * 4 relational: x > y , i ≠ 10 logical: (i < 5) and (j < 10)

ตัวดำเนินการทางคณิตศาสตร์ Arithmetic operator

เครื่องหมายเปรียบเทียบ Relational operator

ตัวดำเนินการตรรกะ Logical operator

Assigning Value variable  expression Format: e.g. x  1 j  i * i sum  sum + a[n] check  (m<5) and (n<4) variable  expression

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

Basic Control Structures Sequence Control Selection/Decision Iteration /Repetition

Sequence Control Assignment stmt. Input/Output stmt.

Sequence Control Assignment stmt. e.g. j  i+k*2 name  “hawaii” i  0

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, …

Selection/Decision simple (if-then-else) nested if multiple (switch-case)

Simple Selection if-then if-then-else sequence of if if-then (-else)

Simple Selection if-then e.g. if-then-else

Simple Selection sequence of if-then e.g.

Simple Selection sequence of if-then (-else) e.g.

Nested Selection stmt. if-then (if-then) if-then-else (if-then-else)

Nested Selection stmt. ตัวอย่าง if (เงื่อนไข) then ….. end if รูปแบบ: if-then (if-then) ตัวอย่าง if (เงื่อนไข) then ….. end if

Nested Selection stmt. ตัวอย่าง if-then-else (if-then-else) …. Else … [else] end if

Nested Selection stmt. ตัวอย่าง if-then (if-then-else) -else (if-then-else) ตัวอย่าง if (เงื่อนไข) then …. [else] end if Else …

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

Iteration /Repetition (Loop) for while-do repeat-until (do-while)

Iteration /Repetition (Loop) for statement e.g. 1.for i0 to 10 1.1 read num 1.2 sumsum+num 2.write “sum =”,sum Requirement specification คือ ? <ขั้นตอนวิธีนี้แก้ปัญหาอะไร?>

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

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

Exercise1 เขียนขั้นตอนวิธีเพื่อหาค่า sum square (n) แบบที่ 2 = {n (n+1)(2n+1)}/6

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

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

Exercise2 เขียนโปรแกรมเพื่อคำนวณหาค่า BMI = น้ำหนัก(กิโลกรัม) / (ส่วนสูง(เมตร))2 ของกลุ่มตัวอย่างจำนวน 10 คน และสรุปตามเงื่อนไขดังนี้ ค่า BMI ข้อสรุป >= 40 อ้วนเกินไป >= 30 แต่ไม่เกิน 40 อ้วน >= 25 แต่ไม่เกิน 30 ท้วม >= 18.5 แต่ไม่เกิน 25 เหมาะสม < 18.5 ผอมเกินไป 344-211 Algorithmic Process and Programming , created by Dararat Saelee

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 344-211 Algorithmic Process and Programming , created by Dararat Saelee

Exercise3 เขียนขั้นตอนวิธีด้วยรหัสลำลองเพื่อคำนวณหาค่า s จากสูตร s = a + ar + ar2 + ... + arn โดยการอ่านค่า a, r และ n เข้ามาทางแป้นพิมพ์ 344-211 Algorithmic Process and Programming , created by Dararat Saelee

การออกแบบข้อมูลสำหรับใช้ในการเขียนขั้นตอนวิธี Input/Output Data Constant/Variable Data

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)

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

Data Design Exercise การแปลงค่าองศาเซลเซียสเป็นค่าองศาฟาเรนไฮต์ ค่าองศาฟาเรนไฮต์ f = (9 /5)* c + 32 ค่าคงที่ ตัวแปร ข้อมูลเข้า ข้อมูลผลลัพธ์

เครื่องมือในการพัฒนาโปรแกรม Programming Environment Program Development Tools

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

Programming Environment Integrated Development Environment (IDE) : Editor Compiler Preprocessor Libraries debugging tools and other utilities e.g. Turbo C, C-Free, DevC

Programming Environment Development kits : compiler, libraries e.g. JDK/JRE Tools : only editor e.g. Notepad editor & tools e.g. EditPlus

Program Development Tools Editor Libraries Preprocessor Compiler Debugger Utilities

Program Development Tools Editors : Notepad , Turbo C/C++ editor , EditorPlus , EClipse Libraries : Header files (C - #include) Packages (Java - import)

Program Development Tools Preprocessor : C - #define Compilers : C – gcc , cc , Turbo C/C++ Java – javac , java

Program Development Tools Debuggers : Turbo C/C++  trace , watch DOS  debug Utilities : C - online help Java – help message