From 175721a63b426355274fa9e8063f762020ab8362 Mon Sep 17 00:00:00 2001 From: RossTheRoss Date: Thu, 30 Jan 2020 16:55:04 -0600 Subject: R E A R R A N G E --- OLD/ee1301/wk5/hw5_directory/strap012_HW5C.cpp | 130 +++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 OLD/ee1301/wk5/hw5_directory/strap012_HW5C.cpp (limited to 'OLD/ee1301/wk5/hw5_directory/strap012_HW5C.cpp') diff --git a/OLD/ee1301/wk5/hw5_directory/strap012_HW5C.cpp b/OLD/ee1301/wk5/hw5_directory/strap012_HW5C.cpp new file mode 100644 index 0000000..2bdda92 --- /dev/null +++ b/OLD/ee1301/wk5/hw5_directory/strap012_HW5C.cpp @@ -0,0 +1,130 @@ +/* +Date: April 4 2019 +Name: Matthew Strapp +Student ID number: 5449340 +Course number: EE 1301 +Term: Spring 2019 +Lab/assignment number: HW 5C +Short Program Description: Pixel Averaging +*/ +#include +#include +#include +using namespace std; + +#define SIZE 100 +int maxRow = -1, maxColumn = 0; +void getInput(int input[SIZE][SIZE]); +void makeNewArray(int oldArray[SIZE][SIZE], int newArray[SIZE][SIZE]); +void pixelAverage(int inArray[SIZE][SIZE], int outArray[SIZE][SIZE]); +void printArray(int array[SIZE][SIZE]); + +int main() { + int inputArray[SIZE][SIZE] = {0}, + outputArray[SIZE][SIZE] = {0}; + getInput(inputArray); + makeNewArray(inputArray, outputArray); + pixelAverage(inputArray, outputArray); + printArray(outputArray); +} + +// Function: getInput +// --------------------------- +// Takes the stream of stdin, puts that into a stringsream and puts that stringsteam into an integer array +// input: an empty array of SIZE, as defined in line 15. +void getInput(int input[SIZE][SIZE]) { + string test, temp1; int temp2=0; + //I would mainly like to thank whatever user on StackOverflow solved my problem + while (getline(cin,test,'\n')) { + temp2 = -1; + istringstream ss(test); + while(getline(ss,temp1,' ')) { + temp2++; + input[maxRow][temp2] = stoi(temp1); + } + if (temp2>maxColumn) { + maxColumn = temp2+1; //1 is added to make the math work. + } + maxRow++; + } + maxRow++; +} + +// Function: makeNewArray +// --------------------------- +// Takes the array made in getInput and puts that same array into a new array to manipulate +// oldArray: Array generated in getInput of SIZE +// newArray: Array of same dimensions and data +void makeNewArray(int oldArray[SIZE][SIZE], int newArray[SIZE][SIZE]) { + for (int row = 0; row < maxRow; row++) { + for (int column = 0; column < maxColumn; column++) { + newArray[row][column] = oldArray[row][column]; + } + } +} + +// Function: pixelAverage +// --------------------------- +// The meat of the program, taking the surrounding values, adding them, and divides by the number of surrounding values +// inArray: Generated in getInput +// outArray: Generated in makeNewArray +void pixelAverage(int inArray[SIZE][SIZE], int outArray[SIZE][SIZE]) { + int sum = 0, n = 0, average; //n is the number of surrounding pixels + for (int row = -1; row < maxRow-1; row++) { + for (int column = -1; column < maxColumn-1; column++) { + sum=0; n=0; //Sum and n are reset every loop + if ( !((row)<0) ) { //True when array is in lower bounds row-wise + sum += inArray[row-1][column]; + n++; + } + if ( (row+1)