## Year 2008

0

**ISC 2008**

**COMPUTER SCIENCE PAPER 1**

**THEORY**

**PART I**

**Answer all questions in this part**

**Question 1.**

a) State the two complement properties of Boolean Algebra. Verify any one of them using the

truth table.

b) Simplify the following Boolean expression stating clearly the laws used for simplification at each

step.

XY + XZ + XYZ

c) Find the complement of:

X.(Y’Z’ + YZ)

d) Convert the following Product of Sum form into its corresponding Sum of Product form:-

F(X,Y,Z)= π(2,4,6,7)

e) Draw the truth table of the propositional logic expressions p→q and p↔q.

[ 2 x 5 = 10]

**Question 2.**

a) Mention two points which distinguish a static data member from an ordinary data member in a

class.

b) Convert the following infix expression to its postfix form:-

A / (B+C) +D * (E-F)

c) What do LIFO and FIFO stand for? Name a data structure that follows LIFO principle and one

that follows FIFO principle.

d) A two dimensional array defined as x[3…6, -2…2] requires 2 bytes of storage space for each

element. If the array is stored in row major order, determine the address of X[5,1], given the

base address as 1200.

e) List the nodes in the tree given below in :

i) Preorder

ii) Postorder

[ 2 x 5 = 10]

**Question 3.**

a) The following is a function of some class. It returns 1 if the number is a perfect number

otherwise it returns 0.

/* A perfect number is a number which is equal to the sum of its factors other than the number

itself. */

intperfectNo(int n)

{

int ?1?;

for(int j=1;?2?;j++)

{

if(?3?)

sum ?4?;

}

if(?5?)

return 1;

else

return 0;

}

i) What is the expression at ?1?

ii) What is the expression at ?2?

iii) What is the expression at ?3?

iv) What is the expression at ?4?

v) What is the expression at ?5?

[ 1 x 5 = 5]

b) The following functions show() and calling() are a part of some class. Assume that the parameter

n is greater than 1 when the function is invoked. It returns the value 1when true otherwise it

returns 0. Show the dry run/working.

void calling()

{

int f=2;

show(n,f);

}

int show(int n, int f)

{

if(n==f)

return 1;

if(n%f==0 || n==1)

return 0;

else

return(show(n,f+1));

}

i) What will the function show() return when the value of n is 11? [ 2 ]

ii) What will the function show() return when the value of n is 27? [ 2 ]

iii) In one line state what function show() is doing? [ 1 ]

**PartII**

**Answer any seven questions in this part, choosing three questions from Section A and four questions**

**from Section B.**

**Section A**

**Answer any three questions.**

**Question 4.**

a) Given F(A,B,C,D)= Σ(5,6,7,8,9,10,14)

Use Karnaugh map to reduce the given function F using the SOP form. Draw a logic gate diagram

for the reduced SOP form. You may use gates with more than two inputs. Assume that the

variables and their complements are available as inputs.

b) X(A,B,C,D)= π(0,2,6,8,10,14)

Use Karnaugh map to reduce the given function X using the POS form. Draw a logic gate diagram

for the reduced POS form. You may use gates with more than two inputs. Assume that the

variables and their complements are available as inputs.

[ 5 x 2 = 10]

**Question 5.**

The immigration rules of a country allow the issue of work cum stay permits to an applicant only if the

applicant satisfies any one of the following conditions:-

· The spouse of the applicant is a permanent resident of that country, having lived there for at

least five years.

OR

· The applicant possesses certain special skills as specified in the “skill requirement list” of that

country and is sponsored by a permanent resident of that country.

The inputs are:-

A : The spouse or sponsor has permanent residence status.

B : The spouse has lived in the country for 5 or more years.

C : The applicant possesses the required special skills.

D : Sponsorship by a permanent resident.

Output:-

X : Denotes eligible for permit issue. [ 1 indicates Yes and 0 indicates No in all cases]

a) Draw the truth tables for the inputs and outputs given above and write the SOP expression for

X(A,B,C,D). [ 5 ]

b) Reduce X(A,B,C,D) using Karnaugh’s map.

Draw the logic gate diagram for the reduced SOP expression for X(A,B,C,D) using AND & OR

gates. You may use gates with more than 2 inputs. Assume that variables and their

complements are available as inputs. [ 5 ]

**Question 6.**

a) How is an XOR gate different from an OR gate? Draw a truth table representing a 3 input XOR

operation. Derive its SOP expression and draw the logic gate diagram for the SOP expression.n

[ 4 ]

b) What is the purpose of a multiplexer? Mention any two applications of a multiplexer. [ 3 ]

c) Draw the logic gate diagram for the following three input function F(X,Y,Z) using NOR gates

only. F(X,Y,Z)= Σ(0,1,3,4,7) [ 3 ]

Question 7.

a) Reduce the following expression using the laws of Boolean Algebra. Draw the logic gate diagram

for the simplified expression:-

F=A.(A’+B). C. (A+C) [ 4 ]

b) State the principles of duality. Give an example. [ 3 ]

c) Convert AB + BC’ to its canonical SOP form using Boolean Algebra. [ 3 ]

Question 8.

a) Draw the truth table and logic circuit diagram for a 3 x 8 decoder.

State the difference between a multiplexer and a decoder. [ 5 ]

b) Reduce the following Boolean expression to the simplest form:-

A.[B+C(AB+AC)’] [ 3 ]

c) Given F(X,Y,Z)= Σ(1,3,7)

Prove F(X,Y,Z)= π ( 0,2,4,5,6) [ 2 ]

**Section B**

**Answer any 4 questions.**

**Each program should be written in such a way that it clearly depicts the logic of the problem. This can be**

**achieved by using mnemonic names and comments in the program.**

**(Flowcharts and algorithms are not required)**

**The programs must be written in C++/Java**

**Question 9.**

NIC institute’s resource manager has decided to network the computer resources like printer, storage

media, etc. so that minimum resources and maximum sharing could be availed. Accordingly printers are

linked to a centralized system and the printing jobs are done on a ‘first come first served basis, only. This

is like the first person’s printing job will get done first and the next person’s job will be done as the next

job in the list and so on. In order to avoid collision, the restriction is that no more than 20 printing jobs

can be added.

Define the class Printjob with the following details:

Class name : Printjob

Data members

job[] : array of integers to hold the printing jobs.

Newjob : to add a new printing job into the array.

Capacity : the maximum capacity of the integer array.

Front : to point out to the index of the front.

Rear : to point out to the index of the last.

Member functions

Printjob() : constructor to initialize data members.

Capacity=20, Front = Rear=-1 and call the

function createJob().

void createJob() : to create an array to hold the printing jobs.

void addJob() : adds the new printing job to the end of the last

printing job, if possible, otherwise displays the

message “Printjob is full, cannot add any more”.

void removeJob() : Removes the printing job from the front if the

printing job is not empty, otherwise displays the

message “Printjob is empty”.

a) Specify the class Printjob giving details of the constructor and the function void addJob(), void

createJob() and void removeJob() only. You do not need to write the main function. [ 8 ]

b) What is the common name of the entity described above? [ 1 ]

c) State one of its applications [ 1 ]

**Question 10.**

A special number is a number in which the sum of the factorial of each digit is equal to the number itself.

For example:- 145 = 1! + 4! + 5!

= 1 + 24 + 120

Design a class Special to check if a given number is a special number. Some of the members of the class

are given below:

Class name : Special

Data members

N : Integer

Member functions

Special() : constructor to assign 0 to n

Special(int) : Parameterized constructor to assign a value to ‘n’

void sum() : calculate and display the sum of the first and last digit

of n.

void isSpecial() : check and display if the number n is a special number.

Specify the class Special giving details of the constructor, void sum() and void isSpecial(). You need not

write the main function. [ 10 ]

**Question 11.**

A class Collection contains an array of 100 integers. Using the following class description create an array

with common elements from two integer arrays. Some of the members of the class are given below:

Class name : Collection

Data members

arr[] : integer array

len : length of the array

Member functions

Collection() : default constructor

Collection(int) : parameterized constructor to assign the length of the

array.

void inparr() : to accept the array elements.

Collection common(Collection) : returns a Collection containing the common elements

of current Collection object and the Collection object

passed as a parameter.

void arrange() : sort the array elements of the object containing

common elements in ascending order using any sorting

technique.

void display() : displays the array elements.

Specify the class Collection giving the details of the constructors, void inparr() and void arrange().

Collection common(Collection). You need not write the main Function.

[ 10 ]

**Question 12.**

A class Employee contains employee details and another class Salary calculates the employee’s net

salary. The details of the two classes are given below:

Class name : Employee

Data members

empNo : stores the employee number.

empName : stores the employee name

empDesig : stores the employee’s designation.

Member functions:

Employee() : default constructor.

Employee(…) : parameterized constructor to assign values to data

members.

void display() : display the employee details.

Class name : Salary

Data members

basic : float variable to store the basic pay.

Member functions

Salary(…) : parameterized constructor to assign values to data members.

void calculate() : calculates the employee’s net salary according to the

following rules:

DA = 10% of basic

HRA = 15% of basic

Salary = basic + DA +H RA

PF= 8 % of Salary

Net Salary = Salary –PF

Display the employee details and the Net salary.

Specify the class Employee giving details of the constructors and member function void display(). Using

the concept of inheritance specify the class Salary giving details of the constructor and the member

function void calculate(). The main function need not be written. [ 10 ]

**Question 13.**

A class Revstr defines a recursive function to reverse a string and check whether it is a palindrome. The

details of the class are given below:

Class name : Revstr

Data members

Str : stores the string.

Revst : stores the reverse of the string.

Member functions

void getStr() : to accept the string.

void recReverse(int) : to reverse the string using recursive technique.

void check() : to display the original string, its reverse and whether

the string is a palindrome or not.

Specify the class Revstr giving details of the functions void getStr(), void recReverse(int) and void

check(). The main function need not be written. [ 10 ]

**Question 14.**

A class Modify has been defined with the following details:

Class name : Modify

Data members

St : stores a string

len : to store the length of the string.

Member functions

void read() : to accept the string inuppercase alphabets.

void putin(int , char) : to insert a character at the specified position in

the string and display the changed string.

void takeout(int) : to remove character from the specified position

in the string and display the changed string.

void change() : to replace each character in the original string

by the character which is a t a distance of 2

moves ahead. For example:- “ABCD” becomes

“CDEF”, “XYZ” becomes “ZAB”.

Specify the class Modify giving details of the functions vod read(), void putin(int,char), void takeout(int)

and void change(). The main function need not be written.

[ 10 ]

**************