0% found this document useful (0 votes)
10 views177 pages

2 Practical Book Class 12 2019-20

The document outlines several programs that utilize recursive functions in Python to perform various tasks, including calculating factorials, finding GCD and LCM, generating Fibonacci sequences, summing list elements, checking for palindromes, copying lines from one file to another, counting lines in a file, and counting word frequency. Each program includes algorithms, flowcharts, and source code snippets to illustrate the implementation. The document serves as a comprehensive guide for understanding and applying recursive functions in programming.

Uploaded by

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

2 Practical Book Class 12 2019-20

The document outlines several programs that utilize recursive functions in Python to perform various tasks, including calculating factorials, finding GCD and LCM, generating Fibonacci sequences, summing list elements, checking for palindromes, copying lines from one file to another, counting lines in a file, and counting word frequency. Each program includes algorithms, flowcharts, and source code snippets to illustrate the implementation. The document serves as a comprehensive guide for understanding and applying recursive functions in programming.

Uploaded by

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

PROGRAM 01: WRITE A RECURSIVE FUNCTION TO FIND THE FACTORIAL OF A

NATURAL NUMBER.

ALGORITHM – RECURISVE FUNCTION: FACTORIAL (N)

STEP 01: IF N<=1 THEN

RETURN 1

STEP 02: ELSE

FACT=N*FACTORIAL (N-1)

STEP 03: RETURN FACT

ALGORITHM – DRIVER CODE: MAIN()

STEP 01: START

STEP 02: READ NUMBER N

STEP 03: F = FACTORIAL(N)

STEP 04: PRINT “FACTORIAL =”, F

STEP 05: STOP

Page No. 1
PROGRAM 01: WRITE A RECURSIVE FUNCTION TO FIND THE FACTORIAL OF
A NATURAL NUMBER.

FLOWCHART:

START

READ N

F = FACTORIAL(N)

PRINT “FACTORIAL = “,F FACTORIAL (N)

STOP

RETURN 1 If N<=1

FACT=N*FACTORIAL (N-1)

RETURN FACT

Page No. 2
PROGRAM 01: WRITE A RECURSIVE FUNCTION TO FIND THE FACTORIAL OF
A NATURAL NUMBER.

SNIPPET / SOURCE CODE:

def factorial(n):

if(n <= 1):

return 1

else:

fact=n*factorial (n-1)

return(fact)

# DRIVER CODE:

def main():

n = int(input("Enter number:"))

f=factorial (n)

print("Factorial:",f)

main()

Page No. 3
PROGRAM 01: WRITE A RECURSIVE FUNCTION TO FIND THE FACTORIAL OF
A NATURAL NUMBER.

OUTPUT:

PROGRAM 02: WRITE A RECURSIVE FUNCTION TO FIND LCM AND HCF OR


GCD.

ALGORITHM – RECURISVE FUNCTION: GCD(A,B)

STEP 01: IF B==0 THEN

RETURN A

STEP 02: ELSE

RETURN GCD (B,A%B)

Page No. 4
ALGORITHM – DRIVER CODE: MAIN ()

STEP 01: START

STEP 02: READ A,B

STEP 03: D=GCD(N1,N2)

STEP 04: H=(N1*N2)//D

STEP 05: PRINT("GCD OF",N1,"AND",N2,"IS:",D)

STEP 06: PRINT("HCF OF",N1,"AND",N2,"IS:",H)

STEP 07: STOP

PROGRAM 02: WRITE A RECURSIVE FUNCTION TO FIND LCM AND HCF OR


GCD.

FLOWCHART:

START

READ A,B

D=GCD(N1,N2)
Page No. 5
GCD(A,B)
H=(N1*N2)//D
PROGRAM 02: WRITE A RECURSIVE FUNCTION TO FIND LCM AND HCF OR
GCD.

SNIPPET / SOURCE CODE:

#GCD FUNCTION:

def gcd(a,b):

if(b==0):

return a

else:

return gcd (b,a%b)

# DRIVER CODE:

def main():

n1=int(input("Enter the first no:"))

n2=int(input("Enter the second no:"))

d=gcd(n1,n2)

h=(n1*n2)//d

print("GCD of",n1,"and",n2,"is:",d)

print("HCF of",n1,"and",n2,"is:",h)

main()

Page No. 6
PROGRAM 02: WRITE A RECURSIVE FUNCTION TO FIND LCM AND HCF OR
GCD.

OUTPUT:

Page No. 7
PROGRAM 03: WRITE A RECURSIVE FUNCTION TO GENERATE FIBONACCI
SEQUENCE UP TO N TERMS.

ALGORITHM – RECURISVE FUNCTION: FIB(N)

STEP 01: IF N<=0 THEN

RETURN N

STEP 02: ELSE

RETURN (FIB(N-1) + FIB(N-2))

ALGORITHM – DRIVER CODE: MAIN()

STEP 01: START

STEP 02: READ M

STEP 03: FOR I IN RANGE (M)

PRINT (FIB(I))

STEP 04: STOP

Page No. 8
PROGRAM 03: WRITE A RECURSIVE FUNCTION TO GENERATE FIBONACCI
SEQUENCE UP TO N TERMS.

FLOW CHART:

START

READ M

FOR I IN RANGE(M)
TRUE PRINT (FIB(I))

FALSE

STOP
FUCTION
CALL

FIB(N)

IF N<=0
RETURN N

FALSE

RETURN (FIB(N-1) + FIB(N-2))

Page No. 9
PROGRAM 03: WRITE A RECURSIVE FUNCTION TO GENERATE FIBONACCI
SEQUENCE UP TO N TERMS.

SNIPPET / SOURCE CODE:

#FIB(N) RECURSIVE FUNCTION

def fib(n):
if n<=1:
return n
else:
return(fib(n-1)+fib(n-2))

#DRIVER CODE:

def main():
m=int(input('How many terms: '))
for i in range(m):
print(fib(i),end=',')
main()

Page No. 10
PROGRAM 03: WRITE A RECURSIVE FUNCTION TO GENERATE FIBONACCI
SEQUENCE UP TO N TERMS.

OUTPUT:

Page No. 11
PROGRAM 04: WRITE A RECURSIVE FUNCTION TO FIND THE SUM OF ALL
ELEMENTS OF A LIST.

ALGORITHM – DRIVER CODE: MAIN()

STEP 01: START

STEP 02: READ N

STEP 03: A=[]

STEP 04: FOR I IN RANGE(N)

READ ELEMENT

A.APPEND(ELEMENT)

PRINT "THE LIST IS:",A

STEP 05: PRINT "SUM OF ITEMS IN LIST:"

STEP 06: B=SUM_ARR(A,N)

STEP 07: PRINT B

STEP 08: STOP

ALGORITHM – RECURISVE FUNCTION: SUM_ARR(ARR,SIZE):

STEP 01: START

STEP 02: IF SIZE = = 0

RETURN 0

STEP 03: ELSE

RETURN ARR[SIZE-1]+SUM_ARR(ARR,SIZE-1)

Page No. 12
PROGRAM 04: WRITE A RECURSIVE FUNCTION TO FIND THE SUM OF ALL
ELEMENTS OF A LIST.

FLOW CHART:

START

READ N

a=[]

FALSE
FOR FOR I IN
RANGE(N)

PRINT "THE SUM IS:”


TRUE

READ ELEMENT B=SUM_ARR(A,N)

A.APPEND(ELEMENT) PRINT B

PRINT "THE LIST IS:",A


STOP

SUM_ARR(ARR,SIZE)

TRUE
IF SIZE = = 0 RETURN 0

FALSE
Page No. 13
RETURN ARR[SIZE-1]+SUM_ARR(ARR,SIZE-1)

PROGRAM 04: WRITE A RECURSIVE FUNCTION TO FIND THE SUM OF ALL


ELEMENTS OF A LIST.

SNIPPET / SOURCE CODE:

def sum_arr(arr,size):

if(size==0):

return 0

else:

return arr[size-1]+sum_arr(arr,size-1)

#DRIVER CODE: MAIN PROGRAM:

def main():

n=int(input("Enter the no. of elements in the list:"))

a=[]

for i in range(0,n):

element = int(input("Enter element:"))

a.append(element)

print("The list is:")

print(a)

print("sum of items in list:")

b=sum_arr(a,n) # CALLING A FUNCTION

print(b)

main()

Page No. 14
PROGRAM 04: WRITE A RECURSIVE FUNCTION TO FIND THE SUM OF ALL
ELEMENTS OF A LIST.

OUTPUT:

Page No. 15
PROGRAM 05: WRITE A RECURSIVE FUNCTION TO TEST A STRING IS A
PALINDROME OR NOT.

ALGORITHM – RECURISVE FUNCTION: IS_PALINDROME(S):

STEP 01: if len(s) < 1:

return True

STEP 02: else:

if s[0] == s[-1]:

return is_palindrome(s[1:-1])

STEP 03: else:

return False

ALGORITHM – DRIVER CODE: MAIN()

STEP 01: a=str(input("Enter string:"))

STEP 02: if(is_palindrome(a)==True):

print("String is a palindrome!")

STEP 03: else:

print("String isn't a palindrome!")

Page No. 16
PROGRAM 05: WRITE A RECURSIVE FUNCTION TO TEST A STRING IS A
PALINDROME OR NOT.

FLOW CHART:

START

A=STR(INPUT("ENTER STRING:"))

a=[] FUNCTION CALL

TRUE FALSE
IF(IS_PALINDROME(A)== TRUE):

PRINT("STRING IS A PALINDROME!")

PRINT("STRING ISN'T A PALINDROME!") print("String isn't a palin

S STOP

IS_PALINDROME(A)

TRUE
IF LEN(S) < 1: RETURN TRUE

FALSE
FALSE
if s[0] == s[-1]: RETURN FALSE
Page No. 17
TRUE

return is_palindrome(s[1:-1])
PROGRAM 05: WRITE A RECURSIVE FUNCTION TO TEST A STRING IS A
PALINDROME OR NOT.

SNIPPET / SOURCE CODE:

def is_palindrome(s):

if len(s) < 1:

return True

else:

if s[0] == s[-1]:

return is_palindrome(s[1:-1])

else:

return False

#DRIVER CODE: MAIN PROGRAM:

def main():

a=str(input("Enter string:"))

if(is_palindrome(a)==True):

print("String is a palindrome!")

else:

print("String isn't a palindrome!"

main()

Page No. 18
PROGRAM 05: WRITE A RECURSIVE FUNCTION TO TEST A STRING IS A
PALINDROME OR NOT.

OUTPUT:

Page No. 19
PROGRAM 06: WRITE A PROGRAM TO COPY ALL THE LINES THAT CONTAIN THE
CHARACTER `A' IN A FILE AND WRITE IT TO ANOTHER FILE.

ALGORITHM – FUNCTION: WRITE_LINES_TO_FILE(V_LINE):

STEP 01: START


STEP 02: V_FILEOB= OPEN("NEWTEST.TXT","A+")
STEP 03: V_FILEOB.WRITE("\N"+V_LINE)
STEP 04: V_FILEOB.CLOSE()
STEP 05: STOP

ALGORITHM – FUNCTION: READ_LINES_FROM_FILE():

STEP 01: START


STEP 02: V_FILEOB=OPEN("TEST.TXT","R")
STEP 02: V_LINE=V_FILEOB.READLINE()
STEP 03: WHILE (V_LINE!=""):
STEP 04: IF (V_LINE[0]=='A' OR V_LINE[0]=='A'):
STEP 05: WRITE_LINES_TO_FILE(V_LINE)
STEP 06: V_LINE=V_FILEOB.READLINE()
STEP 07: PRINT("FILE CREATED! LINES COPIED")
STEP 08: V_FILEOB.CLOSE()
STEP 09: STOP

ALGORITHM – DRIVER CODE: MAIN()

STEP 01: START


STEP 02: READ_LINES_FROM_FILE()

Page No. 20
STEP 03: STOP

PROGRAM 06: WRITE A PROGRAM TO COPY ALL THE LINES THAT CONTAIN THE
CHARACTER `A' IN A FILE AND WRITE IT TO ANOTHER FILE.

FLOW CHART: WRITE_LINES_TO_FILE(V_LINE): FUNCTION

WRITE_LINES_TO_FILE(V_LINE):

V_FILEOB= OPEN("NEWTEST.TXT","A+")

V_FILEOB.WRITE("\N"+V_LINE)

V_FILEOB.CLOSE()

STOP

FLOW CHART: READ_LINES_FROM_FILE(): FUNCTION

READ_LINES_FROM_FILE():

V_FILEOB=OPEN("TEST.TXT","R")

V_LINE=V_FILEOB.READLINE()

LOOP WHILE (V_LINE!=""): FALSE

TRUE

X Y Z
Page No. 21
Y

IF (V_LINE[0]=='A' OR V_LINE[0]=='A'):
TRUE

FALSE WRITE_LINES_TO_FILE(V_LINE)

V_LINE=V_FILEOB.READLINE()

x V_STR=V_FILEOB.READLINE()

PRINT("FILE CREATED! LINES


COPIED") Z

V_FILEOB.CLOSE()

STOP

Page No. 22
PROGRAM 06: WRITE A PROGRAM TO COPY ALL THE LINES THAT CONTAIN THE
CHARACTER `A' IN A FILE AND WRITE IT TO ANOTHER FILE.

SNIPPET / SOURCE CODE:

def Write_Lines_To_File(V_Line):
V_FileOB= open("Newtest.txt","a+")
V_FileOB.write("\n"+V_Line)
V_FileOB.close()

def Read_Lines_From_File():
V_FileOB=open("test.txt","r")
V_Line=V_FileOB.readline()
print(" First Letter : ", V_Line[0])
while (V_Line!=""):
if (V_Line[0]=='a' or V_Line[0]=='A'):
Write_Lines_To_File(V_Line)
V_Line=V_FileOB.readline()
print("File Created! Lines Copied")
V_FileOB.close()

#Driver Code

def main():
Read_Lines_From_File()

Page No. 23
main()

PROGRAM 06: WRITE A PROGRAM TO COPY ALL THE LINES THAT CONTAIN THE
CHARACTER `A' IN A FILE AND WRITE IT TO ANOTHER FILE.

OUTPUT :

TEST.txt CONTAINS:

NEW FILE CREATED NAMED NEWTEST.txt AND COPIED LINES STARTS WITH a
OR A LETTER FROM TEST.txt FILE

Page No. 24
PROGRAM 07: WRITE A PROGRAM TO COUNT THE NUMBER OF LINES IN A TEXT
FILE.

ALGORITHM – FUNCTION: COUNT_LINES(FNAME):

STEP 01: START


STEP 02: COUNT_LINES = 0

STEP 03: WITH OPEN(FNAME) AS F:

STEP 04: FOR LINE IN F:

STEP 05: COUNT_LINES = COUNT_LINES + 1

STEP 06: PRINT("TOTAL NUMBER OF LINES: ",COUNT_LINES)

STEP 07: STOP

ALGORITHM – DRIVER CODE: MAIN()

STEP 01: START

STEP 02: COUNT_LINES('TEST.TXT')

STEP 03: STOP

Page No. 25
PROGRAM 07: WRITE A PROGRAM TO COUNT THE NUMBER OF LINES IN A TEXT
FILE.

FLOWCHART – FUNCTION: COUNT_LINES(FNAME):

START

COUNT_LINES = 0

WITH OPEN(FNAME) AS F:

LOOP FALSE
FOR LINE IN F:

TRUE
COUNT_LINES = COUNT_LINES + 1

PRINT("TOTAL NUMBER OF
LINES: ",COUNT_LINES)

STOP

FLOWCHART – DRIVER CODE: MAIN()

START

COUNT_LINES('TEST.TXT')

Page No. 26
STOP

PROGRAM 07: WRITE A PROGRAM TO COUNT THE NUMBER OF LINES IN A TEXT


FILE.

SNIPPET / SOURCE CODE:

def Count_Lines(fname):

count_lines=0

with open(fname) as f:

for line in f:

count_lines=count_lines+1

print("Total Number of Lines: ",count_lines)

#Driver Code

def main():

Count_Lines('test.txt')

main()

Page No. 27
PROGRAM 07: WRITE A PROGRAM TO COUNT THE NUMBER OF LINES IN A TEXT
FILE.

OUTPUT:

TEST.txt FILE CONTENT:

OUTPUT GENERATED BY PROGRAM:

Page No. 28
PROGRAM 08: WRITE A PYTHON PROGRAM TO COUNT THE FREQUENCY OF WORDS
IN A FILE.

ALGORITHM – FUNCTION: WORD_COUNT(FNAME):

STEP 01: START


STEP 02: WITH OPEN(FNAME) AS F:

STEP 03: RETURN COUNTER (F.READ().SPLIT())

ALGORITHM – DRIVER CODE: MAIN()

STEP 01: START

STEP 02: PRINT ("NUMBER OF WORDS IN THE FILE :",

WORD_COUNT("PARA.TXT"))

STEP 03: STOP

Page No. 29
PROGRAM 08: WRITE A PYTHON PROGRAM TO COUNT THE FREQUENCY OF WORDS
IN A FILE.

FLOWCHART – FUNCTION: WORD_COUNT(FNAME):

START

WITH OPEN(FNAME) AS F:

RETURN COUNTER (F.READ().SPLIT())

FLOWCHART – DRIVER CODE: MAIN()

START

PRINT("NUMBER OF WORDS
IN THE FILE :",
WORD_COUNT("PARA.TXT"))

STOP

Page No. 30
PROGRAM 08: WRITE A PYTHON PROGRAM TO COUNT THE FREQUENCY OF WORDS
IN A FILE.

SNIPPET / SOURCE CODE:

from collections import Counter

def word_count(fname):

with open(fname) as f:

return Counter(f.read().split())

#Driver Code

def main():

print("Number of words in the file :",word_count("para.txt"))

main()

Page No. 31
PROGRAM 08: WRITE A PYTHON PROGRAM TO COUNT THE FREQUENCY OF WORDS
IN A FILE.

OUTPUT:

PARA.txt FILE CONTENT:

OUTPUT GENERATED BY PROGRAM:

Page No. 32
PROGRAM 09: WRITE A PROGRAM TO READ A RANDOM LINE FROM A FILE.

ALGORITHM – FUNCTION: READ_RANDOM_LINES(FNAME):

STEP 01: START


STEP 02: LINES = OPEN(FNAME).READ().SPLITLINES()
STEP 03: RETURN RANDOM.CHOICE(LINES)

ALGORITHM – FUNCTION: READ_RANDOM_LINES(FNAME):

STEP 01: START


STEP 02: PRINT(READ_RANDOM_LINE('ROBOTICS.TXT'))
STEP 03: STOP

Page No. 33
PROGRAM 09: WRITE A PROGRAM TO READ A RANDOM LINE FROM A FILE.

FLOWCHART – FUNCTION: READ_RANDOM_LINES(FNAME):

START

LINES = OPEN(FNAME).READ().SPLITLINES()

RETURN RANDOM.CHOICE(LINES)

FLOWCHART – DRIVER CODE: MAIN()

START

PRINT(READ_RANDOM_LINE
('ROBOTICS.TXT'))

STOP

PROGRAM 09: WRITE A PROGRAM TO READ A RANDOM LINE FROM A FILE.

Page No. 34
SNIPPET / SOURCE CODE:

import random

def Read_Random_Lines(fname):

lines = open(fname).read().splitlines()

return random.choice(lines)

#Drive Code

def main():

print(Read_Random_Line('robotics.txt'))

main()

OUTPUT:

PROGRAM 10: : WRITE A PROGRAM TO DISPLAY ALL THE STRINGS STORED IN


IT IN UPPER CASE AND ALSO FIND THE FILE SIZE OF A PLAIN FILE.

Page No. 35
ALGORITHM – FUNCTION: FIND_FILE_SIZE(FNAME):

STEP 01: START


STEP 02: IMPORT OS
STEP 03: STATINFO = OS.STAT(FNAME)
STEP 04: RETURN STATINFO.ST_SIZE

ALGORITHM – FUNCTION: DISPLAY_LINE_IN_UPPER_CASE(FNAME):


STEP 01: START
STEP 02: WITH OPEN(FNAME) AS F:
STEP 03: FOR LINE IN F:
STEP 04: PRINT(LINE.UPPER())
STEP 05: STOP

ALGORITHM – DRIVER CODE: MAIN():

STEP 01: START

STEP 02: PRINT("FILE SIZE IN BYTES OF A PLAIN FILE:


",FIND_FILE_SIZE("TEST.TXT"))
STEP 03: DISPLAY_LINE_IN_UPPER_CASE("TEST.TXT")

STEP 04: STOP

PROGRAM 10: : WRITE A PROGRAM TO DISPLAY ALL THE STRINGS STORED IN


IT IN UPPER CASE AND ALSO FIND THE FILE SIZE OF A PLAIN FILE.

Page No. 36
FLOWCHART – FUNCTION: FIND_FILE_SIZE(FNAME):

START

IMPORT OS (MODULE)

STATINFO = OS.STAT(FNAME)

RETURN STATINFO.ST_SIZE

FLOW CHART – FUNCTION: DISPLAY_LINE_IN_UPPER_CASE(FNAME):

START

COUNT_LINES = 0

WITH OPEN(FNAME) AS F:

LOOP FALSE
FOR LINE IN F:

TRUE
PRINT(LINE.UPPER()))

STOP

PROGRAM 10: : WRITE A PROGRAM TO DISPLAY ALL THE STRINGS STORED IN


IT IN UPPER CASE AND ALSO FIND THE FILE SIZE OF A PLAIN FILE.

Page No. 37
FLOW CHART – DRIVER CODE: MAIN():

START

PRINT("FILE SIZE IN BYTES OF


A PLAIN FILE: ",
FIND_FILE_SIZE("TEST.TXT")))

DISPLAY_LINE_IN_UPPER_CASE("TEST.TXT")

STOP

PROGRAM 10: : WRITE A PROGRAM TO DISPLAY ALL THE STRINGS STORED IN


IT IN UPPER CASE AND ALSO FIND THE FILE SIZE OF A PLAIN FILE.

Page No. 38
def Find_File_Size(fname):

import os

statinfo = os.stat(fname)

return statinfo.st_size

def Display_Line_In_Upper_Case(fname):

with open(fname) as f:

for line in f:

print(line.upper())

#Driver Code

def main():

print("File size in bytes of a plain file:

",Find_File_Size("test.txt"))

Display_Line_In_Upper_Case("test.txt")

main()

PROGRAM 10: : WRITE A PROGRAM TO DISPLAY ALL THE STRINGS STORED IN


IT IN UPPER CASE AND ALSO FIND THE FILE SIZE OF A PLAIN FILE.

Page No. 39
OUTPUT:

Page No. 40
PROGRAM 11: WRITE A PYTHON PROGRAM TO IMPLIMENT 2 USER DEFINED
FUNCTIONS ONE IS TO CREATE BINARY FILE AND ANOTHER IS TO READ
BINARY FILE (MAKE USE OF PICKLE MODULE).

ALGORITHM – FUNCTION: BINARY_FILE_CREATE():

STEP 01: START


STEP 02: IMPORT PICKLE
STEP 03: MYLIST=[68,43,42,78,90,53,26,81,90,345]
STEP 04: F=OPEN("MYFILE.DAT",'WB')
STEP 05: PICKLE.DUMP(MYLIST,F)
STEP 06: PRINT("BINARY FILE CREATED AND LIST IS ADDED!")
STEP 07: F.CLOSE()
STEP 08: STOP

ALGORITHM – FUNCTION: BINARY_FILE_READ():


STEP 01: START
STEP 02: IMPORT PICKLE
STEP 03: F=OPEN("MYFILE.DAT","RB")
STEP 04: READ_LIST=PICKLE.LOAD(F)
STEP 05: PRINT("THE CONTENT OF MYFILE.DAT IS AS FOLLOWS: ")
STEP 06: PRINT(READ_LIST)
STEP 07: F.CLOSE()
STEP 08: STOP

ALGORITHM – DRIVER CODE: MAIN():

STEP 01: START

STEP 02: BINARY_FILE_CREATE()

STEP 03: BINARY_FILE_READ()

STEP 04: STOP

Page No. 41
PROGRAM 11: WRITE A PYTHON PROGRAM TO IMPLIMENT 2 USER DEFINED
FUNCTIONS ONE IS TO CREATE BINARY FILE AND ANOTHER IS TO READ
BINARY FILE (MAKE USE OF PICKLE MODULE).

FLOWCHART – FUNCTION: BINARY_FILE_CREATE():

START

IMPORT PICKLE (MODULE)

MYLIST=[68,43,42,78,90,53,26,81,90,345]

F=OPEN("MYFILE.DAT",'WB')

PICKLE.DUMP(MYLIST,F)

PRINT("BINARY FILE
CREATED AND LIST IS
ADDED!")

F.CLOSE()

STOP

FLOWCHART – FUNCTION: BINARY_FILE_READ():

START

IMPORT PICKLE (MODULE)

F=OPEN("MYFILE.DAT",'WB')

Page No. 42
X

READ_LIST=PICKLE.LOAD(F)

PRINT("THE CONTENT OF
MYFILE.DAT IS AS
FOLLOWS: ")

PRINT(READ_LIST)

F.CLOSE()

STOP

FLOWCHART – DRIVER CODE: MAIN()

START

BINARY_FILE_CREATE()

BINARY_FILE_READ()

STOP

Page No. 43
PROGRAM 11: WRITE A PYTHON PROGRAM TO IMPLIMENT 2 USER DEFINED
FUNCTIONS ONE IS TO CREATE BINARY FILE AND ANOTHER IS TO READ
BINARY FILE (MAKE USE OF PICKLE MODULE).

SNIPPET / SOURCE CODE:

def Binary_File_Create():
import pickle
Mylist=[68,43,42,78,90,53,26,81,90,345]
f=open("myfile.dat",'wb')
pickle.dump(Mylist,f)
print("Binary File Created and List is added!")
f.close()

def Binary_File_Read():
import pickle
f=open("myfile.dat","rb")
Read_List=pickle.load(f)
print("The Content of Myfile.dat is as follows: ")
print(Read_List)
f.close()

# Driver Code:
def main():
Binary_File_Create()
Binary_File_Read()
main()

Page No. 44
PROGRAM 11: WRITE A PYTHON PROGRAM TO IMPLIMENT 2 USER DEFINED
FUNCTIONS ONE IS TO CREATE BINARY FILE AND ANOTHER IS TO READ
BINARY FILE (MAKE USE OF PICKLE MODULE).

OUTPUT:

Page No. 45
PROGRAM 12: WRITE A PROGRAM THAT GENERATES RANDOM NUMBERS BETWEEN
1 AND 6 (SIMULATES A DICE).

ALGORITHM – DRIVER CODE: ROLL_DICE():

STEP 01: START

STEP 02: IMPORT RANDOM (GLOBAL DECLARATION)

STEP 03: PRINT (RANDOM.RANDINT(1, 6))

STEP 04: PRINT("""WELCOME TO MY PYTHON RANDOM DICE PROGRAM!

TO START PRESS ENTER! WHENEVER YOU ARE OVER, TYPE


QUIT.""")

STEP 05: FLAG = TRUE

STEP 06: WHILE FLAG:

STEP 07: USER_PROMPT = INPUT(">")

STEP 08: IF USER_PROMPT.LOWER() == "quit":

STEP 09: FLAG = FALSE

ELSE:

STEP 10: PRINT("ROLLING DICE...\NYOUR NUMBER IS:")

STEP 11: STOP

Page No. 46
PROGRAM 12: WRITE A PROGRAM THAT GENERATES RANDOM NUMBERS BETWEEN
1 AND 6 (SIMULATES A DICE).

FLOWCHART – DRIVER CODE: ROLL_DICE():

START

IMPORT RANDOM (GLOBAL DECLARATION)

PRINT (RANDOM.RANDINT(1, 6))

PRINT("WELCOME TO MY PYTHON RANDOM


DICE PROGRAM!TO START PRESS ENTER!
WHENEVER YOU ARE OVER, TYPE QUIT.")

FLAG = TRUE

LOOP FALSE
WHILE FLAG:

TRUE

USER_PROMPT = INPUT(">") R

IF USER_PROMPT.LOWER() == FALSE
"quit": Q

TRUE
FLAG = FALSE

P
Page No. 47
PROGRAM 12: WRITE A PROGRAM THAT GENERATES RANDOM NUMBERS BETWEEN
1 AND 6 (SIMULATES A DICE).

FLOWCHART – DRIVER CODE: ROLL_DICE():

P PRINT("ROLLING DICE...\n YOUR NUMBER


IS:")

STOP

Page No. 48
PROGRAM 12: WRITE A PROGRAM THAT GENERATES RANDOM NUMBERS BETWEEN
1 AND 6 (SIMULATES A DICE).

SNIPPET / SOURCE CODE:

#Random dice

import random

def roll_dice():

print (random.randint(1, 6))

print("""Welcome to my python random dice program!

To start press enter! Whenever you are over, type quit.""")

flag = True

while flag:

user_prompt = input(">")

if user_prompt.lower() == "quit":

flag = False

else:

print("Rolling dice...\nYour number is:")

roll_dice()

Page No. 49
PROGRAM 12: WRITE A PROGRAM THAT GENERATES RANDOM NUMBERS BETWEEN
1 AND 6 (SIMULATES A DICE).

OUTPUT:

Page No. 50
PROGRAM 13: WRITE A PYTHON FUNCTION SIN(X, N) TO CALCULATE THE
VALUE OF SIN(X) USING ITS TAYLOR SERIES EXPANSION UP TO N TERMS.
COMPARE THE VALUES OF SIN(X) FOR DIFFERENT VALUES OF N WITH THE
CORRECT VALUE

TAYLOR SERIES FORMULA:

ALGORITHM – FUNCTION: SIN_SERIES(X,N):

STEP 01: START


STEP 02: IMPORT MATH # GLOBAL DECLARATION

STEP 03: SINE = 0


STEP 04: FOR I IN RANGE(N):
STEP 05: SIGN = (-1)**I

STEP 06: PI=22/7

STEP 07: Y=X*(PI/180)

STEP 08: SINE = SINE + ((Y**(2.0*I+1)) /

MATH.FACTORIAL (2*I+1)) * SIGN

STEP 09: RETURN SINE

ALGORITHM – DRIVER CODE: MAIN():

STEP 01: START


STEP 02: X=INT(INPUT("ENTER THE VALUE OF X IN DEGREES:"))

STEP 03: N=INT(INPUT("ENTER THE NUMBER OF TERMS:"))

STEP 04: PRINT(ROUND(SIN(X,N),2))


STEP 05: STOP

Page No. 51
PROGRAM 13: WRITE A PYTHON FUNCTION SIN(X, N) TO CALCULATE THE
VALUE OF SIN(X) USING ITS TAYLOR SERIES EXPANSION UP TO N TERMS.
COMPARE THE VALUES OF SIN(X) FOR DIFFERENT VALUES OF N WITH THE
CORRECT VALUE

TAYLOR SERIES FORMULA:

FLOWCHART – FUNCTION: SIN_SERIES(X,N):

START

IMPORT MATH # GLOBAL

SINE = 0DECLARATION

LOOP FOR I IN FALSE


RANGE(N):

TRUE

SIGN = (-1)**I

PI=22/7

Y=X*(PI/180)

SINE = SINE + ((Y**(2.0*I+1)) /

MATH.FACTORIAL (2*I+1)) * SIGN

RETURN SINE

Page No. 52
PROGRAM 13: WRITE A PYTHON FUNCTION SIN(X, N) TO CALCULATE THE
VALUE OF SIN(X) USING ITS TAYLOR SERIES EXPANSION UP TO N TERMS.
COMPARE THE VALUES OF SIN(X) FOR DIFFERENT VALUES OF N WITH THE
CORRECT VALUE

TAYLOR SERIES FORMULA:

FLOWCHART – DRIVER CODE: MAIN():

START

X=INT(INPUT("ENTER THE
VALUE OF X IN DEGREES:"))

N=INT(INPUT("ENTER THE
NUMBER OF TERMS:"))

PRINT(ROUND(SIN(X,N),2))

STOP

Page No. 53
PROGRAM 13: WRITE A PYTHON FUNCTION SIN(X, N) TO CALCULATE THE
VALUE OF SIN(X) USING ITS TAYLOR SERIES EXPANSION UP TO N TERMS.
COMPARE THE VALUES OF SIN(X) FOR DIFFERENT VALUES OF N WITH THE
CORRECT VALUE.

TAYLOR’S FORMULA

SNIPPET / SOURCE CODE:

import math

def Sin_Series(x,n):

sine = 0

for i in range(n):

sign = (-1)**i

pi=22/7

y=x*(pi/180)

sine = sine + ((y**(2.0*i+1))/math.factorial(2*i+1))*sign

return sine

# Driver Code

def main():

x=int(input("Enter the value of x in degrees:"))

n=int(input("Enter the number of terms:"))

print(round(Sin_Series(x,n),2))

main()

Page No. 54
PROGRAM 13: WRITE A PYTHON FUNCTION SIN(X, N) TO CALCULATE THE
VALUE OF SIN(X) USING ITS TAYLOR SERIES EXPANSION UP TO N TERMS.
COMPARE THE VALUES OF SIN(X) FOR DIFFERENT VALUES OF N WITH THE
CORRECT VALUE

TAYLOR SERIES FORMULA:

OUTPUT:

Page No. 55
PROGRAM 14: WRITE A PYTHON PROGRAM TO PLOT THE FUNCTION Y = X 2 USING
THE PYPLOT OR MATPLOTLIB LIBRARIES.

ALGORITHM – FUNCTION: PLOT_FUNCTION():

STEP 01: START


STEP 02: IMPORT MATPLOTLIB.PYPLOT AS PL
STEP 03: IMPORT NUMPY AS NP
STEP 04: X= NP.LINSPACE(-50,50);
STEP 05: Y= X**2
STEP 06: PL.PLOT(X,Y,LINESTYLE='-')
STEP 07: PL.SHOW( )

ALGORITHM – DRIVER CODE: MAIN():

STEP 01: START


STEP 02: PLOT_FUNCTION() #FUNCTION CALL
STEP 03: STOP

Page No. 56
PROGRAM 14: WRITE A PYTHON PROGRAM TO PLOT THE FUNCTION Y = X 2 USING
THE PYPLOT OR MATPLOTLIB LIBRARIES.

FLOWCHART: FUNCTION: PLOT_FUNCTION():

START

IMPORT MATPLOTLIB.PYPLOT AS PL

IMPORT NUMPY AS NP

X= NP.LINSPACE(-50,50);

Y= X**2

X= NP.LINSPACE(-50,50);

PL.PLOT(X,Y,LINESTYLE='-')

FLOWCHART: DRIVER CODE: MAIN():

START

PLOT_FUNCTION()

STOP

Page No. 57
PROGRAM 14: WRITE A PYTHON PROGRAM TO PLOT THE FUNCTION Y = X 2 USING
THE PYPLOT OR MATPLOTLIB LIBRARIES.

SNIPPET / SOURCE CODE:

def Plot_Function():

import matplotlib.pyplot as pl

import numpy as np

x= np.linspace(-50,50);

y= x**2

pl.plot(x,y,linestyle='-')

pl.show( )

#Driver Code

def main():

Plot_Function() #Function Call

main()

Page No. 58
PROGRAM 14: WRITE A PYTHON PROGRAM TO PLOT THE FUNCTION Y = X 2 USING
THE PYPLOT OR MATPLOTLIB LIBRARIES.

OUTPUT:

Page No. 59
PROGRAM 15: WRITE A PROGRAM TO PLOT A BAR CHART IN PYTHON TO
DISPLAY THE RESULT OF A SCHOOL FOR FIVE CONSECUTIVE YEARS.

ALGORITHM – FUNCTION: SCHOOL_RESULTS_BARCHART():

STEP 01: START


STEP 02: IMPORT MATPLOTLIB.PYPLOT AS PL
STEP 03: YEAR = ['2015','2016','2017','2018','2019']
STEP 04: P = [98.50,70.25,55.20,90.5,61.50]
STEP 05: J = ['B','G','R','M','C']
STEP 06: PL.BAR(YEAR, P, WIDTH=0.2, COLOR=J)
STEP 07: PL.XLABEL("YEAR")
STEP 08: PL.YLABEL("PASS%")
STEP 09: PL.SHOW( )

ALGORITHM DRIVER CODE: MAIN():

STEP 01: START


STEP 02: SCHOOL_RESULTS_BARCHART() #FUNCTION CALL
STEP 03: STOP

Page No. 60
PROGRAM 15: WRITE A PROGRAM TO PLOT A BAR CHART IN PYTHON TO
DISPLAY THE RESULT OF A SCHOOL FOR FIVE CONSECUTIVE YEARS.

FLOWCHART: FUNCTION: SCHOOL_RESULTS_BARCHART():

START

IMPORT MATPLOTLIB.PYPLOT AS PL

YEAR = ['2015','2016','2017','2018','2019']

P = [98.50,70.25,55.20,90.5,61.50]

J = ['B','G','R','M','C']

PL.BAR(YEAR, P, WIDTH=0.2, COLOR=J)

PL.XLABEL("YEAR")

PL.YLABEL("PASS%")

PL.SHOW( )

FLOWCHART: DRIVER CODE: MAIN():

START

SCHOOL_RESULTS_BARCHART()

STOP

Page No. 61
PROGRAM 15: WRITE A PROGRAM TO PLOT A BAR CHART IN PYTHON TO
DISPLAY THE RESULT OF A SCHOOL FOR FIVE CONSECUTIVE YEARS.

SNIPPET / SOURCE CODE:

def School_Results_BarChart():

import matplotlib.pyplot as pl

year=['2015','2016','2017','2018','2019'] # list of years

p=[98.50,70.25,55.20,90.5,61.50] #list of pass percentage

j=['b','g','r','m','c'] # color code of bar charts

pl.bar(year, p, width=0.2, color=j) #bar() to create bar chart

pl.xlabel("year") # label for x-axis

pl.ylabel("Pass%") # label for y-axis

pl.show( ) # function to display bar chart

#Driver Code

def main():

School_Results_BarChart()

main()

Page No. 62
PROGRAM 15: WRITE A PROGRAM TO PLOT A BAR CHART IN PYTHON TO
DISPLAY THE RESULT OF A SCHOOL FOR FIVE CONSECUTIVE YEARS.

OUTPUT:

Page No. 63
PROGRAM 16: WRITE A PROGRAM TO PLOT A PIE CHART ON CONSUMPTION OF
WATER IN DAILYLIFE.

ALGORITHM – FUNCTION: WATER_CONSUMPTION_PIECHART():

STEP 01: START


STEP 02: IMPORT MATPLOTLIB.PYPLOT AS PL
STEP 03: CONSUMPTION = [5,30,50,3]
STEP 04: PL.PIE(CONSUMPTION,LABELS=['DRINK','BATH',
'WASHING_CLOTHES','COOKING'],AUTOPCT=' %1.1f%% ' )
STEP 05: PL.SHOW( )

ALGORITHM – DRIVER CODE: MAIN():

STEP 01: START


STEP 02: WATER_CONSUMPTION_PIECHART()
STEP 03: STOP

Page No. 64
PROGRAM 16: WRITE A PROGRAM TO PLOT A PIE CHART ON CONSUMPTION OF
WATER IN DAILYLIFE.

FLOWCHART: FUNCTION: WATER_CONSUMPTION_PIECHART():

START

IMPORT MATPLOTLIB.PYPLOT AS PL

CONSUMPTION = [5,30,50,3]

PL.PIE(CONSUMPTION,LABELS=['DRINK','BATH','WASH
ING_CLOTHES','COOKING'],AUTOPCT=' %1.1f%% ' )

PL.SHOW( )

FLOWCHART: DRIVER CODE: MAIN():

START

WATER_CONSUMPTION_PIECHART ()

STOP

Page No. 65
PROGRAM 16: WRITE A PROGRAM TO PLOT A PIE CHART ON CONSUMPTION OF
WATER IN DAILYLIFE.

SNIPPET / SOURCE CODE:

def Water_Consumption_PieChart():
import matplotlib.pyplot as pl
consumption=[5,30,50,3]
pl.pie(consumption,
labels=['drink','bath','washing_clothes','Cooking'],autopct='
%1.1f%% ' )
pl.show( )

#Driver Code
def main():
Water_Consumption_PieChart()
main()

Page No. 66
PROGRAM 16: WRITE A PROGRAM TO PLOT A PIE CHART ON CONSUMPTION OF
WATER IN DAILYLIFE.

OUTPUT:

Page No. 67
PROGRAM 17 : CREATE A GRAPHICAL APPLICATION THAT ACCEPTS USER
INPUTS, PERFORMS SOME OPERATION ON THEM, AND THEN WRITES THE OUTPUT
ON THE SCREEN. FOR EXAMPLE, WRITE A SMALL CALCULATOR. USE THE
TKINTER LIBRARY.

ALGORITHM DRIVER CODE:

STEP 01: START


STEP 02: IMPORT TKINTER MODULES
STEP 03: CALL FUNCTION TK
STEP 04: CALL VARIOUS FUNCTIONS TO SET ATTRIBUTES
STEP 05: DEFINE UDFs
STEP 06: CREATE BUTTONS WITH ITS METHODS AND CALL AS & WHEN
REQUIRED
STEP 07: STOP

Page No. 68
PROGRAM 17 : CREATE A GRAPHICAL APPLICATION THAT ACCEPTS USER
INPUTS, PERFORMS SOME OPERATION ON THEM, AND THEN WRITES THE OUTPUT
ON THE SCREEN. FOR EXAMPLE, WRITE A SMALL CALCULATOR. USE THE
TKINTER LIBRARY.

FLOW CHART DRIVER CODE:

START

IMPORT TKINTER MODULES

CALL FUNCTION TK

CALL VARIOUS FUNCTIONS TO SET ATTRIBUTES

DEFINE UDFs

CREATE BUTTONS WITH ITS METHODS

STOP

Page No. 69
PROGRAM 17: CREATE A GRAPHICAL APPLICATION THAT ACCEPTS USER
INPUTS, PERFORMS SOME OPERATION ON THEM, AND THEN WRITES THE OUTPUT
ON THE SCREEN. FOR EXAMPLE, WRITE A SMALL CALCULATOR. USE THE
TKINTER LIBRARY.

SNIPPET / SOURCE CODE:

from tkinter import *

root = Tk()
root.title("Calculator")
# So that it becomes of fixed size
root.resizable(0, 0)
# So that it remains on top of the screen
root.wm_attributes("-topmost", 1)

# Label
Label1 = Label(root, text = "Calculator app")
Label1.grid(row=0, columnspan=8)

# Variables
equa = ""
equation = StringVar()

calculation = Label(root, textvariable = equation)

equation.set("Enter your expression : ")

calculation.grid(row=2, columnspan=8)

def btnPress(num):
global equa
equa = equa + str(num)

Page No. 70
equation.set(equa)

def EqualPress():
global equa
total = str(eval(equa))
equation.set(total)
equa = ""

def ClearPress():
global equa
equa = ""
equation.set("")

Button0 = Button(root, text="0", command = lambda:btnPress(0),


borderwidth=1, relief=SOLID)
Button0.grid(row = 6, column = 2, padx=10, pady=10)
Button1 = Button(root, text="1", command = lambda:btnPress(1),
borderwidth=1, relief=SOLID)
Button1.grid(row = 3, column = 1, padx=10, pady=10)
Button2 = Button(root, text="2", command = lambda:btnPress(2),
borderwidth=1, relief=SOLID)
Button2.grid(row = 3, column = 2, padx=10, pady=10)
Button3 = Button(root, text="3", command = lambda:btnPress(3),
borderwidth=1, relief=SOLID)
Button3.grid(row = 3, column = 3, padx=10, pady=10)
Button4 = Button(root, text="4", command = lambda:btnPress(4),
borderwidth=1, relief=SOLID)
Button4.grid(row = 4, column = 1, padx=10, pady=10)
Button5 = Button(root, text="5", command = lambda:btnPress(5),
borderwidth=1, relief=SOLID)
Button5.grid(row = 4, column = 2, padx=10, pady=10)
Button6 = Button(root, text="6", command = lambda:btnPress(6),
borderwidth=1, relief=SOLID)
Button6.grid(row = 4, column = 3, padx=10, pady=10)

Page No. 71
Button7 = Button(root, text="7", command = lambda:btnPress(7),
borderwidth=1, relief=SOLID)
Button7.grid(row = 5, column = 1, padx=10, pady=10)
Button8 = Button(root, text="8", command = lambda:btnPress(8),
borderwidth=1, relief=SOLID)
Button8.grid(row = 5, column = 2, padx=10, pady=10)
Button9 = Button(root, text="9", command = lambda:btnPress(9),
borderwidth=1, relief=SOLID)
Button9.grid(row = 5, column = 3, padx=10, pady=10)
Plus = Button(root, text="+", command = lambda:btnPress("+"),
borderwidth=1, relief=SOLID)
Plus.grid(row = 3, column = 4, padx=10, pady=10)
Minus = Button(root, text="-", command = lambda:btnPress("-"),
borderwidth=1, relief=SOLID)
Minus.grid(row = 4, column = 4, padx=10, pady=10)
Multiply = Button(root, text="*", command = lambda:btnPress("*"),
borderwidth=1, relief=SOLID)
Multiply.grid(row = 5, column = 4, padx=10, pady=10)
Divide = Button(root, text="/", command = lambda:btnPress("/"),
borderwidth=1, relief=SOLID)
Divide.grid(row = 6, column = 4, padx=10, pady=10)
Equal = Button(root, text="=", command = EqualPress, borderwidth=1,
relief=SOLID)
Equal.grid(row=6, column=3, padx=10, pady=10)
Clear = Button(root, text="C", command = ClearPress, borderwidth=1,
relief=SOLID)
Clear.grid(row = 6, column = 1, padx=10, pady=10)

root.mainloop()

Page No. 72
PROGRAM 17: CREATE A GRAPHICAL APPLICATION THAT ACCEPTS USER
INPUTS, PERFORMS SOME OPERATION ON THEM, AND THEN WRITES THE OUTPUT
ON THE SCREEN. FOR EXAMPLE, WRITE A SMALL CALCULATOR. USE THE
TKINTER LIBRARY.

OUTPUT:

Page No. 73
PROGRAM 18: WRITE A PYTHON PROGRAM TO IMPLEMENT SORTING TECHNIQUES
BASED ON USER CHOICE USING A LIST DATA-STRUCTURE.
(BUBBLE/INSERTION)

ALGORITHM: BUBBLE SORT FUNCTION : BUBBLE_SORT(NLIST)

STEP 01: START


STEP 02: FOR PASSNUM IN RANGE(LEN(NLIST)-1,0,-1):
STEP 03: FOR I IN RANGE(PASSNUM):
STEP 04: IF NLIST[I]>NLIST[I+1]:
STEP 05: TEMP = NLIST[I]
STEP 06: NLIST[I] = NLIST[I+1]
STEP 07: NLIST[I+1] = TEMP

ALGORITHM : INSERTION SORT FUNCTION : INSERTION_SORT(NLIST)

STEP 01: START


STEP 02: FOR INDEX IN RANGE(1,LEN(NLIST)):
STEP 03: CURRENTVALUE = NLIST[INDEX]
STEP 04: POSITION = INDEX
STEP 05: WHILE POSITION>0 AND NLIST[POSITION-1]>CURRENTVALUE:
STEP 06: NLIST[POSITION]=NLIST[POSITION-1]
STEP 07: POSITION = POSITION-1

Page No. 74
ALGORITHM: DRIVER CODE: MAIN ()

STEP 01: START


STEP 02: PRINT ("SORT MENU")
STEP 03: PRINT ("1. BUBBLE SORT")
STEP 04: PRINT ("2. INSERTION SORT")
STEP 05: PRINT ("3. EXIT")
STEP 06: CHOICE=INT(INPUT("ENTER YOUR CHOICE [ 1 - 3 ]: "))
STEP 07: NLIST = [14,46,43,27,57,41,45,21,70]
STEP 08: IF CHOICE==1:
STEP 09: PRINT("BEFORE SORTING: ",NLIST)
STEP 10: BUBBLESORT(NLIST)
STEP 11: PRINT("AFTER BUBBLE SORT: ",NLIST)
STEP 12: ELIF CHOICE==2:
STEP 13: PRINT("BEFORE SORTING: ",NLIST)
STEP 14: INSERTIONSORT(NLIST)
STEP 15: PRINT("AFTER INSERTION SORT: ",NLIST)
STEP 16: ELSE: PRINT("QUITTING.....!")
STEP 17: STOP

Page No. 75
PROGRAM 18: WRITE A PYTHON PROGRAM TO IMPLEMENT SORTING TECHNIQUES
BASED ON USER CHOICE USING A LIST DATA-STRUCTURE.
(BUBBLE/INSERTION)

FLOW CHART: BUBBLE SORT FUNCTION: BUBBLE_SORT (NLIST)

START

LOOP FOR PASSNUM IN


FALSE
RANGE(LEN(NLIST)-1,0,-1):

TRUE

LOOP FOR I IN FALSE


RANGE(PASSNUM):

TRUE
TEMP = NLIST[I]
NLIST[I] = NLIST[I+1]
NLIST[I+1] = TEMP

STOP

Page No. 76
FLOW CHART: INSERTION SORT FUNCTION: INSERTION_SORT (NLIST)

START

LOOP FOR INDEX IN


FALSE
RANGE(1,LEN(NLIST)):

TRUE

CURRENTVALUE = NLIST[INDEX]
POSITION = INDEX

LOOP FALSE
WHILE POSITION>0 AND
NLIST[POSITION-1]>CURRENTVALUE:

TRUE

NLIST[POSITION]=NLIST[POSITION-1]
POSITION = POSITION-1

STOP

Page No. 77
FLOW CHART : DRIVER CODE : MAIN()

START

PRINT ("SORT MENU")


PRINT ("1. BUBBLE SORT")
PRINT ("2. INSERTION SORT")
PRINT ("3. EXIT")
CHOICE=INT(INPUT("ENTER YOUR CHOICE[ 1 - 3 ]: "))
STEP 02: PRINT ("SORT MENU")
STEP 03: PRINT ("1. BUBBLE SORT")
STEP 04: PRINT ("2. INSERTION SORT")
STEP 05: PRINT ("3. EXIT")

NLIST = [14,46,43,27,57,41,45,21,70]

IF CHOICE==1: TRUE
PRINT ("BEFORE SORTING: ",NLIST)

NLIST = [14,46,43,27,57,41,45,21,70]
FALSE

BUBBLE_SORT(NLIST)
FALSE

PRINT ("AFTER BUBBLE SORTING: ",NLIST)

TRUE
IF CHOICE==2: PRINT ("BEFORE SORTING: ",NLIST)

FALSE

Page No. 78
NLIST = [14,46,43,27,57,41,45,21,70]

INSERTION_SORT(NLIST)

PRINT ("AFTER INSERTION SORTING: ",NLIST)

TRUE

PRINT("QUITTING.....!")

STOP

Page No. 79
PROGRAM 18: WRITE A PYTHON PROGRAM TO IMPLEMENT SORTING TECHNIQUES
BASED ON USER CHOICE USING A LIST DATA-STRUCTURE.
(BUBBLE/INSERTION)

SNIPPET / SOURCE CODE:

#BUBBLE SORT FUNCTION

def Bubble_Sort(nlist):
for passnum in range(len(nlist)-1,0,-1):
for i in range(passnum):
if nlist[i]>nlist[i+1]:
temp = nlist[i]
nlist[i] = nlist[i+1]
nlist[i+1] = temp

#INSERTION SORT FUNCTION

def Insertion_Sort(nlist):
for index in range(1,len(nlist)):

currentvalue = nlist[index]
position = index

while position>0 and nlist[position-1]>currentvalue:


nlist[position]=nlist[position-1]
position = position-1

nlist[position]=currentvalue

Page No. 80
# DRIVER CODE

def main():
print ("SORT MENU")
print ("1. BUBBLE SORT")
print ("2. INSERTION SORT")
print ("3. EXIT")
choice=int(input("Enter your Choice [ 1 - 3 ]: "))
nlist = [14,46,43,27,57,41,45,21,70]
if choice==1:
print("Before Sorting: ",nlist)
Bubble_Sort(nlist)
print("After Bubble Sort: ",nlist)
elif choice==2:
print("Before Sorting: ",nlist)
Insertion_Sort(nlist)
print("After Insertion Sort: ",nlist)
else:
print("Quitting.....!")

main()

Page No. 81
PROGRAM 18: WRITE A PYTHON PROGRAM TO IMPLEMENT SORTING TECHNIQUES
BASED ON USER CHOICE USING A LIST DATA-STRUCTURE.
(BUBBLE/INSERTION)

OUTPUT:

BUBBLE SORT OUTPUT:

INSERTION SORT OUTPUT:

Page No. 82
PROGRAM 19: WRITE A PYTHON PROGRAM TO IMPLEMENT SEARCHING METHODS
BASED ON USER CHOICE USING A LIST DATA-STRUCTURE.(LINEAR/BINARY).

ALGORITHM: FUNCTION : LINEAR_RECURSIVE_SEARCH( ARR, L, R, X):

STEP 01: START


STEP 02: IF R < L:
RETURN -1
STEP 03: IF ARR[L] == X:
STEP 04: RETURN L
STEP 05: IF ARR[R] == X:
RETURN R
STEP 06: RETURN LINEAR_RECURSIVE_SEARCH(ARR, 0, N-1, X)

ALGORITHM: RECURSIVE FUNCTION : BINARYSEARCH (ARR, L, R, X):

STEP 01: START


STEP 02: IF R >= L:
STEP 03: MID = INT(L + (R - L)/2)
STEP 04: IF ARR[MID] == X:
STEP 05: RETURN MID
STEP 06: ELIF ARR[MID] > X:
STEP 07: RETURN BINARYSEARCH(ARR, L, MID-1, X)
STEP 08: ELSE:
RETURN BINARYSEARCH(ARR, MID+1, R, X)
STEP 09: ELSE:
RETURN -1

Page No. 83
ALGORITHM: DRIVER CODE : MAIN ( ):

STEP 01: START


STEP 02: PRINT ("SEARCH MENU")
STEP 03: PRINT ("1. LINEAR SERACH")
STEP 04: PRINT ("2. BINARY SEARCH")
STEP 05: PRINT ("3. EXIT")
STEP 06: CHOICE=INT(INPUT("ENTER YOUR CHOICE [ 1 - 3 ]: "))
STEP 07: ARR = [12, 34, 54, 2, 3]
STEP 08: N = LEN(ARR)
STEP 09: X = 3
STEP 10: IF CHOICE==1:
STEP 11: PRINT("THE LIST CONTAINS : ",ARR)
STEP 12: PRINT ("SEARCHING ELEMENT IS : ",X)
STEP 13: INDEX = LINEAR_RECURSIVE_SEARCH(ARR, 0, N-1, X)
STEP 14: IF INDEX != -1:
STEP 15: PRINT ("ELEMENT", X,"IS PRESENT AT INDEX %D" %(INDEX))

STEP 16: ELSE:


PRINT ("ELEMENT %D IS NOT PRESENT" %(X))
STEP 17: ELIF CHOICE==2:
STEP 18: ARR = [2, 3,12,34,54] #SORTED ARRAY
STEP 19: PRINT("THE LIST CONTAINS : ",ARR)
STEP 20: PRINT ("SEARCHING ELEMENT IS : ",X)
STEP 21: RESULT = BINARYSEARCH(ARR, 0, LEN(ARR)-1, X)
STEP 22: IF RESULT != -1:
STEP 23: PRINT ("ELEMENT IS PRESENT AT INDEX %D" % RESULT)
STEP 24: ELSE:
PRINT ("ELEMENT IS NOT PRESENT IN ARRAY")
STEP 25: STOP

Page No. 84
PROGRAM 19: WRITE A PYTHON PROGRAM TO IMPLEMENT SEARCHING METHODS
BASED ON USER CHOICE USING A LIST DATA-STRUCTURE.(LINEAR/BINARY).

FLOW CHART: FUNCTION : LINEAR_RECURSIVE_SEARCH( ARR, L, R, X):

START

IF TRUE
RETURN -1
R < L:

FALSE

TRUE
IF ARR[L] == X: RETURN L

FALSE

TRUE
IF ARR[R] == X: RETURN R

FALSE

RETURN LINEAR_RECURSIVE_SEARCH(ARR, 0, N-1, X)

Page No. 85
FLOW CHART: RECURSIVE FUNCTION : BINARYSEARCH (ARR, L, R, X):

START

FALSE
IF TRUE
MID = INT(L + (R - L)/2)
R >= L:

TRUE
IF ARR[MID] == X: RETURN MID

FALSE

TRUE
IF ARR[R] == X: RETURN R

FALSE

ELIF ARR[MID] > TRUE


X:

FALSE

RETURN BINARYSEARCH(ARR, L, MID-1, X)

RETURN BINARYSEARCH(ARR, MID+1, R, X)

STOP
Page No. 86
FLOW CHART : DRIVER CODE : MAIN()

START

PRINT ("SEARCH MENU")


PRINT ("1. LINEAR SERACH")
PRINT ("2. BINARY SEARCH")
PRINT ("3. EXIT")
CHOICE=INT(INPUT("ENTER YOUR CHOICE [ 1 - 3 ]: "))

ARR = [12, 34, 54, 2, 3]


N = LEN(ARR)
X = 3

PRINT("THE LIST CONTAINS : ",ARR)


PRINT ("SEARCHING ELEMENT IS : ",X)
TRUE
IF CHOICE==1:

NLIST = [14,46,43,27,57,41,45,21,70]
FALSE

INDEX = LINEAR_RECURSIVE_SEARCH(ARR, 0, N-1, X)


FALSE

FALSE TRUE
IF INDEX != -1:

PRINT ("ELEMENT %D IS NOT


PRESENT" %(X)) PRINT ("ELEMENT", X,"IS PRESENT AT INDEX %D" %(INDEX))

Page No. 87
TRUE
IF CHOICE==2:

FALSE ARR = [2, 3,12,34,54] #SORTED ARRAY

ARR = [2, 3,12,34,54] #SORTED ARRAY


PRINT("THE LIST CONTAINS : ",ARR)
PRINT ("SEARCHING ELEMENT IS : ",X)
RESULT = BINARYSEARCH(ARR, 0, LEN(ARR)-1, X)

IF INDEX != -1:
FALSE TRUE

PRINT ("ELEMENT IS NOT PRESENT IN


ARRAY") PRINT ("ELEMENT IS PRESENT AT INDEX %D" %
RESULT)

STOP

Page No. 88
PROGRAM 19: WRITE A PYTHON PROGRAM TO IMPLEMENT SEARCHING METHODS
BASED ON USER CHOICE USING A LIST DATA-STRUCTURE.(LINEAR/BINARY).

SNIPPET / SOURCE CODE:

#Recursive Linear Search Function Definition


def Linear_Recursive_Search( arr, l, r, x):
if r < l:
return -1
if arr[l] == x:
return l
if arr[r] == x:
return r
return Linear_Recursive_Search(arr, 0, n-1, x)

#Recursive Binary Search Definition

def binarySearch (arr, l, r, x):

# Check base case


if r >= l:

mid = int(l + (r - l)/2)

# If element is present at the middle itself


if arr[mid] == x:
return mid

# If element is smaller than mid, then it can only


# be present in left subarray
elif arr[mid] > x:
return binarySearch(arr, l, mid-1, x)
# Else the element can only be present in right subarray

Page No. 89
else:
return binarySearch(arr, mid+1, r, x)

else:
# Element is not present in the array
return -1

# DRIVER CODE
def main():
print ("SEARCH MENU")
print ("1. LINEAR SERACH")
print ("2. BINARY SEARCH")
print ("3. EXIT")
choice=int(input("Enter your Choice [ 1 - 3 ]: "))
arr = [12, 34, 54, 2, 3]
n = len(arr)
x = 3
if choice==1:
print("The List contains : ",arr)
print ("Searching Element is : ",x)
index = Linear_Recursive_Search(arr, 0, n-1, x)
if index != -1:
print ("Element", x,"is present at index %d" %(index))
else:
print ("Element %d is not present" %(x))
elif choice==2:
arr = [2, 3,12,34,54] #Sorted Array
print("The List contains : ",arr)
print ("Searching Element is : ",x)
result = binarySearch(arr, 0, len(arr)-1, x)
if result != -1:
print ("Element is present at index %d" % result)
else:
print ("Element is not present in array")
main()

Page No. 90
PROGRAM 19: WRITE A PYTHON PROGRAM TO IMPLEMENT SEARCHING METHODS
BASED ON USER CHOICE USING A LIST DATA-STRUCTURE.(LINEAR/BINARY).

OUTPUT:

LINEAR SEARCH OUTPUT:

BINARY SEARCH OUTPUT:

Page No. 91
PROGRAM 20: WRITE A PYTHON PROGRAM TO IMPLEMENT A STACK USING A
LIST DATA-STRUCTURE.

ALGORITHM - FUNCTION : ISEMPTY(STK):

STEP 01: START

STEP 02: IF STK == []:

STEP 03: RETURN TRUE

ELSE

STEP 04: RETURN FALSE

ALGORITHM - FUNCTION : PUSH(STK,ITEM):

STEP 01: START

STEP 02: STK.APPEND(ITEM)

STEP 03: TOP = LEN(STK)-1

STEP 04: STOP

ALGORITHM - FUNCTION : POP(STK):

STEP 01: START

STEP 02: IF ISEMPTY(STK):

STEP 03: RETURN "UNDERFLOW"

ELSE

STEP 05: ITEM = STK.POP ()

STEP 06: IF LEN(STK) == 0:

STEP 07: TOP = NONE

ELSE

STEP 08: TOP=LEN(STK)-1

Page No. 92
STEP 09: RETURN ITEM

ALGORITHM - FUNCTION: PEEK (STK):

STEP 01: START

STEP 02: IF ISEMPTY(STK):

STEP 03: RETURN "UNDERFLOW"

ELSE

STEP 04: TOP=LEN(STK)-1

STEP 05: RETURN STK[TOP]

ALGORITHM - FUNCTION : DISPLAY(STK):

STEP 01: START

STEP 02: IF ISEMPTY (STK):

STEP 03: PRINT('STACK IS EMPTY')

ELSE

STEP 04: TOP = LEN (STK)-1

STEP 05: PRINT (STK[TOP],'<-TOP')

STEP 06: FOR I IN RANGE(TOP-1,-1,-1):


STEP 07: PRINT(STK[I])
STEP 08: STOP

ALGORITHM - DRIVER CODE : MAIN():

STEP-1: START.

STEP-2: PRINT (“1.PUSH, 2.POP ,

3.PEEK , 4.DISPLAY STACK & 5.EXIT” )

Page No. 93
STEP-3: INPUT CH

STEP-4: IF CH=1

INPUT ITEM,PUSH ITEM

STEP-5: ELIF CH=2

POP STACK

STEP-6: ELIF CH=3

PEEK STACK

STEP-7: ELIF CH=4

DISPLAY STACK

STEP-8: ELIF CH=5

STEP-9: STOP

Page No. 94
PROGRAM 20: WRITE A PYTHON PROGRAM TO IMPLEMENT A STACK USING A
LIST DATA-STRUCTURE.

FLOW CHART - FUNCTION : ISEMPTY(STK):

START

IF STK == []:
FALSE

TRUE
RETURN FALSE

RETURN TRUE

FLOW CHART - FUNCTION : PUSH(STK,ITEM):

START

STK.APPEND(ITEM)

STOP

Page No. 95
FLOW CHART - FUNCTION: POP(STK):

START

IF STK = = []:
TRUE

FALSE
RETURN “UNDERFLOW”

ITEM = STK.POP ()

IF LEN(STK) = = 0:
TRUE
FALSE

ITEM = STK.POP () ITEM = STK.POP ()

RETURN ITEM

Page No. 96
FLOW CHART - FUNCTION: PEEK(STK):

START

IF ISEMPTY(STK):
TRUE

FALSE
RETURN “UNDERFLOW”

TOP=LEN(STK)-1

RETURN STK[TOP]

FLOW CHART - FUNCTION : DISPLAY(STK):

START

IF ISEMPTY(STK):
FALSE TRUE

TOP=LEN(STK)-1 PRINT('STACK IS EMPTY')

Page No. 97
X
Y
X

PRINT(STK[TOP],'<-TOP')

FOR I IN RANGE(TOP-1, -1,-


FALSE 1):

TRUE

PRINT(STK[I])

STOP

FLOW CHART - DRIVER CODE : MAIN():

START

PRINT (“1.PUSH, 2.POP ,


3.PEEK , 4.DISPLAY STACK &
5.EXIT” )

Z
Page No. 98
Z

INPUT CH

TRUE

IF CH==1 INPUT ITEM

POP STACK
FALSE

TRUE
IF CH==2 POP STACK

P
FALSE

IF CH==3 PEEK STACK

TRUE
IF CH==4 DISPLAY STACK

P
FALSE

P STOP

Page No. 99
PROGRAM 20: WRITE A PYTHON PROGRAM TO IMPLEMENT A STACK USING A
LIST DATA-STRUCTURE.

SNIPPET / SOURCE CODE:

#IMPLIMENTATION OF STACK

def isempty(stk):
if stk==[]:
return True
else:
return False

def push(stk,item):
stk.append(item)
top=len(stk)-1

def pop(stk):
if isempty(stk):
return "underflow"
else:
item=stk.pop()
if len(stk)==0:
top=None
else:
top=len(stk)-1
return item

def peek(stk):
if isempty(stk):
return "underflow"
else:
top=len(stk)-1
return stk[top]

Page No. 100


def display(stk):
if isempty(stk):
print('stack is empty')
else:
top=len(stk)-1
print(stk[top],'<-top')
for i in range(top-1,-1,-1):
print(stk[i])

#Driver Code

def main():
stk=[]
top=None
while True:
print('''stack operation
1.push
2.pop
3.peek
4.display
5.exit''')
choice=int (input('enter choice:'))
if choice==1:
item=int(input('enter item:'))
push(stk,item)
elif choice==2:
item=pop(stk)
if item=="underflow":
print('stack is underflow')
else:
print('poped')
elif choice==3:
item=peek(stk)
if item=="underflow":

Page No. 101


print('stack is underflow')
else:
print('top most item is:',item)
elif choice==4:
display(stk)
elif choice==5:
break
else:
print('invalid')
exit()
main()

Page No. 102


STACK OUTPUT: PUSH OPERATION

STACK OUTPUT: POP


OPERATION

Page No. 103


STACK OUTPUT: PEEK OPERATION

STACK OUTPUT: DISPLAY OPERATION

Page No. 104


STACK OUTPUT: EXIT OPERATION

Page No. 105


PROGRAM 21: WRITE A PROGRAM TO IMPLEMENT A QUEUE USING A LIST DATA
STRUCTURE.

ALGORITHM - FUNCTION : CLS()

STEP 01: START


STEP 02: PRINT('\n'*100)
STEP 03: STOP

ALGORITHM - FUNCTION : ISEMPTY(QU):

STEP 01: START


STEP 02: IF QU==[]:
STEP 03: RETURN TRUE
STEP 04: ELSE:
RETURN FALSE

ALGORITHM - FUNCTION : ENQUEUE(QU,ITEM):

STEP 01: START


STEP 02: QU.APPEND(ITEM)
STEP 03: IF LEN(QU)==1:
STEP 04: FRONT=REAR=0
STEP 05: ELSE
REAR=LEN(QU)-1
STEP 06: STOP

Page No. 106


ALGORITHM - FUNCTION : DEQUEUE(QU):

STEP 01: START


STEP 02: IF ISEMPTY(QU):
STEP 03: RETURN 'UNDERFLOW'
STEP 04: ELSE:
ITEM=QU.POP(0)
STEP 05: IF LEN(QU)==0:
STEP 06: FRONT=REAR=NONE
STEP 07: RETURN ITEM

ALGORITHM - FUNCTION : PEEK(QU):

STEP 01: START


STEP 02: IF ISEMPTY(QU):
STEP 03: RETURN 'UNDERFLOW'
STEP 04: ELSE:
FRONT=0
STEP 05: RETURN QU[FRONT]

ALGORITHM - FUNCTION : DISPLAY(QU):

STEP 01: START


STEP 02: IF ISEMPTY(QU):
STEP 03: PRINT('QUEUE EMPTY')
STEP 04: ELIF LEN(QU)==1:
PRINT(QU[0],'<==FRONT,REAR')
STEP 05: RETURN QU[FRONT]
STEP 06: ELSE:
STEP 07: FRONT=0
STEP 08: REAR=LEN(QU)-1
STEP 08: PRINT(QU[FRONT],'<-FRONT')
STEP 09: FOR A IN RANGE(1,REAR):

Page No. 107


STEP 10: PRINT(QU[A])
STEP 11: PRINT(QU[REAR],'<-REAR')

ALGORITHM: DRIVER CODE : MAIN ( ):

STEP 01: START


STEP 02: QUEUE=[]
STEP 03: WHILE TRUE:
STEP 04: PRINT('''QUEUE OPERATIONS
1.ENQUEUE
2.DEQUEUE
3.PEEK
4.DISPLAY QUEUE
5.EXIT''')

STEP 05: CH=INT(INPUT('ENTER YOUR CHOICE.......[1-5]:'))


STEP 06: IF CH==1:
STEP 07: ITEM=INT(INPUT('ENTER ITEM:'))
STEP 08: ENQUEUE(QUEUE,ITEM)
STEP 09: INPUT('PRESS ENTER TO CONTINUE....')
STEP 10: ELIF CH==2:
STEP 11: ITEM=DEQUEUE(QUEUE)
STEP 12: IF ITEM=='UNDERFLOW':
STEP 13: PRINT('UNDERFLOW!QUEUE IS EMPTY')
STEP 14: ELSE: PRINT('DEQUEUED ITEM IS:',ITEM)
STEP 15: INPUT('PRESS ENTER TO CONTINUE....')
STEP 16: ELIF CH==3:
STEP 17: ITEM=PEEK(QUEUE)
STEP 18: IF ITEM=='UNDERFLOW':
STEP 19: PRINT('UNDERFLOW!QUEUE IS EMPTY')

Page No. 108


STEP 20: ELSE: PRINT('FRONTMOST ITEM IS:',ITEM)
STEP 21: INPUT('PRESS ENTER TO CONTINUE....')
STEP 22: ELIF CH==4:
STEP 23: DISPLAY(QUEUE)
STEP 24: INPUT('PRESS ENTER TO CONTINUE....'))
STEP 25: ELIF CH==5:
STEP 26: BREAK
STEP 27: ELSE: PRINT('INVALID CHOICE!!!')
STEP 28: INPUT('PRESS ENTER TO CONTINUE....')
STEP 29: STOP

Page No. 109


PROGRAM 21: WRITE A PROGRAM TO IMPLEMENT A QUEUE USING A LIST DATA
STRUCTURE.

FLOW CHART - FUNCTION : CLS()

START

PRINT('\n'*100)

STOP

FLOW CHART - FUNCTION : ISEMPTY(STK):

START

IF QU==[]:
FALSE

TRUE
RETURN FALSE

RETURN TRUE

Page No. 110


FLOW CHART - FUNCTION : ENQUEUE(QU,ITEM):

START

QU.APPEND(ITEM)

TRUE
IF LEN(QU)==1:

FRONT=REAR=0

FALSE
REAR=LEN(QU)-1

STOP

FLOW CHART - FUNCTION : DEQUEUE(QU):

START

IF ISEMPTY(QU):
TRUE

FALSE
RETURN “UNDERFLOW”
ITEM=QU.POP(0)

X
Page No. 111
X

IF LEN(QU)==0:
TRUE

FALSE FRONT=REAR=NONE

RETURN ITEM

FLOW CHART - FUNCTION : PEEK(QU):

START

IF ISEMPTY(QU):
TRUE

FALSE
RETURN “UNDERFLOW”
FRONT=0

RETURN QU[FRONT]

Page No. 112


FLOW CHART - FUNCTION : DISPLAY(QU):

START

FALSE
IF ISEMPTY(QU):
TRUE

PRINT('QUEUE EMPTY')

TRUE
ELIF LEN(QU)==1:

FRONT=0 PRINT(QU[0],'<==FRONT,REAR')

REAR=LEN(QU)-1

RETURN QU[FRONT]

PRINT(QU[FRONT],'<-FRONT')

FALSE
FOR A IN RANGE(1,REAR):

PRINT(QU[REAR],'<-REAR')
LOOP
TRUE
PRINT(QU[A]) STOP X

Page No. 113


FLOW CHART – DRIVER CODE : MAIN() FUNCTION

START

QUEUE=[]

PRINT (“1.PUSH, 2.POP ,


3.PEEK , 4.DISPLAY STACK &
5.EXIT” )

LOOP FALSE
L WHILE TRUE: T

GOTO
TRUE STOP

PRINT('''QUEUE OPERATIONS
1.ENQUEUE
2.DEQUEUE
3.PEEK
4.DISPLAY QUEUE
5.EXIT''')
CH=INT(INPUT('ENTER YOUR
CHOICE.......[1-5]:'))

TRUE
IF CH==1

ITEM=INT(INPUT('ENTER
ITEM:'))
FALSE

Q
R

Page No. 114


R

ENQUEUE(QUEUE,ITEM)

L Q
INPUT('PRESS ENTER
TO CONTINUE....')

ELIF CH==2 ITEM=DEQUEUE(QUEUE)

FALSE
IF ITEM=='UNDERFLOW':

ELIF CH==3: N1
FALSE TRUE
PRINT('UNDERFLOW!
TRUE QUEUE IS EMPTY')

ITEM=PEEK(QUEUE)

FALSE PRINT('DEQUEUED
IF ITEM=='UNDERFLOW': ITEM IS:',ITEM)

A INPUT('PRESS ENTER
TO CONTINUE....')
TRUE
PRINT('UNDERFLOW!
QUEUE IS EMPTY') L

A
PRINT('FRONTMOST ITEM
IS:',ITEM)
INPUT('PRESS ENTER TO L
CONTINUE....')

Page No. 115


N1

ELIF CH==4: TRUE

DISPLAY (QUEUE)

FALSE
INPUT('PRESS ENTER
TO CONTINUE....')

ELIF CH==5: TRUE


BREAK

STOP
PRINT('FRONTMOST ITEM
IS:',ITEM)
INPUT('PRESS ENTER TO
CONTINUE....')

Page No. 116


PROGRAM 21: WRITE A PROGRAM TO IMPLEMENT A QUEUE USING A LIST DATA
STRUCTURE.

SNIPPET / SOURCE CODE:

def cls():
print('\n'*100)
def isEmpty(Qu):
if Qu==[]:
return True
else:
return False
def Enqueue(Qu,item):
Qu.append(item)
if len(Qu)==1:
front=rear=0
else:
rear=len(Qu)-1
def Dequeue(Qu):
if isEmpty(Qu):
return 'underflow'
else:
item=Qu.pop(0)
if len(Qu)==0:
front=rear=None
return item
def Peek(Qu):
if isEmpty(Qu):
return 'underflow'
else:
front=0
return Qu[front]

Page No. 117


def Display(Qu):
if isEmpty(Qu):
print('queue empty')
elif len(Qu)==1:
print(Qu[0],'<==front,rear')
else:
front=0
rear=len(Qu)-1
print(Qu[front],'<-front')
for a in range(1,rear):
print(Qu[a])
print(Qu[rear],'<-rear')

#Driver Code
def main():
queue=[]
while True:
print('''QUEUE OPERATIONS
1.ENQUEUE
2.DEQUEUE
3.PEEK
4.DISPLAY QUEUE
5.EXIT''')
ch=int(input('Enter your choice.......[1-5]:'))
if ch==1:
item=int(input('Enter item:'))
Enqueue(queue,item)
input('Press Enter to continue....')
elif ch==2:
item=Dequeue(queue)
if item=='underflow':
print('Underflow!queue is empty')
else:
print('Dequeued item is:',item)
input('Press Enter to continue....')

Page No. 118


elif ch==3:
item=Peek(queue)
if item=='underflow':
print('Underflow!queue is empty')
else:
print('Frontmost item is:',item)
input('Press Enter to continue....')
elif ch==4:
Display(queue)
input('Press Enter to continue....')
elif ch==5:
break
else:
print('Invalid choice!!!')
input('Press Enter to continue....')
main()

Page No. 119


PROGRAM 21: WRITE A PROGRAM TO IMPLEMENT A QUEUE USING A LIST DATA
STRUCTURE.

OUTPUT:

QUEUE OUTPUT : ENQUEUE OPERATION

QUEUE OUTPUT : PEEK OPERATION

QUEUE OUTPUT : DEQUEUE OPERATION Page No. 120


QUEUE OUTPUT : DEQUEUE OPERATION

QUEUE OUTPUT : EXIT Page No. 121

OPERATION
Page No. 122
PROGRAM 22: COMPUTE EMIS FOR A LOAN USING THE NUMPY OR SCIPY
LIBRARIES.

ALGORITHM: FUNCTION : CALCULATE_EMI():

STEP 01: START

STEP 02: IMPORT NUMPY AS NP

STEP 03: INTEREST_RATE= FLOAT(INPUT("ENTER THE INTEREST RATE : "))

STEP 04: MONTHLY_RATE = (INTEREST_RATE)/ (12*100)

STEP 05: YEARS= FLOAT(INPUT("ENTER THE TOTAL YEARS : "))

STEP 06: NUMBER_MONTH = YEARS * 12

STEP 07: LOAN_AMOUNT= FLOAT(INPUT("ENTER THE LOAN AMOUNT : "))

STEP 08: EMI = ABS(NP.PMT(MONTHLY_RATE, NUMBER_MONTH, LOAN_AMOUNT))

STEP 09: PRINT("YOUR EMI WILL BE RS. ", ROUND(EMI, 2))

ALGORITHM: DRIVER CODE : MAIN ( ):

STEP 01: START

STEP 02: CALCULATE_EMI() #Function call

STEP 03: STOP

Page No. 123


PROGRAM 22: COMPUTE EMIS FOR A LOAN USING THE NUMPY OR SCIPY
LIBRARIES.

FLOW CHART – FUNCTION : CALCULATE_EMI():

START

IMPORT NUMPY AS NP

INTEREST_RATE= FLOAT(INPUT("ENTER THE INTEREST RATE :


"))

MONTHLY_RATE = (INTEREST_RATE)/ (12*100)

YEARS= FLOAT(INPUT("ENTER THE TOTAL YEARS : "))

NUMBER_MONTH = YEARS * 12

LOAN_AMOUNT= FLOAT(INPUT("ENTER THE LOAN AMOUNT : "))

EMI = ABS(NP.PMT(MONTHLY_RATE, NUMBER_MONTH, LOAN_AMOUNT))

STOP

Page No. 124


FLOW CHART – DRIVER CODE : MAIN() FUNCTION

START

CALCULATE_EMI()

STOP

Page No. 125


PROGRAM 22: COMPUTE EMIS FOR A LOAN USING THE NUMPY OR SCIPY
LIBRARIES.

SNIPPET / SOURCE CODE:

def Calculate_EMI():

import numpy as np

interest_rate= float(input("Enter the interest rate : "))

monthly_rate = (interest_rate)/ (12*100)

years= float(input("Enter the total years : "))

number_month = years * 12

loan_amount= float(input("Enter the loan amount : "))

emi = abs(np.pmt(monthly_rate, number_month, loan_amount))

print("Your EMI will be Rs. ", round(emi, 2))

#Driver Code

def main():

Calculate_EMI() #Function call

main()

Page No. 126


PROGRAM 22: COMPUTE EMIS FOR A LOAN USING THE NUMPY OR SCIPY
LIBRARIES.

OUTPUT:

Page No. 127


PROGRAM 23: TAKE A SAMPLE OF 10 PHISHING EMAILS AND FIND THE MOST
COMMON WORDS.

ALGORITHM: FUNCTION : READ_EMAIL_FILE():

STEP 01: START

STEP 02: IMPORT COLLECTIONS

STEP 03: FIN = OPEN('EMAIL.TXT','R')

STEP 04: A= FIN.READ()

STEP 05: D={ }

STEP 06: L=A.LOWER().SPLIT()

STEP 07: FOR WORD IN L:

STEP 08: WORD = WORD.REPLACE(".","")

STEP 09: WORD = WORD.REPLACE(",","")

STEP 10: WORD = WORD.REPLACE(":","")

STEP 11: WORD = WORD.REPLACE("\"","")

STEP 12: WORD = WORD.REPLACE("!","")

STEP 13: WORD = WORD.REPLACE("&","")

STEP 14: WORD = WORD.REPLACE("*","")

STEP 15: FOR K IN L:

STEP 16: KEY=K

STEP 17: IF KEY NOT IN D:

STEP 18: COUNT=L.COUNT(KEY)

STEP 19: D[KEY]=COUNT

STEP 20: N_PRINT = INT(INPUT("HOW MANY MOST COMMON WORDS TO PRINT: "))

STEP 21: PRINT("\NOK. THE {} MOST COMMON WORDS ARE AS

FOLLOWS\N".FORMAT(N_PRINT))

Page No. 128


STEP 22: WORD_COUNTER = COLLECTIONS.COUNTER(D)

STEP 23: FOR WORD, COUNT IN WORD_COUNTER.MOST_COMMON(N_PRINT):

STEP 24: PRINT(WORD, ": ", COUNT)

STEP 25: FIN.CLOSE()

ALGORITHM: DRIVER CODE : MAIN ( ):

STEP 01: START

STEP 02: READ_EMAIL_FILE()

STEP 03: STOP

Page No. 129


PROGRAM 23: TAKE A SAMPLE OF 10 PHISHING EMAILS AND FIND THE MOST
COMMON WORDS.

FLOW CHART : FUNCTION : READ_EMAIL_FILE():

START

IMPORT COLLECTIONS

FIN = OPEN('EMAIL.TXT','R')

D={ }

L=A.LOWER().SPLIT())

LOOP FOR WORD IN L: FALSE


A

TRUE
WORD = WORD.REPLACE(".","")

WORD = WORD.REPLACE(",","")

WORD = WORD.REPLACE(":","")

WORD = WORD.REPLACE("\"","")
B
WORD = WORD.REPLACE("!","")

WORD = WORD.REPLACE("&","")

WORD = WORD.REPLACE("*","")

Page No. 130


B
A

LOOP FALSE
FOR K IN L:

TRUE
KEY=K

FALSE
IF KEY NOT IN D:

TRUE

COUNT=L.COUNT(KEY)

D[KEY]=COUNT

N_PRINT = INT(INPUT("HOW MANY


MOST COMMON WORDS TO PRINT: "))

PRINT("\NOK. THE {} MOST COMMON


WORDS ARE AS FOLLOWS\
N".FORMAT(N_PRINT))

Page No. 131


C

WORD_COUNTER = COLLECTIONS.COUNTER(D)

FOR WORD, COUNT IN


LOOP WORD_COUNTER.MOST_COMMON(N_PRINT): FALSE

TRUE

PRINT(WORD, ": ", COUNT

STOP

FLOW CHART – DRIVER CODE : MAIN() FUNCTION

START

READ_EMAIL_FILE():

STOP

Page No. 132


PROGRAM 23: TAKE A SAMPLE OF 10 PHISHING EMAILS AND FIND THE MOST
COMMON WORDS.

SNIPPET / SOURCE CODE:

def Read_Email_File():

import collections

fin = open('email.txt','r')

a= fin.read()

d={ }

L=a.lower().split()

for word in L:

word = word.replace(".","")

word = word.replace(",","")

word = word.replace(":","")

word = word.replace("\"","")

word = word.replace("!","")

word = word.replace("&","")

word = word.replace("*","")

for k in L:

key=k

if key not in d:

count=L.count(key)

d[key]=count

n_print = int(input("How many most common words to print: "))

print("\nOK. The {} most common words are as

follows\n".format(n_print))

Page No. 133


word_counter = collections.Counter(d)

for word, count in word_counter.most_common(n_print):

print(word, ": ", count)

fin.close()

#Driver Code

def main():

Read_Email_File()

main()

Page No. 134


PROGRAM 23: TAKE A SAMPLE OF 10 PHISHING EMAILS AND FIND THE MOST
COMMON WORDS.

OUTPUT:

EMAIL FILE: email.txt CONTAINS 10 PHISHING EMAILS

OUTPUT OF PROGRAM:

Page No. 135


PROGRAM 24: WRITE A PROGRAM TO INTEGRATE SQL WITH PYTHON BY
IMPORTING THE MYSQL MODULE.

ALGORITHM: FUNCTION : INTIGRATE_MYSQL_WITH_PYTHON():

STEP 01: START

STEP 02: IMPORT MYSQL.CONNECTOR

STEP 03: FROM MYSQL.CONNECTOR IMPORT ERROR

STEP 04: TRY:

STEP 05: CONNECTION = MYSQL.CONNECTOR.CONNECT(HOST='LOCALHOST',

DATABASE='STUDENT',

USER='ROOT',

PASSWORD='MANAGER')

STEP 06: IF CONNECTION.IS_CONNECTED():

STEP 07: DB_INFO = CONNECTION.GET_SERVER_INFO()

STEP 08: PRINT("CONNECTED TO MYSQL SERVER VERSION ", DB_INFO)

STEP 09: CURSOR = CONNECTION.CURSOR()

STEP 10: CURSOR.EXECUTE("SELECT DATABASE();")

STEP 11: RECORD = CURSOR.FETCHONE()

STEP 12: PRINT("YOUR CONNECTED TO DATABASE: ", RECORD)

STEP 13: EXCEPT ERROR AS E:

STEP 14: PRINT("ERROR WHILE CONNECTING TO MYSQL", E)

STEP 15: FINALLY:

STEP 16: IF (CONNECTION.IS_CONNECTED()):

STEP 17: CURSOR.CLOSE()

STEP 18: CONNECTION.CLOSE()

Page No. 136


STEP 19: PRINT("MYSQL CONNECTION IS CLOSED")

ALGORITHM: DRIVER CODE : MAIN():

STEP 01: START

STEP 02: INTIGRATE_MYSQL_WITH_PYTHON()

STEP 03: STOP

Page No. 137


PROGRAM 24: WRITE A PROGRAM TO INTEGRATE SQL WITH PYTHON BY
IMPORTING THE MYSQL MODULE.

FLOW CHART – FUNCTION : INTIGRATE_MYSQL_WITH_PYTHON():

START

IMPORT MYSQL.CONNECTOR

FROM MYSQL.CONNECTOR IMPORT ERROR

TRY:

CONNECTION =
MYSQL.CONNECTOR.CONNECT(HOST='LOCALHOST',
DATABASE='STUDENT', USER='ROOT',
PASSWORD='MANAGER')

FALSE
IF CONNECTION.IS_CONNECTED(): A

TRUE

DB_INFO = CONNECTION.GET_SERVER_INFO() B

Page No. 138


PRINT("CONNECTED TO MYSQL
SERVER VERSION ",
DB_INFO)

CURSOR = CONNECTION.CURSOR()

CURSOR.EXECUTE("SELECT DATABASE();")

RECORD = CURSOR.FETCHONE()

PRINT("YOUR CONNECTED TO
DATABASE: ", RECORD)

EXCEPT ERROR AS E:

PRINT("ERROR WHILE
CONNECTING TO MYSQL", E)

FINALLY:
FALSE
IF CONNECTION.IS_CONNECTED(): Y

TRUE
CURSOR.CLOSE()

CONNECTION.CLOSE()

X
Page No. 139
PRINT("MYSQL CONNECTION
IS CLOSED")

Y
STOP

FLOW CHART – DRIVER CODE : MAIN() FUNCTION

START

INTIGRATE_MYSQL_WITH_PYTHON()

STOP

Page No. 140


PROGRAM 24: WRITE A PROGRAM TO INTEGRATE SQL WITH PYTHON BY
IMPORTING THE MYSQL MODULE.

SNIPPET / SOURCE CODE:

def Intigrate_MYSQL_With_Python():

import mysql.connector

from mysql.connector import Error

try:

connection = mysql.connector.connect(host='localhost',

database='Student',

user='root',

password='manager')

if connection.is_connected():

db_Info = connection.get_server_info()

print("Connected to MySQL Server version ", db_Info)

cursor = connection.cursor()

cursor.execute("select database();")

record = cursor.fetchone()

print("Your connected to database: ", record)

except Error as e:

print("Error while connecting to MySQL", e)

finally:

if (connection.is_connected()):

Page No. 141


cursor.close()

connection.close()

print("MySQL connection is closed")

#Driver Code

def main():

Intigrate_MYSQL_With_Python() # Call Function

main()

Page No. 142


PROGRAM 25: WRITE A DJANGO BASED WEB APPLICATION TO DISPLAY “HELLO
WORLD” IN A WEB PAGE.

1. Open command prompt in admin mode / Power shell Mode

2. Go to django directory c:\Django> by typing,

cd django

3. Create a new folder MYPROJECTS using mkdir and Change


directory to

C:\Django>mkdir myprojects

C:\Django>CD myprojects

Page No. 143


4. On the command prompt C:\Django\myprojects>

Type,

C:\Django\myprojects> Django-admin startproject SIS

NOTE:(SIS – mean STUDENT INFORMATION SYSTEM)

Goto SIS directory by typing

cd SIS

The above command creates the following files and a directory

Page No. 144


The SIS folder has one more folder on same name i.e SIS

Goto inner folder SIS, i.e

C:\Djago\myprojects\sis> cd sis

The inner SIS Directory contains the following files,

5. Go to the SIS outer directory, Type the command at command


prompt.

C:\Djago\myprojects\sis\sis> cd..

You will reach to outer directory i.e

C:\Djago\myprojects\sis>

Page No. 145


6. Now run the project to cross check weather project is
successfully created or not to do so type the following
command:-

C:\Djago\myprojects\sis> python manage.py runserver

7. Now Check
your
project is
created by
opening your web browser and type:
localhost:8000

OR

127.0.0.1:8000

127.0.0.1 is the ip address of your local host and 8000 is the


defalut port on which it connects to Django webserver.

NOW, YOUR BROWSER LOOKS LIKE THIS:

Page No. 146


8. Close the web browser and goto command prompt (Command
window minimized, maximize the command window)

Quit the server by pressing CTRL + BREAK

After pressing CTRL + BREAK, you will be prompted to

C:\Djago\myprojects\sis>

NOW, NEXT STEP IS TO CREATE APP TO DISPLAY HELLO WORLD

9. To Display Hello World you need to create app, to create


app follow the steps:

Page No. 147


C:\Djago\myprojects\sis>python manage.py startapp helloworld

NOTE: Here HELLOWORLD is the app name.

After executing the above command you will revert back to


prompt. Meaning app is created successfully.

Check the files created after executing the command

python manage.py startapp helloworld

NOTE: HELLOWORLD Directory is created.

Check the HELLOWORLD Folder, HELLOWORLD Folder contains the


following files:

Page No. 148


Now, create the TEMPLATES folder/directory. This template folder is
the container of all HTML files.

C:\Djago\myprojects\sis\helloworld>mkdir templates

After
executing command the templates directory is created

10. Goto TEMPLATES Folder,


CD TEMPLATES
C:\Djago\myprojects\sis\helloworld\tempaltes>

Create a HTML File, and save as ‘firstpage.html’ in templates


directory/folder. The file contains:

<html>

Page No. 149


<body>
Hello World
<br>
This is my first web based Django Application
</body>
</html>

11. Now, Register the TEMPLATES folder in settings.py of inner


SIS directory
Come out from templates and helloworld directory
C:\Djago\myprojects\sis\helloworld\tempaltes>cd..
C:\Djago\myprojects\sis\helloworld>cd..
C:\Djago\myprojects\sis>cd sis
C:\Djago\myprojects\sis\sis>

Now open settings.py in notepad or python IDLE

Edit in the INSTALLED_APPS SECTION:

TEMPLATES = [
{
'BACKEND':
'django.template.backends.django.DjangoTemplates',
'DIRS': ['templates'], 'templates’,
'APP_DIRS': True,
is added here
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',

Page No. 150


'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Save the file (press CTRL + S).

12. Now. goto TEMPLATES Directory, Go to helloworld folder

C:\Djago\myprojects\sis\sis>cd..
C:\Djago\myprojects\sis>cd..
C:\Djago\myprojects\sis>cd helloworld

C:\Djago\myprojects\sis\helloworld>

and edit the views.py file, add the following code:

from django.shortcuts import render

# Create your views here.


def myfirstpage(request):
return render(request, 'firstpage.html’)

Page No. 151


Save the
file (CTRL + S).

13. Now, Go to inner SIS folder and edit urls.py file

C:\Djago\myprojects\sis\helloworld>cd..
C:\Djago\myprojects\sis>cd sis
C:\Djago\myprojects\sis\sis>

Open the urls.py file and add the code

from django.contrib import admin


from django.urls import path
from helloworld import views
urlpatterns = [
path('admin/', admin.site.urls),
path('first',views.myfirstpage),
]

Save the file (CTRL + S), quit the notepad.

14. To Register your App open settings.py file, now you are at

C:\Djago\myprojects\sis\sis> directory
Open settings.py and add the code in

Page No. 152


APPLICATION DEFINITION, INSTALLED_APPS SECTION as shown
below:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages', 'helloworld',
'django.contrib.staticfiles',
'helloworld', is added here
]

Now the settings.py looks like

Save the file (CTRL + S), quit the notepad.

15. App creation is completed, to check, run the app, execute


the following command at the command prompt

Come out from the inner sis directory

C:\Django/myprojects/sis/sis> CD..

Now you will be in outer directory,


C:\Django/myprojects/sis>

Page No. 153


16. Now, Run the project by executing the following command

C:\Django/myprojects/sis> python maage.py runserver

17. Open the web browser and type the following on address
bar:

localhost:8000/first

OR

127.0.0.1:8000/first

Your browser looks like,

18. Final Step is to quit the app

Page No. 154


a) Close the browser
b) Maximize the command prompt, your app is still running press

CTRL+BREAK

After pressing CTRL + BREAK you will quit the project and system
will prompt for issuing further commands:

Page No. 155


PROGRAM 26: WRITE A DJANGO BASED WEB SERVER TO PARSE A USER
REQUEST (POST) AND WRITE TO A CSV FILE.

1. Already you have worked with SIS project, we add some more
files to it. Create two HTML files and store it in templates
directory namely, The first.html contains the following code:
Path:- C:\Django\myprojects\sis\helloworld\templates
<html>
<body>
This is my First Django project
{{even}}

<br>
{% for a in even %}
{{a}}
<br>
{% endfor %}
{{name}}
<a href="http://127.0.0.1:8000/sentry">
<h1> Click here to Add New Students. </h1>
</body>
</html>

Page No. 156


2. Create two HTML file called stud_entry.html ad add the
following code:
Path:- C:\Django\myprojects\sis\helloworld\templates
<html>
<head><titile>Student Entry Form </title></head>
<body bgcolor=skyblue>
<h1> Enter the details</h1>
<form actio="#" method="POST">
{% csrf_token %}
Roll: &nbsp <input type="text" name="rollno"><br><br>
Name: &nbsp <input type="text" name="name"><br><br>
<input type="submit" value="SUBMIT"><br><br>
</form>
<a href="http://127.0.0.1:8000/disp">
<h1> Click Here to View the Details of Students</h1>
</a>
</body>
</html>
<br>
</body>
</html>

3. Now, go to C:\Django\myprojects\sis\helloworld directory and


edit views.py file add the following code:

from django.shortcuts import render


import pandas as pd

import csv
# Create your views here.

# THIS show (request) USES IS THE GET METHOD


Page No. 157
def show(request):
lst=[ x for x in range (2,20,2)]
df=pd.read_csv("c:\\Django\\myprojects\\
stud_csv_file.csv")
return render(request,'first.html',{"even":lst,"name":df})

# THIS stud_entry(request): IS THE POST


METHOD
def stud_entry(request):
if request.method=='POST':
stud_dict=request.POST
with open("c:\\Django\\myprojects\\
stud_csv_file.csv",'a') as st:
val=csv.writer(st)
L=[]
for x in stud_dict:
if x=="rollno":
L.append(stud_dict[x])
if x=="name":
L.append(stud_dict[x])
val.writerow(L)
return render(request,'stud_entry.html')

4. Go to C:\Django\myprojects\sis\sis open urls.py file and add


the following code in urlpatterns SECTION:
path('disp',views.show),
path('sentry',views.stud_entry),

5. Now, Run the project by executing the following command

NOTE: BEFORE RUNNING/EXECUTING PROJECT MAKE SURE THAT


PANDAS INSTALLED IN YOUR SYSTEM (RUN PIP INSTALL PANDAS AT
COMMAND PROMPT)

C:\Django/myprojects/sis> python maage.py runserver

Page No. 158


6. Now, Open web browser and type the following address on
address bar:
http://127.0.0.1:8000/disp

The page will look like:


# THIS IS THE GET METHOD
OUTPUT

7. Once you click on click here to add new students

The page will look like:

# THIS IS THE POST METHOD


OUTPUT

Page No. 159


8. To see the reflection click on
Click here to view the student details
The page will look like,

9. After pressing the submit button the data will be saved in


stud_csv_file.csv file
you can check it by opening in notepad

Page No. 160


10. Final Step is to quit the app

c) Close the browser


d) Maximize the command prompt, your app is still running press

CTRL+BREAK

After pressing CTRL + BREAK you will quit the project and system
will prompt for issuing further commands:

Page No. 161


PROGRAM 27: WRITE A PROGRAM TO CONNECT PYTHON WITH MYSQL USING
DATABASE CONNECTIVITY AND PERFORM THE FOLLOWING OPERATIONS ON DATA
IN DATABASE: FETCH, UPDATE AND DELETETHE DATA.

CRUD – Create, Read, Update, Delete OPERATIONS

import matplotlib.pyplot as plt


import mysql.connector as sql
conn=sql.connect(host='localhost',user='root',passwd='manager',data
base='py')
curs=conn.cursor()
conn.autocommit = True

def login():
opt=input('Existing User???...[Y]es,[N]o...')

if opt in ['Y','y']:
username=input('Enter your roll no.(Username) :')
pwd=input('Enter your password :')
curs.execute('select * from user_acc where
username="'+username+'"and password="'+pwd+'";')
x=curs.fetchone()
if (username,pwd)==x:
print('\nLogin successful')
return 'user_'+username
else:
print('\nError in given data\n')
login()

Page No. 162


elif opt in ['N','n']:
username=input('Enter your roll no.(Username) :')
pwd=input('Enter your password :')
try:
curs.execute('INSERT INTO user_acc
values('+username+','+pwd+');')
except:
print('\n!!!Username already taken!!!\n')
login()
else:
curs.execute('create table user_'+username+'\n(exam
varchar(10) primary key,\nEng tinyint check (Eng<101),\nMat tinyint
check (Mat<101),\nPhy tinyint check (Phy<101),\nChe tinyint check
(Che<101),\nBioComp tinyint check (BioComp<101));')
print('\n!!!!User ID successfully created!!!\n')
return 'user_'+username
else:
print('!!!ERROR!!!\tEnter the value in the square
brackets...')
login()

def view(user):
curs.execute('select * from '+user+';')
result=curs.fetchall()
print()
head=['exam','Eng','Math','Phy','Che','Bio/Comp']
for t in head:
print(t,end='\t')
print()
for i in result:
for j in i:
print(j,end='\t')
print()

Page No. 163


def exam_chc():
chc='''
Available Exams:
1.Pre-Mid Term.
2.Mid Term.
3.Post-Mid term.
4.Final Exam.\n'''
print(chc)
choice=int(input('Enter the number of your choice :'))
if choice==1:
ex='premt'
elif choice==2:
ex='mt'
elif choice==3:
ex='postmt'
elif choice==4:
ex='final'
return ex

def sub_chc():
subject='''
Available Sublects:
1.English.
2.Maths.
3.Physics.
4.Chemistry.
5.Bio/Comp'''

print(subject)
choice=int(input('Enter the number of your choice :'))
if choice==1:
ex='Eng'
elif choice==2:

Page No. 164


ex='Mat'
elif choice==3:
ex='Phy'
elif choice==4:
ex='Che'
elif choice==5:
ex='BioComp'
return ex

def graph(result):
print('Plotting your graph....\n')
head=['exam','Eng','Math','Phy','Che','Bio/Comp']
graph={'premt':['b','dashed'],'mt':
['g','dotted'],'postmt':['m','dashdot'],'final':['r','solid']}
for record in result:
record=list(record)
exami=record[0]
x=[]
y=[]
for i in range(1,6):
y.append(record[i])
x.append(head[i])
plt.plot(x,y,(graph[exami])
[0],marker='o',linestyle=(graph[exami])[1],label=exami)
plt.xlabel('Subjects')
plt.ylabel('Marks out of 100')
plt.legend()
plt.title(username+'\'s progress so far...')
print('!!! Graph Plotted !!!\n')
plt.show()

def user_oper(user):
print('''\nWHAT DO YOU WISH TO DO???...
1. View my entire progress.

Page No. 165


2. Enter my latest exam marks.
3. Update my entries.
4. Want a graph of my current progress.
5. Save and Quit.
6. Login to a different account.\n''')

opt=int(input('Enter the number of your choice :'))

if opt==1: #View all


view(user)
user_oper(user)

elif opt==2: #Enter new values

ex=exam_chc()

print('\n Enter your marks out of 100(ROUND OF TO NEAREST


INTEGER) :\n')
eng=(input('Enter your English marks :'))
mat=(input('Enter your Maths marks :'))
phy=(input('Enter your Physics marks :'))
che=(input('Enter your Chemistry marks :'))
bc=(input('Enter your Bio/Comp marks :'))
inp_val=[eng,mat,phy,che,bc]
for k in range(len(inp_val)):
if inp_val[k]==None:
inp_val[k]='NULL'

curs.execute('Insert into '+user+'\


nvalues(\''+ex+'\','+eng+','+mat+','+phy+','+che+','+bc+');')

conn.commit()
print('Value entered successfully !!!',end='\n'*2)
user_oper(user)

Page No. 166


elif opt==3:#Update the values

exam=exam_chc()
sub=sub_chc()
curs.execute('select '+sub+' from '+user+' where
exam=\''+exam+'\';')
cur_val=curs.fetchone()[0]
print('The current existing value is : ',cur_val,end='\
n'*2)
upd=(input('Enter the value you wish to get updated :'))
curs.execute('update '+user+' set Mat='+upd+' where
exam=\''+exam+'\';')
print('Value updated successfully !!!',end='\n'*2)
conn.commit()
user_oper(user)

elif opt==4:#Graph the result


curs.execute('select * from '+user+';')
result=curs.fetchall()
graph(result)
user_oper(user)

elif opt==5:#save and quit


print('Please wait...Saving your activity...')
print('THANK YOU')
conn.commit()

elif opt==6:
print('Please wait...Saving your activity...')
print('THANK YOU\n\n')
conn.commit()
main()

Page No. 167


def admin_oper(admin):

print('''\nWHAT DO YOU WISH TO DO???...


1. View the list of all users.
2. Change ADMIN password.
3. Change USER ID of user.
4. Change USER PASSWORD.
5. Delete a USER account
6. View a particular user\'s record..
7. Save and Quit.
8. Login to a different account.\n''')

opt=int(input('Enter the number of your choice :'))

if opt==1:
curs.execute('select * from user_acc;')
result=curs.fetchall()
print()
print('USERNAME\tPASSWORD')
print('--------\t--------')
for i in result:
for j in i:
print(j,end='\t\t')
print()
admin_oper(admin)

elif opt==2:
newpwd=input('Enter the new password : ')
curs.execute('Update user_acc set password=\''+newpwd+'\'
where username=\'admin\'')
print('\nPassword successfully changed !!!\n')
admin_oper(admin)

elif opt==3:

Page No. 168


usr=input('Enter your current USER ID : ')
newusr=input('Enter your new USER ID : ')
curs.execute('Update user_acc set username=\''+newusr+'\'
where username=\''+usr+'\'')
print('\nUsername successfully changed !!!\n')
admin_oper(admin)

elif opt==4:
usr=input('Enter your USER ID : ')
newpwd=input('Enter your new PASSWORD : ')
curs.execute('Update user_acc set password=\''+newpwd+'\'
where username=\''+usr+'\'')
print('\nPassword successfully changed !!!\n')
admin_oper(admin)

elif opt==5:
usr=input('Enter the USER ACCOUNT(ID) tou wish DELETE :
')
curs.execute('Delete user_acc where
username=\''+usr+'\'')
print('\nUser ID successfully Deleted !!!\n')
admin_oper(admin)

elif opt==6:
usr=input('Enter the USER ID : ')
user='user_'+usr
print(user+'"s progress so far...\n')
view(user)
admin_oper(admin)

elif opt==7:#save and quit


print('\nPlease wait...Saving your activity...')
print('THANK YOU')
conn.commit()

Page No. 169


elif opt==8:
print('Please wait...Saving your activity...')
print('THANK YOU\n\n')
conn.commit()
main()

def main():
global username
username=str(login())

if username!='user_admin':
user_oper(username)

elif username=='user_admin':
print('\nWelcome ADMIN\n')
admin_oper(username)

print('+-*/'*20,'\n')
print('\t\t STUDENTS ACADEMIC PROGRESS MANGEMENT SYSTEM\n\n')
print('+-*/'*20,'\n')

if __name__=='__main__':
main()

Page No. 170


MYSQL QUERIES - I

S.NO - 28
QNO. 01: Consider the following WORKERS and DESIG. Write SQL
commands for the statements (i) to (iv) and give outputs for SQL
queries (v) to (vi)
TABLE WORKERS

W_ID FIRSTNAME LASTNAME ADDRESS CITY


102 SAM TONES 33 ELM ST. PARIS
105 SARAH ACKERMAN 440 U.S. 110 NEW YORK
144 MANILA SENGUPTA 24 FRIENDS STREET NEW DELHI
210 GEORGE SMITH 83 FIRST STREET HOWARD
255 MARY JONES 842 VINE AVE. LOSANTIVILLE
300 ROBERT SAMUEL 9 FIFTH CROSS WASHINGTON
335 HENRY WILLIAMS 12MOORE STREET BOSTON
403 RONNY LEE 121 HARRISON ST. NEW YORK
451 PAT THOMPSON 11 RED ROAD PARIS

TABLE: DESIG

W_ID SALARY BENEFITS DESIGNATION


102 75000 15000 MANAGER
105 85000 25000 DIRECTOR
144 70000 15000 MANAGER
210 75000 12500 MANAGER
255 50000 12000 CLERK
300 45000 10000 CLERK
335 40000 10000 CLERK
403 32000 7500 SALESMAN
451 28000 7500 SALESMAN

Page No. 171


1. To display the content of workers table in ascending order of
first name.
SELECT * FROM WORKERS ORDER BY FIRSTNAME;
2. To display the FIRSTNAME, CITY and TOTAL SALARY of all Clerks
from the tables workers and design, where TOTAL SALARY = SALARY +
BENEFITS.
SELECT FIRSTNAME, CITY, SALARY + BENEFITS “TOTAL SALARY” FROM
WORKERS;
3. To display the minimum SALARY among Managers and Clerks from the
table DESIG.
SELECT MIN(SALARY) FROM DESIG WHERE DESIGNATION IN (MANAGER,
CLERK);
4. Increase the BENEFITS of all Salesmen by 10% in table DESIG.
UDATE DESIG SET BENEFITS= BENEFITS+ BENEFITS/100*10;
5. SELECT FIRSTNAME, SALARY FROM WORKERS, DESIG WHERE DESIGNATION =
‘Manager’ AND WORKERS.W_ID = DESIG.W_ID;
FIRSTNAME SALARY
SAM 75000
MANILA 70000
GEORGE 75000

6. SELECT DESIGNATION, SUM(SALARY) FROM DESIG GROUP BY DESIGNATION


HAVING COUNT (*)>=2 ;

DESIGNATION SUM(SALARY)
MANAGER 42500
CLERK 32000
SALESMAN 15000

Page No. 172


MYSQL QUERIES - II

S.NO - 29

QNO. 2: Write SQL commands for (a) to (f) and write output for (g)
on the basis of Teacher relation given below:

TABLE: TEACHER

NO. NAME AGE DEPARTMENT DATEOFJOIN SALARY SEX


1 JUGAL 34 COMPUTER 10/01/97 12000 M
2 SHARMILA 31 HISTORY 24/03/98 20000 F
3 SANDEEP 32 MATHS 12/12/96 30000 M
4 SANGEETA 35 HISTORY 01/07/99 40000 F
5 RAKESH 42 MATHS 05/09/97 25000 M
6 SHYAM 50 HISTORY 27/06/98 30000 M
7 SHIV OM 44 COMPUTER 25/02/97 21000 M
8 SHALAKHA 33 MATHS 31/07/97 20000 F

1. To show all information about the teacher of history


department.
MYSQL> SELECT * FROM TEACHER WHERE DEPARTMENT=’HISTORY’;
2. To list the names of female teachers who are in Hindi
department.
MYSQL> SELECT * FROM TEACHER WHERE DEPARTMENT=’HINDI’ AND SEX=’F’ ;
3. To list names of all teachers with their date of joining in
ascending order.
MYSQL> SELECT * FROM TEACHER ORDER BY DATEOFJOIN
4. To display teacher’s Name, Salary, Age for male teacher
only.
MYSQL> SELECT NAME, SALARY, AGE FROM TEACHER WHERE SEX=’M’ ;

Page No. 173


5. To count the number of teachers with Age >23.
MYSQL> SELECT COUNT(*) FROM TEACHER WHERE AGE>23;
6. To insert a new row in the Teacher table with the following
data: 9,”Vijay”, 26,”Computer”, {13/05/95}, 35000,”M”
MYSQL> INSERT INTO TEACHER VALUES (9, ”Vijay”, 26,”Computer”,
‘13/05/95’, 35000,”M”);
7.To show all information about the teachers in this table:
MYSQL> SELECT *FROM TEACHER;
8.Add a new column named “Address”.
MYSQL> ALTER TABLE TEACHER ADD ADDRESS CHAR (40);
9.DISPLAY table in the alphabetical order to name : SELECT *FROM
TEACHER ORDER BY NAME;
10. Display the age of the teachers whose name starts with ‘S’.
MYSQL> SELECT AGE FROM TEACHER WHERE NAME LIKE “S%’;
11. Select count (Distinct Department) from Teacher;
COMPUTER

HISTORY

MATHS

12. Select AVG (Salary) from Teacher where


DateofJoin<’12/07/96’;
NULL
13. Select SUM (Salary) from Teacher where
DateofJoin<’12/07/96’;
NULL
14. Select MAX(Age) from Teacher where Sex=”F”;
35

Page No. 174


MYSQL QUERIES - III

S.NO - 30

QNO 3. Consider the following table INTERIORS and NEWONES and give
the answer (B1) and (B2) parts of this question.
TABLE: INTERIORS
DATE OF
No ITEMNAME TYPE PRICE DISCOUNT
STOCK
1. RED ROSE DOUBLE BED 23/02/02 32000 15
2. SOFT TOUCH BABY COT 20/01/02 9000 10
3. JERRY’S HOME BABY COT 19/02/02 8500 10
4. ROUGH WOOD OFFICE TABLE 01/01/02 20000 20
5. COMFORT ZONE DOUBLE BED 12/01/02 15000 20
6. JERRY LOOK BABY COT 24/02/02 7000 19
7. LION KING OFFICE TABLE 20/02/02 16000 20
8. ROYAL TIGER SOFA 22/02/02 30000 25
9. PARK SITTING SOFA 13/12/01 9000 15
10. DINE PARADISE DINING TABLE 19/02/02 11000 15

TABLE: NEWONES
NO ITEMNAME TYPE DATEOFSTOCK PRICE DISCOUNT
11. WHITE WOOD DOUBLE BED 23/03/03 20000 20
12. JAMES 007 SOFA 20/02/03 15000 15
13. TOM LOOK BABY COT 21/02/03 7000 10

1. To show all information about the Sofa from the INTERIORS table.
MYSQL> SELECT *FROM INTERIORS WHERE TYPE=’SOFA’;
2. To list the ITEMNAME which are priced at more than 10000 from
the INTERIORS table?
MYSQL> SELECT ITEMNAME FROMINTERIORS WHERE PRICE >10000;

Page No. 175


3. To list ITEMNAME and type of those items, in which DATEOFSTOCK
is before 22/01/02 from INTERIORS table in descending order of
ITEMNAME.
MYSQL> SELECT * FROMINTERIORS WHERE DATEOFSTOCK< ‘22/01/02’
ORDER BY ITEMNAME
4. To display ITEMNAME and DATEOFSTOCK of those items, in which the
DISCOUNT percentage is more than 15 from INTERIORS table.
MYSQL> SELECT ITEMNAME, DATEOFSTOCK FROMINTERIORS WHERE
DISCOUNT>15;
5. To count the number of items, whose TYPE is “Double Bed” from
INTERIORS table?
MYSQL> SELECT COUNT(*) FROM INTERIORS WHERE TYPE=’DOUBLE BED’;
6. To insert a new row in the NEWONES table with the following
data: 14,”True Indian”, “Office Table”, {28/03/03}, 15000,
INSERT INTO NEWONES VALUES (14,”TRUE INDIAN”, “OFFICE TABLE”,
‘28/03/03’, 15000, 20);
7. MYSQL> Select count (Distinct TYPE) from INTERIORS;
4
8. MYSQL> Select AVG (DISCOUNT) from INTERIORS where TYPE=”Baby
cot”;
13
9. MYSQL> Select SUM (Price) from INTERIORS
whereDATEOFSTOCK<{12/02/02};
43000
10. MYSQL> Select MAX(DISCOUNT) from INTERIORS;
25
11. Write the outputs of the following SQL :
i) SELECT POWER(2,5) DUAL;

Page No. 176


ii) SELECT ROUND(10.195,2) FROM DUAL;

iii)SELECT TRUNCATE(10.195,2) FROM DUAL;

iv) SELECT substr(‘COMPUTER SCIENCE’,3,4)FROM DUAL;

Page No. 177

You might also like