SlideShare a Scribd company logo
1 of 58
GE3151
PROBLEM SOLVING AND PYTHON
PROGRAMMING
B. TECH
I YEAR – I SEM (Autonomous)
(2023-2024)
Prepared
By
Asst.Prof.M.Gokilavani
Department of Artificial Intelligence and Data Science
3003
OBJECTIVES:
● To understand the basics of algorithmic problem solving.
● To learn to solve problems using Python conditionals and loops.
● To define Python functions and use function calls to solve problems.
● To use Python data structures - lists, tuples, dictionaries to represent complex data.
● To do input/output with files in Python.
UNIT I COMPUTATIONAL THINKING AND PROBLEM SOLVING 9
Fundamentals of Computing – Identification of Computational Problems -Algorithms, building blocks of
algorithms (statements, state, control flow, functions), notation (pseudo code, flow chart, programming
language), algorithmic problem solving, simple strategies for developing algorithms (iteration, recursion).
Illustrative problems: find minimum in a list, insert a card in a list of sorted cards, guess an integer number in
a range, Towers of Hanoi.
UNIT II DATA TYPES, EXPRESSIONS, STATEMENTS 9
Python interpreter and interactive mode, debugging; values and types: int, float, boolean, string, and list;
variables, expressions, statements, tuple assignment, precedence of operators, comments; Illustrative
programs: exchange the values of two variables, circulate the values of n variables, distance between two
points.
UNITIII CONTROL FLOW, FUNCTIONS, STRINGS 9
Conditionals: Boolean values and operators, conditional (if), alternative (if-else), chained conditional (if-elif-
else); Iteration: state, while, for, break, continue, pass; Fruitful functions: return values, parameters, local and
global scope, function composition, recursion; Strings: string slices, immutability, string functions and
methods, string module; Lists as arrays. Illustrative programs: square root, gcd, exponentiation, sum an array
of numbers, linear search, binary search.
UNI IV LISTS, TUPLES, DICTIONARIES 9
Lists: list operations, list slices, list methods, list loop, mutability, aliasing, cloning lists, list parameters;
Tuples: tuple assignment, tuple as return value; Dictionaries: operations and methods; advanced list
processing - list comprehension; Illustrative programs: simple sorting, histogram, Students marks statement,
Retail bill preparation.
UNIT V FILES, MODULES, PACKAGES 9
Files and exception: text files, reading and writing files, format operator; command line arguments, errors
and exceptions, handling exceptions, modules, packages; Illustrative programs: word count, copy file,
Voter’s age validation, Marks range validation (0-100).
TOTAL: 45 PERIODS
GE3151 PROBLEM SOLVING AND PYTHON PROGRAMMING LPTC
UNIT I
COMPUTATIONAL THINKING AND PROBLEM SOLVING
1.PROBLEM SOLVING
Problem solving is the systematic approach to define the problem and creatingnumber
of solutions.
The problem solving process starts with the problem specifications and ends with a
Correct program.
1.1 PROBLEM SOLVING TECHNIQUES
Problem solving technique is a set of techniques that helps in providing logic for solvinga
problem.
Problem Solving Techniques:
Problem solving can be expressed in the form of
1. Algorithms.
2. Flowcharts.
3. Pseudo codes.
4. programs
1.2.ALGORITHM
It is defined as a sequence of instructions that describe a method for solving a
problem. In other words it is a step by step procedure for solving a problem.
Properties of Algorithms
 Should be written in simple English
 Each and every instruction should be precise and unambiguous.
 Instructions in an algorithm should not be repeated infinitely.
 Algorithm should conclude after a finite number of steps.
 Should have an end point
 Derived results should be obtained only after the algorithm terminates.
Qualities of a good algorithm
The following are the primary factors that are often used to judge the quality of the algorithms.
Time – To execute a program, the computer system takes some amount of time. The lesser is
the time required, the better is the algorithm.
Memory – To execute a program, computer system takes some amount of memory space. The
lesser is the memory required, the better is the algorithm.
Accuracy – Multiple algorithms may provide suitable or correct solutions to a given problem,
some of these may provide more accurate results than others, and such algorithms may be
suitable.
Algorithms, building blocks of algorithms (statements, state, control flow, functions),
notation (pseudo code, flow chart, programming language), algorithmic problem solving,
simple strategies for developing algorithms (iteration, recursion). Illustrative problems: find
minimum in a list, insert a card in a list of sorted cards, Guess an integer number in a range,
Towers of Hanoi.
Example:
Example
Write an algorithm to print „Good Morning”
Step 1: Start
Step 2: Print “Good Morning”
Step 3: Stop
2.BUILDING BLOCKS OF ALGORITHMS (statements, state, control flow, functions)
Algorithms can be constructed from basic building blocks namely, sequence,selection
and iteration.
2.1.Statements:
Statement is 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.2.State:
Transition from one process to another process under specified condition with in atime
is called state.
2.3.Control flow:
The process of executing the individual statements in a given order is called controlflow.
The control can be executed in three ways
1. sequence
2. selection
3. iteration
Sequence:
All the instructions are executed one after another is called sequence execution.
Example:
Add two numbers:
Step 1: Start
Step 2: get a,b
Step 3: calculate c=a+b
Step 4: Display c
Step 5: Stop
Selection:
A selection statement causes the program control to be transferred to a specificpart
of the program based upon the condition.
If the conditional test is true, one part of the program will be executed, otherwiseit
will execute the other part of the program.
Example
Write an algorithm to check whether he is eligible to vote?
Step 1: Start
Step 2: Get age
Step 3: if age >= 18 print “Eligible to vote”
Step 4: else print “Not eligible to vote” Step
6: Stop
Iteration:
In some programs, certain set of statements are executed again and again based upon
conditional test. i.e. executed more than one time. This type of execution is called looping or
iteration.
Example
Write an algorithm to print all natural numbers up to n
Step 1: Start
Step 2: get n value.
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
2.4.Functions:
 Function is a sub program which consists of block of code(set of instructions)that
performs a particular task.
 For complex problems, the problem is been divided into smaller and simplertasks
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()
Step 1: Start
Step 2: Call the function add()
Step 3: Stop
sub function add()
Step 1: Function start
Step 2: Get a, b Values
Step 3: add c=a+b
Step 4: Print c
Step 5: Return
3.NOTATIONS
Flow chart is defined as graphical representation of the logic for problem solving.
The purpose of flowchart is making the logic of the program clear in a visualrepresentation.
3.1.FLOW CHART
Rules for drawing a flowchart
1. The flowchart should be clear, neat and easy to follow.
2. The flowchart must have a logical start and finish.
3. Only one flow line should come out from a process symbol.
4. Only one flow line should enter a decision symbol. However, two or three flow
lines may leave the decision symbol.
5. Only one flow line is used with a terminal symbol.
6. Within standard symbols, write briefly and precisely.
7. Intersection of flow lines should be avoided.
Advantages of flowchart:
1. Communication: - Flowcharts are better way of communicating the logic of a
system to all concerned.
2. Effective analysis: - With the help of flowchart, problem can be analyzed in more
effective way.
3. Proper documentation: - Program flowcharts serve as a good program
documentation, which is needed for various purposes.
4. Efficient Coding: - The flowcharts act as a guide or blueprint during the systems
analysis and program development phase.
5. Proper Debugging: - The flowchart helps in debugging process.
6. Efficient Program Maintenance: - The maintenance of operating program becomes
easy with the help of flowchart. It helps the programmer to put efforts more efficiently
on that part.
Disadvantages of flow chart:
1. Complex logic: - Sometimes, the program logic is quite complicated. In that case,
flowchart becomes complex and clumsy.
2. Alterations and Modifications: - If alterations are required the flowchart may
require re-drawing completely.
3. Reproduction: - As the flowchart symbols cannot be typed, reproduction of
flowchart becomes a problem.
4. Cost: For large application the time and cost of flowchart drawing becomescostly.
Pseudo code consists of short, readable and formally styled English languages used for
explain an algorithm.
It does not include details like variable declaration, subroutines.
It is easier to understand for the programmer or non-programmer to understand the
general working of the program, because it is not based on any programming language.
It gives us the sketch of the program before actual coding.
It is not a machine readable
Pseudo code can’t be compiled and executed.
There is no standard syntax for pseudo code.
Guidelines for writing pseudo code:
Write one statement per line
Capitalize initial keyword
Indent to hierarchy
End multiline structure
Keep statements language independent
Common keywords used in pseudocode
The following gives common keywords used in pseudocodes.
1. //: This keyword used to represent a comment.
2. BEGIN, END: Begin is the first statement and end is the last statement.
3. INPUT, GET, READ: The keyword is used to inputting data.
4. COMPUTE, CALCULATE: used for calculation of the result of the given expression.
5. ADD, SUBTRACT, INITIALIZE used for addition, subtraction and initialization.
6. OUTPUT, PRINT, DISPLAY: It is used to display the output of the program.
7. IF, ELSE, ENDIF: used to make decision.
8. WHILE, ENDWHILE: used for iterative statements.
9. FOR, ENDFOR: Another iterative incremented/decremented tested automatically.
3.2.PSEUDO CODE:
Syntax for if else: Example: Greates of two numbers
IF (condition)THEN
statement
...
ELS
E
statement
...
ENDIF
BEGIN
READ
a,b
IF (a>b) THEN
DISPLAY a is
greaterELSE
DISPLAY b is
greaterEND IF
END
Syntax for For: Example: Print n natural numbers
FOR( start-value to end-value) DO
statement
...
ENDFO
R
BEGI
NGET
n
INITIALIZE
i=1FOR (i<=n)
DOPRINT i
i=i+1
ENDFO
REND
Syntax for While: Example: Print n natural numbers
WHILE (condition) DO
statement
...
ENDWHILE
BEGI
NGET
n
INITIALIZE i=1
WHILE(i<=n)
DO
PRINT i
i=i+1
ENDWHIL
E
END
Advantages:
 Pseudo is independent of any language; it can be used by most programmers.
 It is easy to translate pseudo code into a programming language.
 It can be easily modified as compared to flowchart.
 Converting a pseudo code to programming language is very easy as comparedwith
converting a flowchart to programming language.
Disadvantages:
 It does not provide visual representation of the program’s logic.
 There are no accepted standards for writing pseudo codes.
 It cannot be compiled nor executed.
 For a beginner, It is more difficult to follow the logic or write pseudo code as
compared to flowchart.
Example:
Addition of two numbers:
BEGIN
GET a,b
ADD
c=a+b
PRINT c
END
Algorithm Flowchart Pseudo code
An algorithm is a sequence
of instructions used to
solve a problem
It is a graphical
representation of algorithm
It is a language
representation of
algorithm.
User needs knowledge to
write algorithm.
not need knowledge of
program to draw or
understand flowchart
Not need knowledge of
program language to
understand or write a
pseudo code.
A programming language is a set of symbols and rules for instructing a computer
to perform specific tasks. The programmers have to follow all the specified rules before
writing program using programming language. The user has to communicate with the
computer using language which it can understand.
Types of programming language
1. Machine language
2. Assembly language
3. High level language
Machine language:
The computer can understand only machine language which uses 0’s and 1’s. In
machine language the different instructions are formed by taking different combinations of
0’s and 1’s.
Advantages:
Translation free:
Machine language is the only language which the computer understands. For
executing any program written in any programming language, the conversion to machine
language is necessary. The program written in machine language can be executed directly
on computer. In this case any conversion process is not required.High speed
The machine language program is translation free. Since the conversion time issaved,
the execution of machine language program is extremely fast.
Disadvantage:
 It is hard to find errors in a program written in the machine language.
 Writhing program in machine language is a time consuming process.
 Machine dependent: According to architecture used, the computer differs
from eachother. So machine language differs from computer to computer. So a program
developed for a particular type of computer may not run on other type of computer.
 Assembly language: To overcome the issues in programming language and
make the programming process easier, an assembly language is developed which is logically
equivalent tomachine language but it is easier for people to read, write and understand.
3.3.PROGRAMMING LANGUAGE
 Assembly language is symbolic representation of machine language. Assembly
languages are symbolic programming language that uses symbolic notation to
represent machine language instructions. They are called low level language
because they are so closely related to the machines.
Ex: ADD a, b
Assembler:
Assembler is the program which translates assembly language instruction in to a
machine language.
Advantage:
 Easy to understand and use.
 It is easy to locate and correct errors.
Disadvantage
Machine dependent
The assembly language program which can be executed on the machine dependson
the architecture of that computer.
Hard to learn
It is machine dependent, so the programmer should have the hardware
knowledge to create applications using assembly language.
Less efficient
 Execution time of assembly language program is more than machine language
program.
 Because assembler is needed to convert from assembly language to machine
language.
High level language
High level language contains English words and symbols. The specified rules areto
be followed while writing program in high level language. The interpreter or compilers are
used for converting these programs in to machine readable form.
Translating high level language to machine language
The programs that translate high level language in to machine language are called
interpreter or compiler.
Compiler:
A compiler is a program which translates the source code written in a high level
language in to object code which is in machine language program. Compiler reads the whole
program written in high level language and translates it to machine language. Ifany error is
found it display error message on the screen.
Interpreter
Interpreter translates the high level language program in line by line manner. The
interpreter translates a high level language statement in a source program to a machine
code and executes it immediately before translating the next statement. When an erroris
found the execution of the program is halted and error message is displayed on the screen.
Advantages
Readability
High level language is closer to natural language so they are easier to learn and
understand
Machine independent
High level language program have the advantage of being portable between
machines.
Easy debugging
Easy to find and correct error in high level language
Disadvantages
Less efficient
The translation process increases the execution time of the program. Programs inhigh
level language require more memory and take more execution time to execute.
They are divided into following categories:
1. Interpreted programming languages
2. Functional programming languages
3. Compiled programming languages
4. Procedural programming languages
5. Scripting programming language
6. Markup programming language
7. Concurrent programming language
8. Object oriented programming language
Interpreted programming languages:
An interpreted language is a programming language for which most of its
implementation executes instructions directly, without previously compiling a programinto
machine language instructions. The interpreter executes the program directly translating each
statement into a sequence of one or more subroutines already compiled into machine code.
Examples:
Pascal
Python
Functional programming language:
Functional programming language defines every computation as a mathematical
evaluation. They focus on the programming languages are bound to mathematical calculations
Examples:
Clean
Haskell
Compiled Programming language:
A compiled programming is a programming language whose implementation are
typically compilers and not interpreters.
It will produce a machine code from source code.
Examples:
C
C++
C#
JAV
A
Procedural programming language:
Procedural (imperative) programming implies specifying the steps that the programs
should take to reach to an intended state.
A procedure is a group of statements that can be referred through a procedure call. Procedures
help in the reuse of code. Procedural programming makes the programs structured and easily
traceable for program flow.
Examples:
Hyper talk
MATLAB
Scripting language:
Scripting language are programming languages that control an application. Scripts can
execute independent of any other application. They are mostly embedded inthe application
that they control and are used to automate frequently executed tasks like communicating with
external program.
Examples:
Apple script
VB script
Markup languages:
A markup language is an artificial language that uses annotations to text that
define hoe the text is to be displayed.
Examples:
HTM
L
XML
Concurrent programming language:
Concurrent programming is a computer programming technique that provides for the
execution of operation concurrently, either with in a single computer or across anumber of
systems.
Examples:
Joule
Limbo
Object oriented programming language:
Object oriented programming is a programming paradigm based on the conceptof
objects which may contain data in the form of procedures often known as methods.
Examples:
Lava
Moto
4.ALGORITHMIC PROBLEM SOLVING:
Algorithmic problem solving is solving problem that require the formulation of analgorithm
for the solution.
Understanding the Problem
 It is the process of finding the input of the problem that the algorithm solves.
 It is very important to specify exactly the set of inputs the algorithm needs to
handle.
 A correct algorithm is not one that works most of the time, but one that works
correctly for all legitimate inputs.
Ascertaining the Capabilities of the Computational Device
 If the instructions are executed one after another, it is called sequentialalgorithm.
 If the instructions are executed concurrently, it is called parallel algorithm.
Choosing between Exact and Approximate Problem Solving
 The next principal decision is to choose between solving the problem exactly or
solving it approximately.
 Based on this, the algorithms are classified as exact algorithm and approximation
algorithm.
Deciding a data structure:
 Data structure plays a vital role in designing and analysis the algorithms.
 Some of the algorithm design techniques also depend on the structuring dataspecifying
a problem’s instance
 Algorithm+ Data structure=programs.
Algorithm Design Techniques
 An algorithm design technique (or “strategy” or “paradigm”) is a general approach to
solving problems algorithmically that is applicable to a variety of problems from
different areas of computing.
 Learning these techniques is of utmost importance for the following reasons.
 First, they provide guidance for designing algorithms for new problems,
 Second, algorithms are the cornerstone of computer science
Methods of Specifying an Algorithm
 Pseudocode is a mixture of a natural language and programming language-like
constructs. Pseudocode is usually more precise than natural language, and its usage
often yields more succinct algorithm descriptions.
 In the earlier days of computing, the dominant vehicle for specifying algorithms was a
flowchart, a method of expressing an algorithm by a collection of connected geometric
shapes containing descriptions of the algorithm’s steps.
 Programming language can be fed into an electronic computer directly. Instead,it
needs to be converted into a computer program written in a particular computer
language. We can look at such a program as yet another way of specifying the algorithm,
although it is preferable to consider it as the algorithm’simplementation.
Proving an Algorithm’s Correctness
 Once an algorithm has been specified, you have to prove its correctness. That is, you
have to prove that the algorithm yields a required result for every legitimate input in a
finite amount of time.
 A common technique for proving correctness is to use mathematical induction because
an algorithm’s iterations provide a natural sequence of steps needed for such proofs.
 It might be worth mentioning that although tracing the algorithm’s performance for a
few specific inputs can be a very worthwhile activity, it cannot prove the algorithm’s
correctness conclusively. But in order to show that an algorithm is incorrect, you need
just one instance of its input for which the algorithm fails.
Analysing an Algorithm
1. Efficiency.
Time efficiency, indicating how fast the algorithm runs,
Space efficiency, indicating how much extra memory it uses.
2. simplicity.
 An algorithm should be precisely defined and investigated with mathematical
expressions.
 Simpler algorithms are easier to understand and easier to program.
 Simple algorithms usually contain fewer bugs.
Coding an Algorithm
 Most algorithms are destined to be ultimately implemented as computer programs.
Programming an algorithm presents both a peril and an opportunity.
 A working program provides an additional opportunity in allowing an empirical analysis
of the underlying algorithm. Such an analysis is based on timing the program on several
inputs and then analysing the results obtained.
5.SIMPLE STRATEGIES FOR DEVELOPING ALGORITHMS:
1. iterations
2. Recursions
5.1.Iterations:
A sequence of statements is executed until a specified condition is true is callediterations.
1. for loop
2. While loop
Syntax for For: Example: Print n natural numbers
FOR( start-value to end-value) DO
statement
...
ENDFO
R
BEGI
NGET
n
INITIALIZE
i=1FOR (i<=n)
DOPRINT i
i=i+1
ENDFO
REND
Syntax for While: Example: Print n natural numbers
WHILE (condition) DO
statement
...
ENDWHILE
BEGI
NGET
n
INITIALIZE i=1
WHILE(i<=n)
DO
PRINT i
i=i+1
ENDWHIL
EEND
5.2.Recursions:
 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.
Algorithm for factorial of n numbers using recursion:
Main function:
Step1: Start
Step2: Get n
Step3: call factorial(n)
Step4: print fact Step5:
Stop
Sub function factorial(n):
Step1: if(n==1) then fact=1 return fact
Step2: else fact=n*factorial(n-1) and return fact
Pseudo code for factorial using recursion:
Main function:
BEGI
NGET
n
CALL factorial(n)
PRINT fact
BIN
Sub function factorial(n):
IF(n==1) THEN
fact=1
RETURN
fact
ELSE
RETURN fact=n*factorial(n-1)
More examples:
Write an algorithm to find area of a rectangle
Step 1: Start
Step 2: get l,b values
Step 3: Calculate A=l*b
Step 4: Display A
Step 5: Stop
BEGIN
READ
l,b
CALCULATE A=l*b
DISPLAY A
END
Write an algorithm for Calculating area and circumference of circle
Step 1: Start BEGIN
Step 2: get r value READ r
Step 3: Calculate A=3.14*r*r CALCULATE A and C
Step 4: Calculate C=2.3.14*r A=3.14*r*r
Step 5: Display A,C C=2*3.14*r
Step 6: Stop DISPLAY A
END
Write an algorithm for Calculating simple interest
Step 1: Start
Step 2: get P, n, r value
Step3:Calculate
SI=(p*n*r)/100
Step 4: Display S
Step 5: Stop
BEGIN
READ P, n,
r
CALCULATE S
SI=(p*n*r)/100
DISPLAY SI
END
Write an algorithm for Calculating engineering cutoff
Step 1: Start
Step2: get P,C,M value BEGIN
Step3:calculate READ P,C,M
Cutoff= (P/4+C/4+M/2) CALCULATE
Step 4: Display Cutoff Cutoff= (P/4+C/4+M/2)
Step 5: Stop DISPLAY Cutoff
END
To check greatest of two numbers
Step 1: Start
Step 2: get a,b value
Step 3: check if(a>b) print a is greaterStep
4: else b is greater
Step 5: Stop
BEGIN
READ
a,b
IF (a>b) THEN
DISPLAY a is
greaterELSE
DISPLAY b is
greaterEND IF
END
To check leap year or not
Step 1: Start
Step 2: get y
Step 3: if(y%4==0) print leap yearStep
4: else print not leap year
Step 5: Stop
BEGIN
READ
y
IF (y%4==0) THEN
DISPLAY leap
yearELSE
DISPLAY not leap year
END IF
END
To check positive or negative number
Step 1: Start
Step 2: get num
Step 3: check if(num>0) print a is positive
Step 4: else num is negative
Step 5: Stop
BEGIN
READ num
IF (num>0) THEN
DISPLAY num is
positiveELSE
DISPLAY num is
negativeEND IF
END
To check odd or even number
Step 1: Start
Step 2: get num
Step 3: check if(num%2==0) print num is evenStep
4: else num is odd
Step 5: Stop
BEGIN
READ num
IF (num%2==0) THEN
DISPLAY num is
evenELSE
DISPLAY num is
oddEND IF
END
To check greatest of three numbers
Step1: Start
Step2: Get A, B,
C
Step3: if(A>B) goto Step4 else goto step5
Step4: If(A>C) print A else print C
Step5: If(B>C) print B else print C
Step6: Stop
BEGIN
READ a, b, c
IF (a>b) THEN
IF(a>c) THEN
DISPLAY a is
greaterELSE
DISPLAY c is
greaterEND IF
ELSE
IF(b>c) THEN
DISPLAY b is
greaterELSE
DISPLAY c is
greaterEND IF
END IF
END
Write an algorithm to check whether given number is +ve, -ve or zero.
Step 1: Start
Step 2: Get n value.
Step 3: if (n ==0) print “Given number is Zero” Else goto step4
Step 4: if (n > 0) then Print “Given number is +ve”
Step 5: else Print “Given number is -ve”
Step 6: Stop
BEGI
NGET
n
IF(n==0) THEN
DISPLAY “ n is
zero”ELSE
IF(n>0) THEN
DISPLAY “n is
positive”ELSE
DISPLAY “n is
positive”END IF
END
IFEND
Write an algorithm to print all natural numbers up to n
Step 1: Start
Step 2: get n value.
Step 3: initialize i=1
Step 4: if (i<=n) go to step 5 else go to step 8
Step 5: Print i value
step 6 : increment i value by 1
Step 7: go to step 4
Step 8: Stop
BEGI
NGET
n
INITIALIZE i=1
WHILE(i<=n)
DO
PRINT i
i=i+1
ENDWHIL
EEND
Write an algorithm to print n odd numbers
Step 1: start
step 2: get n value
step 3: set initial value i=1
step 4: check if(i<=n) goto step 5 else goto step 8
step 5: print i value
step 6: increment i value by 2
step 7: goto step 4
step 8: stop
BEGI
NGET
n
INITIALIZE i=1
WHILE(i<=n)
DO
PRINT i
i=i+2
ENDWHIL
EEND
Write an algorithm to print n even numbers
Step 1: start
step 2: get n value
step 3: set initial value i=2
step 4: check if(i<=n) goto step 5 else goto step8
step 5: print i value
step 6: increment i value by 2
step 7: goto step 4
step 8: stop
BEGI
NGET
n
INITIALIZE i=2
WHILE(i<=n)
DO
PRINT i
i=i+2
ENDWHIL
EEND
Write an algorithm to print squares of a number
Step 1: start
step 2: get n value
step 3: set initial value i=1
step 4: check i value if(i<=n) goto step 5 else goto step8
step 5: print i*i value
step 6: increment i value by 1
step 7: goto step 4
step 8: stop
BEGI
NGET
n
INITIALIZE i=1
WHILE(i<=n)
DO
PRINT
i*ii=i+2
ENDWHIL
EEND
Write an algorithm to print to print cubes of a number
Step 1: start
step 2: get n value
step 3: set initial value i=1
step 4: check i value if(i<=n) goto step 5 else goto step8
step 5: print i*i *i value
step 6: increment i value by 1
step 7: goto step 4
step 8: stop
BEGI
NGET
n
INITIALIZE i=1
WHILE(i<=n)
DO
PRINT
i*i*ii=i+2
ENDWHIL
EEND
Write an algorithm to find sum of a given number
Step 1: start
step 2: get n value
step 3: set initial value i=1, sum=0
Step 4: check i value if(i<=n) goto step 5 else goto step8
step 5: calculate sum=sum+i
step 6: increment i value by 1
step 7: goto step 4
step 8: print sum value
step 9: stop
BEGI
NGET
n
INITIALIZE
i=1,sum=0
WHILE(i<=n) DO
sum=sum+i
i=i+1
ENDWHILE
PRINT sum
END
Write an algorithm to find factorial of a given number
Step 1: start
step 2: get n value
step 3: set initial value i=1, fact=1
Step 4: check i value if(i<=n) goto step 5 else goto step8
step 5: calculate fact=fact*i
step 6: increment i value by 1
step 7: goto step 4
step 8: print fact value
step 9: stop
BEGI
NGET
n
INITIALIZE
i=1,fact=1
WHILE(i<=n) DO
fact=fact*i
i=i+1
ENDWHILE
PRINT fact
END
Basic python programs:
Addition of two numbers Output
a=eval(input(“enter first no”))
b=eval(input(“enter second no”))c=a+b
print(“the sum is “,c)
enter first no5
enter second no6
the sum is 11
Area of rectangle Output
l=eval(input(“enter the length of rectangle”))
b=eval(input(“enter the breath of rectangle”))
a=l*b
print(a)
enter the length of rectangle 5
enter the breath of rectangle 630
Area & circumference of circle output
r=eval(input(“enter the radius of circle”))
a=3.14*r*r
c=2*3.14*r
print(“the area of circle”,a) print(“the
circumference of circle”,c)
enter the radius of circle4
the area of circle 50.24
the circumference of circle
25.12
Calculate simple interest Output
p=eval(input(“enter principle amount”))
n=eval(input(“enter no of years”))
r=eval(input(“enter rate of interest”))
si=p*n*r/100
print(“simple interest is”,si)
enter principle amount 5000
enter no of years 4
enter rate of interest6
simple interest is 1200.0
Calculate engineering cutoff Output
p=eval(input(“enter physics marks”))
c=eval(input(“enter chemistry marks”))
m=eval(input(“enter maths marks”))
cutoff=(p/4+c/4+m/2)
print(“cutoff =”,cutoff)
enter physics marks 100
enter chemistry marks 99
enter maths marks 96
cutoff = 97.75
Check voting eligibility output
age=eval(input(“enter ur age”))
If(age>=18):
print(“eligible for voting”)
else:
print(“not eligible for voting”)
Enter ur age
19
Eligible for voting
Find greatest of three numbers output
a=eval(input(“enter the value of a”))
b=eval(input(“enter the value of b”))
c=eval(input(“enter the value of c”))
if(a>b):
if(a>c):
print(“the greatest no is”,a)
else:
print(“the greatest no is”,c)
else:
if(b>c):
print(“the greatest no is”,b)
else:
print(“the greatest no is”,c)
enter the value of a 9
enter the value of a 1
enter the value of a 8
the greatest no is 9
Programs on for loop
Print n natural numbers Output
for i in range(1,5,1):
print(i)
1 2 3 4
Print n odd numbers Output
for i in range(1,10,2):
print(i)
1 3 5 7 9
Print n even numbers Output
for i in range(2,10,2):
print(i)
2 4 6 8
Print squares of numbers Output
for i in range(1,5,1):
print(i*i)
1 4 9 16
Print squares of numbers Output
for i in range(1,5,1):
print(i*i*i)
1 8 27 64
Programs on while loop
Print n natural numbers Output
i=1
while(i<=5):
print(i)
i=i+1
1
2
3
4
5
Print n odd numbers Output
i=2
while(i<=10):
print(i)
i=i+2
2
4
6
8
10
Print n even numbers Output
i=1
while(i<=10):
print(i)
i=i+2
1
3
5
7
9
Print n squares of numbers Output
i=1
while(i<=5):
print(i*i)
i=i+1
1
4
9
16
25
Print n cubes numbers Output
i=1
while(i<=3):
print(i*i*i)
i=i+1
1
8
27
find sum of n numbers Output
i=1
sum=0
while(i<=10):
sum=sum+i
i=i+1
print(sum)
55
factorial of n numbers/product of n numbers Output
i=1 product=1
while(i<=10):
product=product*i
i=i+1
print(product)
3628800
sum of n numbers Output
def add():
a=eval(input(“enter a value”))
b=eval(input(“enter b value”))
c=a+b
print(“the sum is”,c)
add()
enter a value
6
enter b value
4
the sum is 10
area of rectangle using function Output
def area():
l=eval(input(“enter the length of rectangle”))
b=eval(input(“enter the breath of rectangle”))a=l*b
print(“the area of rectangle is”,a)
area()
enter the length of
rectangle 20
enter the breath of
rectangle 5
the area of rectangle is
100
swap two values of variables Output
def swap():
a=eval(input("enter a value"))
b=eval(input("enter b value"))
c=a
a=b
b=c
print("a=",a,"b=",b)
swap()
enter a value3
enter b value5
a= 5 b= 3
check the no divisible by 5 or not Output
def div():
n=eval(input("enter n value"))
if(n%5==0):
print("the number is divisible by 5")
else:
print("the number not divisible by 5")
div()
enter n value10
the number is divisible by5
find reminder and quotient of given no Output
def reminder():
a=eval(input("enter a"))
b=eval(input("enter b"))
R=a%b
print("the reminder is",R)
def quotient():
a=eval(input("enter a"))
b=eval(input("enter b"))
Q=a/b
print("the reminder is",Q)
reminder()
quotient()
enter a 6
enter b 3
the reminder is 0
enter a 8
enter b 4
the reminder is 2.0
convert the temperature Output
def ctof():
c=eval(input("enter temperature in centigrade"))
f=(1.8*c)+32
print("the temperature in Fahrenheit is",f)def
ftoc():
f=eval(input("enter temp in Fahrenheit"))
c=(f-32)/1.8
print("the temperature in centigrade is",c)
ctof()
ftoc()
enter temperature in
centigrade 37
the temperature in
Fahrenheit is 98.6
enter temp in Fahrenheit
100
the temperature in
centigrade is 37.77
program for basic calculator Output
def add(): enter a value 10
a=eval(input("enter a value")) enter b value 10
b=eval(input("enter b value")) the sum is 20
c=a+b enter a value 10
print("the sum is",c) enter b value 10
def sub(): the diff is 0
a=eval(input("enter a value")) enter a value 10
b=eval(input("enter b value")) enter b value 10
c=a-b the mul is 100
print("the diff is",c) enter a value 10
def mul(): enter b value 10
a=eval(input("enter a value")) the div is 1
b=eval(input("enter b value"))
c=a*b
print("the mul is",c)
def div():
a=eval(input("enter a value"))
b=eval(input("enter b value"))
c=a/b
print("the div is",c)
add()
sub()
mul()
div()
GE3151 PROBLEM SOLVING AND PYTHON PROGRAMMING
QUESTION BANK
PART- A (2 Marks)
1. What is an algorithm?
Algorithm is an ordered sequence of finite, well defined, unambiguous instructions for
completing a task. It is an English-like representation of the logic which is used to solve the
problem. It is a step- by-step procedure for solving a task or a problem. The steps must beordered,
unambiguous and finite in number.
2. List the building blocks of an algorithm.
The building blocks of an algorithm are
 Statements
 Sequence
 Selection or Conditional
 Repetition or Control flow
 Functions
3. Write the pseudo code to calculate the sum and product of two numbers and display it.
INITIALIZE variables sum, product, number1, number2 of type real
PRINT “Input two numbers”
READ number1, number2
sum = number1 + number2
PRINT “The sum is “, sum
COMPUTE product = number1 * number2
PRINT “The Product is “, product
END program
4. How does flow of control work?
Control flow (or flow of control) is the order in which individual statements, instructions or
function calls of an imperative program are executed or evaluated. A control flow statement isa
statement in which execution results in a choice being made as to which of two or morepaths
to follow.
5. What is a function?
Functions are "self-contained" modules of code that accomplish a specific task. Functions usually
"take in" data, process it, and "return" a result. Once a function is written, it can be used over and
over and over again. Functions can be "called" from the inside of other functions.
6. Give the rules for writing Pseudo codes.
Write one statement per line.
Capitalize initial keywords.
Indent to show hierarchy.
End multiline structure.
Keep statements to be language independent.
UNIT I: COMPUTATIONAL THINKING AND PROBLEM SOLVING Fundamentals of Computing –
Identification of Computational Problems -Algorithms, building blocks of algorithms (statements, state,
control flow, functions), notation (pseudo code, flow chart, programming language), algorithmic problem
solving, simple strategies for developing algorithms (iteration, recursion). Illustrative problems: find
minimum in a list, insert a card in a list of sorted cards, guess an integer number in a range, Towers of Hanoi.
7. Give the difference between flowchart and pseudo code.
Flowchart and Pseudo code are used to document and represent the algorithm. In other
words, an algorithm can be represented using a flowchart or a pseudo code. Flowchart is a
graphical representation of the algorithm. Pseudo code is a readable, formally styled English like
language representation of the algorithm.
8. Define a flowchart.
A flowchart is a diagrammatic representation of the logic for solving a task. A flowchart is
drawn using boxes of different shapes with lines connecting them to show the flow of control.
The purpose of drawing a flowchart is to make the logic of the program clearer in a visual form.
9. Write down the rules for preparing a flowchart.
While drawing a flowchart, some rules need to be followed—
(1) A flowchart should have a start and end,
(2) The direction of flow in a flowchart must be from top to bottom and left to right, and
(3) The relevant symbols must be used while drawing a flowchart.
10. List the categories of Programming languages.
Programming languages are divided into the following categories:
Interpreted, Functional, Compiled, Procedural, Scripting, Markup, Logic-
Based, Concurrentand Object-Oriented Programming Languages
11. Mention the characteristics of an algorithm.
 Algorithm should be precise and unambiguous.
 Instruction in an algorithm should not be repeated infinitely.
 Ensure that the algorithm will ultimately terminate.
 Algorithm should be written in sequence.
 Algorithm should be written in normal English.
 Desired result should be obtained only after the algorithm terminates.
12. What is the difference between algorithm and pseudo code?
An algorithm is a systematic logical approach used to solve problems in a computer while
pseudo code is the statement in plain English that may be translated later to a programming
language. Pseudo code is the intermediary between algorithm and program.
13. List out the simple steps to develop an algorithm.
Algorithm development process consists of five major steps.
Step 1: Obtain a description of the problem.
Step 2: Analyze the problem.
Step 3: Develop a high-level algorithm.
Step 4: Refine the algorithm by adding more detail.
Step 5: Review the algorithm.
14. Give the differences between recursion and iteration.
Recursion Iteration
Function calls itself until the base condition is
reached.
Repetition of process until the condition fails.
Only base condition (terminating condition) is
specified.
It involves four steps: initialization, condition,
execution and updation.
It keeps our code short and simple. Iterative approach makes our code longer.
It is slower than iteration due to overhead of
maintaining stack.
Iteration is faster.
15. What are advantages and disadvantages of recursion?
Advantages Disadvantages
Recursive functions make the code look clean
and elegant.
Sometimes the logic behind recursion is hard to
follow through.
A complex task can be broken down into
simpler sub-problems using recursion.
Recursive calls are expensive (inefficient) as
they take up a lot of memory and time.
Sequence generation is easier with recursion
than using some nested iteration.
Recursive functions are hard to debug.
16. Define recursion.
Recursion is the process of defining a problem (or the solution to a problem) in terms of a simpler
version of itself. A recursive procedure or routine is one that has the ability to call itself.
17. Define control flow statement.
A program's control flow is the order in which the program's code executes. The control flow
of a Python program is regulated by conditional statements, loops, and function calls.
18. What is the concept of towers of Hanoi.
The objective of the game is to move the entire stack of disks from Tower 1 to Tower 3. You
can move only one disk at a time. No disk may be placed on top of a smaller disk. With 3 disks,
the puzzle can be solved in 7 moves. The minimal number of moves required to solve a Tower
of Hanoi puzzle is 2n
− 1, where n is the number of disks.
19. Explain list.
In computer science, a list or sequence is an abstract data type that represents a countable
number of ordered values, where the same value may occur more than once. The name list is
also used for several concrete data structures that can be used to implement abstract lists,
especially linked lists. Many programming languages provide support for list data types, and
have special syntax and semantics for lists and list operations.
20. What is Iteration?
Iteration is the repetition of a process in a computer program, usually done with the help of
loops. Many computer programs and programming languages use iterations to perform specific
tasks, solve problems, and present solutions.
21. Explain how do you assess problem solving method.
The problem solving method is the process of working through details of a problem to reach
a solution. Problem solving may include mathematical or systematic operations and can be a
gauge of an individual's critical thinking skills. Methods for assessing problem-solving learning
outcomes vary with the nature of the -problem. Problem solving processes are normally
assessed by coding schemes. Based on that assumption, numerous models of problem solving
have been suggested, most of which involve a sequence of steps, including:
a. Define the problem.
b. Analyze the problem (identify possible causes).
It takes more memory than iteration due to
overhead of maintaining stack.
Iteration takes less memory.
c. Investigate the problem (gather information).
d. Generate possible solutions.
e. Evaluate the alternative solutions.
22. What is meant by sorting? Mention its types.
Sorting refers to arranging data in a particular format. Sorting algorithm specifies the way to
arrange data in a particular order. Types of Sorting Techniques
a. Bubble Sort.
b. Insertion Sort.
c. Selection Sort.
d. Quick Sort.
e. Merge Sort.
f. Heap Sort.
23. Define programming language.
A programming language is a vocabulary and set of grammatical rules for instructing a
computer or computing device to perform specific tasks. The term programming language usually
refers to high-level languages, such as BASIC, C, C++, COBOL, Java, FORTRAN, Ada, and
Pascal.
24. Discuss building blocks of algorithm.
Any algorithm can be constructed from just three basic building blocks. These three building
blocks are Sequence, Selection, and Iteration. Sequence is an action in which one or more
instructions that the computer performs in sequential order (from first to last). Selection is a
Decision making choice among several actions. Iteration can be a Loop in which one or more
instructions that the computer performs repeatedly.
25. What are the steps for developing algorithms.
a. Problem definition
b. Development of a model
c. Specification of Algorithm
d. Designing an Algorithm
e. Checking the correctness of Algorithm
f. Analysis of Algorithm
g. Implementation of Algorithm
h. Program testing
i. Documentation Preparation
26. Give an example for recursion function.
#To find the factorial of a number
def calc_factorial(x):
if x == 1:
return 1
else:
return (x * calc_factorial(x-1))
num = 4
print("The factorial of", num, "is", calc_factorial(num))
Output: The factorial of 4 is 24.
27. Discuss building blocks of algorithm.
Any algorithm can be constructed from just three basic building blocks. These three building blocks
are Sequence, Selection, and Iteration. Sequence is an action in which one or more instructions that the
computer performs in sequential order (from first to last). Selection is a Decision making choice among
several actions. Iteration can be a Loop in which one or more instructions that the computer performs
repeatedly.
28. Differentiate predefined function and user defined function.
Predefined functions are part of the programming language. For eg. built-in C functions, like printf()
and scanf( ). A user-defined function is a function which the programmer creates and uses in a program.
PART B (16 MARKS)
1. What are the building blocks of an algorithm? Explain in detail.
Definition: An algorithm is a collection of well-defined, unambiguous and effectivelycomputable
instructions, if execute it will return the proper output.
Building Blocks:
It has been proven that any algorithm can be constructed from just three basic building blocks.
These three building blocks are Sequence, Selection, and Iteration(Repetition).
i. Sequence
This describes a sequence of actions that a program carries out one after another,unconditionally.
Execute a list of statements in order.Consider an example,
Algorithm for Addition of two numbers:
The above example is the algorithm to add the two numbers. It says the sequence of steps to be follow
to add two numbers. As, Step2 says that should get two numbers from the user and store it in some
variable. In step3, the algorithm start doing the process of adding two numbers and step4 print the result
generated by step3.
Step1: Start
Step 2: Get two numbers as input and store it in to a and bStep
3: Add the number a & b and store it into c
Step 4: Print c
Step 5: Stop.
ii. Selection
Selection is the program construct that allows a program to choose between differentactions. Choose
at most one action from several alternative conditions.
Algorithm to find biggest among 2 no’s:
Selection structure executes some set of statements based on the condition given. The above algorithm
is an example to find the biggest numbers among two numbers.In Step2, we are getting two numbers
as input and storing it in the variables a and b. We are checking whether a is greater than b in step3, if
yes then we are printing a is big or we are printing b is big.
iii. Repetition
Repetition (loop) may be defined as a smaller program the can be executed severaltimes in a main
program. Repeat a block of statements while a condition is true.
Algorithm to calculate factorial:
The above algorithm is an example for repetition, where it repeats some process until some condition
get satisfied. Here this algorithm helps to find the factorial of number. In step 2 we are getting a number
as input and store it in num. Step 5 and Step 6 is going to do repeatedly based on the condition given
in step 4. Finally, Step 7prints the result obtained from step 5 and step 6.
With the help of these three building blocks it is easy for us to write algorithm for any given problem.
Step1: Start
Step 2: Get two numbers as input and store it in to a and bStep
3: If a is greater than b then
Step 4: Print a is big
Step 5: else
Step 6: Print b is big
Step 7: Stop
Step1: Start
Step 2: Read the number num.
Step 3: Initialize i is equal to 1 and fact is equal to 1
Step 4: Repeat step4 through 6 until I is equal to num
Step 5: factfact * i
Step 6: ii+1
Step 7: Print fact
Step 8: Stop
2. Explain pseudocode and its control structure with necessary examples.
 “Pseudo” means imitation or false and “code” refers to the instructionswritten in a
programming language.
 Pseudocode is another programming analysis tool that is used for planning aprogram
 Pseudocode is also called Program Design Language(PDL)
Guidelines to write Pseudocode
Pseudocode is made up of the following logic structure,
 Sequential logic
 Selection logic
 Iteration logic
i. Sequence Logic
 It is used to perform instructions in a sequence, that is one after another
 Thus, for sequence logic, pseudocode instructions are written in an order inwhich they
are to be performed.
 The logic flow of pseudocode is from top to bottom.
Pseudocode to add two numbers:
ii. Selection Logic
 It is used for making decisions and for selecting the proper path out of two ormore
alternative paths in program logic.
 It is also known as decision logic.
 Selection logic is depicted as either an IF..THEN or an IF…THEN..ELSEStructure.
START
READ a,b
COMPUTE c by adding a &b
PRINT c
STOP
 Pseudocode is written using structured English.
 Pseudocode should be concise
 Keyword should be in capital letter
Pseudocode to add two numbers:
iii. Repetition Logic
 It is used to produce loops when one or more instructions may be executedseveral
times depending on some conditions.
 It uses structures called DO_WHILE, FOR and REPEAT UNTIL
Pseudocode to print first 10 natural numbers
3. What is Flowchart? List down the symbols and its usage with examples.
A flowchart is a visual representation of the sequence of steps and decision neededto perform a
process.
Flowchart for computer programming/algorithms
 As a visual representation of data flow, flowcharts are useful in writing a program or algorithm
and explaining it to others or collaborating with them on it.
 You can use a flowchart to spell out the logic behind a program before ever starting to code the
automated process.
 It can help to organize big-picture thinking and provide a guide when it comes time to code.
More specifically, flowcharts can:
START
INITIALIZE a0
WHILE a<10
PRINT a
ENDWHILE STOP
START
READ a and b
IF a>b THEN
PRINT “A is big”
ELSE
PRINT “B is big”
ENDIF
STOP
o Demonstrate the way code is organized.
o Visualize the execution of code within a program.
o Show the structure of a website or application.
o Understand how users navigate a website or program.
Flowchart symbols
Here are some of the common flowchart symbols.
Flowchart is made up of the following logic structure,
Sequential logic
Selection logic
Iteration logic
i. Sequence Logic
 In a computer program or an algorithm, sequence involves simple steps which are to be
executed one after the other.
 The steps are executed in the same order in which they are written.
 Below is an example set of instructions to add two numbers and display the answer.
ii. Selection Logic
 Selection is used in a computer program or algorithm to determine which particularstep or set
of steps is to be executed.
 This is also referred to as a ‘decision’. A selection statement can be used to choose a specific
path dependent on acondition.
There are two types of selection:
binary selection (two possible pathways)
multi-way selection (many possible pathways)
Following is the example flowchart to find biggest among two numbers:
iii. Repetition Logic
 Repetition allows for a portion of an algorithm or computer program to be executed anynumber of
times dependent on some condition being met.
 An occurrence of repetition is usually known as a loop.
 The termination condition can be checked or tested at the beginning or end of theloop, and is
known as a pre-test or post-test, respectively.
Flowchart to find factorial of given no
pre-test loop post-test loop
4. What is algorithmic problem solving? Explain the process involved in algorithmic development?
“Algorithmic-problem solving”; this means solving problems that require the
formulation of an algorithm for their solution.
The formulation of algorithms has always been an important element of problem-solving.
An algorithmic Development Process
Every problem solution starts with a plan. That plan is called an algorithm.
An algorithm is a plan for solving a problem.
There are many ways to write an algorithm.
 Some are very informal.
 some are quite formal.
 mathematical in nature.
 some are quite graphical.
Once we have an algorithm, we can translate it into a computer program in some programming
language. Our algorithm development process consists of five major steps.
Step 1: Obtain a description of the problem.
This step is much more difficult than it appears. In the following discussion,
The word client refers to someone who wants to find a solution to aproblem,
The word developer refers to someone who finds a way to solve theproblem.
The developer must create an algorithm that will solve the client'sproblem.
Step 2: Analyze the problem.
The purpose of this step is to determine both the starting and ending points for solving the problem.
This process is analogous to a mathematician determining whatis given and what must be proven. A
good problem description makes it easier to perform this step.
When determining the starting point, we should start by seeking answers to the following questions:
When determining the ending point, we need to describe the characteristics of a solution. In other
words, how will we know when we're done? Asking the following questions often helps to determine
the ending point.
Step 3: Develop a high-level algorithm.
An algorithm is a plan for solving a problem, but plans come in several levels of detail. It's usually
better to start with a high-level algorithm that includes the major part of a solution, but leaves the
details until later. We can use an everyday exampleto demonstrate a high-level algorithm.
Step 1: Obtain a description of the problem.Step
2: Analyze the problem.
Step 3: Develop a high-level algorithm.
Step 4: Refine the algorithm by adding more detail.Step
5: Review the algorithm.
 What data are available?
 Where is that data?
 What formulas pertain to the problem?
 What rules exist for working with the data?
 What relationships exist among the data values?
 What new facts will we have?
 What items will have changed?
 What changes will have been made to those items?
 What things will no longer exist?
High-level algorithm:
This algorithm is satisfactory for daily use, but it lacks details that would have to beadded were a
computer to carry out the solution. These details include answers to questions such as the following.
These kinds of details are considered in the next step of our process.
Step 4: Refine the algorithm by adding more detail.
 A high-level algorithm shows the major steps that need to be followed to solvea problem.
 Now we need to add details to these steps, but how much detail should weadd?
Unfortunately, the answer to this question depends on the situation.
 We have to consider who (or what) is going to implement the algorithm andhow much
that person (or thing) already knows how to do.
o Most of our examples will move from a high-level to a detailed algorithm in asingle
step, but this is not always reasonable.
o For larger, more complex problems, it is common to go through this processseveral
times, developing intermediate level algorithms as we go.
o Each time, we add more detail to the previous algorithm, stopping when wesee no
benefit to further refinement.
o This technique of gradually working from a high-level to a detailed algorithm isoften
called stepwise refinement.
Step 5: Review the algorithm.
o First, we need to work through the algorithm step by step to determinewhether or not it
Problem: I need a send a birthday card to my brother, Mark.
Analysis: I don't have a card. I prefer to buy a card rather than make one myself.
Go to a store that sells greeting cards
Select a card
Purchase a card
Mail the card
 "Which store will I visit?"
 "How will I get there: walk, drive, ride my bicycle, take the bus?"
 "What kind of card does Mark like: humorous, sentimental, risqué?"
If someone is going to purchase Mark's birthday card on my behalf, my instructionshave to
be adapted to whether or not that person is familiar with the stores in the community and
how well the purchaser known my brother's taste in greeting cards.
Stepwise refinement is a process for developing a detailed algorithm by graduallyadding
detail to a high-level algorithm.
will solve the original problem.
o Once we are satisfied that the algorithm does provide a solution to theproblem, we start
to look for other things.
o The following questions are typical of ones that should be asked whenever wereview an
algorithm.
o Asking these questions and seeking their answers is a good way to developskills that
can be applied to the next problem.
5. Write an algorithm and flowchart to find the minimum number in a list
Algorithm:
1. Does this algorithm solve a very specific problem or does it solve a more
general problem?
2. If it solves a very specific problem, should it be generalized?
3. Can this algorithm be simplified?
4. Is this solution similar to the solution to another problem? How are theyalike?
How are they different?
Problem: Given a list of positive numbers, return the smallest number on the list.
Inputs: A list L of positive numbers. This list must contain at least one number. (Asking for
the smallest number in a list of no numbers is not a meaningful question.)
Outputs: A number n, which will be the smallest number of the list.
1. Start
2. Get positive numbers from user and add it in to the List L
3. Set min to L[0].
4. For each number x in the list L, compare it to min. If x is smaller, set min to x.
5. min is now set to the minimum number in the list and print the result.
6. Stop
Flowchart:
6. Write an algorithm for tower of Hanoi problem.
7. Write an algorithm to find thegivennumber is odd or even
8. Write an algorithm to find biggest among 3 numbers
1. Start
2. Move disk1 from pegA to pegC
3. Move disk2 from pegA to pegB
4. Move disk3 from pegC to pegB
5. Move disk1 from pegA to pegC
6. Move disk1 from pegB to pegA
7. Move disk2 from pegB to pegC
8. Move disk1 from pegA to peg C
9. Stop
Step 1:Start
Step 2: Declare a variable to get a Number
Step 3: Read the input
Step 4: Get the remainder of given number using modulo operator
Step 5: If remainder is 0 prints “Even Number”, else print “Odd Number”.
Step 6:Stop
Step 1:Start
Step 1: Declare three integer variables
Step 2: Read the 3 inputs
Step 3: Compare first two numbers and go to Step4
Step 4: If first number is greater than second number then compare first
number with third number else go to step 6
Step 5: If first number is greater than third number print first number as
biggest number else print third number as biggest
Step 6: Compare second number with third number
Step 7: If second number is greater than third number print second number
as biggest number else print third number as biggest
Step8:Stop

More Related Content

Similar to GE3151 PSPP _Unit 1 notes and Question bank.pdf

POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAAiman Hud
 
Introduction to Computer Programming
Introduction to Computer ProgrammingIntroduction to Computer Programming
Introduction to Computer ProgrammingProf. Erwin Globio
 
Algorithmic problem sloving
Algorithmic problem slovingAlgorithmic problem sloving
Algorithmic problem slovingMani Kandan
 
Problem-solving and design 1.pptx
Problem-solving and design 1.pptxProblem-solving and design 1.pptx
Problem-solving and design 1.pptxTadiwaMawere
 
Ch1 principles of software development
Ch1 principles of software developmentCh1 principles of software development
Ch1 principles of software developmentHattori Sidek
 
Chapter 2(1)
Chapter 2(1)Chapter 2(1)
Chapter 2(1)TejaswiB4
 
Programming_Lecture_1.pptx
Programming_Lecture_1.pptxProgramming_Lecture_1.pptx
Programming_Lecture_1.pptxshoaibkhan716300
 
Algorithm and flowchart
Algorithm and flowchartAlgorithm and flowchart
Algorithm and flowchartSachin Goyani
 
265 ge8151 problem solving and python programming - 2 marks with answers
265   ge8151 problem solving and python programming - 2 marks with answers265   ge8151 problem solving and python programming - 2 marks with answers
265 ge8151 problem solving and python programming - 2 marks with answersvithyanila
 
UNIT-1-PPTS-DAA.ppt
UNIT-1-PPTS-DAA.pptUNIT-1-PPTS-DAA.ppt
UNIT-1-PPTS-DAA.pptracha49
 
Introduction to Design Algorithm And Analysis.ppt
Introduction to Design Algorithm And Analysis.pptIntroduction to Design Algorithm And Analysis.ppt
Introduction to Design Algorithm And Analysis.pptBhargaviDalal4
 
C programming for Computing Techniques
C programming for Computing TechniquesC programming for Computing Techniques
C programming for Computing TechniquesAppili Vamsi Krishna
 
c_programming.pdf
c_programming.pdfc_programming.pdf
c_programming.pdfHome
 
Software develop....
Software develop.... Software develop....
Software develop.... GCWUS
 
Fundamental of Information Technology - UNIT 6
Fundamental of Information Technology - UNIT 6Fundamental of Information Technology - UNIT 6
Fundamental of Information Technology - UNIT 6Shipra Swati
 
PDLC.pptx
PDLC.pptxPDLC.pptx
PDLC.pptxmarysj3
 

Similar to GE3151 PSPP _Unit 1 notes and Question bank.pdf (20)

POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
 
Introduction to Computer Programming
Introduction to Computer ProgrammingIntroduction to Computer Programming
Introduction to Computer Programming
 
Problem solving methodology
Problem solving methodologyProblem solving methodology
Problem solving methodology
 
Algorithmic problem sloving
Algorithmic problem slovingAlgorithmic problem sloving
Algorithmic problem sloving
 
Problem-solving and design 1.pptx
Problem-solving and design 1.pptxProblem-solving and design 1.pptx
Problem-solving and design 1.pptx
 
Ch1 principles of software development
Ch1 principles of software developmentCh1 principles of software development
Ch1 principles of software development
 
Chapter 2(1)
Chapter 2(1)Chapter 2(1)
Chapter 2(1)
 
Programming_Lecture_1.pptx
Programming_Lecture_1.pptxProgramming_Lecture_1.pptx
Programming_Lecture_1.pptx
 
Module 1 python.pptx
Module 1 python.pptxModule 1 python.pptx
Module 1 python.pptx
 
Algorithm and flowchart
Algorithm and flowchartAlgorithm and flowchart
Algorithm and flowchart
 
265 ge8151 problem solving and python programming - 2 marks with answers
265   ge8151 problem solving and python programming - 2 marks with answers265   ge8151 problem solving and python programming - 2 marks with answers
265 ge8151 problem solving and python programming - 2 marks with answers
 
UNIT-1-PPTS-DAA.ppt
UNIT-1-PPTS-DAA.pptUNIT-1-PPTS-DAA.ppt
UNIT-1-PPTS-DAA.ppt
 
UNIT-1-PPTS-DAA.ppt
UNIT-1-PPTS-DAA.pptUNIT-1-PPTS-DAA.ppt
UNIT-1-PPTS-DAA.ppt
 
Introduction to Design Algorithm And Analysis.ppt
Introduction to Design Algorithm And Analysis.pptIntroduction to Design Algorithm And Analysis.ppt
Introduction to Design Algorithm And Analysis.ppt
 
C programming for Computing Techniques
C programming for Computing TechniquesC programming for Computing Techniques
C programming for Computing Techniques
 
c_programming.pdf
c_programming.pdfc_programming.pdf
c_programming.pdf
 
Software develop....
Software develop.... Software develop....
Software develop....
 
L1
L1L1
L1
 
Fundamental of Information Technology - UNIT 6
Fundamental of Information Technology - UNIT 6Fundamental of Information Technology - UNIT 6
Fundamental of Information Technology - UNIT 6
 
PDLC.pptx
PDLC.pptxPDLC.pptx
PDLC.pptx
 

More from Asst.prof M.Gokilavani

CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
IT8073_Information Security_UNIT I _.pdf
IT8073_Information Security_UNIT I _.pdfIT8073_Information Security_UNIT I _.pdf
IT8073_Information Security_UNIT I _.pdfAsst.prof M.Gokilavani
 
IT8073 _Information Security _UNIT I Full notes
IT8073 _Information Security _UNIT I Full notesIT8073 _Information Security _UNIT I Full notes
IT8073 _Information Security _UNIT I Full notesAsst.prof M.Gokilavani
 
GE3151 PSPP UNIT IV QUESTION BANK.docx.pdf
GE3151 PSPP UNIT IV QUESTION BANK.docx.pdfGE3151 PSPP UNIT IV QUESTION BANK.docx.pdf
GE3151 PSPP UNIT IV QUESTION BANK.docx.pdfAsst.prof M.Gokilavani
 
GE3151 PSPP UNIT III QUESTION BANK.docx.pdf
GE3151 PSPP UNIT III QUESTION BANK.docx.pdfGE3151 PSPP UNIT III QUESTION BANK.docx.pdf
GE3151 PSPP UNIT III QUESTION BANK.docx.pdfAsst.prof M.Gokilavani
 
GE3151 PSPP All unit question bank.pdf
GE3151 PSPP All unit question bank.pdfGE3151 PSPP All unit question bank.pdf
GE3151 PSPP All unit question bank.pdfAsst.prof M.Gokilavani
 
AI3391 Artificial intelligence Unit IV Notes _ merged.pdf
AI3391 Artificial intelligence Unit IV Notes _ merged.pdfAI3391 Artificial intelligence Unit IV Notes _ merged.pdf
AI3391 Artificial intelligence Unit IV Notes _ merged.pdfAsst.prof M.Gokilavani
 
AI3391 Artificial intelligence Session 29 Forward and backward chaining.pdf
AI3391 Artificial intelligence Session 29 Forward and backward chaining.pdfAI3391 Artificial intelligence Session 29 Forward and backward chaining.pdf
AI3391 Artificial intelligence Session 29 Forward and backward chaining.pdfAsst.prof M.Gokilavani
 
AI3391 Artificial intelligence Session 28 Resolution.pptx
AI3391 Artificial intelligence Session 28 Resolution.pptxAI3391 Artificial intelligence Session 28 Resolution.pptx
AI3391 Artificial intelligence Session 28 Resolution.pptxAsst.prof M.Gokilavani
 
AI3391 Artificial intelligence session 27 inference and unification.pptx
AI3391 Artificial intelligence session 27 inference and unification.pptxAI3391 Artificial intelligence session 27 inference and unification.pptx
AI3391 Artificial intelligence session 27 inference and unification.pptxAsst.prof M.Gokilavani
 
AI3391 Artificial Intelligence Session 26 First order logic.pptx
AI3391 Artificial Intelligence Session 26 First order logic.pptxAI3391 Artificial Intelligence Session 26 First order logic.pptx
AI3391 Artificial Intelligence Session 26 First order logic.pptxAsst.prof M.Gokilavani
 
AI3391 Artificial Intelligence Session 25 Horn clause.pptx
AI3391 Artificial Intelligence Session 25 Horn clause.pptxAI3391 Artificial Intelligence Session 25 Horn clause.pptx
AI3391 Artificial Intelligence Session 25 Horn clause.pptxAsst.prof M.Gokilavani
 
AI3391 Artificial Intelligence session 24 knowledge representation.pptx
AI3391 Artificial Intelligence session 24 knowledge representation.pptxAI3391 Artificial Intelligence session 24 knowledge representation.pptx
AI3391 Artificial Intelligence session 24 knowledge representation.pptxAsst.prof M.Gokilavani
 

More from Asst.prof M.Gokilavani (20)

CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
IT8073_Information Security_UNIT I _.pdf
IT8073_Information Security_UNIT I _.pdfIT8073_Information Security_UNIT I _.pdf
IT8073_Information Security_UNIT I _.pdf
 
IT8073 _Information Security _UNIT I Full notes
IT8073 _Information Security _UNIT I Full notesIT8073 _Information Security _UNIT I Full notes
IT8073 _Information Security _UNIT I Full notes
 
GE3151 PSPP UNIT IV QUESTION BANK.docx.pdf
GE3151 PSPP UNIT IV QUESTION BANK.docx.pdfGE3151 PSPP UNIT IV QUESTION BANK.docx.pdf
GE3151 PSPP UNIT IV QUESTION BANK.docx.pdf
 
GE3151 PSPP UNIT III QUESTION BANK.docx.pdf
GE3151 PSPP UNIT III QUESTION BANK.docx.pdfGE3151 PSPP UNIT III QUESTION BANK.docx.pdf
GE3151 PSPP UNIT III QUESTION BANK.docx.pdf
 
GE3151 UNIT II Study material .pdf
GE3151 UNIT II Study material .pdfGE3151 UNIT II Study material .pdf
GE3151 UNIT II Study material .pdf
 
GE3151 PSPP All unit question bank.pdf
GE3151 PSPP All unit question bank.pdfGE3151 PSPP All unit question bank.pdf
GE3151 PSPP All unit question bank.pdf
 
GE3151_PSPP_UNIT_5_Notes
GE3151_PSPP_UNIT_5_NotesGE3151_PSPP_UNIT_5_Notes
GE3151_PSPP_UNIT_5_Notes
 
GE3151_PSPP_UNIT_4_Notes
GE3151_PSPP_UNIT_4_NotesGE3151_PSPP_UNIT_4_Notes
GE3151_PSPP_UNIT_4_Notes
 
GE3151_PSPP_UNIT_3_Notes
GE3151_PSPP_UNIT_3_NotesGE3151_PSPP_UNIT_3_Notes
GE3151_PSPP_UNIT_3_Notes
 
GE3151_PSPP_UNIT_2_Notes
GE3151_PSPP_UNIT_2_NotesGE3151_PSPP_UNIT_2_Notes
GE3151_PSPP_UNIT_2_Notes
 
AI3391 Artificial intelligence Unit IV Notes _ merged.pdf
AI3391 Artificial intelligence Unit IV Notes _ merged.pdfAI3391 Artificial intelligence Unit IV Notes _ merged.pdf
AI3391 Artificial intelligence Unit IV Notes _ merged.pdf
 
AI3391 Artificial intelligence Session 29 Forward and backward chaining.pdf
AI3391 Artificial intelligence Session 29 Forward and backward chaining.pdfAI3391 Artificial intelligence Session 29 Forward and backward chaining.pdf
AI3391 Artificial intelligence Session 29 Forward and backward chaining.pdf
 
AI3391 Artificial intelligence Session 28 Resolution.pptx
AI3391 Artificial intelligence Session 28 Resolution.pptxAI3391 Artificial intelligence Session 28 Resolution.pptx
AI3391 Artificial intelligence Session 28 Resolution.pptx
 
AI3391 Artificial intelligence session 27 inference and unification.pptx
AI3391 Artificial intelligence session 27 inference and unification.pptxAI3391 Artificial intelligence session 27 inference and unification.pptx
AI3391 Artificial intelligence session 27 inference and unification.pptx
 
AI3391 Artificial Intelligence Session 26 First order logic.pptx
AI3391 Artificial Intelligence Session 26 First order logic.pptxAI3391 Artificial Intelligence Session 26 First order logic.pptx
AI3391 Artificial Intelligence Session 26 First order logic.pptx
 
AI3391 Artificial Intelligence Session 25 Horn clause.pptx
AI3391 Artificial Intelligence Session 25 Horn clause.pptxAI3391 Artificial Intelligence Session 25 Horn clause.pptx
AI3391 Artificial Intelligence Session 25 Horn clause.pptx
 
AI3391 Artificial Intelligence session 24 knowledge representation.pptx
AI3391 Artificial Intelligence session 24 knowledge representation.pptxAI3391 Artificial Intelligence session 24 knowledge representation.pptx
AI3391 Artificial Intelligence session 24 knowledge representation.pptx
 

Recently uploaded

Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 

Recently uploaded (20)

young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 

GE3151 PSPP _Unit 1 notes and Question bank.pdf

  • 1. GE3151 PROBLEM SOLVING AND PYTHON PROGRAMMING B. TECH I YEAR – I SEM (Autonomous) (2023-2024) Prepared By Asst.Prof.M.Gokilavani Department of Artificial Intelligence and Data Science
  • 2. 3003 OBJECTIVES: ● To understand the basics of algorithmic problem solving. ● To learn to solve problems using Python conditionals and loops. ● To define Python functions and use function calls to solve problems. ● To use Python data structures - lists, tuples, dictionaries to represent complex data. ● To do input/output with files in Python. UNIT I COMPUTATIONAL THINKING AND PROBLEM SOLVING 9 Fundamentals of Computing – Identification of Computational Problems -Algorithms, building blocks of algorithms (statements, state, control flow, functions), notation (pseudo code, flow chart, programming language), algorithmic problem solving, simple strategies for developing algorithms (iteration, recursion). Illustrative problems: find minimum in a list, insert a card in a list of sorted cards, guess an integer number in a range, Towers of Hanoi. UNIT II DATA TYPES, EXPRESSIONS, STATEMENTS 9 Python interpreter and interactive mode, debugging; values and types: int, float, boolean, string, and list; variables, expressions, statements, tuple assignment, precedence of operators, comments; Illustrative programs: exchange the values of two variables, circulate the values of n variables, distance between two points. UNITIII CONTROL FLOW, FUNCTIONS, STRINGS 9 Conditionals: Boolean values and operators, conditional (if), alternative (if-else), chained conditional (if-elif- else); Iteration: state, while, for, break, continue, pass; Fruitful functions: return values, parameters, local and global scope, function composition, recursion; Strings: string slices, immutability, string functions and methods, string module; Lists as arrays. Illustrative programs: square root, gcd, exponentiation, sum an array of numbers, linear search, binary search. UNI IV LISTS, TUPLES, DICTIONARIES 9 Lists: list operations, list slices, list methods, list loop, mutability, aliasing, cloning lists, list parameters; Tuples: tuple assignment, tuple as return value; Dictionaries: operations and methods; advanced list processing - list comprehension; Illustrative programs: simple sorting, histogram, Students marks statement, Retail bill preparation. UNIT V FILES, MODULES, PACKAGES 9 Files and exception: text files, reading and writing files, format operator; command line arguments, errors and exceptions, handling exceptions, modules, packages; Illustrative programs: word count, copy file, Voter’s age validation, Marks range validation (0-100). TOTAL: 45 PERIODS GE3151 PROBLEM SOLVING AND PYTHON PROGRAMMING LPTC
  • 3. UNIT I COMPUTATIONAL THINKING AND PROBLEM SOLVING 1.PROBLEM SOLVING Problem solving is the systematic approach to define the problem and creatingnumber of solutions. The problem solving process starts with the problem specifications and ends with a Correct program. 1.1 PROBLEM SOLVING TECHNIQUES Problem solving technique is a set of techniques that helps in providing logic for solvinga problem. Problem Solving Techniques: Problem solving can be expressed in the form of 1. Algorithms. 2. Flowcharts. 3. Pseudo codes. 4. programs 1.2.ALGORITHM It is defined as a sequence of instructions that describe a method for solving a problem. In other words it is a step by step procedure for solving a problem. Properties of Algorithms  Should be written in simple English  Each and every instruction should be precise and unambiguous.  Instructions in an algorithm should not be repeated infinitely.  Algorithm should conclude after a finite number of steps.  Should have an end point  Derived results should be obtained only after the algorithm terminates. Qualities of a good algorithm The following are the primary factors that are often used to judge the quality of the algorithms. Time – To execute a program, the computer system takes some amount of time. The lesser is the time required, the better is the algorithm. Memory – To execute a program, computer system takes some amount of memory space. The lesser is the memory required, the better is the algorithm. Accuracy – Multiple algorithms may provide suitable or correct solutions to a given problem, some of these may provide more accurate results than others, and such algorithms may be suitable. Algorithms, building blocks of algorithms (statements, state, control flow, functions), notation (pseudo code, flow chart, programming language), algorithmic problem solving, simple strategies for developing algorithms (iteration, recursion). Illustrative problems: find minimum in a list, insert a card in a list of sorted cards, Guess an integer number in a range, Towers of Hanoi.
  • 4. Example: Example Write an algorithm to print „Good Morning” Step 1: Start Step 2: Print “Good Morning” Step 3: Stop 2.BUILDING BLOCKS OF ALGORITHMS (statements, state, control flow, functions) Algorithms can be constructed from basic building blocks namely, sequence,selection and iteration. 2.1.Statements: Statement is 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.2.State: Transition from one process to another process under specified condition with in atime is called state. 2.3.Control flow: The process of executing the individual statements in a given order is called controlflow. The control can be executed in three ways 1. sequence 2. selection 3. iteration Sequence: All the instructions are executed one after another is called sequence execution. Example: Add two numbers: Step 1: Start Step 2: get a,b Step 3: calculate c=a+b Step 4: Display c Step 5: Stop Selection: A selection statement causes the program control to be transferred to a specificpart of the program based upon the condition. If the conditional test is true, one part of the program will be executed, otherwiseit will execute the other part of the program.
  • 5. Example Write an algorithm to check whether he is eligible to vote? Step 1: Start Step 2: Get age Step 3: if age >= 18 print “Eligible to vote” Step 4: else print “Not eligible to vote” Step 6: Stop Iteration: In some programs, certain set of statements are executed again and again based upon conditional test. i.e. executed more than one time. This type of execution is called looping or iteration. Example Write an algorithm to print all natural numbers up to n Step 1: Start Step 2: get n value. 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 2.4.Functions:  Function is a sub program which consists of block of code(set of instructions)that performs a particular task.  For complex problems, the problem is been divided into smaller and simplertasks during algorithm design.
  • 6. 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() Step 1: Start Step 2: Call the function add() Step 3: Stop sub function add() Step 1: Function start Step 2: Get a, b Values Step 3: add c=a+b Step 4: Print c Step 5: Return 3.NOTATIONS Flow chart is defined as graphical representation of the logic for problem solving. The purpose of flowchart is making the logic of the program clear in a visualrepresentation. 3.1.FLOW CHART
  • 7. Rules for drawing a flowchart 1. The flowchart should be clear, neat and easy to follow. 2. The flowchart must have a logical start and finish. 3. Only one flow line should come out from a process symbol. 4. Only one flow line should enter a decision symbol. However, two or three flow lines may leave the decision symbol. 5. Only one flow line is used with a terminal symbol. 6. Within standard symbols, write briefly and precisely. 7. Intersection of flow lines should be avoided. Advantages of flowchart: 1. Communication: - Flowcharts are better way of communicating the logic of a system to all concerned. 2. Effective analysis: - With the help of flowchart, problem can be analyzed in more effective way.
  • 8. 3. Proper documentation: - Program flowcharts serve as a good program documentation, which is needed for various purposes. 4. Efficient Coding: - The flowcharts act as a guide or blueprint during the systems analysis and program development phase. 5. Proper Debugging: - The flowchart helps in debugging process. 6. Efficient Program Maintenance: - The maintenance of operating program becomes easy with the help of flowchart. It helps the programmer to put efforts more efficiently on that part. Disadvantages of flow chart: 1. Complex logic: - Sometimes, the program logic is quite complicated. In that case, flowchart becomes complex and clumsy. 2. Alterations and Modifications: - If alterations are required the flowchart may require re-drawing completely. 3. Reproduction: - As the flowchart symbols cannot be typed, reproduction of flowchart becomes a problem. 4. Cost: For large application the time and cost of flowchart drawing becomescostly. Pseudo code consists of short, readable and formally styled English languages used for explain an algorithm. It does not include details like variable declaration, subroutines. It is easier to understand for the programmer or non-programmer to understand the general working of the program, because it is not based on any programming language. It gives us the sketch of the program before actual coding. It is not a machine readable Pseudo code can’t be compiled and executed. There is no standard syntax for pseudo code. Guidelines for writing pseudo code: Write one statement per line Capitalize initial keyword Indent to hierarchy End multiline structure Keep statements language independent Common keywords used in pseudocode The following gives common keywords used in pseudocodes. 1. //: This keyword used to represent a comment. 2. BEGIN, END: Begin is the first statement and end is the last statement. 3. INPUT, GET, READ: The keyword is used to inputting data. 4. COMPUTE, CALCULATE: used for calculation of the result of the given expression. 5. ADD, SUBTRACT, INITIALIZE used for addition, subtraction and initialization. 6. OUTPUT, PRINT, DISPLAY: It is used to display the output of the program. 7. IF, ELSE, ENDIF: used to make decision. 8. WHILE, ENDWHILE: used for iterative statements. 9. FOR, ENDFOR: Another iterative incremented/decremented tested automatically. 3.2.PSEUDO CODE:
  • 9. Syntax for if else: Example: Greates of two numbers IF (condition)THEN statement ... ELS E statement ... ENDIF BEGIN READ a,b IF (a>b) THEN DISPLAY a is greaterELSE DISPLAY b is greaterEND IF END Syntax for For: Example: Print n natural numbers FOR( start-value to end-value) DO statement ... ENDFO R BEGI NGET n INITIALIZE i=1FOR (i<=n) DOPRINT i i=i+1 ENDFO REND Syntax for While: Example: Print n natural numbers WHILE (condition) DO statement ... ENDWHILE BEGI NGET n INITIALIZE i=1 WHILE(i<=n) DO PRINT i i=i+1 ENDWHIL E END Advantages:  Pseudo is independent of any language; it can be used by most programmers.  It is easy to translate pseudo code into a programming language.  It can be easily modified as compared to flowchart.  Converting a pseudo code to programming language is very easy as comparedwith converting a flowchart to programming language. Disadvantages:  It does not provide visual representation of the program’s logic.  There are no accepted standards for writing pseudo codes.  It cannot be compiled nor executed.  For a beginner, It is more difficult to follow the logic or write pseudo code as compared to flowchart. Example: Addition of two numbers: BEGIN GET a,b
  • 10. ADD c=a+b PRINT c END Algorithm Flowchart Pseudo code An algorithm is a sequence of instructions used to solve a problem It is a graphical representation of algorithm It is a language representation of algorithm. User needs knowledge to write algorithm. not need knowledge of program to draw or understand flowchart Not need knowledge of program language to understand or write a pseudo code.
  • 11. A programming language is a set of symbols and rules for instructing a computer to perform specific tasks. The programmers have to follow all the specified rules before writing program using programming language. The user has to communicate with the computer using language which it can understand. Types of programming language 1. Machine language 2. Assembly language 3. High level language Machine language: The computer can understand only machine language which uses 0’s and 1’s. In machine language the different instructions are formed by taking different combinations of 0’s and 1’s. Advantages: Translation free: Machine language is the only language which the computer understands. For executing any program written in any programming language, the conversion to machine language is necessary. The program written in machine language can be executed directly on computer. In this case any conversion process is not required.High speed The machine language program is translation free. Since the conversion time issaved, the execution of machine language program is extremely fast. Disadvantage:  It is hard to find errors in a program written in the machine language.  Writhing program in machine language is a time consuming process.  Machine dependent: According to architecture used, the computer differs from eachother. So machine language differs from computer to computer. So a program developed for a particular type of computer may not run on other type of computer.  Assembly language: To overcome the issues in programming language and make the programming process easier, an assembly language is developed which is logically equivalent tomachine language but it is easier for people to read, write and understand. 3.3.PROGRAMMING LANGUAGE
  • 12.  Assembly language is symbolic representation of machine language. Assembly languages are symbolic programming language that uses symbolic notation to represent machine language instructions. They are called low level language because they are so closely related to the machines. Ex: ADD a, b Assembler: Assembler is the program which translates assembly language instruction in to a machine language. Advantage:  Easy to understand and use.  It is easy to locate and correct errors. Disadvantage Machine dependent The assembly language program which can be executed on the machine dependson the architecture of that computer. Hard to learn It is machine dependent, so the programmer should have the hardware knowledge to create applications using assembly language. Less efficient  Execution time of assembly language program is more than machine language program.  Because assembler is needed to convert from assembly language to machine language. High level language High level language contains English words and symbols. The specified rules areto be followed while writing program in high level language. The interpreter or compilers are used for converting these programs in to machine readable form. Translating high level language to machine language The programs that translate high level language in to machine language are called interpreter or compiler. Compiler: A compiler is a program which translates the source code written in a high level language in to object code which is in machine language program. Compiler reads the whole program written in high level language and translates it to machine language. Ifany error is found it display error message on the screen. Interpreter Interpreter translates the high level language program in line by line manner. The interpreter translates a high level language statement in a source program to a machine
  • 13. code and executes it immediately before translating the next statement. When an erroris found the execution of the program is halted and error message is displayed on the screen. Advantages Readability High level language is closer to natural language so they are easier to learn and understand Machine independent High level language program have the advantage of being portable between machines. Easy debugging Easy to find and correct error in high level language Disadvantages Less efficient The translation process increases the execution time of the program. Programs inhigh level language require more memory and take more execution time to execute. They are divided into following categories: 1. Interpreted programming languages 2. Functional programming languages 3. Compiled programming languages 4. Procedural programming languages 5. Scripting programming language 6. Markup programming language 7. Concurrent programming language 8. Object oriented programming language Interpreted programming languages: An interpreted language is a programming language for which most of its implementation executes instructions directly, without previously compiling a programinto machine language instructions. The interpreter executes the program directly translating each statement into a sequence of one or more subroutines already compiled into machine code. Examples: Pascal Python Functional programming language: Functional programming language defines every computation as a mathematical evaluation. They focus on the programming languages are bound to mathematical calculations Examples: Clean Haskell
  • 14. Compiled Programming language: A compiled programming is a programming language whose implementation are typically compilers and not interpreters. It will produce a machine code from source code. Examples: C C++ C# JAV A Procedural programming language: Procedural (imperative) programming implies specifying the steps that the programs should take to reach to an intended state. A procedure is a group of statements that can be referred through a procedure call. Procedures help in the reuse of code. Procedural programming makes the programs structured and easily traceable for program flow. Examples: Hyper talk MATLAB Scripting language: Scripting language are programming languages that control an application. Scripts can execute independent of any other application. They are mostly embedded inthe application that they control and are used to automate frequently executed tasks like communicating with external program. Examples: Apple script VB script Markup languages: A markup language is an artificial language that uses annotations to text that define hoe the text is to be displayed. Examples: HTM L XML Concurrent programming language: Concurrent programming is a computer programming technique that provides for the execution of operation concurrently, either with in a single computer or across anumber of systems. Examples: Joule Limbo Object oriented programming language: Object oriented programming is a programming paradigm based on the conceptof objects which may contain data in the form of procedures often known as methods.
  • 15. Examples: Lava Moto 4.ALGORITHMIC PROBLEM SOLVING: Algorithmic problem solving is solving problem that require the formulation of analgorithm for the solution. Understanding the Problem  It is the process of finding the input of the problem that the algorithm solves.  It is very important to specify exactly the set of inputs the algorithm needs to handle.  A correct algorithm is not one that works most of the time, but one that works correctly for all legitimate inputs. Ascertaining the Capabilities of the Computational Device  If the instructions are executed one after another, it is called sequentialalgorithm.
  • 16.  If the instructions are executed concurrently, it is called parallel algorithm. Choosing between Exact and Approximate Problem Solving  The next principal decision is to choose between solving the problem exactly or solving it approximately.  Based on this, the algorithms are classified as exact algorithm and approximation algorithm. Deciding a data structure:  Data structure plays a vital role in designing and analysis the algorithms.  Some of the algorithm design techniques also depend on the structuring dataspecifying a problem’s instance  Algorithm+ Data structure=programs. Algorithm Design Techniques  An algorithm design technique (or “strategy” or “paradigm”) is a general approach to solving problems algorithmically that is applicable to a variety of problems from different areas of computing.  Learning these techniques is of utmost importance for the following reasons.  First, they provide guidance for designing algorithms for new problems,  Second, algorithms are the cornerstone of computer science Methods of Specifying an Algorithm  Pseudocode is a mixture of a natural language and programming language-like constructs. Pseudocode is usually more precise than natural language, and its usage often yields more succinct algorithm descriptions.  In the earlier days of computing, the dominant vehicle for specifying algorithms was a flowchart, a method of expressing an algorithm by a collection of connected geometric shapes containing descriptions of the algorithm’s steps.  Programming language can be fed into an electronic computer directly. Instead,it needs to be converted into a computer program written in a particular computer language. We can look at such a program as yet another way of specifying the algorithm, although it is preferable to consider it as the algorithm’simplementation. Proving an Algorithm’s Correctness  Once an algorithm has been specified, you have to prove its correctness. That is, you have to prove that the algorithm yields a required result for every legitimate input in a finite amount of time.  A common technique for proving correctness is to use mathematical induction because an algorithm’s iterations provide a natural sequence of steps needed for such proofs.  It might be worth mentioning that although tracing the algorithm’s performance for a few specific inputs can be a very worthwhile activity, it cannot prove the algorithm’s correctness conclusively. But in order to show that an algorithm is incorrect, you need just one instance of its input for which the algorithm fails.
  • 17. Analysing an Algorithm 1. Efficiency. Time efficiency, indicating how fast the algorithm runs, Space efficiency, indicating how much extra memory it uses. 2. simplicity.  An algorithm should be precisely defined and investigated with mathematical expressions.  Simpler algorithms are easier to understand and easier to program.  Simple algorithms usually contain fewer bugs. Coding an Algorithm  Most algorithms are destined to be ultimately implemented as computer programs. Programming an algorithm presents both a peril and an opportunity.  A working program provides an additional opportunity in allowing an empirical analysis of the underlying algorithm. Such an analysis is based on timing the program on several inputs and then analysing the results obtained. 5.SIMPLE STRATEGIES FOR DEVELOPING ALGORITHMS: 1. iterations 2. Recursions 5.1.Iterations: A sequence of statements is executed until a specified condition is true is callediterations. 1. for loop 2. While loop Syntax for For: Example: Print n natural numbers FOR( start-value to end-value) DO statement ... ENDFO R BEGI NGET n INITIALIZE i=1FOR (i<=n) DOPRINT i i=i+1 ENDFO REND Syntax for While: Example: Print n natural numbers WHILE (condition) DO statement ... ENDWHILE BEGI NGET n INITIALIZE i=1 WHILE(i<=n) DO PRINT i i=i+1 ENDWHIL EEND
  • 18. 5.2.Recursions:  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. Algorithm for factorial of n numbers using recursion: Main function: Step1: Start Step2: Get n Step3: call factorial(n) Step4: print fact Step5: Stop Sub function factorial(n): Step1: if(n==1) then fact=1 return fact Step2: else fact=n*factorial(n-1) and return fact
  • 19. Pseudo code for factorial using recursion: Main function: BEGI NGET n CALL factorial(n) PRINT fact BIN Sub function factorial(n): IF(n==1) THEN fact=1 RETURN fact ELSE RETURN fact=n*factorial(n-1)
  • 20. More examples: Write an algorithm to find area of a rectangle Step 1: Start Step 2: get l,b values Step 3: Calculate A=l*b Step 4: Display A Step 5: Stop BEGIN READ l,b CALCULATE A=l*b DISPLAY A END Write an algorithm for Calculating area and circumference of circle Step 1: Start BEGIN Step 2: get r value READ r Step 3: Calculate A=3.14*r*r CALCULATE A and C Step 4: Calculate C=2.3.14*r A=3.14*r*r Step 5: Display A,C C=2*3.14*r Step 6: Stop DISPLAY A END
  • 21. Write an algorithm for Calculating simple interest Step 1: Start Step 2: get P, n, r value Step3:Calculate SI=(p*n*r)/100 Step 4: Display S Step 5: Stop BEGIN READ P, n, r CALCULATE S SI=(p*n*r)/100 DISPLAY SI END Write an algorithm for Calculating engineering cutoff Step 1: Start Step2: get P,C,M value BEGIN Step3:calculate READ P,C,M Cutoff= (P/4+C/4+M/2) CALCULATE Step 4: Display Cutoff Cutoff= (P/4+C/4+M/2) Step 5: Stop DISPLAY Cutoff END To check greatest of two numbers Step 1: Start Step 2: get a,b value Step 3: check if(a>b) print a is greaterStep 4: else b is greater Step 5: Stop
  • 22. BEGIN READ a,b IF (a>b) THEN DISPLAY a is greaterELSE DISPLAY b is greaterEND IF END To check leap year or not Step 1: Start Step 2: get y Step 3: if(y%4==0) print leap yearStep 4: else print not leap year Step 5: Stop BEGIN READ y IF (y%4==0) THEN DISPLAY leap yearELSE DISPLAY not leap year END IF END
  • 23. To check positive or negative number Step 1: Start Step 2: get num Step 3: check if(num>0) print a is positive Step 4: else num is negative Step 5: Stop BEGIN READ num IF (num>0) THEN DISPLAY num is positiveELSE DISPLAY num is negativeEND IF END
  • 24. To check odd or even number Step 1: Start Step 2: get num Step 3: check if(num%2==0) print num is evenStep 4: else num is odd Step 5: Stop BEGIN READ num IF (num%2==0) THEN DISPLAY num is evenELSE DISPLAY num is oddEND IF END To check greatest of three numbers Step1: Start Step2: Get A, B, C Step3: if(A>B) goto Step4 else goto step5 Step4: If(A>C) print A else print C Step5: If(B>C) print B else print C Step6: Stop
  • 25. BEGIN READ a, b, c IF (a>b) THEN IF(a>c) THEN DISPLAY a is greaterELSE DISPLAY c is greaterEND IF ELSE IF(b>c) THEN DISPLAY b is greaterELSE DISPLAY c is greaterEND IF END IF END Write an algorithm to check whether given number is +ve, -ve or zero. Step 1: Start Step 2: Get n value. Step 3: if (n ==0) print “Given number is Zero” Else goto step4 Step 4: if (n > 0) then Print “Given number is +ve” Step 5: else Print “Given number is -ve” Step 6: Stop
  • 26. BEGI NGET n IF(n==0) THEN DISPLAY “ n is zero”ELSE IF(n>0) THEN DISPLAY “n is positive”ELSE DISPLAY “n is positive”END IF END IFEND
  • 27. Write an algorithm to print all natural numbers up to n Step 1: Start Step 2: get n value. Step 3: initialize i=1 Step 4: if (i<=n) go to step 5 else go to step 8 Step 5: Print i value step 6 : increment i value by 1 Step 7: go to step 4 Step 8: Stop BEGI NGET n INITIALIZE i=1 WHILE(i<=n) DO PRINT i i=i+1 ENDWHIL EEND
  • 28. Write an algorithm to print n odd numbers Step 1: start step 2: get n value step 3: set initial value i=1 step 4: check if(i<=n) goto step 5 else goto step 8 step 5: print i value step 6: increment i value by 2 step 7: goto step 4 step 8: stop BEGI NGET n INITIALIZE i=1 WHILE(i<=n) DO PRINT i i=i+2 ENDWHIL EEND
  • 29. Write an algorithm to print n even numbers Step 1: start step 2: get n value step 3: set initial value i=2 step 4: check if(i<=n) goto step 5 else goto step8 step 5: print i value step 6: increment i value by 2 step 7: goto step 4 step 8: stop BEGI NGET n INITIALIZE i=2 WHILE(i<=n) DO PRINT i i=i+2 ENDWHIL EEND
  • 30. Write an algorithm to print squares of a number Step 1: start step 2: get n value step 3: set initial value i=1 step 4: check i value if(i<=n) goto step 5 else goto step8 step 5: print i*i value step 6: increment i value by 1 step 7: goto step 4 step 8: stop BEGI NGET n INITIALIZE i=1 WHILE(i<=n) DO PRINT i*ii=i+2 ENDWHIL EEND
  • 31. Write an algorithm to print to print cubes of a number Step 1: start step 2: get n value step 3: set initial value i=1 step 4: check i value if(i<=n) goto step 5 else goto step8 step 5: print i*i *i value step 6: increment i value by 1 step 7: goto step 4 step 8: stop BEGI NGET n INITIALIZE i=1 WHILE(i<=n) DO PRINT i*i*ii=i+2 ENDWHIL EEND
  • 32. Write an algorithm to find sum of a given number Step 1: start step 2: get n value step 3: set initial value i=1, sum=0 Step 4: check i value if(i<=n) goto step 5 else goto step8 step 5: calculate sum=sum+i step 6: increment i value by 1 step 7: goto step 4 step 8: print sum value step 9: stop BEGI NGET n INITIALIZE i=1,sum=0 WHILE(i<=n) DO sum=sum+i i=i+1 ENDWHILE PRINT sum END
  • 33.
  • 34. Write an algorithm to find factorial of a given number Step 1: start step 2: get n value step 3: set initial value i=1, fact=1 Step 4: check i value if(i<=n) goto step 5 else goto step8 step 5: calculate fact=fact*i step 6: increment i value by 1 step 7: goto step 4 step 8: print fact value step 9: stop BEGI NGET n INITIALIZE i=1,fact=1 WHILE(i<=n) DO fact=fact*i i=i+1 ENDWHILE PRINT fact END
  • 35. Basic python programs: Addition of two numbers Output a=eval(input(“enter first no”)) b=eval(input(“enter second no”))c=a+b print(“the sum is “,c) enter first no5 enter second no6 the sum is 11 Area of rectangle Output l=eval(input(“enter the length of rectangle”)) b=eval(input(“enter the breath of rectangle”)) a=l*b print(a) enter the length of rectangle 5 enter the breath of rectangle 630 Area & circumference of circle output r=eval(input(“enter the radius of circle”)) a=3.14*r*r c=2*3.14*r print(“the area of circle”,a) print(“the circumference of circle”,c) enter the radius of circle4 the area of circle 50.24 the circumference of circle 25.12 Calculate simple interest Output p=eval(input(“enter principle amount”)) n=eval(input(“enter no of years”)) r=eval(input(“enter rate of interest”)) si=p*n*r/100 print(“simple interest is”,si) enter principle amount 5000 enter no of years 4 enter rate of interest6 simple interest is 1200.0 Calculate engineering cutoff Output p=eval(input(“enter physics marks”)) c=eval(input(“enter chemistry marks”)) m=eval(input(“enter maths marks”)) cutoff=(p/4+c/4+m/2) print(“cutoff =”,cutoff) enter physics marks 100 enter chemistry marks 99 enter maths marks 96 cutoff = 97.75 Check voting eligibility output age=eval(input(“enter ur age”)) If(age>=18): print(“eligible for voting”) else: print(“not eligible for voting”) Enter ur age 19 Eligible for voting
  • 36. Find greatest of three numbers output a=eval(input(“enter the value of a”)) b=eval(input(“enter the value of b”)) c=eval(input(“enter the value of c”)) if(a>b): if(a>c): print(“the greatest no is”,a) else: print(“the greatest no is”,c) else: if(b>c): print(“the greatest no is”,b) else: print(“the greatest no is”,c) enter the value of a 9 enter the value of a 1 enter the value of a 8 the greatest no is 9 Programs on for loop Print n natural numbers Output for i in range(1,5,1): print(i) 1 2 3 4 Print n odd numbers Output for i in range(1,10,2): print(i) 1 3 5 7 9 Print n even numbers Output for i in range(2,10,2): print(i) 2 4 6 8 Print squares of numbers Output for i in range(1,5,1): print(i*i) 1 4 9 16 Print squares of numbers Output for i in range(1,5,1): print(i*i*i) 1 8 27 64 Programs on while loop
  • 37. Print n natural numbers Output i=1 while(i<=5): print(i) i=i+1 1 2 3 4 5 Print n odd numbers Output i=2 while(i<=10): print(i) i=i+2 2 4 6 8 10 Print n even numbers Output i=1 while(i<=10): print(i) i=i+2 1 3 5 7 9 Print n squares of numbers Output i=1 while(i<=5): print(i*i) i=i+1 1 4 9 16 25 Print n cubes numbers Output i=1 while(i<=3): print(i*i*i) i=i+1 1 8 27 find sum of n numbers Output i=1 sum=0 while(i<=10): sum=sum+i i=i+1 print(sum) 55
  • 38. factorial of n numbers/product of n numbers Output i=1 product=1 while(i<=10): product=product*i i=i+1 print(product) 3628800 sum of n numbers Output def add(): a=eval(input(“enter a value”)) b=eval(input(“enter b value”)) c=a+b print(“the sum is”,c) add() enter a value 6 enter b value 4 the sum is 10 area of rectangle using function Output def area(): l=eval(input(“enter the length of rectangle”)) b=eval(input(“enter the breath of rectangle”))a=l*b print(“the area of rectangle is”,a) area() enter the length of rectangle 20 enter the breath of rectangle 5 the area of rectangle is 100 swap two values of variables Output def swap(): a=eval(input("enter a value")) b=eval(input("enter b value")) c=a a=b b=c print("a=",a,"b=",b) swap() enter a value3 enter b value5 a= 5 b= 3
  • 39. check the no divisible by 5 or not Output def div(): n=eval(input("enter n value")) if(n%5==0): print("the number is divisible by 5") else: print("the number not divisible by 5") div() enter n value10 the number is divisible by5 find reminder and quotient of given no Output def reminder(): a=eval(input("enter a")) b=eval(input("enter b")) R=a%b print("the reminder is",R) def quotient(): a=eval(input("enter a")) b=eval(input("enter b")) Q=a/b print("the reminder is",Q) reminder() quotient() enter a 6 enter b 3 the reminder is 0 enter a 8 enter b 4 the reminder is 2.0 convert the temperature Output def ctof(): c=eval(input("enter temperature in centigrade")) f=(1.8*c)+32 print("the temperature in Fahrenheit is",f)def ftoc(): f=eval(input("enter temp in Fahrenheit")) c=(f-32)/1.8 print("the temperature in centigrade is",c) ctof() ftoc() enter temperature in centigrade 37 the temperature in Fahrenheit is 98.6 enter temp in Fahrenheit 100 the temperature in centigrade is 37.77
  • 40. program for basic calculator Output def add(): enter a value 10 a=eval(input("enter a value")) enter b value 10 b=eval(input("enter b value")) the sum is 20 c=a+b enter a value 10 print("the sum is",c) enter b value 10 def sub(): the diff is 0 a=eval(input("enter a value")) enter a value 10 b=eval(input("enter b value")) enter b value 10 c=a-b the mul is 100 print("the diff is",c) enter a value 10 def mul(): enter b value 10 a=eval(input("enter a value")) the div is 1 b=eval(input("enter b value")) c=a*b print("the mul is",c) def div(): a=eval(input("enter a value")) b=eval(input("enter b value")) c=a/b print("the div is",c) add() sub() mul() div()
  • 41.
  • 42. GE3151 PROBLEM SOLVING AND PYTHON PROGRAMMING QUESTION BANK PART- A (2 Marks) 1. What is an algorithm? Algorithm is an ordered sequence of finite, well defined, unambiguous instructions for completing a task. It is an English-like representation of the logic which is used to solve the problem. It is a step- by-step procedure for solving a task or a problem. The steps must beordered, unambiguous and finite in number. 2. List the building blocks of an algorithm. The building blocks of an algorithm are  Statements  Sequence  Selection or Conditional  Repetition or Control flow  Functions 3. Write the pseudo code to calculate the sum and product of two numbers and display it. INITIALIZE variables sum, product, number1, number2 of type real PRINT “Input two numbers” READ number1, number2 sum = number1 + number2 PRINT “The sum is “, sum COMPUTE product = number1 * number2 PRINT “The Product is “, product END program 4. How does flow of control work? Control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. A control flow statement isa statement in which execution results in a choice being made as to which of two or morepaths to follow. 5. What is a function? Functions are "self-contained" modules of code that accomplish a specific task. Functions usually "take in" data, process it, and "return" a result. Once a function is written, it can be used over and over and over again. Functions can be "called" from the inside of other functions. 6. Give the rules for writing Pseudo codes. Write one statement per line. Capitalize initial keywords. Indent to show hierarchy. End multiline structure. Keep statements to be language independent. UNIT I: COMPUTATIONAL THINKING AND PROBLEM SOLVING Fundamentals of Computing – Identification of Computational Problems -Algorithms, building blocks of algorithms (statements, state, control flow, functions), notation (pseudo code, flow chart, programming language), algorithmic problem solving, simple strategies for developing algorithms (iteration, recursion). Illustrative problems: find minimum in a list, insert a card in a list of sorted cards, guess an integer number in a range, Towers of Hanoi.
  • 43. 7. Give the difference between flowchart and pseudo code. Flowchart and Pseudo code are used to document and represent the algorithm. In other words, an algorithm can be represented using a flowchart or a pseudo code. Flowchart is a graphical representation of the algorithm. Pseudo code is a readable, formally styled English like language representation of the algorithm. 8. Define a flowchart. A flowchart is a diagrammatic representation of the logic for solving a task. A flowchart is drawn using boxes of different shapes with lines connecting them to show the flow of control. The purpose of drawing a flowchart is to make the logic of the program clearer in a visual form. 9. Write down the rules for preparing a flowchart. While drawing a flowchart, some rules need to be followed— (1) A flowchart should have a start and end, (2) The direction of flow in a flowchart must be from top to bottom and left to right, and (3) The relevant symbols must be used while drawing a flowchart. 10. List the categories of Programming languages. Programming languages are divided into the following categories: Interpreted, Functional, Compiled, Procedural, Scripting, Markup, Logic- Based, Concurrentand Object-Oriented Programming Languages 11. Mention the characteristics of an algorithm.  Algorithm should be precise and unambiguous.  Instruction in an algorithm should not be repeated infinitely.  Ensure that the algorithm will ultimately terminate.  Algorithm should be written in sequence.  Algorithm should be written in normal English.  Desired result should be obtained only after the algorithm terminates. 12. What is the difference between algorithm and pseudo code? An algorithm is a systematic logical approach used to solve problems in a computer while pseudo code is the statement in plain English that may be translated later to a programming language. Pseudo code is the intermediary between algorithm and program. 13. List out the simple steps to develop an algorithm. Algorithm development process consists of five major steps. Step 1: Obtain a description of the problem. Step 2: Analyze the problem. Step 3: Develop a high-level algorithm. Step 4: Refine the algorithm by adding more detail. Step 5: Review the algorithm. 14. Give the differences between recursion and iteration. Recursion Iteration Function calls itself until the base condition is reached. Repetition of process until the condition fails. Only base condition (terminating condition) is specified. It involves four steps: initialization, condition, execution and updation. It keeps our code short and simple. Iterative approach makes our code longer. It is slower than iteration due to overhead of maintaining stack. Iteration is faster.
  • 44. 15. What are advantages and disadvantages of recursion? Advantages Disadvantages Recursive functions make the code look clean and elegant. Sometimes the logic behind recursion is hard to follow through. A complex task can be broken down into simpler sub-problems using recursion. Recursive calls are expensive (inefficient) as they take up a lot of memory and time. Sequence generation is easier with recursion than using some nested iteration. Recursive functions are hard to debug. 16. Define recursion. Recursion is the process of defining a problem (or the solution to a problem) in terms of a simpler version of itself. A recursive procedure or routine is one that has the ability to call itself. 17. Define control flow statement. A program's control flow is the order in which the program's code executes. The control flow of a Python program is regulated by conditional statements, loops, and function calls. 18. What is the concept of towers of Hanoi. The objective of the game is to move the entire stack of disks from Tower 1 to Tower 3. You can move only one disk at a time. No disk may be placed on top of a smaller disk. With 3 disks, the puzzle can be solved in 7 moves. The minimal number of moves required to solve a Tower of Hanoi puzzle is 2n − 1, where n is the number of disks. 19. Explain list. In computer science, a list or sequence is an abstract data type that represents a countable number of ordered values, where the same value may occur more than once. The name list is also used for several concrete data structures that can be used to implement abstract lists, especially linked lists. Many programming languages provide support for list data types, and have special syntax and semantics for lists and list operations. 20. What is Iteration? Iteration is the repetition of a process in a computer program, usually done with the help of loops. Many computer programs and programming languages use iterations to perform specific tasks, solve problems, and present solutions. 21. Explain how do you assess problem solving method. The problem solving method is the process of working through details of a problem to reach a solution. Problem solving may include mathematical or systematic operations and can be a gauge of an individual's critical thinking skills. Methods for assessing problem-solving learning outcomes vary with the nature of the -problem. Problem solving processes are normally assessed by coding schemes. Based on that assumption, numerous models of problem solving have been suggested, most of which involve a sequence of steps, including: a. Define the problem. b. Analyze the problem (identify possible causes). It takes more memory than iteration due to overhead of maintaining stack. Iteration takes less memory.
  • 45. c. Investigate the problem (gather information). d. Generate possible solutions. e. Evaluate the alternative solutions. 22. What is meant by sorting? Mention its types. Sorting refers to arranging data in a particular format. Sorting algorithm specifies the way to arrange data in a particular order. Types of Sorting Techniques a. Bubble Sort. b. Insertion Sort. c. Selection Sort. d. Quick Sort. e. Merge Sort. f. Heap Sort. 23. Define programming language. A programming language is a vocabulary and set of grammatical rules for instructing a computer or computing device to perform specific tasks. The term programming language usually refers to high-level languages, such as BASIC, C, C++, COBOL, Java, FORTRAN, Ada, and Pascal. 24. Discuss building blocks of algorithm. Any algorithm can be constructed from just three basic building blocks. These three building blocks are Sequence, Selection, and Iteration. Sequence is an action in which one or more instructions that the computer performs in sequential order (from first to last). Selection is a Decision making choice among several actions. Iteration can be a Loop in which one or more instructions that the computer performs repeatedly. 25. What are the steps for developing algorithms. a. Problem definition b. Development of a model c. Specification of Algorithm d. Designing an Algorithm e. Checking the correctness of Algorithm f. Analysis of Algorithm g. Implementation of Algorithm h. Program testing i. Documentation Preparation 26. Give an example for recursion function. #To find the factorial of a number def calc_factorial(x): if x == 1: return 1 else: return (x * calc_factorial(x-1)) num = 4 print("The factorial of", num, "is", calc_factorial(num)) Output: The factorial of 4 is 24.
  • 46. 27. Discuss building blocks of algorithm. Any algorithm can be constructed from just three basic building blocks. These three building blocks are Sequence, Selection, and Iteration. Sequence is an action in which one or more instructions that the computer performs in sequential order (from first to last). Selection is a Decision making choice among several actions. Iteration can be a Loop in which one or more instructions that the computer performs repeatedly. 28. Differentiate predefined function and user defined function. Predefined functions are part of the programming language. For eg. built-in C functions, like printf() and scanf( ). A user-defined function is a function which the programmer creates and uses in a program. PART B (16 MARKS) 1. What are the building blocks of an algorithm? Explain in detail. Definition: An algorithm is a collection of well-defined, unambiguous and effectivelycomputable instructions, if execute it will return the proper output. Building Blocks: It has been proven that any algorithm can be constructed from just three basic building blocks. These three building blocks are Sequence, Selection, and Iteration(Repetition). i. Sequence This describes a sequence of actions that a program carries out one after another,unconditionally. Execute a list of statements in order.Consider an example, Algorithm for Addition of two numbers: The above example is the algorithm to add the two numbers. It says the sequence of steps to be follow to add two numbers. As, Step2 says that should get two numbers from the user and store it in some variable. In step3, the algorithm start doing the process of adding two numbers and step4 print the result generated by step3. Step1: Start Step 2: Get two numbers as input and store it in to a and bStep 3: Add the number a & b and store it into c Step 4: Print c Step 5: Stop.
  • 47. ii. Selection Selection is the program construct that allows a program to choose between differentactions. Choose at most one action from several alternative conditions. Algorithm to find biggest among 2 no’s: Selection structure executes some set of statements based on the condition given. The above algorithm is an example to find the biggest numbers among two numbers.In Step2, we are getting two numbers as input and storing it in the variables a and b. We are checking whether a is greater than b in step3, if yes then we are printing a is big or we are printing b is big. iii. Repetition Repetition (loop) may be defined as a smaller program the can be executed severaltimes in a main program. Repeat a block of statements while a condition is true. Algorithm to calculate factorial: The above algorithm is an example for repetition, where it repeats some process until some condition get satisfied. Here this algorithm helps to find the factorial of number. In step 2 we are getting a number as input and store it in num. Step 5 and Step 6 is going to do repeatedly based on the condition given in step 4. Finally, Step 7prints the result obtained from step 5 and step 6. With the help of these three building blocks it is easy for us to write algorithm for any given problem. Step1: Start Step 2: Get two numbers as input and store it in to a and bStep 3: If a is greater than b then Step 4: Print a is big Step 5: else Step 6: Print b is big Step 7: Stop Step1: Start Step 2: Read the number num. Step 3: Initialize i is equal to 1 and fact is equal to 1 Step 4: Repeat step4 through 6 until I is equal to num Step 5: factfact * i Step 6: ii+1 Step 7: Print fact Step 8: Stop
  • 48. 2. Explain pseudocode and its control structure with necessary examples.  “Pseudo” means imitation or false and “code” refers to the instructionswritten in a programming language.  Pseudocode is another programming analysis tool that is used for planning aprogram  Pseudocode is also called Program Design Language(PDL) Guidelines to write Pseudocode Pseudocode is made up of the following logic structure,  Sequential logic  Selection logic  Iteration logic i. Sequence Logic  It is used to perform instructions in a sequence, that is one after another  Thus, for sequence logic, pseudocode instructions are written in an order inwhich they are to be performed.  The logic flow of pseudocode is from top to bottom. Pseudocode to add two numbers: ii. Selection Logic  It is used for making decisions and for selecting the proper path out of two ormore alternative paths in program logic.  It is also known as decision logic.  Selection logic is depicted as either an IF..THEN or an IF…THEN..ELSEStructure. START READ a,b COMPUTE c by adding a &b PRINT c STOP  Pseudocode is written using structured English.  Pseudocode should be concise  Keyword should be in capital letter
  • 49. Pseudocode to add two numbers: iii. Repetition Logic  It is used to produce loops when one or more instructions may be executedseveral times depending on some conditions.  It uses structures called DO_WHILE, FOR and REPEAT UNTIL Pseudocode to print first 10 natural numbers 3. What is Flowchart? List down the symbols and its usage with examples. A flowchart is a visual representation of the sequence of steps and decision neededto perform a process. Flowchart for computer programming/algorithms  As a visual representation of data flow, flowcharts are useful in writing a program or algorithm and explaining it to others or collaborating with them on it.  You can use a flowchart to spell out the logic behind a program before ever starting to code the automated process.  It can help to organize big-picture thinking and provide a guide when it comes time to code. More specifically, flowcharts can: START INITIALIZE a0 WHILE a<10 PRINT a ENDWHILE STOP START READ a and b IF a>b THEN PRINT “A is big” ELSE PRINT “B is big” ENDIF STOP o Demonstrate the way code is organized. o Visualize the execution of code within a program. o Show the structure of a website or application. o Understand how users navigate a website or program.
  • 50. Flowchart symbols Here are some of the common flowchart symbols. Flowchart is made up of the following logic structure, Sequential logic Selection logic Iteration logic i. Sequence Logic  In a computer program or an algorithm, sequence involves simple steps which are to be executed one after the other.  The steps are executed in the same order in which they are written.  Below is an example set of instructions to add two numbers and display the answer.
  • 51. ii. Selection Logic  Selection is used in a computer program or algorithm to determine which particularstep or set of steps is to be executed.  This is also referred to as a ‘decision’. A selection statement can be used to choose a specific path dependent on acondition. There are two types of selection: binary selection (two possible pathways) multi-way selection (many possible pathways) Following is the example flowchart to find biggest among two numbers:
  • 52. iii. Repetition Logic  Repetition allows for a portion of an algorithm or computer program to be executed anynumber of times dependent on some condition being met.  An occurrence of repetition is usually known as a loop.  The termination condition can be checked or tested at the beginning or end of theloop, and is known as a pre-test or post-test, respectively. Flowchart to find factorial of given no
  • 53. pre-test loop post-test loop 4. What is algorithmic problem solving? Explain the process involved in algorithmic development? “Algorithmic-problem solving”; this means solving problems that require the formulation of an algorithm for their solution. The formulation of algorithms has always been an important element of problem-solving. An algorithmic Development Process Every problem solution starts with a plan. That plan is called an algorithm. An algorithm is a plan for solving a problem. There are many ways to write an algorithm.  Some are very informal.  some are quite formal.  mathematical in nature.  some are quite graphical. Once we have an algorithm, we can translate it into a computer program in some programming language. Our algorithm development process consists of five major steps.
  • 54. Step 1: Obtain a description of the problem. This step is much more difficult than it appears. In the following discussion, The word client refers to someone who wants to find a solution to aproblem, The word developer refers to someone who finds a way to solve theproblem. The developer must create an algorithm that will solve the client'sproblem. Step 2: Analyze the problem. The purpose of this step is to determine both the starting and ending points for solving the problem. This process is analogous to a mathematician determining whatis given and what must be proven. A good problem description makes it easier to perform this step. When determining the starting point, we should start by seeking answers to the following questions: When determining the ending point, we need to describe the characteristics of a solution. In other words, how will we know when we're done? Asking the following questions often helps to determine the ending point. Step 3: Develop a high-level algorithm. An algorithm is a plan for solving a problem, but plans come in several levels of detail. It's usually better to start with a high-level algorithm that includes the major part of a solution, but leaves the details until later. We can use an everyday exampleto demonstrate a high-level algorithm. Step 1: Obtain a description of the problem.Step 2: Analyze the problem. Step 3: Develop a high-level algorithm. Step 4: Refine the algorithm by adding more detail.Step 5: Review the algorithm.  What data are available?  Where is that data?  What formulas pertain to the problem?  What rules exist for working with the data?  What relationships exist among the data values?  What new facts will we have?  What items will have changed?  What changes will have been made to those items?  What things will no longer exist?
  • 55. High-level algorithm: This algorithm is satisfactory for daily use, but it lacks details that would have to beadded were a computer to carry out the solution. These details include answers to questions such as the following. These kinds of details are considered in the next step of our process. Step 4: Refine the algorithm by adding more detail.  A high-level algorithm shows the major steps that need to be followed to solvea problem.  Now we need to add details to these steps, but how much detail should weadd? Unfortunately, the answer to this question depends on the situation.  We have to consider who (or what) is going to implement the algorithm andhow much that person (or thing) already knows how to do. o Most of our examples will move from a high-level to a detailed algorithm in asingle step, but this is not always reasonable. o For larger, more complex problems, it is common to go through this processseveral times, developing intermediate level algorithms as we go. o Each time, we add more detail to the previous algorithm, stopping when wesee no benefit to further refinement. o This technique of gradually working from a high-level to a detailed algorithm isoften called stepwise refinement. Step 5: Review the algorithm. o First, we need to work through the algorithm step by step to determinewhether or not it Problem: I need a send a birthday card to my brother, Mark. Analysis: I don't have a card. I prefer to buy a card rather than make one myself. Go to a store that sells greeting cards Select a card Purchase a card Mail the card  "Which store will I visit?"  "How will I get there: walk, drive, ride my bicycle, take the bus?"  "What kind of card does Mark like: humorous, sentimental, risqué?" If someone is going to purchase Mark's birthday card on my behalf, my instructionshave to be adapted to whether or not that person is familiar with the stores in the community and how well the purchaser known my brother's taste in greeting cards. Stepwise refinement is a process for developing a detailed algorithm by graduallyadding detail to a high-level algorithm.
  • 56. will solve the original problem. o Once we are satisfied that the algorithm does provide a solution to theproblem, we start to look for other things. o The following questions are typical of ones that should be asked whenever wereview an algorithm. o Asking these questions and seeking their answers is a good way to developskills that can be applied to the next problem. 5. Write an algorithm and flowchart to find the minimum number in a list Algorithm: 1. Does this algorithm solve a very specific problem or does it solve a more general problem? 2. If it solves a very specific problem, should it be generalized? 3. Can this algorithm be simplified? 4. Is this solution similar to the solution to another problem? How are theyalike? How are they different? Problem: Given a list of positive numbers, return the smallest number on the list. Inputs: A list L of positive numbers. This list must contain at least one number. (Asking for the smallest number in a list of no numbers is not a meaningful question.) Outputs: A number n, which will be the smallest number of the list. 1. Start 2. Get positive numbers from user and add it in to the List L 3. Set min to L[0]. 4. For each number x in the list L, compare it to min. If x is smaller, set min to x. 5. min is now set to the minimum number in the list and print the result. 6. Stop
  • 57. Flowchart: 6. Write an algorithm for tower of Hanoi problem.
  • 58. 7. Write an algorithm to find thegivennumber is odd or even 8. Write an algorithm to find biggest among 3 numbers 1. Start 2. Move disk1 from pegA to pegC 3. Move disk2 from pegA to pegB 4. Move disk3 from pegC to pegB 5. Move disk1 from pegA to pegC 6. Move disk1 from pegB to pegA 7. Move disk2 from pegB to pegC 8. Move disk1 from pegA to peg C 9. Stop Step 1:Start Step 2: Declare a variable to get a Number Step 3: Read the input Step 4: Get the remainder of given number using modulo operator Step 5: If remainder is 0 prints “Even Number”, else print “Odd Number”. Step 6:Stop Step 1:Start Step 1: Declare three integer variables Step 2: Read the 3 inputs Step 3: Compare first two numbers and go to Step4 Step 4: If first number is greater than second number then compare first number with third number else go to step 6 Step 5: If first number is greater than third number print first number as biggest number else print third number as biggest Step 6: Compare second number with third number Step 7: If second number is greater than third number print second number as biggest number else print third number as biggest Step8:Stop