Programming in Java | Week 9

Session: JULY-DEC 2023

Course Name: Programming In Java

Course Link: Click Here

These are NPTEL Programming In Java Week 9 Assignment 9 Answers


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[5][5];
			// 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[5][5];
			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[0]));
						int b = Integer.parseInt(String.valueOf(indices[1]));
						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[0]));
							b = Integer.parseInt(String.valueOf(indices[1]));
							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[0]));
						int b = Integer.parseInt(String.valueOf(indices[1]));
						if(a==i && b==j){
							if(k==7){k=0;}
							else {k+=1;}
							indices=inner[k].toCharArray();
							a = Integer.parseInt(String.valueOf(indices[0]));
							b = Integer.parseInt(String.valueOf(indices[1]));
							tra[a][b] = arr[i][j];
							break;
						}
					}
					// Keeping center same
					tra[2][2] = arr[2][2];
				}
			}
			// 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[5][5];

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

		// 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[5][5];

		// 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

More Weeks of Programming In Java: Click here

More Nptel Courses: Click here


Session: JAN-APR 2023

Course Name: Programming in Java

Course Link: Click Here

These are NPTEL Programming In Java Week 9 Assignment 9 Answers


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.

Answer: a, b


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

Answer: a. JOptionPane


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?
a. AdjustmentEvent
b. ActionEvent
c. ContainerEvent
d. ComponentEvent

Answer: b. ActionEvent


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

Answer: d. java.util


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

Answer: a, c


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.

Answer: b, c


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

Answer: b. ContainerEvent


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

Answer: c. java.awt.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[5][5];
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[5][5];
char reflection[][]= new char[5][5];
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[5][5];
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[5][5];
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[0]));
            int b = Integer.parseInt(String.valueOf(indices[1]));
            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[0]));
                b = Integer.parseInt(String.valueOf(indices[1]));
                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[0]));
            int b = Integer.parseInt(String.valueOf(indices[1]));
            if(a==i && b==j)
            {
                if(k==7)
                {
                    k=0;
                }
                else
                {
                    k+=1;
                }
                indices=inner[k].toCharArray();
                a = Integer.parseInt(String.valueOf(indices[0]));
                b = Integer.parseInt(String.valueOf(indices[1]));
                tra[a][b] = arr[i][j];
                break;
            }
        }
        tra[2][2] = arr[2][2];
    }
}
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.

image 77

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 Weeks of Programming In Java: Click Here

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

Answer: a, b, c


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

Answer: b, c


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.

Answer: b, c


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

Answer: b. java.awt.event


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.
c. Button grouped radio button cannot be used instead of JComboBox.
d. JPassword Field extends JLabel.

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

Answer: 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

Answer: b. FlowLayout


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.

Answer: a, b, c, d


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);

Answer: b. f.setSize (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


These are NPTEL Programming In Java Week 9 Assignment 9 Answers