CS1500 Algorithms and Data Structures for Engineering, FALL 2012

HW3 Arrays, Matrices, Word Counts


Because there are two problems, you have to submit two separate code files: hw3_pb1_firstname_lastname.cpp, and hw3_pb2_firstname_lastname.cpp. As usual, the pseudocode for problem 2 can be submitted separately, or as a comment in the code file. Obviously, you cannot use any C++ subroutine; you have to implement your own.

Problem 1.  Implement  basic matrix  operations. With two matrices of real numbers as inputs, write the following functions:
    - addition
    - multiplication
    - compute determinant (function of one matrix). You can do this in many ways, we recommend the recursive implementation (also see here),  although this way is very inefficient for large matrices (never used in in practice, because much faster methods exist for computing the determinant).
You have to validate that the operations are possible, i.e. the matrix dimensions are valid for each operation.  For this problem you are not required to submit pseudocode.


Problem 2
. Take as input the name of the text file (create your own text document for testing purposes).  Process the text in the file, keeping track  for each word of the number of occurrences. Output each word and its count.   Hint: Implement a hash function that maps words into numbers, then use the numbers as word ID-s and as vector indices.

For a larger test, you can use this file; dont output all word/count pairs - instead output the most frequent 25 words with their counts.
      
For this problem you are required to submit pseudocode.




EXTRA CREDIT: For problem 1, implement a function that with a matrix as input, computes the matrix inverse, if one exists.