CS 240 COMPUTER PROGRAMMING 1 1 Flowcharts ALGORITHM An informal definition of an algorithm is: a step-by-step method for solving a problem or doing a task. 2 ALGORITHM A step-by-step problem-solving procedure An algorithm is a sequence of unambiguous instructions for solving a problem. The number of steps of an algorithm will be countable and finite. It is a sequence of instructions (or set of instructions) to make a program more readable; a process used to answer a question. 3 HOW TO UNDERSTAND THE PROBLEM? Define the problem Analyze the problem Develop an algorithm/method of solution Write a computer program corresponding to the algorithm Test and debug the program Document the program (how it works and how to use it) 4 TOOLS There are two commonly used tools to help to document program logic (the algorithm) Flowcharts Pseudo code 5 FLOWCHART Definitio n The production flowchart is a visual representation of the sequence of the program. It shows what comes first, second, third, etc A flowchart indicates: The steps to be taken in order to solve a problem. The order or the sequence of these steps. 6 FLOWCHART RULES 1. Use only one start and one stop per flowchart, --that is, one way in and one way out of the flowchart. 2. The logic flow of the solution is displayed from top to bottom and from left to right. 3. Use the appropriate symbol for each type of operation. 4. Use arrows when moving to another part of the flowchart rather than lines. 5. Do not leave dead-ends--that is, a part of a question unanswered. 7 SYMBOLS Symbol Description TERMINAL - To start or end a flowchart INPUT / OUTPUT - Used with Read, Input, Print and other I/O commands. PROCESSING - Used for operations done inside the computer. Such as calculations, storing and moving of data. DECISION - Used to ask a question in programming. Questions are Yes/No format (Used with the If Statement). DIRECTION FLOW - Used to connect symbols and to represent the direction of flow. Lines should not cross each other. Arrowheads should be placed at the end close to the symbol. 8 Connector - or joining of two parts of program 1.SIMPLE SEQUENTIAL FLOWCHART Example 1 Construct a flow chart that prints "Hello, World"? 9 1.SIMPLE SEQUENTIAL FLOWCHART Algorithm Step 1- Start Step 2- Print "Hello, World" Step 3- Stop 10 1.SIMPLE SEQUENTIAL FLOWCHART Flowchart Start Print “Hello, World” Stop 11 1.SIMPLE SEQUENTIAL FLOWCHART Example 2 Construct a flow chart that finds the sum of two numbers. 12 1.SIMPLE SEQUENTIAL FLOWCHART Variables Algorithm A: First Number Step 1- Start B: Second Number Step 2- Read A C: Sum (A+B) Step 3- Read B Step 4- Calculate C = A+B Step 5- Print C Step 6- Stop 13 1.SIMPLE SEQUENTIAL FLOWCHART Flowchart Start Read A Read B C= A+B Print C 14 Stop 1.SIMPLE SEQUENTIAL FLOWCHART Example 3 Construct a flow chart that finds the sum, average and product of three numbers. 15 1.SIMPLE SEQUENTIAL FLOWCHART Variables X: First Number Y: Second Number Z: Third Number S: Sum (X+Y+Z) A: Average (S/3) P: Product (X*Y*Z) Algorithm Step 1Start Step 2- Read X, Y, Z Step 3- Calculate S = X+Y+Z Step 4- Calculate A = S/3 Step 5- Calculate P = X*Y*Z Step 6- Print S, A, P Step 7- Stop 16 1.SIMPLE SEQUENTIAL FLOWCHART Flowchart Start Read X,Y,Z S= X+Y+Z A=S/3 P=X*Y*Z Print S,A,P Stop 17 1.SIMPLE SEQUENTIAL FLOWCHART Example 4 Construct a flow chart that finds the difference and the division of two numbers and display the result 18 1.SIMPLE SEQUENTIAL FLOWCHART Variables N1 : First Number N2 : Second Number D: Difference V: Division Algorithm Step 1Start Step 2- Read N1, N2 Step 3- Calculate D = N1-N2 Step 4- Calculate V = N1/N2 Step 5- Print D,V Step 6- Stop 19 1.SIMPLE SEQUENTIAL FLOWCHART Flowchart Start Read N1, N2 D= N1 –N2 V=N1/N2 Print D,V Stop 20 1.SIMPLE SEQUENTIAL FLOWCHART Example 5 Exercise Construct a flow chart that finds the circle area and circumference of a circle where R (radius) is given 21 1.SIMPLE SEQUENTIAL FLOWCHART Variables R : Radius PI: PI = 3.14 A: Area C: Circumference Algorithm Step 1Start Step 2- Read R Step 3- Calculate A = PI*(R)2 Step 4- Calculate C = 2*PI*R Step 5- Print R, A, C Step 6- Stop 22 2. BRANCHED FLOWCHARTS Example 1 Construct a flow chart for the following function F(x) = { X -X X>=0 X<0 23 2. BRANCHED FLOWCHARTS Variables X : Number F: function of X Algorithm Step 1Start Step 2- Read X Step 3- if X >=0 then F =X Step 4- if X <0 then F =-X Step 5- Print F Step 6- Stop 24 2. BRANCHED FLOWCHARTS Start Flowchart Read X NO X>=0 YES F=X F=-X Print F Stop 25 2. BRANCHED FLOWCHARTS Example 2 Trace the following flowchart and write the output of it. 1. When X = 20 2. When X = -10 26 2. BRANCHED FLOWCHARTS Start Flowchart Read X 0> W=2*X-1 >0 X? =0 W=X+1 W=SIN(X)+5 Print X,W 27 Stop 2. BRANCHED FLOWCHARTS Result When X=20 When X=-10 X= 20 W= 21 X= -10 W= -21 28 2. BRANCHED FLOWCHARTS Example 3 Exercise Draw a flowchart that shows the traffic light processing 29 2. BRANCHED FLOWCHARTS Variables C : Traffic light color Algorithm Step 1Start Step 2- Read C Step 3- make a Decision (what is c) Step 4- if C is RED then Print STOP Step 5- if C is YELLOW then Print WAIT Step 6- if C is GREEN then Print PASS Step 7- Stop 30 3. LOOP FLOWCHARTS Example 1 Trace the following flowchart and write the output of it. 31 3. LOOP FLOWCHARTS Flowchart Start N=1 Print N F While N<=7 T N=N+3 Stop 32 3. LOOP FLOWCHARTS Result N Loop 1 1 4 2 7 3 33 3. LOOP FLOWCHARTS Example 2 Trace the following flowchart and write the output of it. 34 3. LOOP FLOWCHARTS Flowchart Start i=0 Sum=0 While i<10 T F avg=Sum/10 Read X Print avg Sum= X + Sum Increment i Stop 35 3. LOOP FLOWCHARTS Result Loop Read X Sum i 1 2 3 3 4 1 3 7 8 1 2 3 4 10 18 4 5 7 25 5 6 5 30 6 7 3 33 7 8 8 41 8 9 10 4 5 45 50 9 10 Avg =50/10 =5 36