Part-1 Notes
Part-1 Notes
PROBLEM SOLVING
ALGORITHM
State:
Transition from one process to another process under specified condition
with in a time is called state.
Control flow:
The process of executing the individual statements in a given order is called
control flow.
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:
Selection:
A selection statement causes the program control to be transferred to a
specific part of the program based upon the condition.
If the conditional test is true, one part of the program will be executed,
otherwise it 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
Functions:
Example:
Algorithm for addition of two numbers using function
Main function()
Step 1: Start
Step 2: Call the function add()
Step 3: Stop
Advantages of flowchart:
Advantages:
Disadvantages:
BEGIN
GET a,b
ADD c=a+b
PRINT c
END
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 is saved, 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.
Assembly language:
To overcome the issues in programming language and make the
programming process easier, an assembly language is developed which is
logically equivalent to machine language but it is easier for people to read,
write and understand.
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.
Assembler
Assembler is the program which translates assembly language instruction
in to a machine language.
Disadvantage
Machine dependent
The assembly language program which can be executed on the machine
depends on 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 contains English words and symbols. The specified
rules are to 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. If any 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 error is 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 in high level language require more memory and take more
execution time to execute.
Scripting language:
Markup languages:
[PTO]
ALGORITHMIC PROBLEM SOLVING:
Algorithmic problem solving is solving problem that require the
formulation of an algorithm for the solution.
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.
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.
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
Main function:
BEGIN
GET n
CALL factorial(n)
PRINT fact
BIN
More examples:
BEGIN
READ l,b
CALCULATE A=l*b
DISPLAY A
END
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
Pseudocode
START
Procedure Hanoi(disk, source, dest, aux)
IF disk = = 0, THEN
move disk from source to dest
ELSE
Hanoi(disk - 1, source, aux, dest)
move disk from source to dest
Hanoi(disk - 1, aux, dest, source)
END IF
END Procedure
Write an algorithm and give the pseudo code to guess an integer number in
a range.
Algorithm:
step 1: Start the program
step 2: Read an 'n' number
step 3: Read an Guess number
step 4: if Guess> n; print "Your Guess too high" Step 5: elif Guess <n ; print
"Your Guess
too low" step 6: elif Guess = = n; print "Good job"
Step 7: else print"Nope "
Step :8 Stop the program
Pseudocode:
BEGIN
READ n
READ Guess = 20
IF Guess> n
print"Your Guess too High" elif Guess< n
print "Your Guess too low" elif Guess = = 20
print "Good Job"
ELSE
print"Nope"
ALGORITHM:
Step 1: Start
Step 2: Declare the variables N, List[],I and X
Step 3: READ Number of element in sorted list as N
Step 4: SET i=0
Step 5: IF i<N THEN go to step 6 ELSE go to step 9
Step 6: READ Sorted list element as List[i]
Step 7: i=i+1
Step 8: go to step 5
Step 9: READ Element to be insert as X
Step 10: SET i=N-1
Step 11: IF i>0 AND X<List[i] THEN go to step 12 ELSE go to step 15
Step 13: i=i-1
Step 14: go to step 11
Step 15: List[i+1]=X
Step 16: Stop
Pseudocode:
BEGIN
SET numlist=[ ]
GET n
FOR i=1 to n
GET numlist elements
ENDFOR
SET minimum = numlist[0]
FOR i in numlist
IF (n < minimum)
minimum = n
ENDIF
ENDFOR
PRINT minimum
END
What is Python?
Python is a general purpose, dynamic, high-level, and interpreted programming
language. It supports Object Oriented programming approach to develop
applications. It is simple and easy to learn and provides lots of high-level data
structures.
Python is easy to learn yet powerful and versatile scripting language, which makes it
attractive for Application Development.
Python's syntax and dynamic typing with its interpreted nature make it an ideal
language for scripting and rapid application development.
Python supports multiple programming pattern, including object-oriented,
imperative, and functional or procedural programming styles.
Python is not intended to work in a particular area, such as web programming. That
is why it is known as multipurpose programming language because it can be used
with web, enterprise, 3D CAD, etc.
Python makes the development and debugging fast because there is no compilation
step included in Python development, and edit-test-debug cycle is very fast.
Python History
o Python laid its foundation in the late 1980s.
o The implementation of Python was started in December 1989 by Guido Van
Rossum at CWI in Netherland.
o In February 1991, Guido Van Rossum published the code (labeled version
0.9.0) to alt.sources.
o In 1994, Python 1.0 was released with new features like lambda, map, filter,
and reduce.
o Python 2.0 added new features such as list comprehensions, garbage
collection systems.
o On December 3, 2008, Python 3.0 (also called "Py3K") was released. It was
designed to rectify the fundamental flaw of the language.
o ABC programming language is said to be the predecessor of Python language,
which was capable of Exception Handling and interfacing with the Amoeba
Operating System.
o The following programming languages influence Python:
o ABC language.
o Modula-3
Van Rossum wanted to select a name which unique, sort, and little-bit mysterious. So
he decided to select naming Python after the "Monty Python's Flying Circus" for
their newly created programming language.
The comedy series was creative and well random. It talks about everything. Thus it is
slow and unpredictable, which made it very interesting.
Python is also versatile and widely used in every technical field, such as Machine
Learning, Artificial Intelligence, Web Development, Mobile Application, Desktop
Application, Scientific Calculation, etc.
So, first figure out the motivation behind learning, which can anything be such as
knowing something new, develop projects using Python, switch to Python, etc. Below
are the general areas where Python is widely used. Pick any of them.
Python Applications
Python is known for its general-purpose nature that makes it applicable in almost
every domain of software development. Python makes its presence in every
emerging field. It is the fastest-growing programming language and can develop any
application.
To open the interactive mode, open the terminal (or command prompt) and type
python (python3 in case if you have Python2 and Python3 both installed on your
system).
Here, we get the message "Hello World !" printed on the console.
Using the script mode, we can write multiple lines code into a file which can be
executed later. For this purpose, we need to open an editor like notepad, create a file
named and save it with .py extension, which stands for "Python".
print ("hello world"); #here, we have used print() function to print the message on th
e console.
In Python, statements that are the same level to the right belong to the same block.
We can use four whitespaces to define indentation. Let's see the following lines of
code.
Example -
1. list1 = [1, 2, 3, 4, 5]
2. for i in list1:
3. print(i)
4. if i==4:
5. break
6. print("End of for loop")
Output:
1
2
3
4
End of for loop
Explanation:
In the above code, for loop has a code blocks and if the statement has its code block
inside for loop. Both indented with four whitespaces. The last print() statement is not
indented; that's means it doesn't belong to for loop.
Comments in Python
Comments are essential for defining the code and help us and other to understand
the code. By looking the comment, we can easily understand the intention of every
line that we have written in code. We can also find the error very easily, fix them, and
use in other applications.
In Python, we can apply comments using the # hash character. The Python
interpreter entirely ignores the lines followed by a hash character. A good
programmer always uses the comments to make code under stable. Let's see the
following example of a comment.
Python Identifiers
Python identifiers refer to a name used to identify a variable, function, module, class,
module or other objects. There are few rules to follow while naming the Python
Variable.
o A variable name must start with either an English letter or underscore (_).
o A variable name cannot start with the number.
o Special characters are not allowed in the variable name.
o The variable's name is case sensitive.
VARIABLES:
o
o A variable allows us to store a value by assigning it to a name,
which can be used later.
o Named memory locations to store values.
o Programmers generally choose names for their variables that are
meaningful.
o It can be of any length. No space is allowed.
o We don't need to declare a variable before using it. In Python, we
simply assign a value to a variable and it will exist.
Value:
Value can be any letter ,number or string.
Eg, Values are 2, 42.0, and 'Hello, World!'. (These values belong
to different datatypes.)
Data type:
Every value in Python has a data type.
It is a set of values, and the allowable operations on those values.
Sequence:
A sequence is an ordered collection of items, indexed by positive
integers.
It is a combination of mutable (value can be changed) and
immutable (values cannot be changed) data types.
There are three types of sequence data type available in Python, they are
1. Strings
2. Lists
3. Tuples
1. Strings
A String in Python consists of a series or sequence of characters -
letters, numbers, and special characters.
Strings are marked by quotes:
single quotes (' ') Eg, 'This a string in single quotes'
double quotes (" ") Eg, "'This a string in double quotes'"
triple quotes(""" """) Eg, This is a paragraph. It is made up of multiple
lines and sentences."""
Individual character in a string is accessed using a subscript (index).
Characters can be accessed using indexing and slicing operations
Strings are immutable i.e. the contents of the string cannot be changed after
it is created.
Indexing:
Operations on string:
i. Indexing
ii. Slicing
iii. Concatenation
iv. Repetitions
v. Member ship
2. Lists
List is an ordered sequence of items. Values in the list are called
elements / items.
It can be written as a list of comma-separated items (values)
between square brackets[ ].
Items in the lists can be of different data types.
Operations on list:
Indexing
Slicing
Concatenation
Repetitions
Updation, Insertion, Deletion
3. Tuple:
Dictionaries:
Statements:
-Instructions that a Python interpreter can executes are called statements.
-A statement is a unit of code like creating a variable or displaying a value.
>>> n = 17
>>> print(n)
Here, The first line is an assignment statement that gives a value to n.
The second line is a print statement that displays the value of n.
Expressions:
-An expression is a combination of values, variables, and operators.
-A value all by itself is considered an expression, and also a variable.
So the following are all legal expressions:
>>> 42
42
>>> a=2
>>> a+3+2
7
>>> z=("hi"+"friend")
>>> print(z)
Hifriend
Types of Operators:
Python language supports the following types of operators
Arithmetic Operators
Comparison (Relational) Operators
Assignment Operators
Logical Operators
Bitwise Operators
Membership Operators
Identity Operators
Arithmetic operators:
Output:
a+b= 15
a-b= 5
a*b= 50
a/b= 2.0
a%b= 0
a//b= 2
a**b= 100000
Output:
a>b=> True
a>b=> False
a==b=> False
a!=b=> True
a>=b=> False
a>=b=> True
Assignment Operators:
Example
a = 21
b = 10
c=0
c=a+b
print("Line 1 - Value of c is ", c)
c += a
print("Line 2 - Value of c is ", c)
c *= a
print("Line 3 - Value of c is ", c)
c /= a
print("Line 4 - Value of c is ", c)
c= 2 c %= a
print("Line 5 - Value of c is ", c) c **= a
print("Line 6 - Value of c is ", c) c //= a
print("Line 7 - Value of c is ", c)
Output
Line 1 - Value of c is 31
Line 2 - Value of c is 52
Line 3 - Value of c is 1092
Line 4 - Value of c is 52.0
Line 5 - Value of c is 2
Line 6 - Value of c is 2097152
Line 7 - Value of c is 99864
Logical Operators:
Logical operators are the and, or, not operators.
Example
a = True
b = False
print('a and b is',a and b)
print('a or b is',a or b)
print('not a is',not a)
Output
x and y is False
x or y is True
not x is False
Bitwise Operators:
Example:
Let x = 10 (0000 1010 in binary) and
y = 4 (0000 0100 in binary)
Example
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c=0
c = a & b; # 12 = 0000 1100
print "Line 1 - Value of c is ", c
c = a | b; # 61 = 0011 1101
print "Line 2 - Value of c is ", c
c = a ^ b; # 49 = 0011 0001
print "Line 3 - Value of c is ", c
c = ~a; # -61 = 1100 0011
print "Line 4 - Value of c is ", c
c = a << 2; # 240 = 1111 0000
print "Line 5 - Value of c is ", c
c = a >> 2; # 15 = 0000 1111
print "Line 6 - Value of c is ", c
Output
Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is 49
Line 4 - Value of c is -61
Line 5 - Value of c is 240
Line 6 - Value of c is 15
Membership Operators:
Identity Operators
They are used to check if two values (or variables) are located on the same
part of the memory.
Example
x=5
y=5
x2 = 'Hello'
y2 = 'Hello'
print(x1 is not y1)
print(x2 is y2)
Output
False
True
OPERATOR PRECEDENCE:
When an expression contains more than one operator, the order of
evaluation depends on the order of operations.