aboutsummaryrefslogtreecommitdiffstats
path: root/ee1301/wk3/hw3_directory
diff options
context:
space:
mode:
Diffstat (limited to 'ee1301/wk3/hw3_directory')
-rw-r--r--ee1301/wk3/hw3_directory/strap012_HW3A.cpp62
-rw-r--r--ee1301/wk3/hw3_directory/strap012_HW3B.cpp65
-rw-r--r--ee1301/wk3/hw3_directory/strap012_HW3C.cpp51
3 files changed, 178 insertions, 0 deletions
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 <iostream>
+#include <stdlib.h>
+#include <cmath>
+#include <iomanip>
+
+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<w; i++) {
+ spinNew = ( (rand() % d) + 1);
+ if (spinOG==spinNew) {
+ win++;
+ }
+ }
+ if (win==w) { //The only win condition is if every wheel matches
+ return 1;
+ } else {
+ return 0;
+ }
+} \ No newline at end of file
diff --git a/ee1301/wk3/hw3_directory/strap012_HW3B.cpp b/ee1301/wk3/hw3_directory/strap012_HW3B.cpp
new file mode 100644
index 0000000..16785bd
--- /dev/null
+++ b/ee1301/wk3/hw3_directory/strap012_HW3B.cpp
@@ -0,0 +1,65 @@
+/*
+27 Feb 2019
+Matthew Strapp
+5449340
+EE1301
+Spring 2019
+Homework 3B
+Character Detection
+*/
+
+#include <iostream>
+#include <stdlib.h>
+#include <cmath>
+#include <iomanip>
+
+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 <iostream>
+#include <stdlib.h>
+#include <cmath>
+#include <iomanip>
+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