From 7a73162607544204032aa66cce755daf21edebda Mon Sep 17 00:00:00 2001 From: Matt Strapp Date: Tue, 24 May 2022 11:18:46 -0500 Subject: Graduate Signed-off-by: Matt Strapp --- ee1301/wk3/hw3_directory/strap012_HW3A.cpp | 62 +++++++++++++++++++++ ee1301/wk3/hw3_directory/strap012_HW3B.cpp | 65 ++++++++++++++++++++++ ee1301/wk3/hw3_directory/strap012_HW3C.cpp | 51 +++++++++++++++++ ee1301/wk3/lab3/RootBabylon2.cpp | 40 +++++++++++++ ee1301/wk3/lab3/RootBabylonOG.cpp | 34 +++++++++++ ee1301/wk3/lab3/fib.cpp | 21 +++++++ ee1301/wk3/lab3/gcd.cpp | 36 ++++++++++++ ee1301/wk3/lab3/multTable.cpp | 18 ++++++ ee1301/wk3/lab3/mysteryBox.cpp | 12 ++++ ee1301/wk3/lab3/primeFactor.cpp | 26 +++++++++ .../wk3/lab3/strap012_lab3_decimal_roman_conv.cpp | 58 +++++++++++++++++++ 11 files changed, 423 insertions(+) create mode 100644 ee1301/wk3/hw3_directory/strap012_HW3A.cpp create mode 100644 ee1301/wk3/hw3_directory/strap012_HW3B.cpp create mode 100644 ee1301/wk3/hw3_directory/strap012_HW3C.cpp create mode 100644 ee1301/wk3/lab3/RootBabylon2.cpp create mode 100644 ee1301/wk3/lab3/RootBabylonOG.cpp create mode 100644 ee1301/wk3/lab3/fib.cpp create mode 100644 ee1301/wk3/lab3/gcd.cpp create mode 100644 ee1301/wk3/lab3/multTable.cpp create mode 100644 ee1301/wk3/lab3/mysteryBox.cpp create mode 100644 ee1301/wk3/lab3/primeFactor.cpp create mode 100644 ee1301/wk3/lab3/strap012_lab3_decimal_roman_conv.cpp (limited to 'ee1301/wk3') diff --git a/ee1301/wk3/hw3_directory/strap012_HW3A.cpp b/ee1301/wk3/hw3_directory/strap012_HW3A.cpp new file mode 100644 index 0000000..42aae10 --- /dev/null +++ b/ee1301/wk3/hw3_directory/strap012_HW3A.cpp @@ -0,0 +1,62 @@ +/* +27 Feb 2019 +Matthew Strapp +5449340 +EE1301 +Spring 2019 +Homework 3A +One-armed Bandit Simulator +*/ + +#include +#include +#include +#include + +int spin_the_wheels(int d, int w); + +int main () { + srand(time(NULL)); + int w, d, winCount, winTest; + for (w=3; w<=6; w++) { + winCount=0; + for (d=9; d<=27; d++) { + winCount=0; + for (long n=1000000; n>0; n--) { //The simulation is always done 1,000,000 times + winTest = spin_the_wheels(d, w); + winCount+=winTest; + } + if (w==6) { + std::cout << std::scientific; + } + std::cout << "w=" << w << ", d=" << d + << ": Simulated probability = m/n = " << (winCount / 1000000.0) * 100.0 << "%. " + << "Theoretical probability = " << (d / (pow(d, w))) * 100 << "%." << std::endl; + d+=2; + } + } +} + +// Function: spin_the_wheels +// --------------------------- +// Simulates the one-armed bandit from the previous HW +// d: the number of options on the spinner +// w: the number of spinners +// returns: Either 1 for win or 0 for loss + +int spin_the_wheels(int d, int w) { + int spinOG=0, spinNew=0, win=0; + spinOG = ( (rand() % d) + 1); //Original spin is always the same + w-=1; //The first wheel was spun as spinOG + for (int i=0; i +#include +#include +#include + +int charTest (char character); + +int main () { +using namespace std; + int test; + char character; + bool isAlphaNumeric=true; + while (isAlphaNumeric) { + cout << "Enter a single digit or an alphabetic character: "; + cin >> character; + cout << "You entered " << character << ", "; + test = charTest(character); + if (test==0) { + isAlphaNumeric=false; + cout << "which is not a letter or a number."; + } + if (test==1) { + cout << "which is a number."; + } + if (test==2) { + cout << "which is a lower case letter."; + } + if (test==3) { + cout << "which is an upper case letter."; + } + cout << endl; + } +} + +// Function: charTest +// --------------------------- +// Tests to see what kind of character was inputted +// input: character from prompt in main +// returns: 1 if number, 2 if lower case, 3 if upper case, 0 if not any of the previous + +int charTest (char character) { + if (character >= '0' && character <= '9') { + return 1; + } else { + if (character>='a' && character<='z') { + return 2; + } else { + if (character>= 'A' && character<='Z') { + return 3; + } else { + return 0; + } + } + } +} \ No newline at end of file diff --git a/ee1301/wk3/hw3_directory/strap012_HW3C.cpp b/ee1301/wk3/hw3_directory/strap012_HW3C.cpp new file mode 100644 index 0000000..6886106 --- /dev/null +++ b/ee1301/wk3/hw3_directory/strap012_HW3C.cpp @@ -0,0 +1,51 @@ +/* +27 Feb 2019 +Matthew Strapp +5449340 +EE1301 +Spring 2019 +Homework 3C +Character Detection +*/ + +#include +#include +#include +#include +using namespace std; + +void swapCase(char s); + +int main() { + char character; + do { //This loops until '@' is entered + cout << "Please enter a character that is an ASCII letter in the range [A-Za-z]: "; + cin >> character; + if (character!='@') { + swapCase(character); + } + } while (character!='@'); +} + +// Function: swapCase +// --------------------------- +// Swaps the case of a latin ASCII character and prints an error if not one +// s: the character inputted +// Outputs: Nothing, the function just outputs the response + +void swapCase(char s) { + char New; + cout << "You entered " << s; + if ( (s >= 'a' && s <= 'z') || (s >= 'A' && s <= 'Z') ) { + cout << ", I respond with "; + if (s >= 'A' && s <= 'Z') { + New = s + 32; //32 is the difference between capital and lowercase ASCII characters + } else { + New= s - 32; + } + cout << New; + } else { + cout << ", which is not a valid character."; + } + cout << endl; +} \ No newline at end of file diff --git a/ee1301/wk3/lab3/RootBabylon2.cpp b/ee1301/wk3/lab3/RootBabylon2.cpp new file mode 100644 index 0000000..1053cab --- /dev/null +++ b/ee1301/wk3/lab3/RootBabylon2.cpp @@ -0,0 +1,40 @@ +#include +#include +#include +using namespace std; + +double gennewGuess(double n, double old_guess) { + double real, old; + real=sqrt(n); + double new_guess = ( old_guess + n / old_guess ) / 2; + old=new_guess; + if (((new_guess-real)/real)>0.01) { //This will be true if the difference between the real root and guess is more than 1%. + // cout << old << endl; + return gennewGuess(n, old); + } else { + // cout << old << endl; + return new_guess; + } +} +int main () { + double temp; + char cont; + do { + cout << "enter a value: "; + cin >> temp; + int n=temp; + if (temp<=0) { + cout << "Please enter a valid input(Positive Integer)." << endl; + return sqrt(-1); + } + //cout << "Guessing..." << endl; + temp = gennewGuess(temp, 1.0); + cout << fixed << setprecision(0) << "square root of " << n << " is " << temp << endl + << "continue? (y/n): "; + cin >> cont; + if (cont!='n'&&cont!='y') { + return -1; + } +} while (cont!='n'); + // << "Actual Value: " << real << endl; +} diff --git a/ee1301/wk3/lab3/RootBabylonOG.cpp b/ee1301/wk3/lab3/RootBabylonOG.cpp new file mode 100644 index 0000000..530a1bf --- /dev/null +++ b/ee1301/wk3/lab3/RootBabylonOG.cpp @@ -0,0 +1,34 @@ +#include +#include +using namespace std; + +double gennewGuess(double n, double old_guess) { + double new_guess = ( old_guess + ( n / old_guess ) ) / 2; + return new_guess; + } + +double BabylonRoot(double n) { + double real, guess=1; //Initial guess is set to 1 + real=sqrt(n); + do { + guess = gennewGuess(n,guess); + cout << guess << endl; + } while (abs(guess-real)/real>0.01); //Keep guessing unitl within 1% of the actual square root + return guess; +} + +int main () { + double n, guess; + cout << "Enter the Number to find square root: "; + cin >> n; + if (n<=0) { + cout << "Please enter a valid input(Positive Integer)." << endl; + return 2; + } + cout << "Guessing..." << endl; + double real=sqrt(n); + guess = BabylonRoot(n); + cout << "The Final Guess: " << guess << endl + << "Actual Value: " << real << endl; + return 0; +} \ No newline at end of file diff --git a/ee1301/wk3/lab3/fib.cpp b/ee1301/wk3/lab3/fib.cpp new file mode 100644 index 0000000..57be3a2 --- /dev/null +++ b/ee1301/wk3/lab3/fib.cpp @@ -0,0 +1,21 @@ +#include +using namespace std; +int main() +{ + unsigned long long fib1=0, fib2=1, count, fib3=1; + cout << "How many Fibonacci numbers should be computed? "; + cin >> count; + bool firstRun=true; + for (int i=1; i<(count+1); i++) { + if (!firstRun) { //The contents are run when i is not 1. + fib3=fib1+fib2; + fib1=fib2; + fib2=fib3; + } + firstRun=false; + cout << fib3 << " "; + if (i%10==0 && i!=0) + cout << endl; + } + cout << endl; +} diff --git a/ee1301/wk3/lab3/gcd.cpp b/ee1301/wk3/lab3/gcd.cpp new file mode 100644 index 0000000..4e127d9 --- /dev/null +++ b/ee1301/wk3/lab3/gcd.cpp @@ -0,0 +1,36 @@ +#include +#include +using namespace std; + +int GCD(int a, int b) { + int gcd=1; + a=abs(a); b=abs(b); + if (a>b) { + //do nothing + } else { + if (b>a) { + int foo=a; a=b; b=foo; + } else { + return -1; + } + } + gcd=(a%b); + while (gcd!=0) { + return GCD(b,gcd); + } + return b; + +} +int main () { + int a=0, b=0; + char cont; + do { + cout << "enter two integer values: "; + cin >> a >> b; + cout << "greatest common divisor is: " << GCD(a,b) << endl; + cout << "continue? (y/n): "; + cin >> cont; + cout << endl; + } while (cont!='n'); + +} diff --git a/ee1301/wk3/lab3/multTable.cpp b/ee1301/wk3/lab3/multTable.cpp new file mode 100644 index 0000000..4253980 --- /dev/null +++ b/ee1301/wk3/lab3/multTable.cpp @@ -0,0 +1,18 @@ +#include +using namespace std; +int main() { + int r=1, c=1; + for (r; r<=10; r++) { + for (c=10; c>0; c--) { + int ans = r*c; + if (ans!=100) { + cout << " "; + } + if (ans<10) { + cout << " "; + } + cout << ans; + } + cout << endl; + } +} diff --git a/ee1301/wk3/lab3/mysteryBox.cpp b/ee1301/wk3/lab3/mysteryBox.cpp new file mode 100644 index 0000000..c1aefee --- /dev/null +++ b/ee1301/wk3/lab3/mysteryBox.cpp @@ -0,0 +1,12 @@ +#include +using namespace std; + +int main () { + int sum = 0; + for(int i=0; i<=100; i++) + { + if(i % 7 == 0) + sum++; + } +cout << sum; +} diff --git a/ee1301/wk3/lab3/primeFactor.cpp b/ee1301/wk3/lab3/primeFactor.cpp new file mode 100644 index 0000000..093a0be --- /dev/null +++ b/ee1301/wk3/lab3/primeFactor.cpp @@ -0,0 +1,26 @@ +#include +#include +using namespace std; + +void factorFinder (unsigned long long n) { + unsigned long long i=2; + while (pow(i,2)<=n) { + if (n%i==0) { + cout << i << "*"; + n/=i; + } else { + i++; + } + } + if (n>1) { + cout << n << endl; + } +} + +int main () { + unsigned long long n; + cout << "Input a positive integer: "; + cin >> n; + cout << "Factors: "; + factorFinder(n); +} diff --git a/ee1301/wk3/lab3/strap012_lab3_decimal_roman_conv.cpp b/ee1301/wk3/lab3/strap012_lab3_decimal_roman_conv.cpp new file mode 100644 index 0000000..f6aa568 --- /dev/null +++ b/ee1301/wk3/lab3/strap012_lab3_decimal_roman_conv.cpp @@ -0,0 +1,58 @@ +//Matthew Strapp +//5449340 +//20 February 2018 +//Lab 3 Workout + +#include +using namespace std; +int main () { + int decimal; + cout << "Enter an integer value from 1 to 999: "; + cin >> decimal; + if (decimal<1 || decimal>999) { + cout << " Invalid Input. Program terminated." << endl; + return 1453; + } else { + cout << "Roman numeral equivalent: "; + while (decimal!=0) { + if (decimal>900 && decimal<1000) { + cout << "CM"; decimal-=900; + } + if (decimal>=500 && decimal<900) { + cout << "D"; decimal-=500; + } + if (decimal>=400 && decimal<500) { + cout << "CD"; decimal-=400; + } + if (decimal>=100 && decimal<400) { + cout << "C"; decimal-=100; + } + if (decimal>=90 && decimal<100) { + cout << "XC"; decimal-=90; + } + if (decimal>=50 && decimal<90) { + cout << "L"; decimal-=50; + } + if (decimal>=40 && decimal<50) { + cout << "XL"; decimal-=40; + } + if (decimal>=10 && decimal<40) { + cout << "X"; decimal-=10; + } + if (decimal==9) { + cout << "IX"; decimal-=9; + } + if (decimal>=5 && decimal<9) { + cout << "V"; decimal-=5; + } + if (decimal==4) { + cout << "IV"; decimal-=4; + } + if (decimal>=1 && decimal<4) { + cout << "I"; decimal-= 1; + } + } + } + cout << endl; + return 0; +} -- cgit v1.2.3