Guess Questions - ISC Computer Practical

Guess Questions for ISC Computer Practical

1. Enter date of submission, number of days given to complete the project and find the date of announcement of project.

/*
*  Enter date of submission, number of days given to complete
*  the project and find the date of announcement of project.
*/

import java.util.*;
class DateOfAnnouncement
{
public static void main (String args[])throws InputMismatchException
{
Scanner scan = new Scanner(System.in);

int dd, mm, yy, nod,i,tdays = 0,m;

System.out.println("Enter the day, month and year of the date of announcement of the project: ");
dd = scan.nextInt();
mm = scan.nextInt();
yy = scan.nextInt();

System.out.println("Enter the no of days given to complete the project: ");
nod = scan.nextInt();

int dom[] = {31,28,31,30,31,30,31,31,30,31,30,31};

// If it is a leap year, februrary should have 29 days.
if(yy%4 == 0)
dom = 29;

// Add the days of the month
for(i = 0; i< mm-1; i++)
tdays+= dom[i];

// Add the days of the current month
tdays+= dd;

// Subtract the number of days given to complete the project from total days
tdays-= nod;

// Now convert the total calculated days to date

// If the result is negative that means the project was announced
// in the previous year
if(tdays < 0)
{
yy--;

// If the previous year was a leap year, add 366 to get the corresponding
// day of that year else add 365

if(yy%4 == 0)
tdays += 366;
else
tdays += 365;
}
if(yy%4 == 0)
dom = 29;
else
dom = 28;
m=0;

while(tdays>dom[m]){
tdays-= dom[m];
m++;
}
System.out.println("Date of announcement: " + tdays + "/" + (m+1) + "/" + yy);

}//end of main
}//end of class

2. WAP to enter the current date in dd/mm/yyyy format and the day name on the 1st of January of that year. Display the name of the day on the given date.

/* Write a program to accept a date in the string format dd/mm/yyyy
* and accept the name of the day
* on 1st of January of the corresponding year. Find the day for the given date.
Example:
INPUT Date: 5/7/2001 Day on 1st January : MONDAY
OUTPUT  Day on 5/7/2001 : THURSDAY
Test run the program on the following inputs:
INPUT DATE         DAY ON 1ST JANUARY     OUTPUT DAY FOR INPUT DATE
4/9/1998             THURSDAY                     FRIDAY
31/8/1999            FRIDAY                       TUESDAY
6/12/2000            SATURDAY                     WEDNESDAY

The program should include the part for validating the inputs namely the date
and the day on 1st January of that year.
*/

import java.util.*;
class CurrentDayName
{
public static void main (String args[])
throws InputMismatchException
{
Scanner scan = new Scanner(System.in);

int i,dd,mm,yy,tdays, index,r;
String date,dayName;

System.out.println("Enter a date in the string format dd/mm/yyyy: ");
System.out.println("If the date is 9th Februaray,
2013 enter it as 09/02/2013. ");
date = scan.next();

dd=mm=yy=0;
// Convert the date in string format to day, month and year
try{
dd = Integer.parseInt(date.substring(0,2));
mm = Integer.parseInt(date.substring(3,5));
yy = Integer.parseInt(date.substring(6));

System.out.println("Enter the name of the day on 1st of January ");
dayName = scan.next();

//Store the days of the months
int dom[] = {31,28,31,30,31,30,31,31,30,31,30,31};

//If it is a leap year, februrary should have 29 days.
if(yy%4 == 0)
dom = 29;

if(dd < 0 || dd > dom[mm-1]){
System.out.println("Invalid date.");
}else{
//Store the day names of the week
String days[] = {"Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday", "Sunday"};

//Find the corresponding day of the year

tdays = 0;
//Add the days of the month
for(i = 0; i < mm-1; i++)
tdays+= dom[i];

//Add the days of the current month
tdays+= dd;

index = 0;
//Find the index of the entered day name in the day names array
for(i = 0; i < 7; i++)
{
if(dayName.equalsIgnoreCase(days[i])){
index = i;
break;
}

}

//find the index of the day in the day names array for the current day
r = tdays%7 + index - 1;

if( r >= 7)
r -= 7;

System.out.println("Day on " + date + " : " + days[r]);
} // else

}catch(Exception e){
System.out.println("Please enter the date in the specified format.");
System.out.println("Error : "+e);
}

}//end of main
}//end of class

3. WAP to enter two dates of the same year and find the number of days elapsed between them.

/* Enter two dates of the same year and find the
* number of days elapsed between them
*/

import java.util.*;
class TwoDateDiff
{
public static void main (String args[])throws InputMismatchException
{
Scanner scan = new Scanner(System.in);

int d1,m1,d2,m2,y,i,total1,total2,diff;

System.out.println("Enter the day and month of first date: ");
d1 = scan.nextInt();
m1 = scan.nextInt();

System.out.println("Enter the day and month of second date: ");
d2 = scan.nextInt();
m2 = scan.nextInt();

System.out.println("Enter the year: ");
y = scan.nextInt();

int dom[] = {31,28,31,30,31,30,31,31,30,31,30,31};

//If it is a leap year, februrary should have 29 days.
if(y%4 == 0)
dom = 29;

// Check for validity of date
if(d1 < 0 || m1 > 12 || d1 > dom[m1-1] || d2 < 0 || m2 >12 || d2 > dom[m2-1]){
System.out.println("Please enter a valid date.");
}else{

total1 = 0;
//Add the days of the month
for(i=0; i< m1-1; i++)
total1 += dom[i];

//Add the days of the current month
total1+=d1;

total2 = 0;
//Add the days of the month
for(i=0; i< m2-1; i++)
total2 += dom[i];

//Add the days of the current month
total2+=d2;

diff = (int) Math.abs(total1 - total2);

System.out.println("Days elapsed : "+diff);
}//else

}//end of main
}//end of class

4. WAP to enter a paragraph which may be terminated by a '?', '.' or an '!'. Print the number of sentences that have 2 or more palindrome words in it.

/*
* WAP to enter a paragraph which may be terminated by a '?', '.' or an '!'.
* Print the number of sentences that have 2 or more palindrome words in it.
*/
import java.io.*;
class NoOfPalindromes
{
public static void main (String args[])throws IOException
{
int i,p,j,f,l,count, nos=0;
String str, word, revWord;
char ch, ch1;

System.out.print("Enter a paragraph(terminated by '?', '.' or '!') : ");
l= str.length();
p=0;
for(i=0;i< l;i++)
{
ch=str.charAt(i);

// check for the end of a sentence
if(ch=='!' ||ch=='?'|| ch=='.')
{
f=0;
count=0;
//Loop to traverse through each sentence
for(j=p;j< i+1;j++)
{
ch1=str.charAt(j);

//Extract a word
if(ch1==' '||ch1=='!' ||ch1=='?'|| ch1=='.')
{

word=str.substring(f,j);

//Reverse the word
revWord = (new StringBuffer(word).reverse()).toString();

//Count palindrome words
if(word.equals(revWord))
count++;

f=j+1;
}
}
// If the sentence has two or more palindrome words increment
// the counter
if(count>=2)
nos++;
p=i+1;
}
}
System.out.println("Number of sentences with two or more palindrome
words in it : "+nos);
}//end of main
}//end of class

5. WAP to enter two sentences and print the common words in them.

/*
* WAP to enter two senteces from the user.
* Print the common words in them.
*/
import java.io.*;
class CommonWords
{
public static void main (String args[])throws IOException
{
int i,j,l1,l2,p,x,y,count=0;
String str1, str2;
char ch;

System.out.print("Enter two sentences terminated by either a '?', '.' or '!' : ");

l1= str1.length();
l2= str2.length();

String s1[] = new String[l1];
x=0;
p=0;
//Store all the words of the first sentence in a string array
for(i=0;i< l1;i++)
{
ch = str1.charAt(i);
if(ch == ' ' || ch == '?' || ch == '.' || ch == '!'){
s1[x++]=str1.substring(p,i);
p = i+1;
}
}
String s2[] = new String[l1];
y=0;
p=0;
//Store all the words of the second sentence in a string array
for(i=0;i< l2;i++)
{
ch = str2.charAt(i);
if(ch == ' ' || ch == '?' || ch == '.' || ch == '!'){
s2[y++]=str2.substring(p,i);
p = i+1;
}
}

//Now compare the words stored in two arrays
for(i=0;i< x;i++){
for(j=0;j< y;j++){
//If match is found, print the word and store blank space to avoid repetition
if(s1[i].equalsIgnoreCase(s2[j]) && !s2[j].equals(" ")){
System.out.println(s1[i]);
s2[j]=" ";
}
}
}

}//end of main
}//end of class

6. Enter n sentences and merge them to form a single sentence, where n <= 10. The merged sentence should not have duplicate words and must only consist of letters and blank spaces. Any other character should be removed.

/*
* Enter n sentences and merge them to form a single sentence,
* where n <= 10. The merged sentence should not have duplicate words and must
* only consist of letters and blank spaces. Any other character
* should be removed.
*/
import java.io.*;
class MergeSentence
{
public static void main (String args[])throws IOException
{

int n,i,j,k,p,x,l,now;
String ms;
char ch,t;

System.out.println("Enter the no of sentences (upto 10): ");
if(n<=10){

//String array to store the sentences
String str[] = new String[n];

//counter to store number of words
now=0;

System.out.println("Enter the "+n+" sentences: ");
for(i=0;i< n;i++)
{

//This loop is used to count the number of words in all the sentences.
//The counter is then used to initialize the array that stores all the words
for(j=0;j< str[i].length();j++){
ch = str[i].charAt(j);
if(ch == ' ' || ch == '?' || ch == '.' || ch == '!'){
now++;
}
}
}

//String array to store number of words
String words[] = new String[now];

x=0;
for(i=0;i< n;i++){
l=str[i].length();
p=0;
for(j=0;j< l;j++){
ch = str[i].charAt(j);
ms="";
if(ch == ' ' || ch == '?' || ch == '.' || ch == '!'){
//Loop to access the word
for(k=p;k< j;k++){
t = str[i].charAt(k);
//Only add letters to the merged string
if((t >= 'A' && t<='Z') || (t>='a' && t<='z'))
ms = ms + t;
}
//Store the words in string array
words[x++] = ms;
p = j+1;
}
}
}
//Now remove duplicate words from the string array
for(i=0;i< x;i++){
for(j=i+1;j< x;j++){
if(words[i].equalsIgnoreCase(words[j])){
for(k=j;k< x-1;k++)
words[k] = words[k+1];
j--; // Decrement loop counter to cater to successive duplicates
x--;
}
}
}
for(i=0;i< x;i++){
System.out.print(words[i]+" ");
}
}else{
System.out.println("Invalid value!");
}

}//end of main
}//end of class

7. Enter date of announcement, number of days given to complete the project and find the date of submission of project.

/* Enter date of announcement, number of days given to complete the project and
* find the date of submission of project.
*/

import java.util.*;
class DateOfSubmission
{
public static void main (String args[])throws InputMismatchException
{
Scanner scan = new Scanner(System.in);

int dd, mm, yy, nod,i,tdays=0,m;

System.out.println("Enter the day, month and year of the date of
announcement of the project: ");
dd = scan.nextInt();
mm = scan.nextInt();
yy = scan.nextInt();

System.out.println("Enter the no of days given to complete the project: ");
nod = scan.nextInt();

int dom[] = {31,28,31,30,31,30,31,31,30,31,30,31};

//If it is a leap year, februrary should have 29 days.
if(yy%4 == 0)
dom = 29;

//Add the days of the month
for(i=0; i< mm-1; i++)
tdays+=dom[i];

//Add the days of the current month
tdays+=dd;

//Add the number of days given to complete the project
tdays+=nod;

//Now convert the total calculated days to date

// If the days exceed the total number of days in a year
// Increment the year by one

if(yy%4 == 0){
if(tdays > 366){
tdays-=366;
yy++;
}
}else{
if(tdays > 365){
tdays-=365;
yy++;
}
}

if(yy%4 == 0)
dom = 29;
else
dom = 28;

m=0;

while(tdays>dom[m]){
tdays-=dom[m];
m++;
}
System.out.println("Date of submission: "+tdays+"/"+(m+1)+"/"+yy);

}//end of main
}//end of class

8. A number with n digits, which, when multiplied by 1, 2, 3, ..., n produces the same digits in a different order is known as a Cyclic Number. For example, 142857 is a cyclic number: 142857 x 2 = 285714; 142857 x 3 = 428571; 142857 x 4 = 571428; 142857 x 5 = 714285; 142857 x 6 = 857142, and so on. Write a program to enter a number and check if it is a cyclic number or not.

/*
* Write a program to enter a number and check if it is a cyclic number or not.
*/
import java.io.*;
class CyclicNo
{
//Function to arrange the digits stored in the string s in ascending order
static String sort(String s)
{
String t="";
int i,j;
char a[] = s.toCharArray();

for(i = 0; i < a.length; i++)
{
for(j = 0; j < a.length-i-1; j++)
{
if(a[j] > a[j+1])
{
char r = a[j];
a[j] = a[j+1];
a[j+1] = r;
}
}
}
for(i = 0; i < a.length; i++)
t = t + a[i];
return t;
}
public static void main(String arg[])throws IOException
{
String w,r,p;
int i,n;
boolean flag = true;

System.out.println("Enter a number");

// Convert the integer to string
String str = Integer.toString(n);

// Sort the number
w = sort(str);

for(i = 2; i <= str.length(); i++)
{
// Get the multiples of the number
r = Integer.toString(n*i);

// Sort the multiple
p = sort(r);

if(p.equals(w) == false)
{
flag = false;
break;
}
}
if(flag)
System.out.println(n + " is a cyclic number");
else
System.out.println(n + " is not a cyclic number");
}//end of main
}//end of class

9. A number that is smaller than the sum of its aliquot parts (proper divisors) is known as an Abundant Number. Twelve is the smallest abundant number - the sum of its aliquot parts is 1 + 2 + 3 + 4 + 6 = 16 - followed by 18, 20, 24, and 30.

/*
* WAP to print all the abudant numbers between m and n.
* A weird number is one which is smaller than the sum of its aliquot parts.
*/
import java.util.*;
class AbundantNo
{
public static void main (String args[])throws InputMismatchException
{
Scanner scan = new Scanner(System.in);
int m,n,i,j,s;

System.out.println("Enter the limits m and n: ");
m = scan.nextInt();
n = scan.nextInt();

for(j=m;j<=n;j++){
s=0;
for(i=1;i< j;i++){
if(j%i == 0)
s=s+i;
}
if(s>j)
System.out.print(j+" ");
}

}//end of main
}//end of class

10. A number such that both the sum of its divisors and the number of its divisors are perfect numbers is known as a Sublime Number. The smallest sublime number is 12. There are 6 divisors of 12 - 1, 2, 3, 4, 6, and 12 - the sum of which is 28. Both 6 and 28 are perfect. Write a program to check if a number is a sublime number or not.

/*
* WAP to check if a number is sublime number or not.
*/
import java.io.*;
class SublimeNo
{
public static void main (String args[])throws IOException
{
int s=0,f=0,s1=0,s2=0,n,i,j;

System.out.println("Enter a no: ");

for(i=1;i<=n;i++)
{
if(n%i==0)
{
s+=i;
f++;
}
}
for(j=1;j< s;j++)
{
if(s%j==0)
s1+=j;
}
for(j=1;j< f;j++)
{
if(f%j==0)
s2+=j;
}
if(s1==s && s2==f)
System.out.println(n+ " is a sublime number");
else
System.out.println(n+ " is not a sublime number");
}
}

11. Find 1's complement of a number

/*
* WAP to enter a negative number in base 10 and find
* its 1's complement.
*/
import java.util.*;
class OnesComplement
{
public static void main (String args[])throws InputMismatchException
{
Scanner scan = new Scanner(System.in);
int n,i,p,b,x;

System.out.println("Enter a number (in base 10): ");
n = scan.nextInt();
if(n< 0){
int a[] = new int;

p = -1*n;
x=0;
//Convert the number to binary
while(p>0){

b = p%2;
a[x++] = b;
p=p/2;

}
for(i=0; i< x; i++){
if(a[i] == 0){
a[i] = 1;
}else{
a[i] = 0;
}
}
for(i=x-1; i>=0; i--){
System.out.print(a[i]);
}
}else{
System.out.println("Invalid number. Please enter a negative number.");
}
}//end of main
}//end of class

12. Find 2's complement of a number

/*
* WAP to enter a negative number in base 10 and
* find its 2's complement.
*/
import java.util.*;
class TwosComplement
{
public static void main (String args[])throws InputMismatchException
{
Scanner scan = new Scanner(System.in);
int n,i,p,b,x,carry;

System.out.println("Enter a number (in base 10): ");
n = scan.nextInt();
if(n<0){
int a[] = new int;

p = -1*n;
x=0;
//Convert the number to binary
while(p>0){

b = p%2;
a[x++] = b;
p=p/2;

}
//Convert the array to store the 1s complement
for(i=0; i< x; i++){
if(a[i] == 0){
a[i] = 1;
}else{
a[i] = 0;
}
}
System.out.print("1s complement: ");
for(i=x-1; i>=0; i--){
System.out.print(a[i]);
}
//Add 1 to the last digit of 1s complement to get 2s complement
a += 1;
carry = 0;
for(i=0; i < x; i++){
a[x] = a[x] + carry;
if(a[x] == 2){
a[x] = 0;
carry = 1;
}
}
System.out.print("\n2s complement: ");
for(i=x-1; i>=0; i--){
System.out.print(a[i]);
}
}else{
System.out.println("Invalid number. Please enter a negative number.");
}
}//end of main
}//end of class

13. Add two binary numbers

/*
* Enter two numbers in base 10, convert them in binary
* and find their sum
*/
import java.io.*;
class BinarySum

{
public static void main(String args[])throws IOException
{
int m,n,u,v,x,y,z,p,r,i,d,e;

System.out.print("Enter the first number (base 10): ");
System.out.print("Enter the second number (base 10): ");

//Arrays to store numbers in binary form
int a[]= new int ;
int b[]=new int ;

//Array to store the sum of binary numbers
int c[]= new int;

p=m;
x=0;
//Convert the number to binary and store in an array
while(p>0)
{
a[x++]=p%2;
p=p/2;
}

System.out.print(m+"=");
for(i=x-1;i>=0;i--)
{
System.out.print(a[i]);
}
System.out.println();

p=n;
y=0;
//Convert the number to binary and store in an array
while(p>0)
{
b[y++]=p%2;
p=p/2;
}
System.out.print(n+"=");
for(i=y-1;i>=0;i--)
{
System.out.print(b[i]);
}
e=z=u=v=0;

/*
* To understand the following logic, you need to know binary addition.
* In binary addition:
*  0 + 0 = 0
*  0 + 1 = 1
*  1 + 0 = 1
*  1 + 1 = 10 (read as 0 CARRY 1)
*  1 + 1 + 1 = 11 ( read as 1 CARRY 1)
*/

do{

d=a[u]+b[v]+e; //Add the digits
if(d==2){
c[z++]=0;
e=1;
}
else if(d==3){
c[z++]=1;
e=1;
}
else{
c[z++]=d;
e=0;
}
u++;
v++;
}while(u < x && v < y);

//If any digit is left in the first array copy them
// into the sum array after adding the carry

if(u < x){
while(u < x){
d=a[u++]+e;
if(d==2){
c[z++]=0;
e=1;
}
else if(d==3){
c[z++]=1;
e=1;
}
else{
c[z++]=d;
e=0;
}
}
}
//If any digit is left in the second array copy them
// into the sum array after adding the carry
else if(v < y){
while(v < y){
d=b[v++]+e;
if(d==2){
c[z++]=0;
e=1;
}
else if(d==3){
c[z++]=1;
e=1;
}
else{
c[z++]=d;
e=0;
}
}
}
//If a carry is still left copy it at the last in the sum array
if(e==1){
c[z++]=e;
}

System.out.print("\nSum of the two binary numbers : ");
for(i=z-1;i>=0;i--)
System.out.print(c[i]);

}//end of main
}//end of class

14. Enter a sentence and print it in rotation of words for all possible combinations. Ex:

Input: java is robust
Output: java is robust
is robust java
robust java is

/*
* Enter a sentence and print it in rotation of words for all possible combinations.
*/
import java.io.*;
class Rotation
{
public static void main (String args[])throws IOException
{

int i,j,p,x,l;
String s;
char ch;

System.out.println("Enter a sentence terminated by a period(.) : ");
l = s.length();

String a[] = new String[l];
x=0;
p=0;
//Store the words in a string array
for(i=0; i< l; i++){
ch = s.charAt(i);
if(ch == ' ' || ch == '.'){
a[x++] = s.substring(p,i);
p = i+1;
}
}
System.out.println("\nOUTPUT:");

//Print the sentence in rotation of words
for(i=0; i< x; i++){
for(j=i; j< x; j++){
System.out.print(a[j]+ " ");
}
for(j=0; j< i; j++){
System.out.print(a[j]+ " ");
}
System.out.println();
}
}//end of main
}//end of class