Computer Science 9618 – A2 – Paper 4 – Worksheet
Question No. 1 (October/November 2023 / 41 – Q1)
def IterativeVowels(Value):
Minhas Rupsi
Total = 0
LengthString = len(Value)
for x in range(0, LengthString):
FirstCharacter = Value[0:1]
if FirstCharacter == 'a' or FirstCharacter == 'e' or FirstCharacter == 'i' or
FirstCharacter == 'o' or FirstCharacter == 'u':
Total = Total + 1
Value = Value[1 : len(Value)]
return Total
print(IterativeVowels("house"))
def RecursiveVowels(Value):
if len(Value) == 0:
return 0
else:
FirstCharacter = Value[0:1]
if FirstCharacter == 'a' or FirstCharacter == 'e' or FirstCharacter == 'i' or
FirstCharacter == 'o' or FirstCharacter == 'u':
return 1 + RecursiveVowels(Value[1 : len(Value)])
else:
return RecursiveVowels(Value[1 : len(Value)])
print(RecursiveVowels("imagine"))
www.MinhasRupsi.Computer Page 1 of 8
Computer Science 9618 – A2 – Paper 4 – Worksheet
Question No. 2 (October/November 2022 / 41 – Q3)
Minhas Rupsi
#DECLARE ArrayNodes : ARRAY [0:19] OF INTEGER
ArrayNodes = [[-1,-1,-1] for x in range(20)] #Global Array
ArrayNodes = [[1, 20, 5], [2, 15, -1], [-1, 3, 3], [-1, 9, 4], [-1, 10, -1],
[-1, 58, -1], [-1, -1, -1]]
FreeNode = 6
RootPointer = 0
def SearchValue(Root, ValueToFind):
global ArrayNodes, RootPointer, FreeNode
if Root == -1:
return -1
else:
if ArrayNodes[Root][1] == ValueToFind:
return Root
else:
if ArrayNodes[Root][1] == -1:
return -1
if ArrayNodes[Root][1] > ValueToFind:
return SearchValue(ArrayNodes[Root][0], ValueToFind)
if ArrayNodes[Root][1] < ValueToFind:
return SearchValue(ArrayNodes[Root][2], ValueToFind)
def PostOrder(Root):
global ArrayNodes
if ArrayNodes[Root][0] != -1:
PostOrder(ArrayNodes[Root][0])
if ArrayNodes[Root][2] != -1:
PostOrder(ArrayNodes[Root][2])
print(ArrayNodes[Root][1])
x = SearchValue(0,15)
if x == -1:
print("Value not found...")
else:
print("Value found at", x)
PostOrder(0)
www.MinhasRupsi.Computer Page 2 of 8
Computer Science 9618 – A2 – Paper 4 – Worksheet
Question No. 3 (October/November 2023 / 42 – Q3)
import datetime
Minhas Rupsi
class Character:
def __init__(self, cn, dob, inte, spe):
#PRIVATE CharacterName : STRING
#PRIVATE DateOfBirth : DATE
#PRIVATE Intelligence : REAL
#PRIVATE Speed : INTEGER
self.__CharacterName = cn
self.__DateOfBirth = dob
self.__Intelligence = inte
self.__Speed = spe
def GetIntelligence(self):
return self.__Intelligence
def GetName(self):
return self.__CharacterName
def SetIntelligence(self, inte):
self.__Intelligence = inte
def Learn(self):
self.__Intelligence = self.__Intelligence + (self.__Intelligence * 10/100)
def ReturnAge(self):
return 2023 - self.__DateOfBirth.year
FirstCharacter = Character("Royal", datetime.date(2019,1,1), 70, 30)
FirstCharacter.Learn()
print("Name: ", FirstCharacter.GetName())
print("Age: ", FirstCharacter.ReturnAge())
print("Intelligence: ", FirstCharacter.GetIntelligence())
www.MinhasRupsi.Computer Page 3 of 8
Computer Science 9618 – A2 – Paper 4 – Worksheet
class MagicCharacter(Character):
Minhas Rupsi
def __init__(self, ele, cn, dob, inte, spe):
super().__init__(cn, dob, inte, spe)
#PRIVATE Element : STRING
self.__Element = ele
def Learn(self):
if self.__Element == "fire" or self.__Element == "water":
self.SetIntelligence(self.GetIntelligence() * 1.2)
elif self.__Element == "earth":
self.SetIntelligence(self.GetIntelligence() * 1.3)
else:
self.SetIntelligence(self.GetIntelligence() * 1.1)
FirstMagic = MagicCharacter("fire", "Light", datetime.date(2018,3,3), 75, 22)
FirstMagic.Learn()
print("Name: ", FirstMagic.GetName())
print("Age: ", FirstMagic.ReturnAge())
print("Intelligence: ", FirstMagic.GetIntelligence())
www.MinhasRupsi.Computer Page 4 of 8
Computer Science 9618 – A2 – Paper 4 – Worksheet
Question No. 4 (May/June 2023 / 42 – Q2)
class SaleData:
Minhas Rupsi
def __init__(self, i, q):
self.id = i
self.qty = q
CircularQueue = [SaleData("", -1) for x in range(5)]
Head = 0
Tail = 0
NumberOfItems = 0
def Enqueue(NewRecord):
global CircularQueue, Head, Tail, NumberOfItems
if NumberOfItems == 5:
return -1
else:
CircularQueue[Tail] = NewRecord
NumberOfItems = NumberOfItems + 1
if Tail == 4:
Tail = 0
else:
Tail = Tail + 1
return 1
def Dequeue():
global CircularQueue, Head, Tail, NumberOfItems
RecordRemove = SaleData("", -1)
if NumberOfItems != 0:
RecordRemove = CircularQueue[Head]
NumberOfItems = NumberOfItems - 1
if Head == 4:
Head = 0
else:
Head = Head + 1
return RecordRemove
www.MinhasRupsi.Computer Page 5 of 8
Computer Science 9618 – A2 – Paper 4 – Worksheet
def EnterRecord():
Minhas Rupsi
sid = input("Enter Sales ID: ")
sqty = int(input("Enter Product Quantity: "))
NewRecord = SaleData(sid, sqty)
x = Enqueue(NewRecord)
if x == -1:
print("Full")
else:
print("Stored")
EnterRecord()
EnterRecord()
EnterRecord()
EnterRecord()
EnterRecord()
EnterRecord()
RecordRemove = Dequeue()
if RecordRemove.id == "":
print("Queue is empty...")
else:
print("ID:", RecordRemove.id)
print("Quantity:", RecordRemove.qty)
EnterRecord()
for index in range(5):
print(CircularQueue[index].id, CircularQueue[index].qty)
www.MinhasRupsi.Computer Page 6 of 8
Computer Science 9618 – A2 – Paper 4 – Worksheet
Question No. 5 (October/November 2023 / 42 – Q1)
StackVowel = [''] * 100
Minhas Rupsi
StackConsonant = [''] * 100
VowelTop = 0
ConsonantTop = 0
def PushData(Value):
global StackVowel, StackConsonant, VowelTop, ConsonantTop
if Value == 'a' or Value == 'e' or Value == 'i' or Value == 'o' or Value == 'u':
if VowelTop == 100:
print("Vowel stack is full...")
else:
StackVowel[VowelTop] = Value
VowelTop = VowelTop + 1
else:
if ConsonantTop == 100:
print("Consonant stack is full...")
else:
StackConsonant[ConsonantTop] = Value
ConsonantTop = ConsonantTop + 1
def ReadData():
try:
myFile = open("StackData.txt", "r")
info = myFile.readline().strip()
while info != "":
PushData(info)
info = myFile.readline().strip()
myFile.close()
except:
print("File not found...")
def PopVowel():
global StackVowel, VowelTop
if VowelTop == 0:
return "No data"
else:
VowelTop = VowelTop - 1
Value = StackVowel[VowelTop]
return Value
www.MinhasRupsi.Computer Page 7 of 8
Computer Science 9618 – A2 – Paper 4 – Worksheet
def PopConsonant():
Minhas Rupsi
global StackConsonant, ConsonantTop
if ConsonantTop == 0:
return "No data"
else:
ConsonantTop = ConsonantTop - 1
Value = StackConsonant[ConsonantTop]
return Value
newString = ""
ReadData()
for index in range(5):
choice = input("Enter a choice of vowel and consonant: ").lower()
if choice == "vowel":
x = PopVowel()
elif choice == "consonant":
x = PopConsonant()
newString = newString + x
print(newString)
www.MinhasRupsi.Computer Page 8 of 8