Definition •A flowchart depicts pictorially the sequence in which instructions are carried out in an algorithm. • A flowchart is a schematic representation of an algorithm or a stepwise process, showing the steps of boxes of various kinds and their order by connecting these with arrows. • Flowcharts are used not only as aids in developing algorithms but also to document algorithms. • Flowcharts are used in designing or documenting a process or program. Need for flowchart • 1. Efficient Communication: since its represented in pictorial form a flowchart seems to be the better way of communicating the logic to the programmers or any common man. • 2. Efficient Analysis: With the help of a flowchart problem can be analyzed effectively. • 3. Proper Documentation: flowchart plays an important role in understanding the logic of complicated and lengthy problems. Hence it is very much required to document the flowcharts along with algorithms. • 4. Easy and efficient coding: by looking at the flowchart writing programs is a straight forward approach. • 5. Program Debugging: flowchart helps in debugging process i.e., to identify the logical errors in the program. • 6. Program Maintenance: Maintaining the software or set of programs becomes easy. Drawbacks of flowchart • (i) Complex logic: For complicated logic the flowchart becomes complex and clumsy. • (ii) Alterations and modifications: if there is a change in the logic, the flowchart has to be completely rewritten and requires lot of time. • (iii) Reproduction: in the case of any problem, reproduction of flowchart becomes problem since the flowchart symbols cannot be typed. Four Flowchart Structures • Sequence • Decision • Repetition • Case Sequence Structure • A series of actions are performed in sequence. • The pay-calculating example was a sequence flowchart. Decision Structure • One of two possible actions is taken, depending on a condition. Decision Structure •A new symbol, the diamond, indicates a yes/no question. If the answer to the question is yes, the flow follows one path. If the answer is no, the flow follows another path NO YES Decision Structure • In the flowchart segment below, the question “is x < y?” is asked. If the answer is no, then process A is performed. If the answer is yes, then process B is performed. NO YES x < y? Process A Process B Decision Structure • The flowchart segment below shows how a decision structure. Flowchart NO YES x < y? Calculate a as x plus y. Calculate a as x times 2. Decision Structure • The flowchart segment below shows a decision structure with only one action to perform. Flowchart NO YES x < y? Calculate a as x times 2. Repetition Structure •A repetition structure represents part of the program that repeats. This type of structure is commonly known as a loop. Repetition Structure • Notice the use of the diamond symbol. A loop tests a condition, and if the condition exists, it performs an action. Then it tests the condition again. If the condition still exists, the action is repeated. This continues until the condition no longer exists. Repetition Structure • In the flowchart segment, the question “is x < y?” is asked. If the answer is yes, then Process A is performed. The question “is x < y?” is asked again. Process A is repeated as long as x is less than y. When x is no longer less than y, the repetition stops and the structure is exited. YES x < y? Process A Repetition Structure • The flowchart segment below shows a repetition structure. Flowchart YES x < y? Add 1 to x Controlling a Repetition Structure • The action performed by a repetition structure must eventually cause the loop to terminate. Otherwise, an infinite loop is created. • In this flowchart segment, x is never changed. Once the loop starts, it will never end. • QUESTION: How can this YES flowchart be modified so x < y? Display x it is no longer an infinite loop? Controlling a Repetition Structure • ANSWER: By adding an action within the repetition that changes the value of x. YES x < y? Display x Add 1 to x A Pre-Test Repetition Structure • This type of structure is known as a pre-test repetition structure. The condition is tested BEFORE any actions are performed. YES x < y? Display x Add 1 to x A Pre-Test Repetition Structure • In a pre-test repetition structure, if the condition does not satify, the loop will never begin. A Post-Test Repetition Structure • This flowchart segment shows a posttest repetition structure. • The condition is tested AFTER the actions are performed. • A post-test repetition structure always performs its actions at least once. Display x Add 1 to x YES x < y? A Post-Test Repetition Structure • The flowchart segment below shows a post-test repetition structure. Display x Flowchart Add 1 to x YES x < y? Case Structure • One of several possible actions is taken, depending on the contents of a variable. Case Structure • The structure below indicates actions to perform depending on the value in years_employed. CASE years_employed 1 bonus = 100 2 3 bonus = 200 bonus = 400 Other bonus = 800 Case Structure If years_employed = 2, bonus is set to 200 If years_employed = 1, bonus is set to 100 1 bonus = 100 If years_employed = 3, bonus is set to 400 If years_employed is any other value, bonus is set to 800 CASE years_employed 2 3 bonus = 200 bonus = 400 Other bonus = 800 Connectors • Sometimes a flowchart will not fit on one page. •A connector (represented by a small circle) allows you to connect two flowchart segments. A Connectors • The “A” connector indicates that the second flowchart segment begins where the first segment ends. START A END A Modules • A program module (such as a function) is represented by a special symbol. Modules •The position of the module symbol indicates the point the module is executed. •A separate flowchart can be constructed for the module. START Read Input. Call calc_pay function. Display results. END Combining Structures • • Structures are commonly combined to create more complex algorithms. This flowchart segment shows two decision structures combined. NO YES x > min? Display “x is outside the limits.” NO YES x < max? Display “x is outside the limits.” Display “x is within limits.” Review • What do each of the following symbols represent? (Answer on next slide) Answer • What do each of the following symbols represent? Terminal Input/Output Operation Process Decision Connector Module Review • Name the four flowchart structures. (Answer on next slide) Answer • Sequence • Decision • Repetition • Case Review • What type of structure is this? (Answer on next slide) Answer • Repetition Review • What type of structure is this? (Answer on next slide) Answer • Sequence Review • What type of structure is this? (Answer on next slide) Answer • Case Review • What type of structure is this? (Answer on next slide) Answer • Decision Algorithm • An algorithm is a precise specification of a sequence of instructions to be carried out in order to solve a given problem. • An Algorithm is a technique to solve a given problem systematically. • An Algorithm is a step-by-step approach to solve a given problem in finite number of steps. • It takes a set of input values and processes it and gives the output. • Each instruction tells what task is to be performed. Properties of Algorithm • It should be simple. • It may accept zero or more inputs. • It should be precise with no ambiguity. • It should have finite number of steps. • It should produce at least one output. Need for algorithm • 1. Efficient Communication: Since an algorithm is written in English like language, it seems to be the better way of communicating the logic. i.e. a procedure to solve a given problem to the users. • 2. Efficient Analysis: With the help of an algorithm problem can be analysed effectively. There can be number of algorithms for solving a given problem. Based on the analysis, a suitable and efficient algorithm can be selected. • 3. Proper Documentation: The selected algorithm has to be documented, which will be useful to identify the logical errors. • 4. Easy and efficient coding: the algorithm act as blue print during program development. It will be easier to write efficient program using high level language. • 5. Program Maintenance: Maintaining the software or set of programs becomes easy. Disadvantages of algorithm • (i) Developing algorithms for large and complex problems is time consuming and difficult to understand. • (ii) Understanding complex logic is tedious. Execises: • Write an algorithm and draw a flowchart for the following: • Calculate the area of a rectangle. • Calculate simple interest. (Simple Interest = Principle amount * Rate of interest * Time in years) • Determine given number is odd or even. • Determine given number is positive, negative or zero. • Display the first 10 positive integer numbers. • Display numbers between given ranges. (e.g. if start=5 and end =10, then display 5 6 7 8 9 10) • Find the sum of digits of the given number. (e.g. given number is 325 so the result is 10 i.e. 3+2+5=10)