ECE 4122/6122 Hmk #2

Original price was: \$35.00.Current price is: \$30.00.

Rate this product

ECE 4122/6122 Hmk #2 (100 pts)
Problem 1: Matrix Class
Create a class called ECE_Matrix which will be used to hold a dynamic two dimensional array
with M rows and N columns of element type double. Your class must support all of the
operations in the attached file Hmk2_Test1.cpp.
You must create a header file called ECE_Matrix.h and an implementation file called
ECE_Matrix.cpp which contains your solution to the assignment.
Use the file data_Problem1.txt included in the assignment as a test input file for the
constructor that takes a data file string as an input. The numbers are space delimited. You can
assume that the input text file does not contain errors such as missing numbers or nonnumeric
numbers.
For the + and – operators for two matrices, the resulting matrix should be sized large enough to
handle all the elements from both matrices. For example, a 2×4 matrix added to a 4×2 matrix
should yield a 4×4 matrix.
When outputting the matrix with the stream insertion operator, output just the elements and
use something similar to the following statement to output the matrix elements with a linefeed
at the end of each row.
cout << scientific << setw(12) << setprecision(3) << values[ii][jj];
Output example for a 2×4 matrix:
3.333e-01 3.536e+01 6.537e+02 4.358e+03
1.002e+02 3.537e+01 6.538e+02 1.798e+308
4
Problem 2: Largest Product in a Grid
(www.projecteuler.net) Write a console program that takes as a command line argument the
name of a data file. The data file will contain a M x N grid of numbers. Your program must read
in the data file and determine the largest product of four adjacent numbers in the same
direction (up, down, left, right, or diagonally). Below is an example of 4 adjacent diagonal
numbers in Red:
File format:
All values in the text data file are space delimited. You can assume that the input data file does
not contain errors, such as missing numbers or nonnumeric numbers. You are free to create as
many files as you like and use whatever filenames in order to create a solution. All the files
*.cpp and *.h files you create should reside in a single folder that can be compiled to create the
executable.
The first line in the file will have the number of M rows and N columns. The next M lines in the
data file will contain the rows of N numbers.
Use the file data_Problem2.txt included in the assignment as a test input file.
Output:
Your program should create a text file called output2.txt, in the same directory as the
executable, with just the numerical answer on a single line.
5
Problem 3 (ECE 6122 students only): Maximum Path Sum
(www.projecteuler.net) By starting at the top of the triangle below and moving to adjacent
numbers on the row below, the maximum total from top to bottom is 23.
That is, 3 + 7 + 4 + 9 = 23.
Similar to Problem #1, write a console program that takes as a command line argument the
name of a data file. Your program must read in a triangle of arbitrary size from a data file. The
first line will contain the number of levels in the triangle. A sample data file is attached
(data_triangle.txt) to the homework assignment. Your program must find the maximum sum
path through the input triangle starting at the top of the triangle.
Output:
Your program should create a text file called output3.txt, in the same directory as the
executable, with just the numerical answer on a single line.
6
Appendix A: Coding Standards
Indentation:
When using if/for/while statements, make sure you indent 4 spaces for the content inside those. Also
make sure that you use spaces to make the code more readable.
For example:
for (int i; i < 10; i++)
{
j = j + i;
}
If you have nested statements, you should use multiple indentions. Each { should be on its own line (like
the for loop) If you have else or else if statements after your if statement, they should be on their own
line.
for (int i; i < 10; i++)
{
if (i < 5)
{
counter++;
k -= i;
}
else
{
k +=1;
}
j += i;
}
Camel Case:
This naming convention has the first letter of the variable be lower case, and the first letter in each new
word be capitalized (e.g. firstSecondThird). This applies for functions and member functions as well! The
main exception to this is class names, where the first letter should also be capitalized.
Variable and Function Names:
Your variable and function names should be clear about what that variable or function is. Do not use one
letter variables, but use abbreviations when it is appropriate (for example: “imag” instead of
will be. This is the idea behind self-documenting code.
7
Every file should have the following header at the top
/*
Class: ECE4122 or ECE6122
Last Date Modified: <date>
Description:
What is the purpose of this file?
*/
1. Every function must have a comment section describing the purpose of the function, the input
and output parameters, the return value (if any).
2. Every class must have a comment section to describe the purpose of the class.
3. Comments need to be placed inside of functions/loops to assist in the understanding of the flow
of the code.
8
Appendix B: Accessing PACE-ICE Instructions
ACCESSING LINUX PACE-ICE CLUSTER (SERVER)
To access the PACE-ICE cluster you need certain software on your laptop or desktop system, as described
below.
Windows Users:
Option 0 (Using SecureCRT)- THIS IS THE EASIEST OPTION!
The Georgia Tech Office of Information Technology (OIT) maintains a web page of software that can be
http://software.oit.gatech.edu
From that page you will need to install SecureCRT.
then answer a series of questions regarding export controls.
Connecting using SecureCRT should be easy.
• Open SecureCRT, you’ll be presented with the “Quick Connect” screen.
• Choose protocol “ssh2”.
• Enter the name of the PACE machine you wish to connect to in the “HostName” box (i.e.
coc-ice.pace.gatech.edu)
• Click “Connect”.
• A new window will open, and you’ll be prompted for your password.
Option 1 (Using Ubuntu for Windows 10):
Option 1 uses the Ubuntu on Windows program. This can only be downloaded if you are running
Windows 10 or above. If using Windows 8 or below, use Options 2 or 3. It also requires the use of simple
bash commands.
1. Install Ubuntu for Windows 10 by following the guide from the following link:
https://msdn.microsoft.com/en-us/commandline/wsl/install-win10
2. Once Ubuntu for Windows 10 is installed, open it and type the following into the command line:
3. When it asks if you’re sure you want to connect, type in:
yes
9
any characters typing)
4. You’re now connected to PACE-ICE. You can edit files using vim by typing in:
vi filename.cc OR nano vilename.cpp
For a list of vim commands, use the following link:
5. You’re able to edit, compile, run, and submit your code from this command line.
Option 2 (Using PuTTY):
Option 2 uses a program called PuTTY to ssh into the PACE-ICE cluster. It is easier to set up, but doesn’t
allow you to access any local files from the command line. It also requires the use of simple bash
commands.
2. Once installed, open PuTTY and for the Host Name, type in:
coc-ice.pace.gatech.edu and
for the port, leave it as 22.
3. Click Open and a window will pop up asking if you trust the host. Click Yes and it will then ask
characters typing)
4. You’re now connected to PACE-ICE. You can edit files using vim by typing in: vim filename.cc
OR nano vilename.cpp
For a list of vim commands, use the following link:
5. You’re able to edit, compile, run, and submit your code from this command line.
MacOS Users:.
Option 0 (Using the Terminal to SSH into PACE-ICE):
10
This option uses the built-in terminal in MacOS to ssh into PACE-ICE and use a command line text editor
1. Open Terminal from the Launchpad or Spotlight Search.
2. Once you’re in the terminal, ssh into PACE-ICE by typing:
3. When it asks if you’re sure you want to connect, type in:
yes