0% found this document useful (0 votes)
874 views

Computer Applications Isc Project

The document contains solutions to 7 programming questions in Java. Each solution includes sample test data inputs and outputs. Question 1 involves decoding an encoded text by mapping ASCII codes to characters. Question 2 involves writing a number in word form. Question 3 finds the prime factors of a number. Question 4 checks if a number is a Smith number. Question 5 prints the first n prime numbers. Question 6 finds the longest word in a sentence. Question 7 checks if a number is an Armstrong number using recursion.

Uploaded by

ronald halder
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
874 views

Computer Applications Isc Project

The document contains solutions to 7 programming questions in Java. Each solution includes sample test data inputs and outputs. Question 1 involves decoding an encoded text by mapping ASCII codes to characters. Question 2 involves writing a number in word form. Question 3 finds the prime factors of a number. Question 4 checks if a number is a Smith number. Question 5 prints the first n prime numbers. Question 6 finds the longest word in a sentence. Question 7 checks if a number is an Armstrong number using recursion.

Uploaded by

ronald halder
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 89

Question 1.

An encoded text can be decoded by finding actual character for the given ASCII

code in the encoded message.

Write a program to input an encoded text having only sequence of ASCII values

without any spaces. Any code or value which is not in the range (65-90 or 97-1 22 or

32-for space) will be ignored and should not appear in the output message. It is

assumed that none the additional value is given in the coded text. Decode the

encoded text and print in the form of sentence. The first alphabet of each word must be in capitals and
rest alphabets will be in smalls only. Any consecutive sets of code

32 will be taken as only one blank space. The output should be exactly in the

following format.

Sample test data:

Input (coded text) : 10665771011153266797868

Output (decoded text) : James Bond

Solution-

import java.io.*;

import java.util.*;

class coding

{ public static void main(String args[])throws IOException

{ BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));

String s=""; int ch1=32; char c; int i;

System.out.print("Input (coded text)\t: ");

String cod=buf.readLine();

int length=cod.length();

int ch=0,a1=2,flag=0;
for (int a=0;a<=(length-1);)

{ ch=(Integer.parseInt(cod.substring(a,a1)));

if(((ch>=65)&&(ch<=90))||(ch==32)||((ch>=97)&&(ch<=122)))

{ if (ch1==32)

{ ch=((ch>=65)&&(ch<=90))? ch:(ch-32);

if (ch==32)

continue; }

else

ch=((ch>=65)&&(ch<=90))? (ch+32):ch;

c=(char)ch;

s=s+c;

ch1=ch;

a+=(flag==0)?2:3;

a1+=2;

flag=0; }

else

{ if(flag==0)

{ a1++;

flag=1;

continue; }

else

{ flag=0;

a+=2;

a1++;

continue; } } }
System.out.print("Output(decoded text)\t: ");

StringTokenizer st=new StringTokenizer(s);

for (i=0;st.hasMoreTokens();i++)

System.out.print ((st.nextToken()).trim()+" "); }}

Outputs-

coding.main({ });

Input (coded text) : 78487367421013232321006589

Output(decoded text) : Nice Day

coding.main({ });

Input (coded text) : 10665771011153266797868

Output(decoded text) : James Bond

Question 2.

Write a program to input a number (less than 1000) and print the same in figures.

Sample test data

Enter a number smaller than 1000 here--->256

The number in figures is : two hundred and fifty six

Solution-

import java.io.*;

class figures

String a[] = {"","one","two","three","four","five","six","seven","eight" , "nine", "ten","eleven",


"twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"};
String pre[]={"and","ten","twenty","thirty","fourty","fifty","sixty","seventy","eighty","ninety",
"hundred"};

public void hundreds(int n)

{if (n<0)

{System.out.print ("minus ");

n=-n;}

if (n>=100)

{if((n/100)>0)

System.out.print(a[(n/100)]+" "+pre[10]+" ");

if ((n%100)>0)

System.out.print ("and "); }

tNu((n%100)); }

public void tNu(int nn)

{if(nn<20)

System.out.println(a[nn]);

else if ((nn>=20)&&(nn<100)&&((nn%10)!=0))

System.out.println(pre[(nn/10)]+" "+a[(nn%10)]);

else if((nn>=20)&&(nn<=100)&&((nn%10)==0))

System.out.println (pre[nn]); }

public static void main(String args[])throws IOException

{BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));

System.out.print("Enter a number smaller than 1000 here--->");

int n=Integer.parseInt(buf.readLine());

System.out.print ("The number in figures is\t: ");


figures fig=new figures();

if((n<1000)&&(n!=0))

fig.hundreds(n);

else if (n==0)

System.out.println ("Zero");

else System.out.println("Invalid Entry"); } }

Outputs-

figures.main({ });

Enter a number smaller than 1000 here--->478

The number in figures is : four hundred and seventy eight

Question 3.

Write a program to generate prime factors of a number input by the user.

Sample Dtat

Input the number to be prime factorised :196

The Factors are :2x2x7x7x1

Solution-

import java.util.*;

class primeFactors

{ int a=0;int factors[]= new int[1000];

public static void mainPrimeFactors (String args[])

{ System.out.print("Input the number to be prime factorised\t:");

Scanner s=new Scanner(System.in);

primeFactors p=new primeFactors();


p.primeFactorise(s.nextInt());

int x=0;

System.out.print("The Factors are\t: ");

while (p.factors[x]!=0)

{ if (p.factors[x+1]!=0)

System.out.print (p.factors[x++]+" x ");

else

System.out.print (p.factors[x++]+" x 1"); } }

public int nextPrime()

//prints the next prime number everytime it is invoked

{ a++;

for (;;a++) {

int flag=0;

for (int b=1;b<=a;b++)

if (a%b==0)

flag++;

if (flag==2)return(a); } }

public void printPrime(int n)

// prints all prime numbers less than n

{ for(int x=0;x<n+1;x++)System.out.println(nextPrime() + ","); }

public void resetNextPrime()

//resets the method nextPrime()


{ int a=0; }

public void primeFactorise(int n)

//prints and stores all prime factors of n in an array

{ primeFactors pr=new primeFactors();

if (n==1)factors[0]=1;

int i=0;

while (n!=1)

{ int p=pr.nextPrime();

while (n%p==0)

{ n/=p;

factors[i++]=p; } } } }

Outputs-

primeFactors.mainPrimeFactors({});

Input the number to be prime factorised :196

The Factors are :2x2x7x7x1

primeFactors.mainPrimeFactors({});

Input the number to be prime factorised :219

The Factors are : 3 x 73 x 1

Question 4.
Write a program to inherit the class used in question 3 and use it to check weather a number (input by
user) is a Smith number or not.

A Smith number is a composite number, the sum of whose digits is the sum of

the digits of its prime factors obtained as a result of prime

factorization. The first few such numbers are 4, 22, 27, 58, 85,94, 121

Sample data-

Input the number to be checked :666

Smith

Input the number to be checked :786

Not Smith

Solution-

import java.util.*;

class SmithNumbers extends primeFactors

static SmithNumbers obj=new SmithNumbers();

public static void mainSmith(String args[])

Scanner s=new Scanner(System.in);

System.out.print ("Input the number to be checked\t:");

int input=s.nextInt();

if(obj.isSmith(input))

System.out.println ("Smith");

else System.out.println ("Not Smith");


}

Boolean isSmith(int n)

{ int i=0;

int SODf=0;

primeFactorise(n);

int SODn=sumOfDigits(n);

while(i<factors.length)

SODf+=sumOfDigits(factors[i++]);

if (SODf==SODn)

return true;

else return false;

int sumOfDigits(int in)

{int sum=0;

while (in>0)

sum+=in%10;

in/=10;

return sum;

}}

Outputs-

SmithNumbers.mainSmith({});

Input the number to be checked :666

Smith
SmithNumbers.mainSmith({});

Input the number to be checked :256

Not Smith

Question 5.

Write a program to inherit the class used in question 3 and use it to output first n prime numbers (value
of n input by the user) showing appropriate messages.

Sample data-

This program prints first n prime numbers.

Input the value of n : 10

2,3,5,7,11,13,17,19,23,29.

Solution-

import java.util.*;

class PrintPrime extends primeFactors

public static void main (String[] args)

primeFactors x=new primeFactors();

Scanner s=new Scanner(System.in);

x.resetNextPrime();

System.out.println ("This program prints first n prime numbers.");

System.out.print ("Input the value of n\t: ");


int n=s.nextInt();

{ for(int z=0;z<n;z++)

if(z!=n-1)

System.out.print(x.nextPrime() + ",");

else

System.out.print(x.nextPrime() + "."); }

x.resetNextPrime(); } }

Outputs-

PrintPrime.main({ });

This program prints first n prime numbers.

Input the value of n : 20

2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71.

Question 6.

Write a program to find the longest string in a sentence (input by user) assuming that every word is
terminated by a white space and there is only one longest word.

Sample data-

Input a sentence here : Mary Had A Little Lamb

The longest word in this sentence is : Little

Solution-

import java.util.*;
class Longest

public String longest(String x)

StringTokenizer s=new StringTokenizer(x);

String a[]=new String[s.countTokens()];

int counter=0;

while(s.hasMoreTokens())

a[counter++]=s.nextToken();

//Bubble sort

for(int i=0;i<a.length;i++)

for (int j=0;j<a.length-1;j++)

if (a[j].length()<a[j+1].length())

{ String temp=a[j];

a[j]=a[j+1];

a[j+1]=temp; }

return a[0]; }

public static void main (String args[])

{ Longest Longest=new Longest();

Scanner s = new Scanner(System.in);

System.out.print("Input a sentence here\t: ");

System.out.print ("The longest word in this sentence is\t: "+Longest.longest(s.nextLine())); }


}

Outputs-

Longest.main({ });
Input a sentence here : Mary Had A Little Lamb

The longest word in this sentence is : Little

Longest.main({ });

Input a sentence here : All that glisters is not gold.

The longest word in this sentence is : glisters

Question 7.

Write a program to check weather a number(input by user) is an armstrong number or not using
RECURSIVE TECHNIQUE.

Sample Data-

Input The Number :156

Not Armstrong

Input The Number :153

Armstrong

Solution-

import java.io.*;

class ArmstrongRecursive

public static void main(String args[])throws Exception

InputStreamReader in=new InputStreamReader(System.in);

BufferedReader buf=new BufferedReader(in);


System.out.print("Input The Number\t:");

int a=Integer.parseInt(buf.readLine());

armstrong ob1=new armstrong();

if ((ob1.wow(a)==a)&&(a!=0))

System.out.println ("Armstrong");

else

System.out.println ("Not Armstrong");

class armstrong

{int b=0;

public int wow (int a)

{ if (a!=0)

{ b=a;

b/=10;

return ((a%10)*(a%10)*(a%10))+wow(b); }

else

return 0; } }

Output-
ArmstrongRecursive.main({ });

Input The Number :156

Not Armstrong

ArmstrongRecursive.main({ });

Input The Number :256

Not Armstrong

ArmstrongRecursive.main({ });

Input The Number :153

Armstrong

Question 8.

A magic number is a number in which the eventual sum of digits of the number is equal to 1.

For example, 172=1+7+2=10+1+0=1

Then 172 is a magic number.

Design a class Magic to check if a given number is a magic number. Some of the members of the class
are given below:

Class name : Magic

Data members/instance variables:

n : stores the number


Member functions:

Magic() : constructor to assign 0 to n

void getnum(int nn) : to assign the parameter value to the number,

n=nn

int Sum_of_digits(int) : returns the sum of the digits of a number

void isMagic() : checks if the given number is a magic number

by calling the function Sum_of_digits(int) and

displays appropriate message.

Specify the class Magic giving details of the constructor, void getnum(int), int

Sum_of_digits(int) and void isMagic().

Solution-

import java.io.*;

public class Magic

{long n;

Magic()

{ n=0; }

void getnum (long nn)

{ n=nn; }
long sumOfDigits(long a)

{ long s=0;

while (a!=0)

s+=a%10;

a/=10;

}return (s);

void isMagic()

{ long sum=0;

sum=sumOfDigits (n);

while (sum>9)

sum=sumOfDigits (sum);

System.out.println ("In a magic number, the eventual sum of digits is 1.");

System.out.println ("Since, the eventual sum of digits of the number "+n+" is "+sum+",");

if (sum==1)

System.out.println (" therefore, it is a magic number :-)");

else

System.out.println (" therefore it is not a magic number :-(");

public static void main(String args[])throws IOException


{ long num=0;

BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));

System.out.println("This program checks wheather a given number is magic number or not.");

System.out.print("Input the number to be tested here-->");

try

num=Long.parseLong(buf.readLine());

catch (java.lang.NumberFormatException ex)

System.out.println ("Invalid Entry");

System.out.println ("Try Again");

System.out.print("Dear User,\n\tPlease input the number to be tested here-->");

num=Long.parseLong(buf.readLine());

Magic M=new Magic();

M.getnum(num);

M.isMagic();

Output

This program checks wheather a given number is magic number or not.

Input the number to be tested here-->256

In a magic number, the eventual sum of digits is 1.

Since, the eventual sum of digits of the number 256 is 4,


therefore it is not a magic number :-(

Question 9.

A Transpose of an array is obtained by interchanging the elements of the rows and

columns.A class Transarray contains a two dimensional integer array of order [mxn]. The maximum
value possible for both m and n is 20. Design a class Transarray to find the transpose of a given matrix.
The details of the members of the class are given below:

Class name : Transarray

Data members/instance variables:

arr[][] : stores the matrix elements

m : integer to store the number of rows

n : integer to store the number of columns

Member functions:

Transarray() : default constructor

Transarray(int mm,int nn) : to initialize the size of the matrix,

void fillarray() : to enter the elements of the matrix

void transpose(Transarray A) : to find the transpose of a given matrix.

void disparray() : displays the array in a matrix form

Specify the class Transarray giving details of the constructors , vois fillarray(), void
transpose(Transarray) and void disparray(). You need not write the main function.

Solution

import java.io.*;

public class Transarray

int arr[][]=new int[20][20];

int m,n;

Transarray()

{}

Transarray(int mm,int nn)

{m=mm;

n=nn;}

void fillarray() throws IOException

{BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

System.out.println("Enter the elements");

for(int i=0;i<m;i++)

{for(int j=0;j<n;j++)

{System.out.print ("Position ["+i+"],["+j+"]\t: ");

arr[i][j]=Integer.parseInt(br.readLine());}}}

void transpose(Transarray A)

{m=A.n;

n=A.m;

System.out.println ("The transpose of your array is");


for(int i=0;i<m;i++)

{for(int j=0;j<n;j++)

{arr[i][j]=A.arr[j][i];}}}

void disparray()

{for(int i=0;i<m;i++){

for(int j=0;j<n;j++)

{System.out.print(arr[i][j]+"\t");}

System.out.println();}}

public static void main()

{ try{

Transarray T1=new Transarray(5,5);

Transarray T2=new Transarray();

T1.fillarray();

T2.transpose (T1);

T2.disparray();

catch(Exception e)

{ System.out.println(e); }}}

Output

Transarray.main();

Enter the elements

Position [0],[0] : 12

Position [0],[1] : 23

Position [0],[2] : 34
.

The transpose of your array is

12 67 12 67 21

23 78 23 78 32

34 89 34 89 43

45 90 45 90 54

56 1 56 0 65

Question 10.

A library issues books on rental basis at a 2% charge on the cost price of the

bookper day. As per the rules of the library, a book can be retained for 7 days

without any fine. If the book is returned after 7 days, a fine will also be charged for

the excess days as per the chart given below:

Number of excess days Fine per day(Rs.)

1 to 5 2.00

6 to 10 3.00

above 10 days 5.00

Design a class Library and another class Compute to perform the task. The details

of the two classes are given below:

Class name : Library


Data members/instance variables:

name : name of the book

author : author of the book

p : price of the book in decimals

Member functions:

Library() : parameterized constructor to assign

values to data members.

void show() : display the book detils.

Class name : Compute

Data members/instance variables:

d : number of days taken in returning the

book to store the fine

f : to store the fine

Member functions:

Compute() : parameterized constructor to assign

values to data members of both the


classes.

void fine() : calculates the fine for the excess days

void display() : display the book details along with the

number of days, fine and the total amount

to be paid. Total amount is calculated as:

(2% of price of book*total no. of days)+fine.

Specify the class Library giving details of the constructors and void show(). Using

the concept of Inheritance, specify the class Compute giving details of constructor,

void fine() and void display() function.

Solution

import java.io.*;

import java.util.*;

class Library

String name,author;

float price;

Library(String name,String author,float price)

this.name=name;

this.author=author;

this.price=price;

void show()
{

System.out.println("Book Name\t: "+name);

System.out.println("Book Author\t: "+author);

System.out.println("Book Price\t: Rs."+price+"/-");

public class Compute extends Library

int d;

float fine;

Compute(String name,String author,float price,int d)

super(name,author,price);

this.d=d;

fine=0;

void fine()

if(d>=1 && d<=5)

fine=2f*d;

else if(d>=6 && d<=10)

fine=5*2f+3f*(d-5);
else

fine=5*2f+5*3f+5f*(d-10);

void display()

show();

System.out.println("No. of days\t:"+d+" days");

System.out.println("Fine\t: Rs."+fine+"/-");

System.out.println("Total amount\t: Rs."+((.02f*price*d)+fine)+"/-");

public static void main(String args[])throws IOException

Scanner s=new Scanner(System.in);

System.out.print ("Input Book Name\t: ");

String name=s.nextLine();

System.out.print("Input Author\t: ");

String author=s.nextLine();

System.out.print("Input Price\t: ");

float price=s.nextFloat();

System.out.print("Input Number of days\t: ");

int d=s.nextInt();

System.out.print("_____________________________________\n");

Compute ob=new Compute(name,author,price,d);


ob.fine();

ob.display();

Output

Compute.main({ });

Input Book Name : A Christmas Carol

Input Author : Charles Dickens

Input Price : 45

Input Number of days : 19

_____________________________________

Book Name : A Christmas Carol

Book Author : Charles Dickens

Book Price : Rs.45.0/-

No. of days :19 days

Fine : Rs.70.0/-

Total amount : Rs.87.1/-

Question 11.

To input a string (precoded), coded by replacing each character with the character which comes 'n'
characters after it, and decode it using an input defining the number of characters to shift by.

Sample data-
Enter the encoded string : FQNJSX%FWJ%HTRNSL%&&

How many characters to shift : -5

Entered Encoded message is : FQNJSX%FWJ%HTRNSL%&&

Decode message is : ALIENS ARE COMING !!

Solution

import java.io.*;

class decode

public static void main(String args[])throws IOException

BufferedReader in=new BufferedReader(new InputStreamReader(System.in));

System.out.print("Enter the encoded string\t:\t"); // input

String enc;

enc=in.readLine();

String dec="";

System.out.print("How many characters to shift\t:\t");// input shift

int sh=0;

sh=Integer.parseInt(in.readLine());

enc=enc.toUpperCase();

System.out.print("Entered Encoded message is\t:\t" + enc);

int l=enc.length();

for(int i=0;i<l;i++)

{ // loop decodes the message

int k=enc.charAt(i),n=0;
k+=sh;

for(;;)

if(k>90) // check for capitals

n=k-90; // change character-wise

k=65+n-1;

else

break;

if(i+1!=l)

int k1=enc.charAt(i+1),n1=0;

k1+=sh;

for(;;)

if(k1>90)

n1=k1-90; // convert

k1=65+n1-1;

else

break;

}
if(k==81 && k1==81)

dec=dec+" ";

i++; // counter increase

continue; // continue loop

dec+=(char)(k); // counter update

System.out.print("\nDecode message is\t\t:\t"+dec);

Output

decode.main({ });

Enter the encoded string : This is coded

How many characters to shift : -2

Entered Encoded message is : THIS IS CODED

Decode message is : RFGQGQAMBCB

decode.main({ });

decode.main({ });

Enter the encoded string : RFGQGQAMBCB

How many characters to shift : 2

Entered Encoded message is : RFGQGQAMBCB

Decode message is : THIS IS CODED


Question 12.

A bank intends to design a program to display the denomination of an

input amount, upto 5 digits. The available denomination with the bank are

of rupees 1000,500,100,50,20,10,5,2 and 1.

Design a program to accept the amount from the user and display the

break-up in descending order of denominations. (i,e preference should

be given to the highest denomination available) along with the total

number of notes. [Note: only the denomination used should be displayed].

Also print the amount in words according to the digits.

Example 1:

INPUT: 14836

OUTPUT: ONE FOUR EIGHT THREE SIX

DENOMINATION:

1000 X 14 =14000

500 X 1 =500

100 X 3 =300

50 X 1 =50

5 X 1 =5

1 X 1 =1

EXAMPLE 2:

INPUT: 235001
OUTPUT: INVALID AMOUNT

Solution

import java.io.*;

class Bank

int rev=0,amount,dummy;

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

public void intake() throws IOException

System.out.println("Enter the Amount:");

amount=Integer.parseInt(br.readLine());

if(amount >99999)

System.out.println("Invalid Amount...");

return;

dummy=amount;

while(dummy >0)

rev=rev*10+dummy%10;

dummy=dummy/10;

System.out.print("Amount in words :");

while(rev >0)

{
switch(rev%10)

case 0:

System.out.print(" ZERO");

break;

case 1:

System.out.print(" ONE");

break;

case 2:

System.out.print(" TWO");

break;

case 3:

System.out.print(" THREE");

break;

case 4:

System.out.print(" FOUR");

break;

case 5:

System.out.print(" FIVE");

break;

case 6:

System.out.print(" SIX");

break;

case 7:

System.out.print(" SEVEN");
break;

case 8:

System.out.print(" EIGHT");

break;

case 9:

System.out.print(" NINE");

break;

rev=rev/10;

System.out.println("\nDENOMINATORS:\n");

rev=amount/1000;

if(rev!=0)

System.out.println("1000 X " + rev + " = " + rev*1000);

amount=amount%1000;

rev=amount/500;

if(rev!=0)

System.out.println("500 X " + rev + " = " + rev*500);

amount=amount%500;

rev=amount/100;

if(rev!=0)

System.out.println("100 X " + rev + " = " + rev*100);

amount=amount%100;

rev=amount/50;

if(rev!=0)
System.out.println("50 X " + rev + " = " + rev*50);

amount=amount%50;

rev=amount/20;

if(rev!=0)

System.out.println("20 X " + rev + " = " + rev*20);

amount=amount%20;

rev=amount/10;

if(rev!=0)

System.out.println("10 X " + rev + " = " + rev*10);

amount=amount%10;

rev=amount/5;

if(rev!=0)

System.out.println("5 X " + rev + " = " + rev*5);

amount=amount%5;

rev=amount/2;

if(rev!=0)

System.out.println("2 X " + rev + " = " + rev*2);

amount=amount%2;

rev=amount/1;

if(rev!=0)

System.out.println("1 X " + rev + " = " + rev*1);

Output

Bank bank1=new Bank();


bank1.intake();

Enter the Amount:

25648

Amount in words : TWO FIVE SIX FOUR EIGHT

DENOMINATORS:

1000 X 25 = 25000

500 X 1 = 500

100 X 1 = 100

20 X 2 = 40

5X1=5

2X1=2

1X1=1

Question 13.

Given the two positive integers p and q, where p < q. Write a program to determine how many kaprekar
numbers are there in the range between 'p' and 'q' (both inclusive) and output them.

About 'kaprekar' number:

A positive whole number 'n' that has 'd' number of digits is squared and split into

2 pieces, a right hand piece that has 'd' digits and a left hand piece that has

remaining 'd' or 'd-1' digits. If sum of the pieces is equal to the number then

it's a kaprekar number.

SAMPLE DATA:
INPUT:

p=1

Q=1000

OUTPUT:

THE KAPREKAR NUMBERS ARE:

1,9,45,55,99,297,999

FREQUENCY OF KAPREKAR NUMBERS IS:7

Solution

import java.io.*;

class karpekar

{ int i,p,q,c=0;

int num;

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

public void take() throws IOException

{ System.out.println("Enter the Lower Range:");

p=Integer.parseInt(br.readLine());

System.out.println("Enter the Upper Range:");

q=Integer.parseInt(br.readLine());

if(p >=q)

{ System.out.println("Wrong Entry...");

return; }

System.out.println("THE KAPREKAR NUMBERS ARE:");

for(i=p;i<=q;i++)

{ show(i); }
System.out.println("\nFREQUENCY OF KAPREKAR NUMBERS IS:"+c); }

public void show(int x)

{ int digit,rev=0;int no;num=x*x;digit=0;no=x;

while(no >0)

{ digit++;

no=no/10; }

no=num;

while(digit > 0)

{ rev=rev*10+no%10;

no=no/10;

digit--; }

// 'rev' holds the right part in reverse order and 'no' holds the left part

rev=reverse(rev);

if((rev+no)==x)

{ System.out.print(" "+x);

c++; } }

private int reverse(int n)

{ int r=0;

while(n > 0)

{ r=r*10+n%10;

n=n/10; }

return r; }}
Output

karpekar karpekar = new karpekar();

karpekar.take();

Enter the Lower Range:

Enter the Upper Range:

500

THE KAPREKAR NUMBERS ARE:

1 9 45 55 99 297

FREQUENCY OF KAPREKAR NUMBERS IS:6

Question 14.

Input a paragraph containing n number of sentences where (1<=n<=4). The words are to be separated
with single blank space and are in upper case.

A sentence may be terminated either with a full stop (.) or question mark (?).

Perform the followings:

(i) Enter the number of sentences, if it exceeds the limit show a message.

(ii) Find the number of words in the paragraph

(iii) Display the words in ascending order with frequency.

Solution

import java.io.*;

import java.util.*;

class Sentences

{static String s,str,sarr[],strarr[];


static StringTokenizer st;

static int i,j,n,c,index=0,fre[],index1=0;

static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

public static void take() throws IOException

{System.out.println("Enter the Number of sentences:");

n=Integer.parseInt(br.readLine());

if(n< 1 || n >4)

{ System.out.println("Wrong Input");

return;}

System.out.println("Enter the Paragraph:");

str=br.readLine();

st=new StringTokenizer(str,",.? ");

n=st.countTokens();

System.out.println("Number of Words in the paragraph="+n);

sarr=new String[n];

strarr=new String[n];

fre=new int[n];

while(st.hasMoreTokens())

{sarr[index++]=st.nextToken();}

for(i=0;i< index-1;i++)

{for(j=i+1;j< index;j++)

{if(sarr[i].compareTo(sarr[j]) > 0)

{s=sarr[i];

sarr[i]=sarr[j];
sarr[j]=s;}}}

c=1;

s=sarr[0];

for(i=1;i< index;i++)

{if(!s.equals(sarr[i]))

{strarr[index1]=s;

fre[index1++]=c;

c=1;

s=sarr[i];}

else

c++;}

strarr[index1]=s;

fre[index1++]=c;

for(i=0;i< index1-1;i++)

{for(j=i+1;j< index1;j++)

{if(fre[i] > fre[j])

{n=fre[i];

fre[i]=fre[j];

fre[j]=n;

s= strarr[i];

strarr[i]=strarr[j];

strarr[j]=s;}}}

System.out.println("WORD\t\t\tFREQUENCY");

for(i=0;i< index1;i++)
System.out.println(strarr[i]+"\t\t\t"+fre[i]);}}

Output

Sentences.take();

Enter the Number of sentences:

Enter the Paragraph:

Democracy is of the people. It is for the people. And it is by the people.

Number of Words in the paragraph=16

WORD FREQUENCY

And 1

Democracy 1

It 1

by 1

for 1

it 1

of 1

is 3

people 3

the 3

Question 15.

The co-ordinates of a point P on a two dimensional plane can be represented by P(x,y) with x as the x-
coordinate and y as the y-coordinate. the coordinates of midpoint of two points P1(x1,y1) and P2(x2,y2)
can be calculated as P(x,y) where

x=(x1+x2)/2 and y=(y1+y2)/2.


Design a class Point with the following details:

Class Name : Point

Data Member/Instance Variables

x : Stores the x-coordinate

y : Stores the y-coordinate

Member Functions

Point () : Constructor to initialise the instance variables.

void readpoint () : Accepts the coordinates x and y of a point.

Point midpoint(Point A , Point B) : Calculates and returns the midpoint of the two points A
and B.

void displaypoint() : Displays the coordinates of a point.

Specify the class Point giving details of the constructor(), member functions
voidreadpoint(), Point midpoint(Point, Point) and void displaypoint() along with the main() function to
create an object and call the functions accordingly to calculate the midpoint between any two given
points.

Solution

import java.io.*;

class Point

{ double x,y;

Point()

{ x=0;

y=0; }

Point (double x, double y)

{ x=this.x;
y=this.y; }

void readpoint()throws Exception

{ BufferedReader buf=new BufferedReader (new InputStreamReader(System.in));

System.out.print("Enter the values of x and y\nvalue of x\t:");

x=Double.parseDouble(buf.readLine ());

System.out.print("value of y\t:");

y=Double.parseDouble(buf.readLine ()); }

Point midpoint(Point A,Point B)

{ x=(A.x+B.x)/2;

y=(A.y+B.y)/2;

Point ret=new Point (x,y);

return ret; }

void displaypoint()

{ System.out.println ("("+x+","+y+")"); }

public static void main()

{try {

Point point1=new Point();

Point point2=new Point();

point1.readpoint();

point2.readpoint();

Point x=point1.midpoint(point1,point2);
point1.displaypoint(); }

catch (Exception e)

{ System.out.println ("Exception Occurred\n"+e); } }}

Output

Point.main();

Enter the values of x and y

value of x :2

value of y :3

Enter the values of x and y

value of x :4

value of y :5

(3.0,4.0)

Question 16.

Write a program to input a string and print the following pattern :

String = holiday

h_y

ho_ay

hol_day

holi_iday

holid_liday

holida_oliday

holiday_holiday
holida_oliday

holid_liday

holi_iday

hol_day

ho_ay

h_y

Solution

import java.io.*;

class pattern

{ public static void main(String args[])throws IOException

{ BufferedReader in=new BufferedReader(new InputStreamReader(System.in));

System.out.println("Enter the string"); // input

String S="";

S=in.readLine();

int n=S.length(); // function returns length of string input

int a,i,j,k=-1,s=n-1,m=n;

System.out.println();

for(a=0;a<=n;a++) // loop generates half pattern

{ for(i=0;i<=s;i++) // nested looping

System.out.print(" ");

s--; // update counter

for(i=0;i<=k;i++) //nested looping

System.out.print(S.charAt(i));

k++; // update counter


System.out.print("_");

for(j=m;j<=n-1;j++) // nested looping

System.out.print(S.charAt(j));

m--; // update counter

System.out.println(); }// come to next line

s=0;k=n-2;m=1;

for(a=1;a<=n;a++)

{ for(i=0;i<=s;i++) // nested loop

System.out.print(" ");

s++; // counter

for(i=0;i<=k;i++) // nested loop

System.out.print(S.charAt(i));

k--; // counter

System.out.print("_");

for(j=m;j<=n-1;j++) // nested loop

System.out.print(S.charAt(j));

m++; // counter

System.out.println();}}} // come to next line

OUTPUT :
Enter the string

cricket

c_t

cr_et

cri_ket

cric_cket

crick_icket

cricke_ricket

cricket_cricket

cricke_ricket

crick_icket

cric_cket

cri_ket

cr_et

c_t

Question 17.

Write a program to input a string and to print it in lexicographical order of characters. The program
should also ask the user weather he wants to try again.

Sample Data

Enter the string here--> wonderful

The string in alphabetical order is : deflnoruw


Try Again?

No

Solution

import java.io.*;

class alphabet

{ public static void main(String args[])throws Exception

{ byte z=1;

while(z==1)

{ alphabet o=new alphabet();

BufferedReader s=new BufferedReader(new InputStreamReader(System.in));

System.out.print("Enter the string here--> ");

String S=s.readLine();

System.out.println("The string in alphabetical order is\t: "+o.alpha(S));

System.out.println("Try Again?");

if (s.readLine().equalsIgnoreCase("yes"))

{z=1;}

else z=0; } }

public String alpha(String S)

{ String newString="";

S=S.toLowerCase();

char s[]=new char[S.length()];

for (int i=0;i<S.length();i++)

s[i]=S.charAt(i);
for (int j=0;j<s.length-1;j++)

for (int i=0;i<s.length-1;i++)

{ if(s[i]>s[i+1])

{ char temp=s[i];

s[i]=s[i+1];

s[i+1]=temp; } }

for (int i=0;i<s.length;i++)

newString+=(s[i]);

return newString; }}

Output

alphabet.main({ });

Enter the string here--> qwertyuiopasdfghjklzxcvbnm

The string in alphabetical order is : abcdefghijklmnopqrstuvwxyz

Try Again?

yes

Enter the string here--> Gaurav

The string in alphabetical order is : aagruv

Try Again?

No

Question 18.

Write a program to input a string and output the reverse of the string input by the user.
Sample Data

Please enter the string to be reversed :

Anthony Gonzalves

The reversed string is :sevlaznoG ynohtnA

Solution

import java.io.*;

class StringReverser

String s,s1;

String reverseString (String St)

s=St;

s1="";

int l=s.length();

int pos=l-1;

while (pos>(-1))

s1=s1+(s.charAt(pos));

pos--;

return s1;

public static void main(String args[])throws Exception

{
BufferedReader buf=new BufferedReader(new InputStreamReader (System.in));

System.out.println ("Please enter the string to be reversed\t:");

String in=buf.readLine();

StringReverser sr=new StringReverser ();

System.out.println ("The reversed string is\t:"+sr.reverseString (in));

Output

StringReverser.main({ });

Please enter the string to be reversed :

Anthony Gonzalves

The reversed string is :sevlaznoG ynohtnA

StringReverser.main({ });

Please enter the string to be reversed :

Madam is Malayalam

The reversed string is :malayalaM si madaM

Question 19.

Write a program to inherit the class used in question 18 and to use it to check weather a number is
pallindrome or not.

Sample Data-

Enter the string to be checked :

Malayalam

Pallindrome

Enter the string to be checked :


Hello World

Not Pallindrome

Solution

import java.io.*;

class StringPallindrome extends StringReverser

StringReverser rev=new StringReverser();

public void pallindrome(String s)

if(rev.reverseString(s).equalsIgnoreCase(s))System.out.println ("Pallindrome");

else System.out.println ("Not Pallindrome");

public static void main(String args[])throws Exception

BufferedReader buf=new BufferedReader(new InputStreamReader (System.in));

System.out.println ("Enter the string to be checked\t:");

StringPallindrome pal=new StringPallindrome();

pal.pallindrome(buf.readLine());

Output

StringPallindrome.main({ });

Enter the string to be checked :

Titanic
Not Pallindrome

StringPallindrome.main({ });

Enter the string to be checked :

Tet a tet

Pallindrome

Question 20.

Write a menu driven program to output the value of nCr or nPr (as in permutation and combination)

as chosen by the user.

Solution

import java.util.*;

class PnC //based on permutation andcombination

int fact=1,F=0,P=0,C=0;

int factorial (int num)

if (num>0)

fact*=num;

return factorial (num-1);

else {

F=fact;

fact=1;
return F;

int combination(int n,int r)

System.out.print ("The value of nCr is\t:");

C=factorial (n)/(factorial(n-r)*factorial (r));

System.out.println (C);

return C;

int permutation(int n,int r)

System.out.print ("The value of nPr is\t:");

P=factorial (n)/factorial(n-r);

System.out.println (P);

return P;

public static void main (String args[])throws Exception

{PnC o=new PnC();

Scanner s=new Scanner(System.in);

int n,r;

String cp=new String("");


System.out.println ("Input the value of n");

n=s.nextInt();

System.out.println ("Input the value of r");

r=s.nextInt();

System.out.println ("Input C for combination or input P for permutation");

cp=s.next();

if (cp.equalsIgnoreCase("C"))

o.combination(n,r);

else if (cp.equalsIgnoreCase("P"))

o.permutation(n,r);

else

System.out.println ("Invalid Input \n"+cp+" is not a valid input\nInput C for combination or input
P for permutation");

Output

PnC.main({ });

Input the value of n

Input the value of r

Input C for combination or input P for permutation

The value of nCr is :28

PnC.main({ });
Input the value of n

10

Input the value of r

Input C for combination or input P for permutation

The value of nPr is :5040

Question 21.

Write a java class to input the name ans class of 10 students and output the same in tabular forn in a file
"Student List.txt".

Solution

import java.io.*;

class File

String name;String Class;int a=0;

public void main()

try

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

FileWriter fw=new FileWriter ("Student List.txt");

BufferedWriter bw=new BufferedWriter(fw);

PrintWriter pw =new PrintWriter(bw);

pw.println ("\tName\t|\tClass\n\t--------+-----------");
while(a<11){

System.out.print("Enter Name\t:");

name=br.readLine();

System.out.print("Enter Class\t:");

Class=br.readLine();

pw.println ("\t"+name+"\t|\t"+Class);

a++;}

pw.close();

bw.close();

fw.close();

catch(Exception e)

System.out.println (e);

Output

FileOperations fileOper1 = new FileOperations();

fileOper1.main();

Enter Name :Gaurav

Enter Class :12th

Enter Name :Dhaval


Enter Class :12th . . . . .upto ten elements

Output file contents

Name | Class

----------+-----------

Gaurav | 12th

Dhaval | 12th

Siddhart | 11th

Nandan | 10th

Bharat | 6th

Akanksha | 12th . . . .upto ten elements.

Question 22.

A class Decioct has been defined to convert a decimal number int its octal equivalent.

Some of the members of the class are given below-

Class Name

DeciOct

Data Members/Instance Variables:

Stores the decimal number.

oct

Stores the resultant octal number.

Member Functions:
DeciOct()

Constructor to initiaize data members

n=0, oct=0.

void getnum(int nn)

Assigns the value of nn to n.

void deci_oct()

Calculates the octal equivalent of 'n' and stores it in oct USING RECURSIVE TECHNIQUE.

void show()

Displays the decimal number 'n', calls the function deci_oct() and displays its octal equivalent.

Specify the class DeciOct, giving details of the constructor, void getnum(int), void deci_oct() and void
show(). Also define a main() function to create an object and call the functions accordingly to enable the
task.

Solution

import java.util.*;

class DeciOct

{ int n1;

int n;

int oct;

int p=0;

DeciOct()

{ n=0;

n1=0;

oct=0; }
void getnum(int nn)

{ n1=nn;

n=nn; }

void deci_oct()

{ if(n1!=0)

{ oct=10*oct+(n1%8);

n1=n1/8;

deci_oct(); } }

void show()

{ System.out.print ("Decimal Number\t: "+n+"\nOctal Equivalent\t: "+oct); }

public static void main(String args[])

{ DeciOct o=new DeciOct();

Scanner s=new Scanner(System.in);

System.out.print ("Input the decimal number here\t: ");

o.getnum(s.nextInt());

o.deci_oct();

o.show(); }}

Output

DeciOct.main({ });

Input the decimal number here : 249

Decimal Number : 249


Octal Equivalent : 173

DeciOct.main({ });

Input the decimal number here : 39

Decimal Number : 39

Octal Equivalent : 74

Question 23.

Input a sentence from the user and count the number of times an and and are present in the sentence.
Design a class Frequency to perform the above task.

Some of the members of the class are given below-

Class Name

Frequency

Data Members/Instance Variables:

text

Stores the sentence.

countand

Stores the frequency of ''and''.

countan

Stores the frequency of ''an''.

len

Stores the length of the string.

Member Functions:

Frequency()

Constructor to initiaize data members .


void accept(String n)

To assign the value of 'n' to 'text' where the value of parameter should be in lower case.

void checkandfreq()

To count the frequency of the word "and".

void checkanfreq()

To count the frequency of the word "an".

void display()

Displays the respective frequencies of "an" and "and" giving appropriate messages.

Specify the class Frequency, giving details of the constructor, void accept(String), void checkandfreq() ,
void checkanfreq() and void display(). Also define a main() function to create an object and call the
functions accordingly to enable the task.

Solution

import java.util.*;

class Frequency

String text;

int countan,countand,len;

Frequency()

countan=0;

countand=0;

len=0;

text="";

}
void accept(String n)

text=n.toLowerCase();

void checkandfreq()

StringTokenizer s=new StringTokenizer(text);

while(s.hasMoreTokens())

if(s.nextToken().equalsIgnoreCase("and"))

countand++;

void checkanfreq()

StringTokenizer s=new StringTokenizer(text);

while(s.hasMoreTokens())

if(s.nextToken().equalsIgnoreCase("an"))

countan++;

}
}

void display()

System.out.println ("Frequency of an\t: "+countan+"\nFrequency of and\t: "+countand);

public static void main (String args[])

Frequency obj=new Frequency();

Scanner s=new Scanner (System.in);

System.out.print ("Enter the string\t: ");

try{obj.accept(s.nextLine());

obj.checkanfreq();

obj.checkandfreq();

obj.display();

catch (Exception e)

System.out.println (e); } }}

Output

Frequency.main({ });

Enter the string : I and You and an antennae are enough

Frequency of an :1

Frequency of and :2
Question 24.

A super class Worker has been defined to store the details of a worker. Define a subclass Wages to
compute the monthly wages of the worker. The details/specifications of both classes are given below:

Class Name

Worker

Data Members/Instance Variables:

Name

Stores the name of the worker.

Basic

Stores the basic pay in decimals.

Member Functions:

Worker()

Parameterised constructor to assign values to data members.

void display()

Displays the worker's details.

Some of the members of the class Wages are given below-

Class Name

Wages

Data Members/Instance Variables:

Hrs
Stores the hours worked.

Rate

Stores the rate per hour.

Wage

Stores the overall wage of the worker.

Member Functions:

Wages()

Parameterised constructor to assign values to data members of both the classes.

Double overtime()

Calculates and returns the overtime amount as (hours x rate).

void display()

To count the frequency of the word "and".

Specify the class Worker, giving details of the constructor and void display(). Using the concept of
inheritance. specify a class Wages giving details of the constructor, double overtime() and void
display().Write an appropriate main() function.

Solution

class worker

String Name;
Double Basic;

worker(String name,Double basic)

Name=name;

Basic=basic;

void display()

System.out.println ("Name\t: "+Name+"\nBasic Pay\t: "+Basic);

class Wages extends worker

double hrs,rate,wage;

Wages(double Hrs, double Rate, String name, double basic){

super(name,basic);

hrs=Hrs;

rate=Rate;

wage=0;

}
double overtime(){

return (hrs*rate);

void display(){

Wages o=new Wages(hrs,rate,Name,Basic);

wage=o.overtime()+Basic;

super.display();

System.out.println ("Wage\t: "+wage);

Output

Wages wages = new Wages(10, 100, "Shyam Kumar", 5000);

wages.display();

Name : Shyam Kumar

Basic Pay : 5000.0

Wage : 6000.0

Question 25.

Input a word in uppercase and check for the position of the first occuring vowel and perform the
following operation.

(1) Words that begin with a vowel are cocatenated with "Y".For example , EUROPE becomes
EUROPEY.

(2) Words that contain a vowel in-between should have the first part from the position of the vowel
till end, followed by the part of the string frombeginning till position of the vowel and is concatenated
with "C". For example PROJECT becomes OJECTPRC.
(3) Words which do not contain vowel are concatenated with "N".

for example SKY becomes SKYN.

Design a class Rearrange using the description of the data members and member functions given below:

Class Name

Rearrange

Data Members/Instance Variables:

Txt

Stores the word input by the user.

Cxt

Stores the rearranged word .

len

Stores the length of the word.

Member Functions:

Rearrange()

Constructor to initialize data members.

void readword ()

Accepts the word input in UPPER CASE .

void convert ()

Converts the word into its changed form and stores it in String Cxt.

void display ()

Displays the original and the changed word.


Specify the class Rearrange giving the details of the constructor ( ), void readword ( ), void
convert () and void display ( ). Define a main () function to create an object and call the functions
accordingly to enable the task.

Solution

import java.util.*;

class Rearrange

{ String Txt,Cxt;

int len;

Rearrange()

{ Txt=new String ("");

Cxt=new String ("");

len=0; }

void readword()

{ Scanner s=new Scanner(System.in);

System.out.print ("Input the word in upper case\t: ");

Txt=s.next().toUpperCase();

len=Txt.length(); }

void convert()

{ char c=Txt.charAt (0);

int posVovel=0;

if(c=='A'||c=='E'||c=='I'||c=='O'||c=='U')

{ Cxt=Txt+'Y'; }
else

{ for (int x=1;x<len;x++)

{ c=Txt.charAt(x);

if (c=='A'||c=='E'||c=='I'||c=='O'||c=='U')

{ posVovel=x;

break; }}

if (posVovel!=0)

{ Cxt=Txt.substring(posVovel)+Txt.substring(0,posVovel)+'C'; }

else

{ Cxt=Txt+"N"; } } }

void display()

{ System.out.println("_______________________________________________________________");

System.out.println ("\nOriginal word\t: "+Txt+"\nChanged Word\t: "+Cxt); }

public static void main()throws Exception

{ Rearrange object=new Rearrange();

object.readword();

object.convert();

object.display(); } }

Output

1) Rearrange.main();

Input the word in upper case : GAURAV

________________________________________________________________
Original word : GAURAV

Changed Word : AURAVGC

2) Rearrange.main();

Input the word in upper case : EUROPE

________________________________________________________________

Original word : EUROPE

Changed Word : EUROPEY

3) Rearrange.main();

Input the word in upper case : PROJECT

________________________________________________________________

Original word : PROJECT

Changed Word : OJECTPRC

4) Rearrange.main();

Input the word in upper case : SKY

________________________________________________________________

Original word : SKY


Changed Word : SKYN

Question 26.

Write a program to check wheather a given number is a "Perfect Number" or not. A perfect number is
the one whose factors (including 1 and excluding the number itself), add up to give the number itself.
For Example-

6 is a perfect number

28 is a perfect number

496 is a perfect number

Solution

import java.io.*;

class PerfectNumber

int no,sum=0,i;

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

public void takeNumber()throws Exception

System.out.print("Enter the number:");

no=Integer.parseInt(br.readLine());

for(i=1;i<no;i++)

if(no%i==0)

sum=sum+i;

if(sum==no)

System.out.println(no + " is a perfect number");


else

System.out.println(no + " is not a perfect number");

public static void main(String args[])throws Exception

PerfectNumber obj=new PerfectNumber ();

obj.takeNumber();

} }

Output

PerfectNumber.main({ });

Enter the number:496

496 is a perfect number

PerfectNumber.main({ });

Enter the number:28

28 is a perfect number

PerfectNumber.main({ });

Enter the number:128

128 is not a perfect number

Question 27.
Write a program to input from the user, a square matrix of the size of user's choice and check wheather
the matrix is a wonderous square or not. Also print the prime numbers present in the matrix along with
their row and column number in tabular form.

Solution

import java.io.*;

class WonderousSquare

int arr[][],arr1[];;

int n,i,j,x=0,r,c;

int flag;

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

public void take()throws Exception

System.out.println("\nEnter the size of array(row and column same):");

n=Integer.parseInt(br.readLine().trim());

arr=new int[n][n];

arr1=new int[2*n];

for(i=0;i< n;i++)

for(j=0;j< n;j++)

System.out.println("\nEnter the value:");

arr[i][j]=Integer.parseInt(br.readLine());

}
System.out.println("\nThe matrix is\n");

for(i=0;i< n;i++)

r=0;

c=0;

for(j=0;j< n;j++)

System.out.print(arr[i][j]+" ");

r=r+arr[i][j];

c=c+arr[j][i];

System.out.println();

arr1[x]=r;

arr1[x+n-1]=c;

x++;

for(i=0;i< x;i++)

if(arr1[i]!= 0.5 * n * (n*n + 1))

break;

if(i==x)

System.out.println("YES IT REPRESENTS A WONDROUS SQUARE.");

else

System.out.println("IT IS NOT A WONDROUS SQUARE.");


System.out.println("PRIME\tROW\tCOLUMN");

for(i=0;i< n;i++)

for(j=0;j< n;j++)

if(prime(arr[i][j]))

System.out.println(arr[i][j]+ "\t"+i+ "\t"+j);

private boolean prime(int no)

int index;

for(index=2;index< no;index++)

if(no%index==0)

break;

if(index==no)

return true;

else

return false;

}
public static void main(String args[])throws Exception

WonderousSquare ob=new WonderousSquare();

ob.take();

Output

WonderousSquare.main({ });

Enter the size of array(row and column same) : 2

Enter the value : 1

Enter the value : 2

Enter the value : 3

Enter the value : 4

The matrix is

1 2

3 4

IT IS NOT A WONDROUS SQUARE.

PRIME ROW COLUMN

2 0 1

3 1 0

Question 28.

Write a class Anagram to print all possibe anagrams of a word input by the user. Also print the number
of possible anagrams of the word.

Solution

import java.io.*;
public class Anagrams

String str;

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

int counter=0;

public void take()throws Exception

System.out.println("\nEnter the word:");

str=br.readLine();

show("", str);

System.out.println("Total Number of Anagrams="+counter);

public void show(String s, String str)

if(str.length()<= 1)

counter++;

System.out.println(s+str);

else

for(int i = 0; i< str.length(); i++)

String str1 = str.substring(i, i + 1);

String str2 = str.substring(0, i);


String str3 = str.substring(i + 1);

show(s + str1, str2 + str3);

} } }

public static void main(String args[])throws Exception

{ Anagrams ob=new Anagrams();

ob.take();}}

Output

Anagrams anagrams1 = new Anagrams();

Anagrams.main({ });

Enter the word:

pat

pat

pta

apt

atp

tpa

tap

Total Number of Anagrams=6

Question 29.

Write a program to check wheather a number is automorphic or not. An automorphic number is the one
whose square ends with the number itself.
For example, 25 is an automorphic number. Number of digits in 25 is 2 and square value of 25 is 625. We
have to take 2 extreme right digits from 625 as there are 2 digits in the original entered number. Two
extreme right digits of 625 is 25 which matches with original number 25. So 25 is an automorphic
number. Similarly 5 is also an automorphic number.

Solution

import java.io.*;

class Automorphic

{int i,n,no,sqnum,rev=0,digit=0;

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

public void getNumber() throws Exception

{System.out.println("Enter the number:");

n=Integer.parseInt(br.readLine());

no=n;

do

{digit++;

no=no/10;

} while(no!=0);

sqnum=n*n;}

public void showResult()

{do

{rev=rev*10+sqnum%10;

sqnum=sqnum/10;

digit--;

if(digit==0)

break;

} while(true);
rev=reverse(rev);

if(n==rev)

System.out.println(n+" is an Automorphic number");

else

System.out.println(n+" is not an Automorphic number");}

private int reverse(int n)

{int r=0;

while(n!=0)

{r=r*10+n%10;

n=n/10;}

return r;}

public static void main(String args[])throws Exception

{Automorphic obj=new Automorphic();

obj.getNumber();

obj.showResult();}}

Output

Automorphic.main({ });

Enter the number:

25

25 is an Automorphic number

Automorphic.main({ });

Enter the number:

30

30 is not an Automorphic number

Automorphic.main({ });
Enter the number:

5 is an Automorphic number

Question 30.

Write a Menu driven BlueJ program to make a simple calculator which performs addition, substraction,
multiplication and division.

Solution

// Menu driven BlueJ program on simple calculator

import java.io.*;

public class Pat

{int a,b,c;

char ch;

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

public void init()throws Exception

{System.out.print ("Enter first number:");

a=Integer.parseInt(br.readLine());

System.out.print ("Enter second number:");

b=Integer.parseInt(br.readLine());

System.out.print ("Enter operator (+,-,*,/):");

ch=(char)br.read();

switch(ch)

{ case '+':

add();

break;

case '-':
sub();

break;

case '*':

product();

break;

case '/':

if(b==0)

System.out.println("Division not possible");

else

div();

break;

default:

System.out.println("Wrong Operator");}}

private void add()

{c=a+b;

System.out.println("Sum="+c);}

private void sub()

{c=a-b;

System.out.println("Subtracted value="+c);}

private void product()

{c=a*b;

System.out.println("Product="+c);}

private void div()

{c=a/b;

System.out.println("Quotient: "+c+" Remainder: "+a%b);}


public static void main(String args[])throws Exception

{Pat ob=new Pat();

ob.init(); }}

Output

Pat.main({ });

Enter first number:5

Enter second number:8

Enter operator (+,-,*,/):*

Product=40

Pat.main({ });

Enter first number:7

Enter second number:0

Enter operator (+,-,*,/):/

Division not possible

Pat.main({ });

Enter first number:41

Enter second number:59

Enter operator (+,-,*,/):+

Sum=100
Question 31.

Write a function in java to input two angles in degrees and minutes and find their sum result by passing
them as angle type values to another function. Also define a class Angles to perform the operation.
Write a main(String args[]) function to enable the task.

eg. If a = 35 deg 55 min

b = 64 deg 24 min

resultant angle = 100 deg 19 min

Solution

import java.io.*;

class angles

static BufferedReader in =new BufferedReader(new InputStreamReader(System.in));

int deg, min; // instance variables

void accept()throws Exception

{ // function to take input

System.out.println("Enter degrees : ");

deg=Integer.parseInt(in.readLine());

System.out.println("Enter minutes : ");

min=Integer.parseInt(in.readLine());

void resultAngle(angles a,angles b)

{ // function to find resultant angle

deg=a.deg+b.deg+(int)((a.min+b.min)/60);
min=(a.min+b.min)%60;

void display() // function to display result

System.out.println("Resultant Angle -\t"+deg+"'"+min+"\"");

public class angle //main class

public static void main(String args[])throws Exception

angles o1=new angles(); // object declaration

angles o2=new angles();

angles o3=new angles();

o1.accept(); // function calls

o2.accept();

o3.resultAngle(o1,o2);

o3.display();

}}

Output

Enter degrees :

35

Enter minutes :
34

Enter degrees :

245

Enter minutes :

59

You might also like