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 _______ has shortcuts to commonly used commands.        A. ScreenTip   B. Status bar   C. File tab   D. Quick Access toolbar
Helen [10]

Answer is D. Quick Access toolbar


4 0
3 years ago
Read 2 more answers
0.0% complete question a forensics analyst is attempting a live acquisition of the contents of the memory of a running linux dev
Sonja [21]

Based on the question, the  Recommendation of  a framework that will enable the analyst to install a kernel driver is said to be Volatility.

<h3>What is the Volatility framework?</h3>

Volatility is said to be a kind of an open source framework that is known to be used in times of memory forensics as well as digital investigations.

Note that The framework is one that tends to inspects and take out the memory artifacts that pertains to 32-bit and 64-bit systems. The framework has aided for all kinds of Linux, Windows, and others.

Hence, Based on the question, the  Recommendation of  a framework that will enable the analyst to install a kernel driver is said to be Volatility.

Learn more about Volatility from

brainly.com/question/27993482

#SPJ1

8 0
2 years ago
Complete the code.
Dmitrij [34]

<u>Answer</u> : Float

<u>Explanation</u> :

Complete the code.

import csv

inFile = open ("one.txt","r")

outFile = open("another.txt", "w")

myReader = csv.reader(inFile)

for item in myReader:

aWord = item[0]

aNumber = float(item[1]) + 0.4

line = aWord + "," + str(aNumber) + 'Float'

outFile.write(line)

3 0
3 years ago
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
Why ISO is not protocol? however it is service
Daniel [21]

Explanation:

yeah it's because the interstorship are family and the service

4 0
3 years ago
Other questions:
  • Having reviewed dod wireless stig (ver6, release 1), sarah learns she may only utilize secnet 54 and ______________ for transmit
    13·1 answer
  • 3. You are a network administrator responsible for all network platforms and services. The Teta Company currently has only one b
    13·2 answers
  • How do I turn of the noise canceling feature on my beats studio wireless?
    13·1 answer
  • A technician is troubleshooting a small network with cable Internet service in which a user is receiving a message in her web br
    7·1 answer
  • Which law was established to prevent law enforcement agencies from accessing communication through telephone and digital mediums
    8·2 answers
  • Which tcp/ip troubleshooting command should you use to determine whether a client and server are communicating with each other?
    7·1 answer
  • A(n) ____ occurs when a situation results in service disruptions for weeks or months, requiring a government to declare a state
    6·1 answer
  • When can you message on brainly? My account says I have to answer more questions first.
    6·1 answer
  • Why are various creative works split up into different types under copyright law?
    9·1 answer
  • what is the name of the program that enables the device and operating system to communicate with each other?
    7·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!