Presentation is loading. Please wait.

Presentation is loading. Please wait.

หลักการโปรแกรม เพื่อแก้ปัญหาโดยใช้คอมพิวเตอร์

Similar presentations


Presentation on theme: "หลักการโปรแกรม เพื่อแก้ปัญหาโดยใช้คอมพิวเตอร์"— Presentation transcript:

1 หลักการโปรแกรม เพื่อแก้ปัญหาโดยใช้คอมพิวเตอร์
อ.จรรยา สายนุ้ย CS.313 ภาควิชาวิทยาการคอมพิวเตอร์

2 Outline Problem Solving Programming Principle Definition Strategies
Techniques Tools Approach Programming Principle Programming Language Programming Design Programming Paradigms

3 Problem Solving Definition
Problem Solving The process of transforming the description of a problem into the solution of that problem by using own knowledge of the problem domain and be relying on the ability to select and use appropriate problem solving strategies, techniques and tools

4 Problem Domain sciences : mathematics , statistics , chemistry , physics, biology business : inventory , accounting education : registration , evaluation banking : ATM , loaning , report others : restaurant , transportation , hotel , department store

5 Problem Solving Strategies
(Algorithm Design Techniques) Divide and Conquer Dynamic Programming Greedy Algorithms etc.

6 Problem Solving Techniques
Top-down Stepwise Refinement Structured Programming Modular Design Bottom-up Approach Recursion

7 Problem Solving Tools Pseudo Code Flowchart Programming Languages
Editor Debugger

8 Problem Solving Approach
Software Development Method or Software Life Cycle Use computers in problem solving consists of 6 steps : Requirement Specification Analysis Design Implementation Testing And Verification Documentation

9 Software Life Cycle Requirement Specification what the problem is
what is needed to solve what the solution should provide any constraints and special conditions to concern depend on familiarity with the problem domain

10 Software Life Cycle Analysis Input Output Constraints/Conditions
Formulas

11 Software Life Cycle Design 3.1 Algorithm design 3.2 Data design
definition requirement strategy techniques 3.2 Data design Input/Output Process Types Representation Structure manipulation

12 Software Life Cycle Algorithm Definition 3.1 Algorithm design
Algorithm : a method of solution described as a sequence of steps to be performed in a specific logical order.

13 Software Life Cycle Satisfied Requirements : 3.1 Algorithm design
Unambiguousness Generality Correctness Finiteness

14 Software Life Cycle Representation Strategy 3.1 Algorithm design
Pseudocoding Flowcharting HIPO Chart

15 Software Life Cycle 3.1 Algorithm design Greedy Method
Techniques Greedy Method Divide and Conquer Dynamic Programming Backtracking Algorithms etc.

16 Software Life Cycle 3.2 Data design Input/Output Process
Types : constant/variables ,global/local Representation: number , text , etc. Structure: array, file , queue , tree , etc. Manipulation: operators , functions

17 Software Life Cycle Implementation or Coding Programming Languages
writability readability modifiability reusability

18 Software Life Cycle Implementation or Coding
Important as designing skill programming is the art of designing efficient algorithms to meet requirements Programming errors Debugging techniques Strategies for defensive Programming

19 Software Life Cycle Implementation or Coding Programming Errors
design errors syntax/compilation errors linker errors run-time errors warning diagnostic message

20 Software Life Cycle Implementation or Coding Debugging techniques
The ability to debug programs is another problem-solving skill that is as important as the ability to design programs Debugging is the process of finding and correcting errors in computer programs

21 Software Life Cycle Implementation or Coding Debugging techniques
design errors quite difficult to debug , no error message , incorrect output sometimes incorrect formula , wrong program logic , inappropriate data type careful review in analysis and design , use variety of testing data

22 Software Life Cycle Implementation or Coding Debugging techniques
syntax/compilation errors Detect by compilers Something missing / undeclared var. Easy , just correct error sources warning diagnostic message Strange but can still proceed Unreferenced var. Get rid of causes or ignore

23 Software Life Cycle Implementation or Coding Debugging techniques
linker errors Some errors prevent the linker to create the executable module Function prototypes do not match their definitions solution: correct prototypes

24 Software Life Cycle Implementation or Coding Debugging techniques
run-time/execution errors while executing , difficult to debug, abnormal termination divide by zero , type mismatch ,index is out of range, domain error trace/step watch some variables’ value , error handling

25 Software Life Cycle Strategies for defensive correction : errors debug
Implementation or Coding Strategies for defensive correction : errors debug defence : to prevent abnormal termination /errors preparing to manage errors if (a < o) { … } using exception handler

26 Software Life Cycle Testing And Verification program verification
the process of ensuring that a program meets user requirements one of the techniques that can be used for program verification is program testing

27 Software Life Cycle Testing And Verification program testing
the process of executing a program to demonstrate its correctness testing methods test data testing modules : driver , stub top-down testing bottom-up testing blackbox .vs. whitebox

28 Software Life Cycle: Example
Requirement Specification เขียนโปรแกรมหาระยะทางระหว่างจุด 2 จุดคือ (x1 ,y1 ) และ (x2 ,y2 ) สูตรคือ

29 Software Life Cycle : Example
Analysis Input: integer x1 , y1 , x2 และ y2 Output : float & positive value Formulas :

30 Software Life Cycle: Example
Algorithm Design Pseudocode Read x1 , y1 , x2 , y2 dist = sqrt((x1 - x2)2 + (y1 - y2)2) Write dist end

31 Software Life Cycle: Example
Implementation or Coding #include <stdio.h> #include <math.h> void main() { int x1, x2, y1, y2; float dist; scanf(“%d %d %d %d”, &x1, &y1, &x2, &y2); dist = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); printf(“distance = %f\n”,dist); }

32 Software Life Cycle: Example
Testing And Verification verifying: compile and debug data test: output: 5.0

33 Software Life Cycle Documentation System documentation
Program documentation User documentation

34 Software Life Cycle Documentation System documentation Context Diagram
Dataflow Diagram Database Design : E-R diagram , Relational model , Data dictionary System modules/flowchart

35 Software Life Cycle Documentation Program documentation
Flowchart / Pseudocode Program Listing Sufficient in-program : comment , indentation

36 Software Life Cycle Documentation User documentation Interfaces
Input Examples Output Examples Error messages : causes & effect

37 Programming Principles
Programming Languages Program Design Programming Paradigms

38 Programming Languages
Why programming languages ? to enable the user to enlist the help of a computer in solving problems in the domain of interest to enable the user to bridge the gap between problem and machine domain

39 Program Design modular design stepwise refinement
top-down approach bottom-up approach stepwise refinement structured programming etc.

40 Programming paradigms
imperative paradigm functional paradigm logic paradigm object-oriented paradigm

41 Practice make perfect


Download ppt "หลักการโปรแกรม เพื่อแก้ปัญหาโดยใช้คอมพิวเตอร์"

Similar presentations


Ads by Google