PROBLEM SOLVING WITH LOOPS Chapter 7
Concept of Repetition Structure Logic It is a computer task, that is used for Repeating a series of instructions many times. Ex. The Process of calculating the Total Payment for more than one employee. Loops can be written using combination of previous logic structures
Example: Write an Algorithm that calculate the average of 7 students grade.
Solution without looping structure Real St1_Grade, St2_Grade, St3_Grade, St4_Grade, St5_Grade, St6_Grade, St7_Grade, Control () 1. Read() 2. Average() 3. End Read() 1. Read St1_Grade 2. Read St2_Grade 3. Read St3_Grade 4. Read St4_Grade 5. Read St5_Grade 6. Read St6_Grade 7. Read St7_Grade 8. Exit Average() 1. Real Sum, Average 2. Sum = St1_Grade+St2_Grade+St3_Grade+ St4_Grade+St5_Grade+St6_Grade+ St7_Grade 3. Average = Sum/ 7 4. Exit
Solution with looping structure Real Student_Grade Control () 1. Read() 2. Average() 3. End Read() 1. Enter Student_Grade 2. Exit Average() 1. Integer Count=1 2. Real Sum=0 3. While ( count <= 7) 1. Read() 2. Sum=Sum +Student_Grade 3. Count=Count+1 4. WhileEnd 5. Real Average = Sum / count 6. Exit
Average Module Algorithm Flowchart What will Happen If we remove this? Count has no data, its value is Unknown, So the value of the condition is unpredictable. Exit F Real Average = Sum / 7 Flowchart Average() Integer Count=1 Real Sum=0 While Count<=7 T What will Happen If we remove this? Read() Sum=Sum+Student_Grade Count=Count+1 Sum has no initial value, its value is Unknown What will Happen If we remove this? This will lead to an infinite loop
The loop logic structure There are three types of loop structures: The While/WhileEnd loop Which repeats instructions while a condition is True and stops repeating when a condition arises that is not True. The Repeat/Until loop Which repeats instructions while a condition is False or until a condition is True. The automatic-counter loop a variable is set equal to a given number and increases in equal given increments until it is greater than an ending number.
The loop logic structure The algorithm and flowchart differ with each type of loop structure. Several standard types of tasks are accomplished through the use of the loop structure. Counting ( incrementing and decrementing) Accumulating ( calculating a sum or a total) In both task a number is added or subtracted from a variable and the result is stored back into the same variable. In each case the resultant variable is assigned the value of zero before starting the loop( initializing the variable ).
Initialization The Initialization set to an initial value usually zero but not all the time Examples: Count = 0 Count = 1 Count = 100
Incrementing (or Decrement) Is done by adding a constant, such as 1 or 2 to the value of a variable Example : Counter = counter + 1 or c = c + 1 Note: Remember Variable Must be Initialized before starting the loop. The increment can be one, two, or any other constant, including negative number if you want to decrement rather than increment. Example: Counter = counter -1 or c = c - 1
The Accumulating Or summing, a group of numbers Similar to incrementing, except a variable instead of a constant is added to another variable. sum = sum + variable or s = s + v Examples: Totalsales = Totalsales + Sales Note: Remember Variable Must be Initialized to zero.
While/ While End Loop. Repeats the instructions between the While & While End, if the condition is true. While <Condition (s)> Instruction Instruction... WhileEnd
while/whileend Use the While/ While End Loop structure when you do not know the number of times an instruction to be repeated. Or if there are cases when the instructions in the loop should not be processed. Primer read The value must be entered before the loop start. It gives the while/whileend loop a valid value for the variable in order for the conditions to be true the first time through the loop. The value of variable that allow to control when to stop the looping process called a trip value.
Example 1: Create the algorithm to find the average age of all the students in class How many Students? UNKOWN How can I solve this problem?
Average Age of a Class While/WhileEnd
Repeat/Until Repeat Instruction Instruction... Until< Condition(S)>
Example 1: Create the algorithm to find the average age of all the students in class How many Students? UNKOWN How can I solve this problem?
Average Age of a Class Repeat/Until
While/EndWhile & Repeat/Until While/WhileEnd You must initialize the data so that the resultant of the condition is true the first time through the loop. Otherwise, the loop instruction will never be processed. Repeat the loop until the resultant of condition is false. The condition is processed at the beginning Repeat/Until You can set the operand of the conditions anywhere within the loop since the condition is processed at the end. Repeat the loop until the resultant of condition is true. The condition is processed at the end Instructions in the loop are processed entirely at least once.
Automatic-Counter Loop Increments or decrements a variable each time the loop is repeated. Use it when you know from the start the number of times the loop will be executed. The beginning value, the ending value, and the increment value may be constant, variable, or expressions.
Automatic-Counter Loop Loop: counter=begin To End Step S Variable name Instruction Instruction Instruction Loop End: Counter..
Automatic-Counter Loop: General Rules When the computer executes the Loop instruction its sets the counter equal to the beginning number. When the computer executes the Loop-End instruction it increments the counter. When the counter is less than or equal to the ending number The processing continues for the instructions that follows the loop. When the counter is greater than the ending number. The processing continues for the instructions that follows the loop-end instruction.
Automatic-Counter Loop When decrementing the counter : The counter is decremented at the end of the loop. When the counter is greater than or equal to the ending value, the loop continues. Step value needs to be a negative number and begin must be greater than end
Example 1: using Automatic-Counter Loop Create the algorithm to find the average age of all the students in class
2 3 4 5 J, ( J -1 ) ( J 1) J,
Example 2: Create the algorithm & flowchart to: Prints the even numbers. The series of numbers will: Start From 0. Ends at 50.
Example 2 Solution PrintEvenNum() 1. Loop: counter=0 To 50 Step 2 1. Print counter 2. Loop-End: counter 3. End Algorithm
Recursion Another type of loop structure. A module or a function calls itself. Example : FactorialFunction (N) 1. If N > 1 then Factorial = N * FactorialFunction (N-1) Else Factorial = 1 2. Exit