Dr. Ajay kumar, Prof. Sanjay Garg (ajay.kumar@juet.ac.in) Assistant Professor (Senior Grade) Deptt of CSE JUET Guna (M.P.) Algorithms and Problem Solving (APS) Course Code: 14B11CI412 Course Credit: 4 Session: January 2025-May 2025
Prerequisite  Introduction to programming in ‘C’ and data structure (with sufficient familiarity in the usage of array, pointers, recursion, searching, sorting, tree etc…. )
Purpose of this subject A rigorous introduction to the design and analysis of algorithms  Not a lab or programming course  Not a math course, either
Evaluation scheme: (Algorithms and Problem Solving )  Test – I 15  Test – II 25  Test- III 35  Assignments 5  Quiz 5  Tutorial/Problem Solving 10  Attendance 05 Total 100
Course Content  Analysis of algorithm: Asymptotic Notation, Sorting and merging Algorithm  Tree and related data Structure: Heap, Priority Queues, B-Tree, AVL, Splay Tree, Red-Black Tree, Threaded Tree  Files: Classification, Record Organization, Retrieval System, External Sorting  Set, Dictionary: Design, Analysis, integration and applications  Fundamental techniques: Divide and Conquer method, Dynamic Programming, Introduction to Greedy Method  Hashing: technique, collision resolution and analysis  Text Processing: String operation, pattern matching algorithm, tries, text compression, text similarity testing.
Books and References:  Textbook: Introduction to Algorithms, Cormen, Leiserson, Rivest, Stein  Aho, Hopcraft, Ullman: Data Structure and Algorithms  Kruse, Tonso, Leung: Data Structure and program Design in C  Sahni: Data structure and algorithm and application in C++  Weiss: Data Structure and Algorithm analysis in C/C++
Design and Analysis of Algorithms • Analysis: predict the cost of an algorithm in terms of resources and performance • Design: design algorithms which minimize the cost
Algorithms An algorithm is a finite sequence of step by step, discrete, unambiguous instructions for solving a particular problem  Has input data, and is expected to produce output data  Each instruction can be carried out in a finite amount of time in a deterministic way
Conti…  In simple terms, an algorithm is a series of instructions to solve a problem (complete a task).  Problems can be in any form  Business  Get a flight from Delhi to Banglore by morning  Allocate manpower to maximize profit  Life  I am hungry. How do I order pizza?  Explain how to tie shoelaces to a five year old child
Algorithms (Criteria) 1. Input: Zero or more quantities are externally supplied. 2. Output: At least one quantity is produced. 3. Definiteness: Each instruction is clear and unambiguous. 4. Finiteness: If we trace out the instructions of an algorithm, then for all cases, the algorithm terminates after a finite number of steps. 5. Effectiveness: Every instruction must be very basic so that it can be carried out, in principle, by a person using only pencil and paper. It is not enough that each operation be definite as in criteria 3, it also must be feasible.
Algorithms  We deal with data processing problems  Translated to programs that can be run on a computer  Since we can only input, store, process & output data on a computer, the instructions in our algorithms will be limited to these functions.
Algorithm Description  Understand the problem before solving it  Identify & name each Input/Givens  Identify & name each Output/Results  Assign a name to our algorithm (Name)  Combine the previous 3 pieces of information into a formal statement (Definition)  Results := Name (Givens)
Method  Once we have prepared the Algorithm Description, we need to solve the problem  We develop a series of instructions (limited to those described previously) that, when executed, will compute the desired Results from the Givens (Method)
Writing of Algorithm Algorithm is basically a sequence of instruction written in simple English type (pseudo) language. The algorithms is basically divided into two parts.  Algorithm heading: It consist of name of algorithm, problem description, input and output.  Algorithm body: It consists of logical body of the algorithm.
Assignment command Syntax X = 5Y + 16 On the left side of =, we put the name of a variable and on the right side we put a value or an expression. Each variable refers to a unique location in computer memory that contains a value. Interpretation An assignment is executed in two steps : 1-evaluation of the expression found on the right side. 2-setting the returned value in the memory cell corresponding to variable. Example Let SideSize=15 Let Area=SideSizeSideSize
Assignment in computer science and equality in mathematics a) The following instructions are the same in mathematics. A=B B=A not in computer science. Let A=B is different from Let B=A b) In mathematics we work with relations. A relation B=A+1 means that it is true all the time In computer science, we work with assignments. We can have: A=5 B=A+1 A=2 The relation B=A+1 is true only after the second instruction
c) The instruction A=A+3 is false in mathematics. In computer science Let A=A+3 means: the new value of A is equal to the old one plus three. d) The instruction A+5=3 is allowed in mathematics (it is an equation). Let A+5=3 has no meaning in computer science (the left side must be a variable). Assignment in computer science and equality in mathematics
Input command Syntax Get variable The variable must be from input Interpretation Here the user must give a value. The given value is assigned to the variable. Example Get Size_Side
Output command Syntax Give variable The variable must be from Results Interpretation The value of the variable is displayed. Example Give Area
Algorithm 1.1  Write an algorithm to find the sum of three given numbers  NAME: SUM3  GIVENS: N1, N2, N3  RESULTS: Total  DEFINITION: Total := SUM3(N1, N2, N3)  -------------------------  METHOD: Get N1 Get N2 Get N3 Let Total = N1 + N2 + N3 Give Total
Algorithm 1.2  Write an algorithm to find the result of a division operation for the given two numbers X and Y  NAME: Division  GIVENS: X, Y  RESULTS: Quotient  DEFINITION: Quotient := Division(X, Y)  -------------------------  METHOD: Get X Get Y Let Quotient = X/Y Give Quotient
Algorithm 1.3  Write an algorithm to find the sum and product of the two given numbers  NAME: SumTimes  GIVENS:Num1, Num2  RESULTS: Total, Product  DEFINITION: Total & Product := SumTimes(Num1, Num2)  -------------------------  METHOD: Get Num1 Get Num2 Let Total = Num1 + Num2 Let Product = Num1 * Num2 Give Total Give Product
Algorithm 1.4  Find the sum and average of three given numbers  NAME:AVG3  GIVENS:Num1, Num2, Num3  RESULTS:Sum , Average  DEFINITION:Sum & Average := AVG3(Num1, Num2, Num3)  -------------------------  METHOD: Get Num1 Get Num2 Get Num3 Let Sum = Num1 + Num2 + Num3 Let Average = Sum /3 Give Sum Give Average
Variables  Observe that we have used names for the data items in our Givens and Results  Num1, Num2, Num3, Sum, Average in Algorithm 1.4  Each name refers to a unique location in computer memory (one or more adjacent bytes) that contains a value  Since that value can change as the instructions in our algorithm are executed, we call each data item a variable
Variables  In our algorithm, when we use a variable name, we are referring to the value stored in memory for that data item  Later in this lecture we will learn more about how to define variables
Intermediates  Occasionally, in an algorithm, we need to have a variable (in addition to those representing Givens or Results) to store a value temporarily  These are intermediate variables and we identify them in the Algorithm Description as Intermediates
Algorithm 1.5  Given 3 assignment marks (out of 50, 20, 70), find the average (calculated as a mark out of 100)  General Concept  How does one figure out the percentage of several marks?  Add them all up  Divide by the maximum possible mark (50+20+70)  Multiply by 100
Algorithm 1.5  Given 3 assignment marks (out of 50, 20, 70), find the average, calculated as a mark out of 100  NAME: CalcMark  GIVENS: A1, A2, A3  RESULTS: Mark  INTERMEDIATES: Total, MaxMark (Constant)  DEFINITION: Mark := CalcMark(A1, A2, A3)  -------------------------  METHOD: Set MaxMark = 140 (Constant) Get A1 Get A2 Get A3 Let Total = A1 + A2 + A3 Let Mark = Total/MaxMark * 100 Give Mark
Algorithm 1.6  Given a two digit number, find the sum of its digits  General Concept  How can we break apart a number?  41 = 4 Tens and 1 Ones  so for the number 41, we want 4 + 1 = 5  Use integer division  DIV returns the integer part of a division  MOD returns the remainder of a division 41 10 = 4 41 MOD 10 = 1
Algorithm 1.6  Given a two digit number, find the sum of its digits  NAME: SumDig  GIVENS: N  RESULTS: Sum  INTERMEDIATES: Tens, Ones  DEFINITION: Sum := SumDig(N)  -------------------------  METHOD: Get N Let Tens = N div10 Let Ones = N mod 10 Let Sum = Tens + Ones Give Sum
Algorithm 1.7  Write an algorithm which swaps the values of two numbers  Example 1  Two car family. The wrong car is at the end of the driveway  Move first car out on to the street  Move second car out on to the street  Move first car back in  Move second car back in  Example 2  You are looking after a 3 year old. He wants milk and juice. You put the milk in the blue glass and the juice in the red glass. The child is screaming that you did it wrong.  Get a third glass (white)  Pour the milk from the blue glass to the white glass  Pour the juice from the red glass to the blue glass  Pour the milk from the white glass to the red glass
Algorithm 1.7  Write an algorithm which swaps the values of two numbers  NAME: Swap  GIVENS: X, Y  RESULTS: X, Y  INTERMEDIATES: Temp  DEFINITION: Swap (X, Y)  -------------------------  METHOD: Get X Get Y Let Temp = X Let X = Y Let Y = Temp Give X Give Y
Algorithm 1.8  Write an algorithm which adds the given two numbers (X and Y) and returns the sum in the given variable X  NAME: AddXY  GIVENS:X, Y  RESULTS: X  INTERMEDIATES: None  DEFINITION: AddXY (X, Y)  -------------------------  METHOD: Get X Get Y Let X = X+ Y Give X
Tracing an Algorithm  The purpose of tracing an algorithm is to ensure that it works  This is a paper test. As we will see later, it should be completed before writing the computer code  Tracing involves  Executing the sequence of instructions with a sample set of values  Computing the value of each variable after each instruction is executed  Checking for the correct result
Tracing an Algorithm  Step 1 - Number every instruction in the algorithm  Step 2 – Make a table  The first column of the table indicates which instruction has been executed  Subsequent columns list all the variables of the algorithm (Givens, Results, Intermediates)
Tracing an Algorithm  Step 3 – Complete the table  Each column of the table represents a variable  Start at the first line of your algorithm. Identify what will happen to each variable as that instruction is executed  Change any values which the instruction changes and leave all other columns blank
Trace 1.1  Trace Algorithm 1.4 using the numbers 24, 31, and 35 METHOD: (1) Get Num1 (2) Get Num2 (3) Get Num3 (4) Let Sum = Num1 + Num2 + Num3 (5) Let Average = Sum /3 (6) Give Sum (7) Give Average Line Num1 Num2 Num3 Sum Avg 1 24 2 31 3 35 4 90 5 30 6 output 90 7 output 30
Trace 1.2  Trace Algorithm 1.5 with the numbers 40, 18, 26 METHOD: (1) Set MaxMark =140 (2) Get A1 (3) Get A2 (4) Get A3 (5) Let Total = A1 + A2 + A3 (6) Let Mark = Total/MaxMark * 100 (7) Give Mark Ln A1 A2 A3 MM Ttl Mark 1 140 2 40 3 18 4 26 5 84 6 60 7 output 60 NB THE ANSWER IS NOT 69 (40/50 + 18/20 + 26/70)/3
Trace 1.3  Trace Algorithm 1.7 when X and Y have the values 25 and 88, respectively METHOD: (1) Get X (2) Get Y (3) Let Temp = X (4) Let X = Y (5) Let Y = Temp (6) Give X (7) Give Y LN X Y Temp 1 25 2 88 3 25 4 88 5 25 6 output 88 7 output 25
Flow Charts  Is a pictorial representation of Algorithms  Can be created in MS Visio, MS word, Paint etc.  Begin and End with an Oval  Get/Give use a parallelogram  Lets use a rectangle  Flow is shown with arrows
Algorithm 1.1 NAME: SUM3 GIVENS: N1, N2, N3 RESULTS: Total DEFINITION: Total := SUM3(N1, N2, N3) Start SUM3 Get N1 Get N2 Get N3 Let Total = N1 + N2 + N3 Give Total Finish SUM3
Algorithm 1.2 NAME: Division GIVENS: X, Y RESULTS: Quotient DEFINITION: Quotient := Division(X, Y) Start DIVISION Get X Get Y Let Quotient = X/Y Give Quotient Finish DIVISION
Algorithm 1.3 NAME: SumTimes GIVENS:Num1, Num2 RESULTS: Total, Product DEFINITION: Total & Product := SumTimes(Num1, Num2) Start SUMTIMES Get Num1 Get Num2 Let Total = Num1 + Num2 Let Product = Num1 * Num2 Give Total Give Product Finish SUMTIMES
Algorithm 1.4 NAME:AVG3 GIVENS:Num1, Num2, Num3 RESULTS:Sum , Average DEFINITION: Sum & Average := AVG3(Num1, Num2, Num3) Start AVG3 Get Num1 Get Num2 Get Num3 Let Sum = Num1 + Num2 + Num3 Let Average = Sum/3 Give Suml Give Average Finish AVG3
Algorithm 1.5 NAME: CalcMark GIVENS: A1, A2, A3 RESULTS: Mark INTERMEDIATES: Total, MaxMark (Constant) DEFINITION: Mark := CalcMark(A1, A2, A3) Start CALCMARK Get A1 Get A2 Get A3 Let Total = A1 + A2 + A3 Let Mark = Total/MaxMark Give Mark Finish CALCMARK Set MaxMark =140
Algorithm 1.6 NAME: SumDig GIVENS: N RESULTS: Sum INTERMEDIATES: Tens, Ones DEFINITION: Sum := SumDig(N) Start SUMDIG Get N Let Tens = N div 10 Let Ones = N mod 10 Let Sum = Tens + Ones Give Sum Finish SUMDIG
Algorithm 1.7 NAME: Swap GIVENS: X, Y Change: X, Y RESULTS: None INTERMEDIATES: Temp DEFINITION: Swap (X, Y) Start SWAP Get X Get Y Let Temp = X Let X = Y Let Y = Temp Give X Give Y Finish SWAP
Algorithm 1.8 NAME: AddXY GIVENS:X, Y Change: X RESULTS:None INTERMEDIATES: None DEFINITION: AddXY (X, Y) Start ADDXY Get X Get Y Let X = X + Y Give X Finish ADDXY

Lecture-1(Introduction) Data Structure and pdf

  • 1.
    Dr. Ajay kumar,Prof. Sanjay Garg (ajay.kumar@juet.ac.in) Assistant Professor (Senior Grade) Deptt of CSE JUET Guna (M.P.) Algorithms and Problem Solving (APS) Course Code: 14B11CI412 Course Credit: 4 Session: January 2025-May 2025
  • 2.
    Prerequisite  Introduction toprogramming in ‘C’ and data structure (with sufficient familiarity in the usage of array, pointers, recursion, searching, sorting, tree etc…. )
  • 3.
    Purpose of thissubject A rigorous introduction to the design and analysis of algorithms  Not a lab or programming course  Not a math course, either
  • 4.
    Evaluation scheme: (Algorithmsand Problem Solving )  Test – I 15  Test – II 25  Test- III 35  Assignments 5  Quiz 5  Tutorial/Problem Solving 10  Attendance 05 Total 100
  • 5.
    Course Content  Analysisof algorithm: Asymptotic Notation, Sorting and merging Algorithm  Tree and related data Structure: Heap, Priority Queues, B-Tree, AVL, Splay Tree, Red-Black Tree, Threaded Tree  Files: Classification, Record Organization, Retrieval System, External Sorting  Set, Dictionary: Design, Analysis, integration and applications  Fundamental techniques: Divide and Conquer method, Dynamic Programming, Introduction to Greedy Method  Hashing: technique, collision resolution and analysis  Text Processing: String operation, pattern matching algorithm, tries, text compression, text similarity testing.
  • 6.
    Books and References: Textbook: Introduction to Algorithms, Cormen, Leiserson, Rivest, Stein  Aho, Hopcraft, Ullman: Data Structure and Algorithms  Kruse, Tonso, Leung: Data Structure and program Design in C  Sahni: Data structure and algorithm and application in C++  Weiss: Data Structure and Algorithm analysis in C/C++
  • 7.
    Design and Analysisof Algorithms • Analysis: predict the cost of an algorithm in terms of resources and performance • Design: design algorithms which minimize the cost
  • 9.
    Algorithms An algorithm isa finite sequence of step by step, discrete, unambiguous instructions for solving a particular problem  Has input data, and is expected to produce output data  Each instruction can be carried out in a finite amount of time in a deterministic way
  • 10.
    Conti…  In simpleterms, an algorithm is a series of instructions to solve a problem (complete a task).  Problems can be in any form  Business  Get a flight from Delhi to Banglore by morning  Allocate manpower to maximize profit  Life  I am hungry. How do I order pizza?  Explain how to tie shoelaces to a five year old child
  • 11.
    Algorithms (Criteria) 1. Input:Zero or more quantities are externally supplied. 2. Output: At least one quantity is produced. 3. Definiteness: Each instruction is clear and unambiguous. 4. Finiteness: If we trace out the instructions of an algorithm, then for all cases, the algorithm terminates after a finite number of steps. 5. Effectiveness: Every instruction must be very basic so that it can be carried out, in principle, by a person using only pencil and paper. It is not enough that each operation be definite as in criteria 3, it also must be feasible.
  • 12.
    Algorithms  We dealwith data processing problems  Translated to programs that can be run on a computer  Since we can only input, store, process & output data on a computer, the instructions in our algorithms will be limited to these functions.
  • 13.
    Algorithm Description  Understandthe problem before solving it  Identify & name each Input/Givens  Identify & name each Output/Results  Assign a name to our algorithm (Name)  Combine the previous 3 pieces of information into a formal statement (Definition)  Results := Name (Givens)
  • 14.
    Method  Once wehave prepared the Algorithm Description, we need to solve the problem  We develop a series of instructions (limited to those described previously) that, when executed, will compute the desired Results from the Givens (Method)
  • 15.
    Writing of Algorithm Algorithmis basically a sequence of instruction written in simple English type (pseudo) language. The algorithms is basically divided into two parts.  Algorithm heading: It consist of name of algorithm, problem description, input and output.  Algorithm body: It consists of logical body of the algorithm.
  • 16.
    Assignment command Syntax X =5Y + 16 On the left side of =, we put the name of a variable and on the right side we put a value or an expression. Each variable refers to a unique location in computer memory that contains a value. Interpretation An assignment is executed in two steps : 1-evaluation of the expression found on the right side. 2-setting the returned value in the memory cell corresponding to variable. Example Let SideSize=15 Let Area=SideSizeSideSize
  • 17.
    Assignment in computerscience and equality in mathematics a) The following instructions are the same in mathematics. A=B B=A not in computer science. Let A=B is different from Let B=A b) In mathematics we work with relations. A relation B=A+1 means that it is true all the time In computer science, we work with assignments. We can have: A=5 B=A+1 A=2 The relation B=A+1 is true only after the second instruction
  • 18.
    c) The instructionA=A+3 is false in mathematics. In computer science Let A=A+3 means: the new value of A is equal to the old one plus three. d) The instruction A+5=3 is allowed in mathematics (it is an equation). Let A+5=3 has no meaning in computer science (the left side must be a variable). Assignment in computer science and equality in mathematics
  • 19.
    Input command Syntax Get variable Thevariable must be from input Interpretation Here the user must give a value. The given value is assigned to the variable. Example Get Size_Side
  • 20.
    Output command Syntax Give variable Thevariable must be from Results Interpretation The value of the variable is displayed. Example Give Area
  • 21.
    Algorithm 1.1  Writean algorithm to find the sum of three given numbers  NAME: SUM3  GIVENS: N1, N2, N3  RESULTS: Total  DEFINITION: Total := SUM3(N1, N2, N3)  -------------------------  METHOD: Get N1 Get N2 Get N3 Let Total = N1 + N2 + N3 Give Total
  • 22.
    Algorithm 1.2  Writean algorithm to find the result of a division operation for the given two numbers X and Y  NAME: Division  GIVENS: X, Y  RESULTS: Quotient  DEFINITION: Quotient := Division(X, Y)  -------------------------  METHOD: Get X Get Y Let Quotient = X/Y Give Quotient
  • 23.
    Algorithm 1.3  Writean algorithm to find the sum and product of the two given numbers  NAME: SumTimes  GIVENS:Num1, Num2  RESULTS: Total, Product  DEFINITION: Total & Product := SumTimes(Num1, Num2)  -------------------------  METHOD: Get Num1 Get Num2 Let Total = Num1 + Num2 Let Product = Num1 * Num2 Give Total Give Product
  • 24.
    Algorithm 1.4  Findthe sum and average of three given numbers  NAME:AVG3  GIVENS:Num1, Num2, Num3  RESULTS:Sum , Average  DEFINITION:Sum & Average := AVG3(Num1, Num2, Num3)  -------------------------  METHOD: Get Num1 Get Num2 Get Num3 Let Sum = Num1 + Num2 + Num3 Let Average = Sum /3 Give Sum Give Average
  • 25.
    Variables  Observe thatwe have used names for the data items in our Givens and Results  Num1, Num2, Num3, Sum, Average in Algorithm 1.4  Each name refers to a unique location in computer memory (one or more adjacent bytes) that contains a value  Since that value can change as the instructions in our algorithm are executed, we call each data item a variable
  • 26.
    Variables  In ouralgorithm, when we use a variable name, we are referring to the value stored in memory for that data item  Later in this lecture we will learn more about how to define variables
  • 27.
    Intermediates  Occasionally, inan algorithm, we need to have a variable (in addition to those representing Givens or Results) to store a value temporarily  These are intermediate variables and we identify them in the Algorithm Description as Intermediates
  • 28.
    Algorithm 1.5  Given3 assignment marks (out of 50, 20, 70), find the average (calculated as a mark out of 100)  General Concept  How does one figure out the percentage of several marks?  Add them all up  Divide by the maximum possible mark (50+20+70)  Multiply by 100
  • 29.
    Algorithm 1.5  Given3 assignment marks (out of 50, 20, 70), find the average, calculated as a mark out of 100  NAME: CalcMark  GIVENS: A1, A2, A3  RESULTS: Mark  INTERMEDIATES: Total, MaxMark (Constant)  DEFINITION: Mark := CalcMark(A1, A2, A3)  -------------------------  METHOD: Set MaxMark = 140 (Constant) Get A1 Get A2 Get A3 Let Total = A1 + A2 + A3 Let Mark = Total/MaxMark * 100 Give Mark
  • 30.
    Algorithm 1.6  Givena two digit number, find the sum of its digits  General Concept  How can we break apart a number?  41 = 4 Tens and 1 Ones  so for the number 41, we want 4 + 1 = 5  Use integer division  DIV returns the integer part of a division  MOD returns the remainder of a division 41 10 = 4 41 MOD 10 = 1
  • 31.
    Algorithm 1.6  Givena two digit number, find the sum of its digits  NAME: SumDig  GIVENS: N  RESULTS: Sum  INTERMEDIATES: Tens, Ones  DEFINITION: Sum := SumDig(N)  -------------------------  METHOD: Get N Let Tens = N div10 Let Ones = N mod 10 Let Sum = Tens + Ones Give Sum
  • 32.
    Algorithm 1.7  Writean algorithm which swaps the values of two numbers  Example 1  Two car family. The wrong car is at the end of the driveway  Move first car out on to the street  Move second car out on to the street  Move first car back in  Move second car back in  Example 2  You are looking after a 3 year old. He wants milk and juice. You put the milk in the blue glass and the juice in the red glass. The child is screaming that you did it wrong.  Get a third glass (white)  Pour the milk from the blue glass to the white glass  Pour the juice from the red glass to the blue glass  Pour the milk from the white glass to the red glass
  • 33.
    Algorithm 1.7  Writean algorithm which swaps the values of two numbers  NAME: Swap  GIVENS: X, Y  RESULTS: X, Y  INTERMEDIATES: Temp  DEFINITION: Swap (X, Y)  -------------------------  METHOD: Get X Get Y Let Temp = X Let X = Y Let Y = Temp Give X Give Y
  • 34.
    Algorithm 1.8  Writean algorithm which adds the given two numbers (X and Y) and returns the sum in the given variable X  NAME: AddXY  GIVENS:X, Y  RESULTS: X  INTERMEDIATES: None  DEFINITION: AddXY (X, Y)  -------------------------  METHOD: Get X Get Y Let X = X+ Y Give X
  • 35.
    Tracing an Algorithm The purpose of tracing an algorithm is to ensure that it works  This is a paper test. As we will see later, it should be completed before writing the computer code  Tracing involves  Executing the sequence of instructions with a sample set of values  Computing the value of each variable after each instruction is executed  Checking for the correct result
  • 36.
    Tracing an Algorithm Step 1 - Number every instruction in the algorithm  Step 2 – Make a table  The first column of the table indicates which instruction has been executed  Subsequent columns list all the variables of the algorithm (Givens, Results, Intermediates)
  • 37.
    Tracing an Algorithm Step 3 – Complete the table  Each column of the table represents a variable  Start at the first line of your algorithm. Identify what will happen to each variable as that instruction is executed  Change any values which the instruction changes and leave all other columns blank
  • 38.
    Trace 1.1  TraceAlgorithm 1.4 using the numbers 24, 31, and 35 METHOD: (1) Get Num1 (2) Get Num2 (3) Get Num3 (4) Let Sum = Num1 + Num2 + Num3 (5) Let Average = Sum /3 (6) Give Sum (7) Give Average Line Num1 Num2 Num3 Sum Avg 1 24 2 31 3 35 4 90 5 30 6 output 90 7 output 30
  • 39.
    Trace 1.2  TraceAlgorithm 1.5 with the numbers 40, 18, 26 METHOD: (1) Set MaxMark =140 (2) Get A1 (3) Get A2 (4) Get A3 (5) Let Total = A1 + A2 + A3 (6) Let Mark = Total/MaxMark * 100 (7) Give Mark Ln A1 A2 A3 MM Ttl Mark 1 140 2 40 3 18 4 26 5 84 6 60 7 output 60 NB THE ANSWER IS NOT 69 (40/50 + 18/20 + 26/70)/3
  • 40.
    Trace 1.3  TraceAlgorithm 1.7 when X and Y have the values 25 and 88, respectively METHOD: (1) Get X (2) Get Y (3) Let Temp = X (4) Let X = Y (5) Let Y = Temp (6) Give X (7) Give Y LN X Y Temp 1 25 2 88 3 25 4 88 5 25 6 output 88 7 output 25
  • 41.
    Flow Charts  Isa pictorial representation of Algorithms  Can be created in MS Visio, MS word, Paint etc.  Begin and End with an Oval  Get/Give use a parallelogram  Lets use a rectangle  Flow is shown with arrows
  • 42.
    Algorithm 1.1 NAME: SUM3 GIVENS:N1, N2, N3 RESULTS: Total DEFINITION: Total := SUM3(N1, N2, N3) Start SUM3 Get N1 Get N2 Get N3 Let Total = N1 + N2 + N3 Give Total Finish SUM3
  • 43.
    Algorithm 1.2 NAME: Division GIVENS:X, Y RESULTS: Quotient DEFINITION: Quotient := Division(X, Y) Start DIVISION Get X Get Y Let Quotient = X/Y Give Quotient Finish DIVISION
  • 44.
    Algorithm 1.3 NAME: SumTimes GIVENS:Num1,Num2 RESULTS: Total, Product DEFINITION: Total & Product := SumTimes(Num1, Num2) Start SUMTIMES Get Num1 Get Num2 Let Total = Num1 + Num2 Let Product = Num1 * Num2 Give Total Give Product Finish SUMTIMES
  • 45.
    Algorithm 1.4 NAME:AVG3 GIVENS:Num1, Num2,Num3 RESULTS:Sum , Average DEFINITION: Sum & Average := AVG3(Num1, Num2, Num3) Start AVG3 Get Num1 Get Num2 Get Num3 Let Sum = Num1 + Num2 + Num3 Let Average = Sum/3 Give Suml Give Average Finish AVG3
  • 46.
    Algorithm 1.5 NAME: CalcMark GIVENS:A1, A2, A3 RESULTS: Mark INTERMEDIATES: Total, MaxMark (Constant) DEFINITION: Mark := CalcMark(A1, A2, A3) Start CALCMARK Get A1 Get A2 Get A3 Let Total = A1 + A2 + A3 Let Mark = Total/MaxMark Give Mark Finish CALCMARK Set MaxMark =140
  • 47.
    Algorithm 1.6 NAME: SumDig GIVENS:N RESULTS: Sum INTERMEDIATES: Tens, Ones DEFINITION: Sum := SumDig(N) Start SUMDIG Get N Let Tens = N div 10 Let Ones = N mod 10 Let Sum = Tens + Ones Give Sum Finish SUMDIG
  • 48.
    Algorithm 1.7 NAME: Swap GIVENS:X, Y Change: X, Y RESULTS: None INTERMEDIATES: Temp DEFINITION: Swap (X, Y) Start SWAP Get X Get Y Let Temp = X Let X = Y Let Y = Temp Give X Give Y Finish SWAP
  • 49.
    Algorithm 1.8 NAME: AddXY GIVENS:X,Y Change: X RESULTS:None INTERMEDIATES: None DEFINITION: AddXY (X, Y) Start ADDXY Get X Get Y Let X = X + Y Give X Finish ADDXY