# Chapter 3 Planning Your Solution

## Presentation on theme: "Chapter 3 Planning Your Solution"— Presentation transcript:

CMPF144 Introduction to Problem Solving and Basic Computer

Overview Communicating with the Computer
Organizing the Solution with Tools Testing the Solution Coding the Solution

Objectives List and describe development tools
Use problem analysis chart Use interactivity chart Use IPO chart Use algorithms (flowcharts and pseudocode) Describe importance of documentation

Communicating with Computer
We use programming language to communicate with a computer Different type of programming language applies different syntax. Syntax: the rules governing the computer operating system, language and application Bug : Coding error in a computer program Debugging: Process to find and correct the coding errors (bugs)

Organizing Solution with Tools
Four (4) categories of tools can be used to solve problems on a computer: Problem Analysis Chart (PAC) Interactivity Chart / Structure Chart IPO Chart Algorithm Flowchart pseudocode

Problem Analysis Chart (PAC)
Shows a beginning analysis of the problem Programmer will try to understand and analyze requirements of the problem Allows programmer to glean only facts from the problem Separated into four (4) parts: The given data The required results The processing that is required in the problem A list of solution alternatives

Basic Structure of Problem Analysis Chart

Problem Analysis Chart for the Payroll Problem

Interactivity Chart / Structure Chart
Shows the overall layout or structure of the solution Divide the processing identified into subtasks called modules these modules are connected together to show the interaction of processing between modules Each module contain tasks for one function, not more than 20 instructions Example of function: Enter data Print result calculate result

Interactivity Chart (Cont.)
All modules are being controlled by a Control or Main Module The breakdown (in the format of chart) allows programmer to view a complex problem in a few simpler parts.

Example of Interactivity Chart
Do you know what are these symbols??? Triangle on upper left of box?? Circle in chart?? Diamond shape after Module2??

Basic Interactivity Chart for the Payroll Problem
The control module, read module, calculation module, and print module are BASIC to most programs. From there, add other modules as needed along with the addition of processing symbols to show: Duplicates Decision Repetition in a loop

Completed Interactivity Chart – The Payroll Problem

IPO Chart Extends and organizes information in problem analysis chart (PAC) Consists of four (4) main sections: Input Processing Module reference Output

Is the sequence logical?? Why??
IPO Chart (Cont.) Shows more detail/information about: What data items are input?? What processing takes place on each specific data?? What information is output?? Sequence of completing IPO Chart: Output Input Processing Is the sequence logical?? Why??

IPO Chart for the Payroll Problem

Algorithm Shows the sequence of instructions, which will form solution
A good algorithm’s criteria: Instructions cannot assume anything Cannot skip steps Must be executable one step at a time Must be 100% complete Two types of algorithm representation: Flowchart Pseudocode

Flowchart Graphical representation of algorithm, which shows the flow of the processing from the beginning to the end of a solution. A flowchart always starts at the top of the page and flows to the bottom There are flowchart symbols for use with various types of processing.

Flowchart Symbols

Flowchart Symbols (Cont.)

Flowchart - the Payroll Problem

Flowchart - Read Module in the Payroll Problem

Calc Module in the Payroll Problem
Flowchart – Calc Module in the Payroll Problem

Flowchart and Pseudocode for Print Module in the Payroll Problem

Overall Flowchart - The Payroll Problem
How to simplify this flowchart??

Pseudocode Algorithm which is represented in simple English form
Each instruction is written on a separate line Starts with “Start/Begin” and terminates with “End” Keywords and instructions are written from top to bottom, with only ONE entry and ONE exit. Groups of statements are formed into module, and each module is given a specific name (however, this is optional).

Pseudocode (Cont.) Important keywords:
A computer can receive information Keyword: Read, Get A computer can show information Keyword: Display, Print, Write A computer can perform arithmetic calculation

Pseudocode (Cont.) A computer can assign value to memory location
Keyword: Set, Initialize A computer can compare two variables to decide which action to be taken Keyword; IF….ELSE…..END_IF A computer can repeat a group of action. Keyword: WHILE…END_WHILE, REPEAT…..UNTIL

Overall Pseudocode – The Payroll Problem
Begin REPEAT Get Hours, PayRate GrossPay = Hours * PayRate Display GrossPay UNTIL NoMoreEmployee = True End

Exercise (1) Try to organize solution for problem illustrated below, with the help of FOUR (4) tools that you have learnt in this chapter. Build a program that read the value of the height, width and length of a box from the user and print its volume.

Exercise (2) Try to organize solution for problem in pp.76, PROBLEMS, Q6 with the help of FOUR (4) tools that you have learnt in this chapter.

Documentation Consists of two main types: Internal documentation
External documentation

Internal Documentation
For programmers Made up of remarks written with the instructions to explain what is being done in the computer program, so that it can b easily understood by other programmers Example: what is the main purpose of developing this program What are the meaning of certain code blocks Status of program development ??

External Documentation
For end users Made up of manuals or help menus written about the solutions. Example: Tutorial which shows the steps to use program Installation instruction Help files ??

Testing the Solution to make sure that the solution meets requirements of user to check for errors in logic or in setup of the expressions and equations. programmer selects test data (a set of values for input data)and works them through every step in the solution. Example: to test expression X/Y Test data for X and Y should be any numbers other than 1. WHY??

Coding the Solution To be performed after the completion of analyzing problem and organizing the solution. A process of converting algorithm into real program by using appropriate type of programming language Python : to be covered in practical class