From 40e0bfd79a6cd12e7ddaceba8f2c3c3a46e4b9de Mon Sep 17 00:00:00 2001 From: cdez Date: Sun, 3 Sep 2023 14:45:51 -0700 Subject: [PATCH] Modified PA01 Files +- EncryptionUtility.c +- PA01_Main.c --- PA01-0906/EncryptionUtility.c | 99 ++++++++++++++++++++++++++++++++-- PA01-0906/PA01_Main | Bin 0 -> 24632 bytes PA01-0906/PA01_Main.c | 17 +++++- 3 files changed, 110 insertions(+), 6 deletions(-) create mode 100755 PA01-0906/PA01_Main diff --git a/PA01-0906/EncryptionUtility.c b/PA01-0906/EncryptionUtility.c index 34811a2..74ff263 100644 --- a/PA01-0906/EncryptionUtility.c +++ b/PA01-0906/EncryptionUtility.c @@ -117,6 +117,9 @@ Dependencies: as needed, File_Output_Utility tools */ void downloadData( const char *fileName, const SquareArrayType data ) { + // open file. + // write file. + // close file. // no return. } @@ -135,6 +138,41 @@ Dependencies: as needed, including findStringLength, findSquareRoot, */ SquareArrayType *encryptData( const char *toEncrypt ) { + // get length of string (store in variable) + int stringLen = findStringLength(toEncrypt); + // create the array (get the square root, add one, then call the function to make a square array.) + int stringLenRoot = findSquareRoot(stringLen) + 1; + SquareArrayType *encryptedData = createArrayType(stringLenRoot); + // iterate through the array (backwards?) [Past Charles, see diagram that you made of Square Array] + int oneDimensionIndex; + int twoDimensionIndex; + int currentCharacter = 0; + int flagEndString = 0; + for(oneDimensionIndex = stringLenRoot; oneDimensionIndex >= 0; oneDimensionIndex--) + { + // one dimension to move through array + for(twoDimensionIndex = stringLenRoot; twoDimensionIndex >= 0; twoDimensionIndex--) + { + // second dimension to move through array + if(toEncrypt[currentCharacter] == NULL_CHAR) + { + // if the null character is there, replace with the Unprintable, set flag to one. + encryptedData[oneDimensionIndex][twoDimensionIndex] = UNPRINTABLE_CHAR_VALUE; + flagEndString = 1; + } + else + { + // otherwise, continue putting the data into the 2d array. + encryptedData[oneDimensionIndex][twoDimensionIndex] = toEncrypt[currentCharacter]; + } + if(flagEndString == 1) + { + // check the flag, if it is set, then start putting random data into rest of the array. + encryptedData[oneDimensionIndex][twoDimensionIndex] = getRandomLetterValue(); + } + } + } + // once null character is reached, put the 'unprintable character' then random data afterward. // returns a Square Array. return NULL; } @@ -152,8 +190,47 @@ Dependencies: as needed (library utilities may not be used) */ double findSquareRoot( int value ) { - // returns a double. - return 0.0; + // declare, define variables as needed + + // set lower value to zero, upper value to the original value + double lowerValue = 0, upperValue = value; + + // set middle value between the lower and upper values + double middleValue = ( lowerValue + upperValue ) / 2.0; + + // calculate the initial temporary value + double tempResult = middleValue * middleValue; + + // loop while absolute difference between test value and original value + // is greater than the specified precision + // function: abs, from stdlib.h + while( abs( tempResult - value ) > SQRT_PRECISION ) + { + // test for the temporary result to be greater than the original value + if( tempResult > value ) + { + // set the upper value to the middle value + upperValue = middleValue; + } + + // otherwise, assume the temporary result is less than the original value + else + { + // set the lower value to the middle value + lowerValue = middleValue; + } + // end test + + // recalculate middle value + middleValue = ( lowerValue + upperValue ) / 2.0; + + // recalculate the temporary result + tempResult = middleValue * middleValue; + } + // end loop + + // return middle value + return middleValue; } /* @@ -168,8 +245,15 @@ Dependencies: as needed (library utilities may not be used) */ int findStringLength( const char *str ) { - // returns an integer. - return 0; + // needs to iterate through the 'string' checking if the character is NULL. + // if character not null, add one to count. + int index = 0; + while(str[index] != NULL_CHAR) + { + index = index + 1; + } + // returns an integer count of the number of characters. + return index; } /* @@ -185,8 +269,13 @@ Dependencies: as needed, including rand */ int getRandomLetterValue() { + int currentRand = 0; + // generate random number between 1 and 52 + currentRand = rand() % (NUM_ALPHABET_LETTERS + 1) + 1; + // then get the integer that character corresponds to and return it. + int letterInt = (int)ALPHABET[currentRand]; // returns an integer. - return 0; + return letterInt; } /* diff --git a/PA01-0906/PA01_Main b/PA01-0906/PA01_Main new file mode 100755 index 0000000000000000000000000000000000000000..b130d3b178c2c9a9e95b63c3d4a2e006bd4fe0bb GIT binary patch literal 24632 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