0% found this document useful (0 votes)
42 views

Unit 1 Notes

The document discusses problem solving steps, algorithms, and pseudo code. It explains that problem solving involves understanding the problem, analyzing it, developing a solution, and implementing that solution. It then defines algorithms and their properties. Finally, it discusses the basic building blocks of algorithms like statements, control flow, and functions.

Uploaded by

prabha kar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

Unit 1 Notes

The document discusses problem solving steps, algorithms, and pseudo code. It explains that problem solving involves understanding the problem, analyzing it, developing a solution, and implementing that solution. It then defines algorithms and their properties. Finally, it discusses the basic building blocks of algorithms like statements, control flow, and functions.

Uploaded by

prabha kar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 20

Unit -1 PROBLEM SOLVING ASPECTS

[Problem solving aspects: Algorithms Pseudo code, Flow chart – Steps in Problem
Solving – Simple strategies for developing algorithms (iteration and recursion) –
Programming methodologies – Illustrative examples: Exchanging the values –Counting –
Finding minimum in a list – Factorial computation – Fibonacci sequence]
Steps in Problem Solving
A computer cannot solve a problem on its own. One has to provide step by step solutions of
the problem to the computer. In fact, the task of problem solving is not that of the computer. It is the
programmer who has to write down the solution to the problem in terms of simple operations which
the computer can understand and execute.
In order to solve a problem by the computer, one has to pass though certain stages or steps.
They are
1. Understanding the problem
2. Analyzing the problem
3. Developing the solution
4. Coding and implementation.
1. Understanding the problem: Here we try to understand the problem to be solved in
totally. Before with the next stage or step, we should be absolutely sure about the objectives
of the given problem.
2. Analyzing the problem: After understanding thoroughly the problem to be solved,
we look different ways of solving the problem and evaluate each of these methods. The idea
here is to search an appropriate solution to the problem under consideration. The end result of this
stage is a broad overview of the sequence of operations that are to be carries out to solve the given
problem.
3. Developing the solution: Here the overview of the sequence of operations that
was the result of analysis stage is expanded to form a detailed step by step solution to the
problem under consideration.
4. Coding and implementation: The last stage of the problem solving is the
conversion of the detailed sequence of operations in to a language that the computer can
understand. Here each step is converted to its equivalent instruction or instructions in the
computer language that has been chosen for the implantation.
1
Algorithms
An algorithm is a step by step procedure of solving a problem. The word
“algorithm” is derived from the name of the 9 th century Persian mathematician Al-
Khwarizmi.

An algorithm is defined as a collection of unambiguous instructions which are


executed in a specific sequence to produce an output in a finite amount of time for a
given set of input data.

An algorithm properties:

1. Finiteness: An algorithm must be executed finite number of times.

2. Definiteness: Each step of the algorithm must be accurate and clear.

3. Effectiveness: Each step must be effective, in the sense that it should be


primitive (easily convertible into a program statement) and can be
performed exactly in a finite amount of time.

4. Independent: The algorithm must be independent of any programming


code.

5. Input/output: Each algorithm must take zero or more quantities as input data and give out
one or more output values.

Steps involved in algorithm development


An algorithm can be defined as “a complete, unambiguous, finite number of logical steps for
solving a specific problem “
Step 1: Identification of input: For an algorithm, there are quantities to be supplied called
input and these are fed externally. The input is to be identified first for any specified problem.
Step 2: Identification of output: From an algorithm, at least one quantity is produced,
called for any specified problem.
Step 3: Identification the processing operations: All the calculations to be performed in

2
order to lead to output from the input are to be identified in an orderly manner.
Step 4: Processing Definiteness: The instructions composing the algorithm must be clear
and there should not be any ambiguity in them.

Step 5: Processing Finiteness: If we go through the algorithm, then for all cases, the
algorithm should terminate after a finite number of steps.
Step 6: Possessing Effectiveness: The instructions in the algorithm must be sufficiently
basic and in practice they can be carries out easily.

Methods for Developing an Algorithm

 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.

 Finally test the algorithm with different data

sets.

Example: Algorithm for Addition of two numbers:

Step1: Start

Step 2: Get two numbers a and b as input

Step 3: Add the numbers a & b and store the result in c

Step 4: Print c

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.

Building Blocks of Algorithm

The basic building blocks of an algorithm are Statements, Control flow and Functions.
3
1. Statements:

Statement may be a single action in a computer. In a computer statements might

include some of the following actions

 Input data-information given to the program

 Process data-perform operation on a given input

 Output data-processed result

2 . Control flow:

The process of executing the statements in the given sequence is called as


control flow.

The three ways in executing the control flow are

 Sequence

 Selection

 Iteration

(a) Sequence

The given set of instructions executed consecutively is called sequence


execution.

Example: Algorithm to find the average of three numbers

Step1: Start

Step2: Get three numbers a, b, c as input

Step3: Find the sum of a, b and c

Step4: Divide the sum by 3

Step5: Store the result in variable d

4
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.

(b) 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

Step1: Start

Step 2: Get two numbers a and b as input

Step 3: IF a>b THEN

Step 4: PRINT “A is Large”

Step 5: ELSE PRINT “B is Large”

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”.

(c)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.
5
Example: Algorithm to print all natural numbers up to n

Step 1: Start

Step 2: Get the value of n.

Step 3: Initialize i=1

Step 4: if (i<=n) go to step 5 else go to step 7

Step 5: Print i value and increment i value by 1

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.

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

 Reduction in line of code


 code reuse
 Better readability
 Information hiding
 Easy to debug and test
 Improved maintainability

Example: Algorithm for addition of two numbers using function


Main function ()

6
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.

Pseudo Code
Pseudo –False.
Code- Set of Instructions.

Pseudo code means a short, readable set of instructions written in English to explain
an algorithm.

Rules for writing Pseudo code

 Write one statement per line


 Capitalize keywords.
 Indent to hierarchy.
 Keep statements language independent.

7
Common keywords used in writing a Pseudo code

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:

 Pseudo code is program independent.

 It is easily understandable by layman.

 There is no Standard syntax.

 Pseudo code cannot be compiled or executed.

 It is easy to translate pseudo code into a programming language.

 It can be easily modified as compared to flowchart.

Disadvantages:

 It is not visual.

 We do not get a picture of the design.


8
 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:

 The flowchart should be clear, neat and easy to follow.

 The flowchart must have a logical start and finish.

 Only one flow line should come out from a process symbol

 Only one flow line should enter a decision symbol. However, two or three
flow lines may leave the decision symbol
 Only one flow line is used with a terminal symbol.

 Within standard symbols, write briefly and precisely.

 Intersection of flow lines should be avoided.

9
Fig 1.1 Symbols used in Flow chart

10
Advantages:
 Flowcharts help in communicating the logic of a program in a better way.

 The problems can be analyzed effectively with the help of flowchart.

 Flowcharts serve as good program documentation.

 The flowchart is a blueprint for the programmer to code efficiently.

 Flowcharts help in debugging process.

Disadvantages:
 The flowcharts are complex and clumsy when the program is large or
Complicated.

 Altering or modifying the flowcharts may require re-drawing completely.

 The cost and time taken to draw a flowchart for larger applications are
expensive.
Example: Add two numbers

Fig 1.2 Flowchart for adding two numbers

11
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.

Example: Print odd numbers from 1 to 100

Fig 1.3 Flowchart to Print odd numbers from 1 to 100

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

12
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.

Example: Find the largest of two numbers

Fig 1.4 Flowchart to find the largest of two numbers

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.

Example: Add two numbers using Function

13
Fig 1.5a Flowchart of a calling function

Fig 1.5b Flowchart of a Sub function to add two numbers

14
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

An algorithm is a step by It is a graphical It is a language representation


step procedure to solve a representation of algorithm of algorithm.
problem.
User needs knowledge to User does not need User does not need
write algorithm. knowledge of program to knowledge of program
draw or understand language to understand or
flowchart write a pseudo code.

15
Simple Strategies for Developing Algorithms (Iteration, Recursion)
Iterations:

A sequence of statements is executed until a specified condition is true is called


iterations.

1. For loop

2. While loop

Example: Print n Natural numbers using FOR Loop

Algorithm Pseudo code

Step 1: Start BEGIN

Step 2: Get the value of n. GET n

Step 3: Initialize i=1 INITIALIZE i=1

Step 4: if (i<=n) go to step 5 else go to step 7 FOR (i<=n) DO

Step 5: Print i value and increment i value by 1 PRINT i

Step 6: Go to step 4 i=i+1

Step 7: Stop ENDFOR

END

Example: Print n Natural numbers using WHILE Loop

Algorithm Pseudo code

Step 1: Start BEGIN


Step 2: Get the value of n. GET n
Step 3: Initialize i=1 INITIALIZE i=1
Step 4: if (i<=n) go to step 5 else go to step 7 WHILE(i<=n) DO
Step 5: Print i value and increment i value by 1 PRINT i
Step 6: Go to step 4 i=i+1

16
Step 7: Stop ENDWHILE
END

Fig 1.8 Flowchart to print n Natural numbers using 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.

17
Recursion:

A function that calls itself is known as Recursion.

Recursion is a process by which a function calls itself repeatedly until some


specified condition has been satisfied.

Example: Factorial

Algorithm Pseudo code

Main Function() Main Function()

Step1: Start BEGIN

Step2: Get n GET n

Step3: call factorial(n) CALL factorial(n)

Step4: print fact PRINT fact

Step5: Stop END

Sub function factorial(n) Sub function factorial(n)

Step1: if(n==1) then fact=1 return fact IF(n==1) THEN

Step2: else fact=n*factorial(n-1) and return fact=1 RETURN fact


fact
ELSE

RETURN fact=n*factorial(n-1)

18
Fig 1.9 a) Flowchart of a calling function b) Flowchart of a Sub function to
find factorial of a given number

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.

Difference between Iteration and Recursion

Property Iteration Recursion


A set of instructions repeatedly
Definition
executed. Function calls itself.
Application For loops. For functions.
When the termination condition
Termination for the iterator ceases to be Through base case, where
satisfied. there will be no function call.

19
Property Iteration Recursion
Used when time complexity Used when code size needs to
Usage needs to be balanced against an be small, and time complexity
expanded code size. is not an issue.
Code Size Larger Code Size. Smaller code size
Relatively lower time
Time Complexity
complexity Very high time complexity.

20

You might also like