Module 1 Problem Solving
Module 1 Problem Solving
Module 1 Problem Solving
1.1 Algorithms
5. Input/output: Each algorithm must take zero or more quantities as input data and give
out one or more output values.
• List the data needed to solve the problem (input) and know what is the end result
(output).
• Describe the various step to process the input to get the desired output. Break down the
complex processes into simpler statements.
Step 5: Stop.
The above algorithm is to add two numbers a and b. The numbers are the input provided by
the user .After adding the result is stored in a variable c and it is printed.
1.2 Building Blocks of Algorithm: The basic building blocks of an algorithm are
Statements, Control flow and Functions.
• Sequence
• Selection
• Iteration
Sequence
Example: Algorithm to find the average of three numbers, the algorithm is as follows Step1:
Start
Step6: Print d
Step7: Stop
The above algorithm finds the average of three numbers a, b and c. The numbers are the
input provided by the user .After adding the total is divided by 3 and the result is stored in
a variable d and it is printed.
Selection
A selection statement is transferring the program control to a specific part of the program
based upon the condition.
If the condition is true, one part of the program will be executed, otherwise the other part of
the program will be executed.
Example: Algorithm to find the Largest of two numbers, the algorithm is as follows Step1:
Start
Step 6: ENDIF
Step 7: Stop
The above algorithm is used to find the Largest of two numbers a and b. The numbers are
the input provided by the user .The number a and b are compared, If a is larger Print “A is
Large” or if b is larger print “B is Large”.
Iteration
Iteration is a type of execution where a certain set of statements are executed again and
again based upon condition. This type of execution is also called as looping or repetition.
Example: Algorithm to print all natural numbers up to n, the algorithm is as follows Step 1:
Start
Step 6: Go to step 4
Step 7: Stop
The above algorithm is for printing first n natural numbers .The user provides the input.
The first value, i is initialized. A loop is initialized. The first value is printed and the number
is incremented. The i value is checked with n, the user input. The numbers are printed until
i becomes greater than n.
1.2.3 Functions
Function is a sub program which consists of block of instructions that performs a particular
task. For complex problems, the problem is been divided into smaller and simpler tasks
during algorithm design. Benefits of Using Functions
Step 1: Start
Step 2: Call the function add ()
Step 3: Stop
The above algorithm is to call the function add. This function is called as Main function or
calling function.
Subfunction add ()
Step 1: Function start
Step 2: Get two numbers as input and store it in to a and b
Step 3: Add the numbers a & b and store the result in c
Step 4: Print c
Step 5: Return.
The above algorithm is called as the called function which is to add two numbers a and b.
The numbers are the input provided by the user .After adding the result is stored in a variable
c and it is printed.
1.3 NOTATIONS
Pseudo code means a short, readable set of instructions written in English to explain an
algorithm.
Comment: //
Start: BEGIN
Stop: END
Input: INPUT, GET, READ
Calculate: COMPUTE, CALCULATE, ADD, SUBTRACT, INITIALIZE
Output: OUTPUT, PRINT, DISPLAY
Selection: IF, ELSE, ENDIF
Iteration: WHILE, ENDWHILE, FOR, ENDFOR
Example: Pseudo code to Add two numbers
BEGIN
GET a, b
ADD c=a+b
PRINT c
END
Advantages:
• It is not visual.
• We do not get a picture of the design.
• There is no standardized style or format.
• For a beginner, it is more difficult to follow the logic or write pseudo code as
compared to flowchart.
Flow Chart
Flow chart is defined as the graphical or diagrammatical representation of the process of
solving a problem. It represents the steps of a process in a sequential order.
Rules:
Advantages:
Disadvantages:
• The flowcharts are complex and clumsy when the program is large or complicated.
• The cost and time taken to draw a flowchart for larger applications are expensive.
The above flowchart is used for adding two numbers Number1 and Number2.The numbers
are the input provided by the user .After adding, the result is stored in the variable Sum and
is printed.
The above flowchart is used for printing all odd numbers up to 100. The first value, i is
initialized as zero. A loop is initialized. Starting from i=0, each value is divided by 2 and
the remainder is captured .This operation is called modulo of a number. The modulo of first
value is calculated if the result is not equal to zero then the number is printed and the number
is incremented. The i value is checked with the limit, 100. The numbers are printed until the
value is less than the input value.
The above flowchart is to find the Largest of two numbers NO1 and NO2.The numbers are
the input provided by the user .The number NO1 and NO2 are compared, If NO1 is larger,
the number NO1 is printed or if NO2 is larger, the number NO2 is printed.
Fig 1.5b Flowchart of a Sub function to add two numbers The flowchart
1.5a is for the calling function. This function is also called as Main function .
The flowchart1.5b is called as the called function which is to add two numbers
a and b.The numbers are the input provided by the user .After adding the result
is stored in a variable c and it is printed.
Types of Flowcharts
• Process Flowchart
• Data Flowchart
• Business Process Modeling Diagram
Difference between Algorithm, Flowchart and Pseudo code
Algorithm Flowchart Pseudo code
Process A: The number of people below poverty line in each village is estimated and the total
of people in each district is calculated.
Process B: The food committee will recommend the type of food to be provided and also the
quantity of food.
Process D: The Finance committee decides how to generate the revenue needed.
Process F: The distribution of food is carried out through public distribution system.
Process G: Feedback is provided by the public and beneficiaries which again is an input to
the process to improve the quality of the food provision Simple Strategies for Developing
Algorithms (Iteration, Recursion) Iterations:
1. For loop
2. While loop
The above flowchart is to print all natural numbers up to n .The user provides the input
value n. The first value, i is initialized as one. A loop is initialized. The i value is checked
with n, the user input. The numbers are printed until the value is less than the user input
value. When the condition becomes false the loop terminates.
Recursion:
Recursion is a process by which a function calls itself repeatedly until some specified
condition has been satisfied.
Example: Factorial
Algorithm Pseudo code
The flowchart 1.9a is to call the function factorial. This function is called as Main function
or calling function. The flowchart1.5b is called as the called function which is to find the
factorial of the number passed from the main function. The loop exists until the n value
becomes one. Factorial is a recursive function where the function itself is called again and
again.
The following are some of the factors which helps in an analyzing an algorithm
• Efficiency
• Simplicity
• Generality
• Range of Growth
• Computing order of growth
The most important factor of all these is efficiency.
Time Complexity
• Time complexity of an algorithm is the total time required by the algorithm to run.
• To compute time we require two components – Variable part and fixed part.
• Variable Part - Run time
• Fixed Part - Compile time
Time complexity can be represented as a numerical function T(n), where T(n) can be
measured as the number of steps, provided each step consumes constant time.
For example
int sum(int a[],int n)
{
Int sum=0
For (int i=0;i<n;i++)
{
Sum=sum+a[i]
}
Return sum
}
Instruction Step count
int sum(int a[],int n) 0
{ 0
Int sum=0 1
For (int i=0;i<n;i++) n+1
{
Sum=sum+a[i] N
} 0
Return sum 1
} 0
Total steps=1+n+1+n+1=2n+3
Space Complexity: Space complexity of an algorithm is the amount of memory space
required by the algorithm to run.
• The program must be of lesser size in a multiuser system ,since there will be multiple
copies of the same program
To compute the space we require two components – Variable space and fixed space.
Where C is a Constant, that is the fixed space and it denotes the amount of space taken by
instructions, simple variables, constants and identifiers.
Space complexity can also be represented as the sum of instruction space, Data space and
Environment stack space.
Instruction space: The memory space required for storing the compiled instructions. It
depends on the Compiler used, compiler options and the target computer
Data space: The amount of memory space used by Constants, variables, arrays, structures
and other data structures.
Environment stack space: When we use a function, we will require a stack to store the
return address of the main function (Calling function). This space is the environment stack
space.
Examples:
{ int c= a+b
return c
In the above example, variables a, b, and c are all integer types, so they will take up 4 bytes
each, so total memory requirement will be (4(3) + 4) = 20 bytes, the additional 4 bytes is
for return value. Since this space requirement is fixed for the above example, it is called
Constant Space Complexity.
Int sum=0
Sum=sum+a[i]
Return sum
• In the above example, 4*n bytes of space is required for the array a[] n elements.
Case Studies
• Networked Healthcare
• Smart Cities
QUESTIONS :
1. Write an algorithm and flowchart for solving quadratic equation (of the form ax2 +
bx + c).
2. M1,M2, M3 are the marks scored in 3 tests. Write an algorithm to find the average
of best 2 marks.
3. Write an algorithm and pseudo code to check whether a given integer is prime
number or not.
4. Write a recursive function to add two numbers a and b.
5. Describe the algorithm for finding sum and average of n numbers.
6. Draw a flow chart for computing factorial of a given number.
7. Draw the flow chart for finding sum of first n natural numbers.
8. Draw a flow chart print all prime number between to intervals.
9. Explain the algorithm to find minimum in a list and Maximum in a list.
10. Develop an algorithm for conversion from Celsius to Fahrenheit and vice versa.