1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
GenaCL600 [577]
3 years ago
13

Write a class called DisArray with methods to convert a 1-dimensional array to a 2-dimensional array. The methods' name should b

e convert2D. You should create methods to convert int[] and String[], that can be tested against the following class. Your convert2D methods should choose the closest possible square-ish size for the 2D array. For example, if your input array is [10], its 2D conversion should be [3][4] or [4][3] -- you decide if you want to favor rows over columns. Your method should place the elements of the one-dimensional array into the two-dimensional array in row-major order, and fill the remaining elements with 0 (for integer arrays) or null (for String arrays). The process of filling unused elements with 0 or null is called padding. If the input array's length is a perfect square, e.g., [16], then your output should a square array, i.e., [4][4]. For any other size, your objective is to minimize the number of padded elements. For example, if your input is [10] you should opt for a [3][4] array instead of a [4][4]. The former will have only 2 padded elements; the latter 6.
Computers and Technology
1 answer:
meriva3 years ago
8 0
<h2>Answer:</h2>

=======================================================

//Class header definition

public class DisArray {

   //First method with int array as parameter

   public static void convert2D(int[] oneD) {

       //1. First calculate the number of columns

       //a. get the length of the one dimensional array

       int arraylength = oneD.length;

       //b. find the square root of the length and typecast it into a float

       float squareroot = (float) Math.sqrt(arraylength);

       //c. round off the result and save in a variable called row

       int row = Math.round(squareroot);

       //2. Secondly, calculate the number of columns

       //a. if the square of the number of rows is greater than or equal to the

       //length of  the one dimensional array,

       //then to minimize padding, the number of

       //columns  is the same as the number of rows.

       //b. otherwise, the number of columns in one more than the

       // number of rows

       int col = ((row * row) >= arraylength) ? row : row + 1;

       //3. Create a 2D int array with the number of rows and cols

       int [ ][ ] twoD = new int [row][col];

       //4. Place the elements in the one dimensional array into

       //the two dimensional array.

       //a. First create a variable counter to control the cycle through the one

       // dimensional array.

       int counter = 0;

       //b. Create two for loops to loop through the rows and columns of the

       // two  dimensional array.

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

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

               //if counter is less then the length of the one dimensional array,

               //then  copy the element at that position into the two dimensional

               //array.  And also increment counter by one.

               if (counter < oneD.length) {

                   twoD[i][j] = oneD[counter];

                   counter++;

              }

              //Otherwise, just pad the array with zeros

               else {

                   twoD[i][j] = 0;

               }

           }

       }

       //You might want to create another pair of loop to print the elements

       //in the  populated two dimensional array as follows

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

           for (int j = 0; j < twoD[i].length; j++) {

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

           }

           System.out.println("");

       }

   }     //End of first method

   //Second method with String array as parameter

   public static void convert2D(String[] oneD) {

       //1. First calculate the number of columns

       //a. get the length of the one dimensional array

       int arraylength = oneD.length;

       //b. find the square root of the length and typecast it into a float

       float squareroot = (float) Math.sqrt(arraylength);

       //c. round off the result and save in a variable called row

       int row = Math.round(squareroot);

       //2. Secondly, calculate the number of columns

       //a. if the square of the number of rows is greater than or equal to the length of  

       //the one dimensional array, then to minimize padding, the number of

       //columns  is the same as the number of rows.

       //b. otherwise, the number of columns in one more than the

       //number of rows.

       int col = (row * row >= arraylength) ? row : row + 1;

       //3. Create a 2D String array with the number of rows and cols

       String[][] twoD = new String[row][col];

       //4. Place the elements in the one dimensional array into the two

       // dimensional array.

       //a. First create a variable counter to control the cycle through the one

       // dimensional array.

       int counter = 0;

       //b. Create two for loops to loop through the rows and columns of the

       //two  dimensional array.

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

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

               //if counter is less then the length of the one dimensional array,

               //then  copy the element at that position into the two dimensional

               //array.  And also increment counter by one.

               if (counter < oneD.length) {

                   twoD[i][j] = oneD[counter];

                   counter++;

               }

               //Otherwise, just pad the array with null values

               else {

                   twoD[i][j] = null;

               }

           }

       }

       //You might want to create another pair of loop to print the elements  

       //in the populated two dimensional array as follows:

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

           for (int j = 0; j < twoD[i].length; j++) {

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

           }

           System.out.println("");

       }

   }    // End of the second method

   //Create the main method

   public static void main(String[] args) {

       //1. Create an arbitrary one dimensional int array

       int[] x = {23, 3, 4, 3, 2, 4, 3, 3, 5, 6, 5, 3, 5, 5, 6, 3};

       //2. Create an arbitrary two dimensional String array

       String[] names = {"abc", "john", "dow", "doe", "xyz"};

       

       //Call the respective methods

       convert2D(x);

       System.out.println("");

       convert2D(names);

   }         // End of the main method

}            // End of class definition

=========================================================

==========================================================

<h2>Sample Output</h2>

23 3 4 3  

2 4 3 3  

5 6 5 3  

5 5 6 3  

abc john dow  

doe xyz null

==========================================================

<h2>Explanation:</h2>

The above code has been written in Java and it contains comments explaining each line of the code. Please go through the comments. The actual executable lines of code are written in bold-face to distinguish them from the comments.

You might be interested in
How can the New command be added to the Quick Access Toolbar? Check all that apply.
VMariaS [17]

Answer:

B,D,E

Explanation:

i just answered this on edge and got it right.

7 0
3 years ago
Create a class named Apartment that holds an apartment number, number of bedrooms, number of baths, and rent amount. Create a co
Archy [21]

Solution:

public class Apartment {

int aptNumber;

int bedrooms;

double baths;

double rent;

public Apartment(int num, int bdrms, double bths, double rent) {

aptNumber = num;

bedrooms = bdrms;

this.baths = bths;

this.rent = rent;

}

public int getAptNumber() {

return aptNumber;  

}

public int getBedrooms() {

return bedrooms;  

}  

public double getBaths() {  

return baths;  

}  

public double getRent() {  

return rent;  

}  

}  

import java.util.*;  

public class TestApartments {

public static void main(String args[]) {  

Scanner input = new Scanner(System.in);  

Apartment apts[] = new Apartment[5];

apts[0] = new Apartment(101, 2, 1, 725);

apts[1] = new Apartment(102, 2, 1.5, 775);

apts[2] = new Apartment(103, 3, 2, 870);

apts[3] = new Apartment(104, 3, 2.5, 960);  

apts[4] = new Apartment(105, 3, 3, 1100);  

int bdrms;

int baths;

double rent;

int count = 0;  

System.out.print("Enter minimum number of bedrooms needed >> ");

bdrms = input.nextInt();

System.out.print("Enter minimum number of bathrooms needed >> ");

baths = input.nextInt();  

System.out.print("Enter maximum rent willing to pay >> ");  

rent = input.nextDouble();  

System.out.println("\nApartments meeting citeria of\nat least " + bdrms + " bedrooms, at least " + baths + " baths, and " + " no more than $" + rent + " rent:");

// Write your code here

boolean isExist = false;

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

if(checkApt(apts[i], bdrms, baths, rent)){  

display(apts[i]);

isExist = true;  

}  

}  

if(!isExist){  

System.out.println("No apartments met your criteria");

}  

}  

public static boolean checkApt(Apartment apt, int bdrms, double baths, double rent) {

// Write your code here  

if(apt.getBedrooms()>=bdrms && apt.getBaths()>=baths && apt.rent<=rent)  

return true;  

return false;

}  

public static void display(Apartment apt) {

System.out.println(" Apt #" + apt.getAptNumber() + " " + apt.getBedrooms() +" bedrooms, and " + apt.getBaths() + " baths. Rent $" + apt.getRent());  

}  

}  

7 0
4 years ago
Create a pseudocode showing logic steps to perform the required task below.
Ludmilka [50]

Answer:

#Function for the calculcations needed

function subtotal_gratuity_total(subtotal,gratuity_rate):

  gratuity_rate = gratuity_rate/100 #this is assuming the user enters the gratuity as a percentage value (e.g. 15)

  gratuity = subtotal*gratuity_rate

  total = subtotal+gratuity

  return subtotal, gratuity_rate, gratuity, total

#Reading the values the user enters

Output(“Input subtotal”)

input (subtotal)

Output(“Input gratuity rate”)

input (gratuity_rate)

#Calling function we created with the values the user enters as inputs,

#and  the 4 values required as outputs

subtotal,gratuity_rate,gratuity, total = subtotal_gratuity_total(subtotal,gratuity_rate)

4 0
4 years ago
Whoever understands this first and replies will be the brainliest.<br><br><br><br> Road work ahead?
Scorpion4ik [409]

I SURE HOPE IT DOES (this is the best vibe if you dont get this you are an uncultured swine)

7 0
4 years ago
Read 2 more answers
The ______________________ is the part of the ip address that is the same among computers in a network segment.
kozerog [31]
The answer is 
External IP address.
4 0
4 years ago
Other questions:
  • Tomi is testing all of the links on her web page by clicking on each one in a browser. What type of testing is this considered?
    6·2 answers
  • Which is a benefit of peer-to-peer networking?
    10·1 answer
  • What layer uses the UDP protocol
    6·1 answer
  • What is the main purpose of a DNS server?
    12·1 answer
  • How does limiting a company's scope benefit the company?
    15·2 answers
  • Explain how a monitor can display the letters that you type on a keyboard. (Hint: Three Basic Computer Functions) *
    11·1 answer
  • The most common threats to your computer and your online safety come from what is called ____
    11·2 answers
  • write an algorithm and draw a flowchart to calculate the sum of of the first 10 natural numbers starting from 1​
    13·1 answer
  • What are three limitations of computer?​
    13·1 answer
  • Label the parts of the plated salad.
    9·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!