aboutsummaryrefslogtreecommitdiffstats
path: root/ee1301/wk3/lab3
diff options
context:
space:
mode:
Diffstat (limited to 'ee1301/wk3/lab3')
-rw-r--r--ee1301/wk3/lab3/RootBabylon2.cpp40
-rw-r--r--ee1301/wk3/lab3/RootBabylonOG.cpp34
-rw-r--r--ee1301/wk3/lab3/fib.cpp21
-rw-r--r--ee1301/wk3/lab3/gcd.cpp36
-rw-r--r--ee1301/wk3/lab3/multTable.cpp18
-rw-r--r--ee1301/wk3/lab3/mysteryBox.cpp12
-rw-r--r--ee1301/wk3/lab3/primeFactor.cpp26
-rw-r--r--ee1301/wk3/lab3/strap012_lab3_decimal_roman_conv.cpp58
8 files changed, 245 insertions, 0 deletions
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 <iostream>
+#include <iomanip>
+#include <cmath>
+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 <iostream>
+#include <cmath>
+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 <iostream>
+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 <iostream>
+#include <cmath>
+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 <iostream>
+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 <iostream>
+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 <iostream>
+#include <cmath>
+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 <iostream>
+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;
+}