CMPE 436: Assignment 1 (Solution)

$ 29.99
Category:

Description

The goal of this programming assignment is to familiarize you with Java programs and Eclipse IDE.

Question 1- (40 points)
Write a sequential (no threads) Java program to multiply two matrices. Your program will read the contents of two matrices from data files, multiply the two matrices, and write the resulting matrix both to a third file and to the console. File Format: A matrix data file is a text file consisting of all integer values formatted something like this
R C
M11 M12 … M1C
M21 M22 … M2C
… … … …
MR1 MR2 … MRC

R is the number of rows, C is the number of columns, and the M’s are the data themselves. All numbers are separated by one or more spaces. This format is used for both reading and writing a matrix. The three run arguments to your code are:
Name of file containing the first matrix. Name of file containing the second matrix. Name of file into which to store the result matrix.
If the input matrices cannot be multiplied because their dimensions are not compatible, display a descriptive message explaining the problem and terminate the program. Check other potential error conditions as well.

Question 2- (60 points)
Write a multi-class sequential (no threads) Java program that simulates the game of life. The simulation occurs on an M-by-N rectangular array of cells. Each cell has only two values: 0 and 1. Each cell has eight neighbors: up, down, left, right, and four diagonally. Cells on the four edges of the grid have fewer than eight neighbors, of course. If the grid is declared as int[][] grid = new int[N][N];
then the neighbors of an “interior cell” grid[i][j] are grid[i-1][j], grid[i+1][j], grid[i][j-1], grid[i][j+1], grid[i-1][j-1], grid[i-1][j+1], grid[i+1][j-1], grid[i+1][j+1]
The game works like this. Fill the grid with the initial values. Then for each cell in the grid, compute the new value that the cell becomes in the next generation of the game. All changes occur simultaneously, called a generation.
• A 1 cell value stays 1 if exactly two or three neighbors are 1 valued.
• A 1 cell value goes to 0 if less than two or greater than three neighbors are 1 valued.
• A 0 cell value goes to 1 if exactly three neighbors are 1 valued.
• A 0 cell value stays 0 if less than three or greater than three neighbors are 1 valued.
Input Data: The input data to your Java program is
• M (rows) and N (columns), the size of the rectangular grid;
• maxGenerations, the number of generations to simulate;
• the initial values of the cells (aka initial population), which can be user-specified in a file (input.txt) or random.

This initial population dies out.
0 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 0 This initial population dies more slowly.
0 0 0 0 0
0 1 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 0 0
This initial population reaches a stable state.
0 0 0 0 0
0 1 1 0 0
0 1 0 0 0
0 0 0 0 0
0 0 0 0 0 This initial population oscillates.
0 0 0 0 0
0 0 1 0 0
0 0 1 0 0
0 0 1 0 0
0 0 0 0 0

Guidelines:
1- Email your assignment solution.
2- Add the following to the start of your programs.
// your name // your student ID // your email address
// CMPE436-Assignment n – where n is the assignment number (1, 2, …)
3- Add comments to your programs. Program clarity is very important. You get graded on this.
4- Also add a README.txt file to explain your programs.
6- DO NOT DISCUSS WITH YOUR CLASSMATES. DO NOT USE SOLUTIONS FROM OTHERS. CHEATING WILL NOT BE TOLERATED.

Reviews

There are no reviews yet.

Be the first to review “CMPE 436: Assignment 1 (Solution)”

Your email address will not be published. Required fields are marked *