# Programming in Java | Week 9

Session: JULY-DEC 2023

Course Name: Programming In Java

### Programming Assignment

Question 1
Problem statement:
Complete the code to develop a BASIC CALCULATOR that can perform operations like Addition, Subtraction, Multiplication and Division.

Solution:

``````		int i=0,j=0;
double output=0;
char seq[] = input.toCharArray();
for(int a=0; a<seq.length; a++){
if(seq[a]=='+'){
i= Integer.parseInt(input.substring(0,a));
j= Integer.parseInt(input.substring(a+1,seq.length));
output = (double)i+j;
}else if(seq[a]=='-'){
i= Integer.parseInt(input.substring(0,a));
j= Integer.parseInt(input.substring(a+1,seq.length));
output = (double)i-j;
}else if(seq[a]=='/'){
i= Integer.parseInt(input.substring(0,a));
j= Integer.parseInt(input.substring(a+1,seq.length));
output = (double)i/j;
}else if(seq[a]=='*'){
i= Integer.parseInt(input.substring(0,a));
j= Integer.parseInt(input.substring(a+1,seq.length));
output = (double)i*j;
}
}
System.out.print(input+" = " + Math.round(output));``````

Question 2
Complete the code to develop an ADVANCED CALCULATOR that emulates all the functions of the GUI Calculator as shown in the image.

Solution:

``````		char seq[] = input.toCharArray();
int outflag=0;

for(int i=0; i<seq.length; i++){
seq[i]=gui_map(seq[i]);
}

double operand1=0.0;
String o1="";
double operand2=0.0;
String o2="";
double output=0.0;

outerloop:
for(int i=0; i<seq.length; i++){
int r=0;
if(seq[i]=='+'||seq[i]=='-'||seq[i]=='/'||seq[i]=='X'||seq[i]=='='){
for(int j=0; j<i; j++){
o1+=Character.toString(seq[j]);
}
operand1=Double.parseDouble(o1);
for(int k=i+1; k<seq.length; k++){
if(seq[k]=='='){
outflag=1;
operand2=Double.parseDouble(o2);
if(seq[i]=='+'){
output=operand1+operand2;
}else if(seq[i]=='-'){
output=operand1-operand2;
}else if(seq[i]=='/'){
output=operand1/operand2;
}else if(seq[i]=='X'){
output=operand1*operand2;
}
break outerloop;
}else{
o2+=Character.toString(seq[k]);
}
}
}
}
if(outflag==1)
System.out.print(output);``````

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Question 3
Complete the code to perform a 45 degree anti clock wise rotation with respect to the center of a 5 × 5 2D Array as shown below:
INPUT:
00100
00100
11111
00100
00100
OUTPUT:
10001
01010
00100
01010
10001

Solution:

``````		    char arr[][]= new char;
// Input 2D Array using Scanner Class
for(int line=0;line<5; line++){
String input = sc.nextLine();
char seq[] = input.toCharArray();
if(seq.length==5){
for(int i=0;i<5;i++){
arr[line][i]=seq[i];
}
}else{
System.out.print("Wrong Input!");
System.exit(0);
}
}
char tra[][] = new char;
String outer[]={"00","10","20","30",
"40","41","42","43",
"44","34","24","14",
"04","03","02","01"};

String inner[]={"11","21","31","32",
"33","23","13","12"};

// 45-Degree rotation
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
// Transform outer portion
for(int k=0; k<outer.length; k++){
char indices[]=outer[k].toCharArray();
int a = Integer.parseInt(String.valueOf(indices));
int b = Integer.parseInt(String.valueOf(indices));
if(a==i && b==j){
if(k==15){k=1;}
else if(k==14){k=0;}
else {k+=2;}
indices=outer[k].toCharArray();
a = Integer.parseInt(String.valueOf(indices));
b = Integer.parseInt(String.valueOf(indices));
tra[a][b] = arr[i][j];
break;
}
}
// Transform inner portion
for(int k=0; k<inner.length; k++){
char indices[]=inner[k].toCharArray();
int a = Integer.parseInt(String.valueOf(indices));
int b = Integer.parseInt(String.valueOf(indices));
if(a==i && b==j){
if(k==7){k=0;}
else {k+=1;}
indices=inner[k].toCharArray();
a = Integer.parseInt(String.valueOf(indices));
b = Integer.parseInt(String.valueOf(indices));
tra[a][b] = arr[i][j];
break;
}
}
// Keeping center same
tra = arr;
}
}
// Print the transformed output
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
System.out.print(tra[i][j]);
}
System.out.println();
}``````

Question 4
Problem statement:
A program needs to be developed which can mirror reflect any 5 × 5 2D character array into its side-by-side reflection. Write suitable code to achieve this transformation as shown below:
INPUT: OUTPUT:
OOXOO OOXOO
OOXOO OOXOO
XXXOO OOXXX
OOOOO OOOOO
XOABC CBAOX

``````		char original[][]= new char;

// Declaring 5x5 2D char array to store reflection
char reflection[][]= new char;

// Input 2D Array using Scanner Class
for(int line=0;line<5; line++){
String input = sc.nextLine();
char seq[] = input.toCharArray();
if(seq.length==5){
for(int i=0;i<5;i++){
original[line][i]=seq[i];
}
}
}

// Performing the reflection operation
for(int i=0; i<5;i++){
for(int j=0; j<5;j++){
reflection[i][j]=original[i][4-j];
}
}

// Output the 2D Reflection Array
for(int i=0; i<5;i++){
for(int j=0; j<5;j++){
System.out.print(reflection[i][j]);
}
System.out.println();
}``````

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Question 5
Write suitable code to develop a 2D Flip-Flop Array with dimension 5 × 5, which replaces all input elements with values 0 by 1 and 1 by 0. An example is shown below:
INPUT:
00001
00001
00001
00001
00001
OUTPUT:
11110
11110
11110
11110
11110

Solution:

``````				char original[][]= new char;

// Input 2D Array using Scanner Class and check data validity
for(int line=0;line<5; line++){
String input = sc.nextLine();
char seq[] = input.toCharArray();
if(seq.length==5){
for(int i=0;i<5;i++){
if(seq[i]=='0' || seq[i]=='1'){
original[line][i]=seq[i];
if(line==4 && i==4)
flipflop(original);
}
else{
System.out.print("Only 0 and 1 supported.");
break;
}
}
}else{
System.out.print("Invalid length");
break;
}

}
}
static void flipflop(char[][] flip){
// Flip-Flop Operation
for(int i=0; i<5;i++){
for(int j=0; j<5;j++){
if(flip[i][j]=='1')
flip[i][j]='0';
else
flip[i][j]='1';
}
}

// Output the 2D FlipFlopped Array
for(int i=0; i<5;i++){
for(int j=0; j<5;j++){
System.out.print(flip[i][j]);
}
System.out.println();
}``````

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Session: JAN-APR 2023

Course Name: Programming in Java

#### Q1. Which of the following is/are correct regarding events in Java?a. EventObject is super class of all the events.b. AdjustmentEvent will be notified if scroll bar is manipulated.c. All the classes and methods required for even handling in Java is in java.io package.d. getID() method can be used to determine the name of an event.

Q2. Which of the following classes is used to display a message dialog in Java Swing?
a. JOptionPane
b. IDialog
c. JMessageDialog
d. JFrame

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Q3. Which of the following event is occurred when a button is pressed, a list item is double-clicked or a menu item is selected?
b. ActionEvent
c. ContainerEvent
d. ComponentEvent

Q4. Which of the statements are correct about Swing programming?
a. AWT is a heavyweight programming.
b. Swing is heavyweight programming.
c. Swing is lightweight programming.
d. Both AWT and Swing are lightweight programming.

Answer: c. Swing is lightweight programming.

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Q5. Event class is defined in which of the following libraries?
a. java.io
b. javalang
c. java.net
d. java.util

Q6. Which of the following is/are class(es) in javax.swing package?
a. BoxLayout
c. JComponent
d. Scrollable

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Q7. Which of the following statement(s) is/are true?
a. Swing component frame does not support Window Listner.
b. Swing component combobox does not support Window Listner.
c. Swing component checkbox does not support Window Listner.
d. Swing component dialog does not support Window Listner.

Q8. A class which implements the ActionListener interface, also it must implement which of the following methods?
a. void handle( ActionEvent e )
b. void actionPerformed( ActionEvent e )
c. void eventDispatched( AWTEvent e )
d. String getActionCommand( ActionEvent e )

Answer: b. void actionPerformed( ActionEvent e )

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Q9. When a component is added or removed, which of the following events is generated?
a. ComponentEvent
b. ContainerEvent
c. FocusEvent
d. InputEvent

Q10. Which of these packages contains all the event handling interfaces?
a. java.lang
b. java.awt
c. java.awt.event
d. java.event

### Programming Assignment of Programming in Java

Question 1

Write suitable code to develop a 2D Flip-Flop Array with dimension 5 × 5, which replaces all input elements with values 0 by 1 and 1 by 0. An example is shown below:
INPUT:
00001
00001
00001
00001
00001
OUTPUT:
11110
11110
11110
11110
11110

Solution:

``````char original[][]= new char;
for(int line=0;line<5; line++)
{
String input = sc.nextLine();
char seq[] = input.toCharArray();
if(seq.length==5)
{
for(int i=0;i<5;i++)
{
if(seq[i]=='0' || seq[i]=='1')
{
original[line][i]=seq[i];
if(line==4 && i==4)
flipflop(original);
}
else
{
System.out.print("Only 0 and 1 supported.");
break;
}
}
}
else
{
System.out.print("Invalid length");
break;
}
}
}
static void flipflop(char[][] flip)
{
for(int i=0; i<5;i++)
{
for(int j=0; j<5;j++)
{
if(flip[i][j]=='1')
flip[i][j]='0';
else
flip[i][j]='1';
}
}
for(int i=0; i<5;i++)
{
for(int j=0; j<5;j++)
{
System.out.print(flip[i][j]);
}
System.out.println();
}``````

Question 2

A program needs to be developed which can mirror reflect any 5 × 5 2D character array into its side-by-side reflection. Write suitable code to achieve this transformation as shown below:
INPUT:                                       OUTPUT:
OOXOO                                        OOXOO
OOXOO                                        OOXOO
XXXOO                                        OOXXX
OOOOO                                        OOOOO
XOABC                                        CBAOX

Solution:

``````char original[][]= new char;
char reflection[][]= new char;
for(int line=0;line<5; line++)
{
String input = sc.nextLine();
char seq[] = input.toCharArray();
if(seq.length==5)
{
for(int i=0;i<5;i++)
{
original[line][i]=seq[i];
}
}
}
for(int i=0; i<5;i++)
{
for(int j=0; j<5;j++)
{
reflection[i][j]=original[i][4-j];
}
}
for(int i=0; i<5;i++)
{
for(int j=0; j<5;j++)
{
System.out.print(reflection[i][j]);
}
System.out.println();
}``````

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Question 3

Complete the code to perform a 45 degree anti clock wise rotation with respect to the center of a 5 × 5 2D Array as shown below:
INPUT:
00100
00100
11111
00100
00100
OUTPUT:
10001
01010
00100
01010
10001

Solution:

``````char arr[][]= new char;
for(int line=0;line<5; line++)
{
String input = sc.nextLine();
char seq[] = input.toCharArray();
if(seq.length==5)
{
for(int i=0;i<5;i++)
{
arr[line][i]=seq[i];
}
}
else
{
System.out.print("Wrong Input!");
System.exit(0);
}
}
char tra[][] = new char;
String outer[]={"00","10","20","30",
"40","41","42","43",
"44","34","24","14",
"04","03","02","01"};
String inner[]={"11","21","31","32",
"33","23","13","12"};
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
for(int k=0; k<outer.length; k++)
{
char indices[]=outer[k].toCharArray();
int a = Integer.parseInt(String.valueOf(indices));
int b = Integer.parseInt(String.valueOf(indices));
if(a==i && b==j)
{
if(k==15)
{
k=1;
}
else if(k==14)
{
k=0;
}
else
{
k+=2;
}
indices=outer[k].toCharArray();
a = Integer.parseInt(String.valueOf(indices));
b = Integer.parseInt(String.valueOf(indices));
tra[a][b] = arr[i][j];
break;
}
}
for(int k=0; k<inner.length; k++)
{
char indices[]=inner[k].toCharArray();
int a = Integer.parseInt(String.valueOf(indices));
int b = Integer.parseInt(String.valueOf(indices));
if(a==i && b==j)
{
if(k==7)
{
k=0;
}
else
{
k+=1;
}
indices=inner[k].toCharArray();
a = Integer.parseInt(String.valueOf(indices));
b = Integer.parseInt(String.valueOf(indices));
tra[a][b] = arr[i][j];
break;
}
}
tra = arr;
}
}
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
System.out.print(tra[i][j]);
}
System.out.println();
} ``````

Question 4

Complete the code to develop an ADVANCED CALCULATOR that emulates all the functions of the GUI Calculator as shown in the image.

Note the following points carefully:
1. Use only double datatype to store all numeric values.
2. Each button on the calculator should be operated by typing the characters from ‘a’ to ‘p’.
3. To calculate 25-6, User should input fjhkc (where, f for 2, j for 5, h for ‘-‘, k for 6 and c for ‘=’ ).
3. You may use the already defined function gui_map(char).
4. Without ‘=’, operations won’t give output as shown in Input_2 and Output_2 example below.
5. The calculator should be able to perform required operations on two operands as shown in the below example:
Input_1:
klgc
Output_1:
18.0

Solution:

``````char seq[] = input.toCharArray();
int outflag=0;
for(int i=0; i<seq.length; i++)
{
seq[i]=gui_map(seq[i]);
}
double operand1=0.0;
String o1="";
double operand2=0.0;
String o2="";
double output=0.0;
outerloop:
for(int i=0; i<seq.length; i++)
{
int r=0;
if(seq[i]=='+'||seq[i]=='-'||seq[i]=='/'||seq[i]=='X'||seq[i]=='=')
{
for(int j=0; j<i; j++)
{
o1+=Character.toString(seq[j]);
}
operand1=Double.parseDouble(o1);
for(int k=i+1; k<seq.length; k++)
{
if(seq[k]=='=')
{
outflag=1;
operand2=Double.parseDouble(o2);
if(seq[i]=='+')
{
output=operand1+operand2;
}
else if(seq[i]=='-')
{
output=operand1-operand2;
}
else if(seq[i]=='/')
{
output=operand1/operand2;
}
else if(seq[i]=='X')
{
output=operand1*operand2;
}
break outerloop;
}
else
{
o2+=Character.toString(seq[k]);
}
}
}
}
if(outflag==1)
System.out.print(output);``````

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Question 5

Complete the code to develop a BASIC CALCULATOR that can perform operations like Addition, Subtraction, Multiplication and Division.
Note the following points carefully
:
1. Use only double datatype to store calculated numeric values.
2. Assume input to be of integer datatype.
3. The output should be rounded using Math.round() method.
4. Take care of the spaces during formatting output (e.g., single space each before and after =).
5. The calculator should be able to perform required operations on a minimum of two operands as shown in the below example:
Input:
5+6
Output:
5+6 = 11

Solution:

``````int i=0;
int j=0;
double output=0;
char seq[] = input.toCharArray();
for(int a=0; a<seq.length; a++)
{
if(seq[a]=='+')
{
i= Integer.parseInt(input.substring(0,a));
j= Integer.parseInt(input.substring(a+1,seq.length));
output = (double)i+j;
}
else if(seq[a]=='-')
{
i= Integer.parseInt(input.substring(0,a));
j= Integer.parseInt(input.substring(a+1,seq.length));
output = (double)i-j;
}
else if(seq[a]=='/')
{
i= Integer.parseInt(input.substring(0,a));
j= Integer.parseInt(input.substring(a+1,seq.length));
output = (double)i/j;
}
else if(seq[a]=='*')
{
i= Integer.parseInt(input.substring(0,a));
j= Integer.parseInt(input.substring(a+1,seq.length));
output = (double)i*j;
}
}
System.out.print(input+" = " + Math.round(output));``````

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

More Nptel courses: http://13.235.254.184/nptel/

Session: JULY-DEC 2022

Course Name: Programming in Java NPTEL

#### These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Q1) Which of the following Listener(s) is/are supported by button Swing component ?
a. Action Listner
b. Change Listner
c. Item Listner
d. Window Listner

Q2) Which of the following is/are NOT interface(s) in javax.swing package?
b. BoxLayout
c. JComponent
d. Scrollable

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Q3) Which of the following statement(s) is/are false?
a. Swing component frame support Window Listner
b. Swing component combo box support Window Listner.
c. Swing component check box support Window Listner.
d. Swing component dialog support Window Listner.

Q4) Which package provides many event classes and Listener interfaces for event handling?
a. java.awt.activeevent
b. java.awt.event
c. java.awt.listener
d. none of these

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Q5) Select the correct information
a. JTextField cannot be used as a JLabel.
b. JLabel cannot be used as a JTextField.

Answer: b. JLabel cannot be used as a JTextField.

Q6) Which of the following is/are incorrect regarding events in Java?
a. EventClass is super class of all the events.
b. AdjustmentEvent will be notified if scroll bar is manipulated.
c. All the classes and methods required for even handling in Java is in java.awt package.
d. getID() method can be used to determine the type of event.

Answer: a. EventClass is super class of all the events.

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Q7) Which of the following is/are interface(s) of java.awt package?
a. Button
b. Choice
c. Dialog
d. Paint

Q8) Which of the following displays components row-by-row in the order in which they were added to the JFrame?
a. CardLayout
b. FlowLayout
c. BorderLayout
d. GridLayout

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Q9) Which of the following statements are true?
a. Java AWT components are platform-dependent.
b. Java Swing componets are platform-independent.
c. MVC pattern is not supported by AWT.
d. MVC pattern is supported by Swing.

Q10) Which of the following method is used to set a frame, say f with size 300 × 200 pixels?
JFrame f = new JFrame ();

a. f.setsize (300, 200);
b. f.setSize (300, 200);
c. f.paint (300, 200);
d. f.setVisible (300, 200);

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

## Programming Assignment

Question 1
Complete the code to develop a BASIC CALCULATOR that can perform operations like Addition, Subtraction, Multiplication and Division.
Input:  5+6
Output: 5+6 = 11

Solution:

``//Code``

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Question 2
Complete the code to develop an ADVANCED CALCULATOR that emulates all the functions of the GUI Calculator as shown in the image.
Input:  klgc
Output: 18.0

Solution:

``//Code``

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Question 3
Complete the code to perform a 45 degree anti clock wise rotation with respect to the center of a 5 × 5 2D Array as shown below:
INPUT:
00100 00100          11111         00100          00100
OUTPUT:
10001         01010          00100         01010          10001

Solution:

``//Code``

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Question 4
A program needs to be developed which can mirror reflect any 5 × 5 2D character array into its side-by-side reflection. Write suitable code to achieve this transformation as shown below:
INPUT:
OOXOO OOXOO XXXOO  OOOOO          XOABC
OUTPUT:
OOXOO OOXOO OOXXX OOOOO CBAOX

Solution:

``//Code``

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

Question 5
Write suitable code to develop a 2D Flip-Flop Array with dimension 5 × 5, which replaces all input elements with values 0 by 1 and 1 by 0. An example is shown below:
INPUT:
00001               00001               00001               00001               00001
OUTPUT:
11110               11110               11110               11110               11110

Solution:

``//Code``

These are NPTEL Programming In Java Week 9 Assignment 9 Answers

More NPTEL Solutions: http://13.235.254.184/nptel