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
Which of the following are examples of typical problems an ISS professional would encounter? Check all
natali 33 [55]
I’m guessing B! Seems to be the best
8 0
3 years ago
Read 2 more answers
What sequence would a user need to follow to change Chart A into Chart B?
alexandr402 [8]

Either options C or D

You can change the chart type of the whole chart or for single data series in most 2-D charts to give the chart a different look. In 3D or bubble charts, you can only change the chart type of the whole chart. By following the steps in the answers above, you will be in a position to select available chart type like column chart or line chart.

3 0
3 years ago
A competitor goes to your public website and discovers that they can get into a directory that you did not know could be reached
Ivan

Answer:

Yes, directory traversal attack.

Explanation:

A website is a collection big web pages hosted on a web server. It contains contents like links and sometimes directory root paths. This a vulnerability attacks an exploit to access the information in a database.

There are two access to a database. One is the authentication process issued for authorised user access and the other is the root access only accessible to the network administrator. It contains paths to directories in the servers.

A directory traversal attack or path attack is done through a web browser by an attacker, who seeks for a weak path link on the public's website and accesses the information in the server.

5 0
3 years ago
The correct banner marking for a commingled document
pochemuha

Answer:

The correct banner marking for a commingled document is Headers and footers are mandatory and must be identical All sections or portions must be marked or portion marked CUI markings and Limited Dissemination Control markings appear after all classified marking in both Banner Lines and Portion Markings

Hope this helps :D

Please Mark Brainliest :D

6 0
3 years ago
Marketing có phải là bán hàng hay không? Giải thích?
barxatty [35]

Answer:

Sự khác biệt giữa bán hàng và tiếp thị là bán hàng tập trung vào làm việc trực tiếp với khách hàng tiềm năng để khiến họ chuyển đổi, trong khi tiếp thị tập trung vào việc khơi dậy sự quan tâm đến sản phẩm của bạn.

7 0
3 years ago
Read 2 more answers
Other questions:
  • I need some cool things to do with windows command prompt.
    13·1 answer
  • A switch operates in the OSI reference model __________ layer and uses the __________ address to forward packets.
    8·1 answer
  • Consider the situation you addressed in the previous question. Create numeric cost estimates for each of the costs you listed. C
    10·1 answer
  • A USB is used for _________.[ pick the best answer that makes sense]
    14·2 answers
  • An image can be copied from the Internet or another location and pasted into Paint.
    13·1 answer
  • A closed-source product is typically free.TrueFalse
    6·1 answer
  • What alternative to leased lines is used by VPNs? As an alternative to leased lines, VPNs use ______ connections.
    11·1 answer
  • What is unique address in ICT​
    11·1 answer
  • Images that are made up of pixels and cannot be resized without losing quality?
    11·1 answer
  • When a program uses a ____, it reads all the records in the file from beginning to end, processing them one at a time. Group of
    5·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!