FlowChart & Algorithm

download FlowChart & Algorithm

of 59

description

FlowChart & Algorithm

Transcript of FlowChart & Algorithm

  • 1 Decision Support System Hemant Kumar Jain : [email protected]

    Algorithms and Flowcharts

    Hemant Jain B.Sc (PCM), M.Sc (Phy), B. Tech (Telcom & Elec), MDBA , MS (Comp. Sc.) USA

    Tuesday, November 12, 2013

  • 2 Decision Support System Hemant Kumar Jain : [email protected]

    Algorithms and Flowcharts

    A typical programming task can be divided into two phases:

    Problem solving phase

    produce an ordered sequence of steps that describe solution of problem

    this sequence of steps is called an algorithm

    Implementation phase

    implement the program in some programming language

  • 3 Decision Support System Hemant Kumar Jain : [email protected]

    Steps in Problem Solving

    First produce a general algorithm (one can use pseudocode)

    Refine the algorithm successively to get step by step detailed algorithm that is very close to a computer language.

    Pseudocode is an artificial and informal language that helps programmers develop algorithms. Pseudocode is very similar to everyday English.

  • 4 Decision Support System Hemant Kumar Jain : [email protected]

    Pseudocode & Algorithm

    Example 1: Write an algorithm to determine a students final grade and indicate whether it is passing or failing. The final grade is calculated as the average of four marks.

  • 5 Decision Support System Hemant Kumar Jain : [email protected]

    Pseudocode & Algorithm

    Pseudocode:

    Input a set of 4 marks

    Calculate their average by summing and dividing by 4

    if average is below 50

    Print FAIL

    else

    Print PASS

  • 6 Decision Support System Hemant Kumar Jain : [email protected]

    Pseudocode & Algorithm

    Detailed Algorithm

    Step 1: Input M1,M2,M3,M4

    Step 2: GRADE (M1+M2+M3+M4)/4

    Step 3: if (GRADE < 50) then

    Print FAIL

    else

    Print PASS

    endif

  • 7 Decision Support System Hemant Kumar Jain : [email protected]

    The Flowchart

    (Dictionary) A schematic representation of a sequence of operations, as in a manufacturing process or computer program.

    (Technical) A graphical representation of the sequence of operations in an information system or program. Information system flowcharts show how data flows from source documents through the computer to final distribution to users. Program flowcharts show the sequence of instructions in a single program or subroutine. Different symbols are used to draw each type of flowchart.

  • 8 Decision Support System Hemant Kumar Jain : [email protected]

    The Flowchart

    A Flowchart

    shows logic of an algorithm

    emphasizes individual steps and their interconnections

    e.g. control flow from one action to the next

  • 9 Decision Support System Hemant Kumar Jain : [email protected]

    Flowchart Symbols

    Basic

    Oval

    Parallelogram

    Rectangle

    Diamond

    Hybrid

    Name Symbol Use in Flowchart

    Denotes the beginning or end of the program

    Denotes an input operation

    Denotes an output operation

    Denotes a decision (or branch) to be made.

    The program should continue along one of

    two routes. (e.g. IF/THEN/ELSE)

    Denotes a process to be carried out

    e.g. addition, subtraction, division etc.

    Flow line Denotes the direction of logic flow in the program

  • 10 Decision Support System Hemant Kumar Jain : [email protected]

    Example

    PRINT PASS

    Step 1: Input M1,M2,M3,M4 Step 2: GRADE (M1+M2+M3+M4)/4 Step 3: if (GRADE

  • 11 Decision Support System Hemant Kumar Jain : [email protected]

    Example 2

    Write an algorithm and draw a flowchart to convert the length in feet to centimeter.

    Pseudocode:

    Input the length in feet (Lft)

    Calculate the length in cm (Lcm) by multiplying LFT with 30

    Print length in cm (LCM)

  • 12 Decision Support System Hemant Kumar Jain : [email protected]

    Example 2

    Algorithm

    Step 1: Input Lft

    Step 2: Lcm Lft x 30

    Step 3: Print Lcm

    START

    Input Lft

    Lcm Lft x 30

    Print Lcm

    STOP

    Flowchart

  • 13 Decision Support System Hemant Kumar Jain : [email protected]

    Example 3

    Write an algorithm and draw a flowchart that will read the two sides of a rectangle and calculate its area.

    Pseudocode

    Input the width (W) and Length (L) of a rectangle

    Calculate the area (A) by multiplying L with W

    Print A

  • 14 Decision Support System Hemant Kumar Jain : [email protected]

    Example 3

    Algorithm

    Step 1: Input W,L

    Step 2: A L x W

    Step 3: Print A

    START

    Input W, L

    A L x W

    Print A

    STOP

  • 15 Decision Support System Hemant Kumar Jain : [email protected]

    Example 4

    Write an algorithm and draw a flowchart that will calculate the roots of a quadratic equation

    Hint: d = sqrt ( ), and the roots are: x1 = (b + d)/2a and x2 = (b d)/2a

    2 0ax bx c 2 4b ac

  • 16 Decision Support System Hemant Kumar Jain : [email protected]

    Example 4

    Pseudocode:

    Input the coefficients (a, b, c) of the quadratic equation

    Calculate d

    Calculate x1

    Calculate x2

    Print x1 and x2

  • 17 Decision Support System Hemant Kumar Jain : [email protected]

    Example 4

    Algorithm: Step 1: Input a, b, c

    Step 2: d sqrt ( )

    Step 3: x1 (b + d) / (2 x a)

    Step 4: x2 (b d) / (2 x a)

    Step 5: Print x1, x2

    START

    Input a, b, c

    d sqrt(b x b 4 x a x c)

    Print x1 ,x2

    STOP

    x1 (b + d) / (2 x a)

    X2 (b d) / (2 x a)

    4b b a c

  • 18 Decision Support System Hemant Kumar Jain : [email protected]

    DECISION STRUCTURES

    The expression A>B is a logical expression

    it describes a condition we want to test

    if A>B is true (if A is greater than B) we take the action on left

    print the value of A

    if A>B is false (if A is not greater than B) we take the action on right

    print the value of B

  • 19 Decision Support System Hemant Kumar Jain : [email protected]

    DECISION STRUCTURES

    is A>B

    Print B Print A

    Y N

  • 20 Decision Support System Hemant Kumar Jain : [email protected]

    IFTHENELSE STRUCTURE

    The structure is as follows

    If condition then

    true alternative

    else

    false alternative

    endif

  • 21 Decision Support System Hemant Kumar Jain : [email protected]

    IFTHENELSE STRUCTURE

    The algorithm for the flowchart is as follows:

    If A>B then

    print A

    else

    print B

    endif

    is A>B

    Print B Print A

    Y N

  • 22 Decision Support System Hemant Kumar Jain : [email protected]

    Relational Operators

    Relational Operators

    Operator Description

    > Greater than

    < Less than

    = Equal to

    Greater than or equal to

    Less than or equal to

    Not equal to

  • 23 Decision Support System Hemant Kumar Jain : [email protected]

    Example 5

    Write an algorithm that reads two values, determines the largest value and prints the largest value with an identifying message.

    ALGORITHM Step 1: Input VALUE1, VALUE2 Step 2: if (VALUE1 > VALUE2) then MAX VALUE1 else MAX VALUE2 endif Step 3: Print The largest value is, MAX

  • 24 Decision Support System Hemant Kumar Jain : [email protected]

    Example 5

    MAX VALUE1

    Print The largest value is, MAX

    STOP

    Y N

    START

    Input VALUE1,VALUE2

    MAX VALUE2

    is VALUE1>VALUE2

  • 25 Decision Support System Hemant Kumar Jain : [email protected]

    NESTED IFS

    One of the alternatives within an IFTHENELSE statement

    may involve further IFTHENELSE statement

  • 26 Decision Support System Hemant Kumar Jain : [email protected]

    Example 6

    Write an algorithm that reads three numbers and prints the value of the largest number.

  • 27 Decision Support System Hemant Kumar Jain : [email protected]

    Example 6

    Step 1: Input N1, N2, N3 Step 2: if (N1>N2) then if (N1>N3) then MAX N1 [N1>N2, N1>N3] else MAX N3 [N3>N1>N2] endif else if (N2>N3) then MAX N2 [N2>N1, N2>N3] else MAX N3 [N3>N2>N1] endif endif Step 3: Print The largest number is, MAX

  • 28 Decision Support System Hemant Kumar Jain : [email protected]

    Example 6

    Flowchart: Draw the flowchart of the above Algorithm.

  • 29 Decision Support System Hemant Kumar Jain : [email protected]

    Example 7

    Write and algorithm and draw a flowchart to

    a) read an employee name (NAME), overtime hours worked (OVERTIME), hours absent (ABSENT) and

    b) determine the bonus payment (PAYMENT).

  • 30 Decision Support System Hemant Kumar Jain : [email protected]

    Example 7

    Bonus Schedule

    OVERTIME (2/3)*ABSENT Bonus Paid

    >40 hours

    >30 but 40 hours

    >20 but 30 hours

    >10 but 20 hours

    10 hours

    $50

    $40

    $30

    $20

    $10

  • 31 Decision Support System Hemant Kumar Jain : [email protected]

    Step 1: Input NAME,OVERTIME,ABSENT

    Step 2: if (OVERTIME(2/3)*ABSENT > 40) then PAYMENT 50

    else if (OVERTIME(2/3)*ABSENT > 30) then PAYMENT 40

    else if (OVERTIME(2/3)*ABSENT > 20) then PAYMENT 30

    else if (OVERTIME(2/3)*ABSENT > 10) then PAYMENT 20

    else

    PAYMENT 10

    endif

    Step 3: Print Bonus for, NAME is $, PAYMENT

  • 32 Decision Support System Hemant Kumar Jain : [email protected]

    Example 7

    Flowchart: Draw the flowchart of the above algorithm?

  • 33 Decision Support System Hemant Kumar Jain : [email protected]

    Four Flowchart Structures

    Sequence

    Decision

    Repetition

    Case

  • 34 Decision Support System Hemant Kumar Jain : [email protected]

    Sequence Structure

    a series of actions are performed in sequence

    The pay-calculating example was a sequence flowchart.

  • 35 Decision Support System Hemant Kumar Jain : [email protected]

    Decision Structure

    One of two possible actions is taken, depending on a condition.

  • 36 Decision Support System Hemant Kumar Jain : [email protected]

    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

    YES NO

  • 37 Decision Support System Hemant Kumar Jain : [email protected]

    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.

    YES NO

    x < y?

    Process B Process A

  • 38 Decision Support System Hemant Kumar Jain : [email protected]

    Decision Structure

    The flowchart segment below shows how a decision structure is expressed in C++ as an if/else statement.

    YES NO

    x < y?

    Calculate a as x times 2.

    Calculate a as x plus y.

    if (x < y)

    a = x * 2;

    else

    a = x + y;

    Flowchart C++ Code

  • 39 Decision Support System Hemant Kumar Jain : [email protected]

    Decision Structure

    The flowchart segment below shows a decision structure with only one action to perform. It is expressed as an if statement in C++ code.

    if (x < y)

    a = x * 2;

    Flowchart C++ Code

    YES NO

    x < y?

    Calculate a as x times 2.

  • 40 Decision Support System Hemant Kumar Jain : [email protected]

    Repetition Structure

    A repetition structure represents part of the program that repeats. This type of structure is commonly known as a loop.

  • 41 Decision Support System Hemant Kumar Jain : [email protected]

    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.

  • 42 Decision Support System Hemant Kumar Jain : [email protected]

    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.

    x < y? Process A

    YES

  • 43 Decision Support System Hemant Kumar Jain : [email protected]

    Repetition Structure

    The flowchart segment below shows a repetition structure expressed in C++ as a while loop.

    Flowchart

    x < y? Add 1 to x

    YES

  • 44 Decision Support System Hemant Kumar Jain : [email protected]

    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 flowchart be modified so it is no longer an infinite loop?

    x < y? Display x

    YES

  • 45 Decision Support System Hemant Kumar Jain : [email protected]

    Controlling a Repetition Structure

    ANSWER: By adding an action within the repetition that changes the value of x.

    x < y? Display x

    Add 1 to x

    YES

  • 46 Decision Support System Hemant Kumar Jain : [email protected]

    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.

    x < y? Display x

    Add 1 to x

    YES

  • 47 Decision Support System Hemant Kumar Jain : [email protected]

    A Pre-Test Repetition Structure

    In a pre-test repetition structure, if the condition does not exist, the loop will never begin.

    x < y? Display x

    Add 1 to x

    YES

  • 48 Decision Support System Hemant Kumar Jain : [email protected]

    A Post-Test Repetition Structure

    This flowchart segment shows a post-test 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?

  • 49 Decision Support System Hemant Kumar Jain : [email protected]

    A Post-Test Repetition Structure

    The flowchart segment below shows a post-test repetition structure expressed in C++ as a do-while loop.

    Flowchart

    Display x

    Add 1 to x

    YES x < y?

  • 50 Decision Support System Hemant Kumar Jain : [email protected]

    Case Structure

    One of several possible actions is taken, depending on the contents of a variable.

  • 51 Decision Support System Hemant Kumar Jain : [email protected]

    Case Structure

    The structure below indicates actions to perform depending on the value in years_employed.

    CASE years_employed

    1 2 3 Other

    bonus = 100 bonus = 200 bonus = 400 bonus = 800

  • 52 Decision Support System Hemant Kumar Jain : [email protected]

    Case Structure

    CASE years_employed

    1 2 3 Other

    bonus = 100 bonus = 200 bonus = 400 bonus = 800

    If years_employed = 1, bonus is set to 100

    If years_employed = 2, bonus is set to 200

    If years_employed = 3, bonus is set to 400

    If years_employed is any other value, bonus is set to 800

  • 53 Decision Support System Hemant Kumar Jain : [email protected]

    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

  • 54 Decision Support System Hemant Kumar Jain : [email protected]

    Connectors

    A

    A

    START

    END

    The A connector indicates that the second flowchart segment begins where the first segment ends.

  • 55 Decision Support System Hemant Kumar Jain : [email protected]

    Modules

    A program module (such as a function in C++) is represented by a special symbol.

  • 56 Decision Support System Hemant Kumar Jain : [email protected]

    Modules

    The position of the module symbol indicates the point the module is executed.

    A separate flowchart can be constructed for the module.

    START

    END

    Read Input.

    Call calc_pay function.

    Display results.

  • 57 Decision Support System Hemant Kumar Jain : [email protected]

    Combining Structures

    Structures are commonly combined to create more complex algorithms.

    The flowchart segment below combines a decision structure with a sequence structure.

    x < y? Display x

    Add 1 to x

    YES

  • 58 Decision Support System Hemant Kumar Jain : [email protected]

    This flowchart segment shows two decision structures combined.

    Combining Structures

    Display x is within limits.

    Display x is outside the limits.

    YES NO x > min?

    x < max?

    YES

    NO

    Display x is outside the limits.

  • 59 Decision Support System Hemant Kumar Jain : [email protected]

    Thanks