Update MP2

This commit is contained in:
2024-03-07 10:16:43 -06:00
parent 92d6102039
commit ec700702c8
14 changed files with 266 additions and 23 deletions

View File

@@ -0,0 +1,142 @@
//
// Created by caleb on 3/6/24.
//
#import <iostream>
#import <vector>
#include <exception>
#include <climits>
class OutOfBoundsException: public std::exception {
virtual const char* what() const throw()
{
return "Method attempted to call a vector location that was larger than the vector itself.";
}
} OutOfBoundsException;
int getTotal(std::vector<int> arr) {
int sum = 0;
for (int i = 0; i < arr.size(); ++i) {
sum += arr[i];
}
return sum;
}
int getTotal(std::vector<std::vector<int>> arr) {
int sum = 0;
for (int i = 0; i < arr.size(); ++i) {
sum += getTotal(arr[i]);
}
return sum;
}
int getAverage(std::vector<int> arr) {
return getTotal(arr) / arr.size(); // NOLINT(*-narrowing-conversions)
}
int getAverage(std::vector<std::vector<int>> arr) {
return getTotal(arr) / arr.size();
}
int getRowTotal(std::vector<std::vector<int>> arr, int desiredRow) {
// validate
if (desiredRow > arr[desiredRow].size()) {
throw OutOfBoundsException;
}
int sum = 0;
for (int i = 0; i < arr[desiredRow].size(); ++i) {
sum += arr[desiredRow][i];
}
return sum;
}
int getColumnTotal(std::vector<std::vector<int>> arr, int desiredColumn) {
// validate
if (desiredColumn > arr.size()) {
throw OutOfBoundsException;
}
int sum = 0;
for (int i = 0; i < arr.size(); ++i) {
sum += arr[i][desiredColumn];
}
return sum;
}
int getHighestInRow(std::vector<std::vector<int>> arr, int desiredRow) {
// validate
if (desiredRow > arr[desiredRow].size()) {
throw OutOfBoundsException;
}
int highest = INT_MIN;
for (int i = 0; i < arr[desiredRow].size(); ++i) {
if (arr[desiredRow][i] > highest) {
highest = arr[desiredRow][i];
}
}
return highest;
}
int getLowestInRow(std::vector<std::vector<int>> arr, int desiredRow) {
// validate
if (desiredRow > arr[desiredRow].size()) {
throw OutOfBoundsException;
}
int lowest = INT_MAX;
for (int i = 0; i < arr[desiredRow].size(); ++i) {
if (arr[desiredRow][i] < lowest) {
lowest = arr[desiredRow][i];
}
}
return lowest;
}
int getHighestInColumn(std::vector<std::vector<int>> arr, int desiredColumn) {
// validate
if (desiredColumn > arr.size()) {
throw OutOfBoundsException;
}
int highest = INT_MIN;
for (int i = 0; i < arr.size(); ++i) {
if (arr[i][desiredColumn] > highest) {
highest = arr[i][desiredColumn];
}
}
return highest;
}
int getLowestInColumn(std::vector<std::vector<int>> arr, int desiredColumn) {
// validate
if (desiredColumn > arr.size()) {
throw OutOfBoundsException;
}
int lowest = INT_MAX;
for (int i = 0; i < arr.size(); ++i) {
if (arr[i][desiredColumn] < lowest) {
lowest = arr[i][desiredColumn];
}
}
return lowest;
}
std::string printVector(std::vector<int> arr) {
std::string output = "{";
for (int i = 0; i < arr.size(); ++i) {
output.append(std::to_string(arr[i]));
if ((arr.size() - 1) > i) {
output.append(", ");
}
}
output.append("}");
return output;
}
std::string printVector(std::vector<std::vector<int>> arr) {
std::string output = "{\n";
for (int i = 0; i < arr.size(); ++i) {
output.append(printVector(arr[i]));
if ((arr.size() - 1) > i) {
output.append(",\n");
}
}
output.append("\n}");
return output;
}