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
Marysya12 [62]
4 years ago
8

One interesting application of two-dimensional arrays is magic squares. A magic square is a square matrix in which the sum of ev

ery row, every column, and both diagonals is the same. Magic squares have been studied for many years, and there are some particularly famous magic squares. Write a program to determine whether a series of square matrices are magic or not. The first line of input for each square specifies the size of the square (number of rows and columns). The square elements follow, one row per line. The end of the data is indicated by -1. Create a class called Square that has methods to construct a square of a specified size, to read in the elements of the square, to compute the sum of a row, to compute the sum of a column, to compute the sum of each diagonal, and to test to see if the square is magic. A driver should read in the dimension of each square, call the Square class to construct the square, print out the square and the various sums of rows, columns and diagonals; and prints out the result of the magic square test.
Computers and Technology
1 answer:
Georgia [21]4 years ago
4 0

Answer:

See explaination

Explanation:

import java.util.Scanner;

import java.io.*;

public class Square {

int[][] square;

//--------------------------------------

//create new square of given size

//--------------------------------------

public Square(int size) {

square = new int[size][size];

}

//-----------------------------------------------

//return the sum of the values in the given row

//-----------------------------------------------

public int sumRow(int row) {

// Add your code here

int sum = 0;

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

sum = sum + square[row][i];

}

return sum;

}

//-------------------------------------------------

//return the sum of the values in the given column

//-------------------------------------------------

public int sumCol(int col) {

// Add your code here

int sum = 0;

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

sum = sum + square[i][col];

}

return sum;

}

//---------------------------------------------------

//return the sum of the values in the main diagonal

//---------------------------------------------------

public int sumMainDiag() {

// Add your code here

int sum = 0;

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

sum = sum + square[i][i];

}

return sum;

}

//---------------------------------------------------------------

//return the sum of the values in the other ("reverse") diagonal

//---------------------------------------------------------------

public int sumOtherDiag() {

// Add your code here

int sum = 0;

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

sum = sum + square[square.length - i - 1][i];

}

return sum;

}

//-------------------------------------------------------------------

//return true if the square is magic (all rows, cols, and diags have

//same sum), false otherwise

//-------------------------------------------------------------------

public boolean magic() {

// Add your code here. Check if the sum of main diagonal equals the other diagonal,

// also if all rows and all columns sums equal to the diagonal as well. Any uneuqal will

// terminate the comparison.

int d1 = sumMainDiag();

int d2 = sumOtherDiag();

if (d1 != d2) {

return false;

}

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

if (d1 != sumRow(i) || d1 != sumCol(i)) {

return false;

}

}

return true;

}

//----------------------------------------------------

//read info into the square from the standard input.

//----------------------------------------------------

public void readSquare(Scanner scan) {

for (int row = 0; row < square.length; row++) {

for (int col = 0; col < square.length; col++) {

square[row][col] = scan.nextInt();

}

}

}

//---------------------------------------------------

//print the contents of the square, neatly formatted

//---------------------------------------------------

public void printSquare() {

for (int row = 0; row < square.length; row++) {

for (int col = 0; col < square.length; col++) {

System.out.print(square[row][col] + "\t");

}

System.out.println();

}

}

}

// ****************************************************************

// SquareTest.java

//

// Uses the Square class to read in square data and tell if

// each square is magic.

//

// ****************************************************************

class SquareTest {

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

File file = new File("magicData.txt");

Scanner scan = new Scanner(file);

int count = 1; //count which square we're on

int size = scan.nextInt(); //size of next square

//Expecting -1 at bottom of input file

while (size != -1) {

//create a new Square of the given size

Square magicSquare = new Square(size);

//call its read method to read the values of the square

magicSquare.readSquare(scan);

System.out.println("\n******** Square " + count + " ********");

//print the square

magicSquare.printSquare();

//print the sums of its rows

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

System.out.println("Sum of row " + row + ": "

+ magicSquare.sumRow(row));

}

//print the sums of its columns

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

System.out.println("Sum of column " + col + ": "

+ magicSquare.sumCol(col));

}

//print the sum of the main diagonal

System.out.println("Sum of the main diagonal: "

+ magicSquare.sumMainDiag());

//print the sum of the other diagonal

System.out.println("Sum of the other diagonal: "

+ magicSquare.sumOtherDiag());

//determine and print whether it is a magic square

if (magicSquare.magic()) {

System.out.println("It's a magic square!");

} else {

System.out.println("It's not a magic square!");

}

System.out.println();

//get size of next square

size = scan.nextInt();

count++;

}

}

}

You might be interested in
The non-conditional boolean logical and operator is written as ____.
bixtya [17]
False because whhy would it be true. words of logic

3 0
3 years ago
Which command is used to combine two or more cells together into one cell?
Tju [1.3M]
B is your answer I believe
5 0
3 years ago
Read 2 more answers
What are the advantages and disadvantages of using steganography versus symmetric or asymmetric encryption
ankoles [38]

<u>Explanation:</u>

Steganography is a technique used in securing or hiding sensitive information by encrypting the information in a non-hidden file like a JPEG format. A major <u>advantage</u> of this method is that it reduces the risk of attack or break-in since the data is enclosed in a non-secure file; thereby reducing threats of any hack. One main<u> disadvantage</u> of this method is that the hidden message may become difficult to recover if the source file (non-secure file) used, is edited or deleted.

In symmetric or asymmetric encryption they both employ cryptographic encryption method. While symmetric encryption uses one key to encrypt and decrypt data, asymmetric encryption uses two keys (one for encryption, the other for decryption) of the data. <u>A major </u><u>advantage</u><u> of using these methods is that they provide more security. Although while symmetric encryption is faster, asymmetric encryption is slower (eg using separate keys to gain access), </u><u>a disadvantage.</u>

6 0
3 years ago
Sara is a college student studying accounting. She uses a laptop daily for personal and course work. What data might Sara have o
polet [3.4K]

Answer:

Sara: Personal data

Jorge : Personal data + official data.

Wanda: Personal data + students data

Carl: Personal data + official data

Explanation:

Personal data could contain pictures, social security numbers, banking transactions details, passwords, credit card information etc.

Jorge's official data could contain information about various sources that he gets his news from. It could contain password information about his official email. And he connects to the office network, he might pose a threat to the entire network if his PC is infected.

Wanda could leak the student's information. She could also leak her social security numbers, bank details, organization's details etc.

Carl could leak company's information. He can avoid it by staying away from public networks. Installing anti-virus. He should also take great care while accessing various sites and never download harmful files over the internet.

8 0
3 years ago
Describe at least five ways in which information technology can help students studying subjects other than computing
bija089 [108]

Answer:

yan lang po sana makatulong

5 0
3 years ago
Other questions:
  • You can increase your efficiency by using your e-mail program's spell checker because it eliminates the need for you to proofrea
    11·1 answer
  • A field that will always have a unique value is
    15·2 answers
  • HELP PLZ ;(
    10·2 answers
  • What is a credit limit? athe required payment to your credit card company. bthe amount of interest you are charged each month. c
    10·1 answer
  • Which of these is a Microsoft certification for system engineers?
    9·1 answer
  • To add text to a slide when using presentation software, you need to add a text box. To add a text box, click the Text Box butto
    8·2 answers
  • What will happen to the number of returns you get if you use the NOT Boolean operator in a search?
    12·1 answer
  • Write a JAVA program containing a method called hasEight(), which takes an int as input and returns true if the number contains
    14·1 answer
  • 7. A patent is an example of a rare and valuable resource. Indicate whether the statement is true or false and also justify it.
    14·1 answer
  • 21. If you want to improve the performance of your PC, you need to upgrade the
    7·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!