A 08/average/Makefile => 08/average/Makefile +13 -0
@@ 0,0 1,13 @@
+# Makefile for program average
+
+# Turn on debugging
+CXXFLAGS=-g
+
+average:average.cpp
+ $(CXX) $(CXXFLAGS) $^ -o $@
+
+clean:average
+ rm $^
+
+run:average
+ ./$^
A 08/average/average.cpp => 08/average/average.cpp +39 -0
@@ 0,0 1,39 @@
+/****************************************
+* average -- average numbers *
+* Usage: Input numbers at the prompt, *
+* and enter 0 to exit *
+****************************************/
+
+#include <iostream>
+
+int i; // counts how many numbers have been input
+float number; // number being input by user
+float running_total = 0; // running total of all input numbers
+float average; // final average
+
+int main() {
+ std::cout << "average\n";
+
+ while(true) {
+ // user input
+ std::cout << "Input number to average: ";
+ std::cin >> number;
+
+ // exit condition
+ if(number == 0) {
+ break;
+ } else {
+ // add number to running total
+ running_total += number;
+ // increment counter
+ i++;
+ }
+ }
+
+ // calculate average
+ average = running_total / i;
+
+ // print average
+ std::cout << "Average of the numbers input: " << average << "\n";
+}
+
A 08/average/average.md => 08/average/average.md +19 -0
@@ 0,0 1,19 @@
+# average
+
+> Averages numbers
+> Users' Specification
+> Jan 20, 2023 Bobby Hamblin
+
+Averages however many numbers the user pleases. Enter numbers at the
+prompt, and 0 to stop totalling.
+
+## Example
+
+> Input number to average: *8*
+> Input number to average: *19.5*
+> Input number to average: *2.91*
+> Input number to average: *-20.9*
+> Input number to average: *89.19*
+> Input number to average: *0*
+> Average of the numbers input: 19.74
+
A 08/checkerboard/Makefile => 08/checkerboard/Makefile +13 -0
@@ 0,0 1,13 @@
+# Makefile for program checkerboard
+
+# Turn on debugging
+CXXFLAGS=-g
+
+checkerboard:checkerboard.cpp
+ $(CXX) $(CXXFLAGS) $^ -o $@
+
+clean:checkerboard
+ rm $^
+
+run:checkerboard
+ ./$^
A 08/checkerboard/checkerboard.cpp => 08/checkerboard/checkerboard.cpp +37 -0
@@ 0,0 1,37 @@
+/****************************************
+* checkerboard -- print an 8x8 checker *
+* board to the terminal *
+****************************************/
+
+#include <iostream>
+
+int i; // counter 1
+int j; // counter 2
+int k; // counter 3
+
+int main() {
+ std::cout << "checkerboard\n";
+
+ // print 8 checkerboard sqares
+ for(i = 0; i < 8; i++) {
+ // print 1 horizontal line
+ for(j = 0; j < 8; j++) {
+ std::cout << "+-----";
+ }
+ std::cout << "+\n";
+
+ // print 3 vertical lines
+ for(j = 0; j < 3; j++) {
+ for(k = 0; k < 8; k++) {
+ std:cout << "| ";
+ }
+ std::cout << "|\n";
+ }
+ }
+
+ // print final horizontal line
+ for(i = 0; i < 8; i++) {
+ std::cout << "+-----";
+ }
+ std::cout << "+\n";
+}
A 08/checkerboard/checkerboard.md => 08/checkerboard/checkerboard.md +19 -0
@@ 0,0 1,19 @@
+# checkerboard
+
+> Print an 8 by 8 checkerboard
+> Users' Specification
+> Jan 20, 2023 Bobby Hamblin
+
+Prints an 8x8 grid of squares, each 5 by 3 characters wide
+
+## Example
+
+> +-----+-----+
+> | | |
+> | | |
+> | | |
+> +-----+-----+
+> | | |
+> | | |
+> | | |
+> +-----+-----+
A 08/multiplication-table/Makefile => 08/multiplication-table/Makefile +13 -0
@@ 0,0 1,13 @@
+# Makefile for program multiplication-table
+
+# Turn on debugging
+CXXFLAGS=-g
+
+multiplication-table:multiplication-table.cpp
+ $(CXX) $(CXXFLAGS) $^ -o $@
+
+clean:multiplication-table
+ rm $^
+
+run:multiplication-table
+ ./$^
A 08/multiplication-table/multiplication-table.cpp => 08/multiplication-table/multiplication-table.cpp +19 -0
@@ 0,0 1,19 @@
+/****************************************
+* multiplication-table -- print a *
+* multiplication table *
+****************************************/
+
+#include <iostream>
+
+int main() {
+ std::cout << "multiplication-table\n";
+
+ for(int i = 0; i <= 12; i++){
+ for(int j = 0; j <= 12; j++) {
+ std::cout << i * j << " ";
+ }
+
+ std::cout << "\n";
+ }
+}
+
A 08/multiplication-table/multiplication-table.md => 08/multiplication-table/multiplication-table.md +24 -0
@@ 0,0 1,24 @@
+# multiplication-table
+
+> Print a multiplication table
+> Users' Specification
+> Jan 20, 2023 Bobby Hamblin
+
+Print a multiplication table to the terminal. That's it.
+
+## Example
+
+> 0 0 0 0 0 0 0 0 0 0 0 0 0
+> 0 1 2 3 4 5 6 7 8 9 10 11 12
+> 0 2 4 6 8 10 12 14 16 18 20 22 24
+> 0 3 6 9 12 15 18 21 24 27 30 33 36
+> 0 4 8 12 16 20 24 28 32 36 40 44 48
+> 0 5 10 15 20 25 30 35 40 45 50 55 60
+> 0 6 12 18 24 30 36 42 48 54 60 66 72
+> 0 7 14 21 28 35 42 49 56 63 70 77 84
+> 0 8 16 24 32 40 48 56 64 72 80 88 96
+> 0 9 18 27 36 45 54 63 72 81 90 99 108
+> 0 10 20 30 40 50 60 70 80 90 100 110 120
+> 0 11 22 33 44 55 66 77 88 99 110 121 132
+> 0 12 24 36 48 60 72 84 96 108 120 132 144
+
A 08/numbers-to-words/Makefile => 08/numbers-to-words/Makefile +13 -0
@@ 0,0 1,13 @@
+# Makefile for program numbers-to-words
+
+# Turn on debugging
+CXXFLAGS=-g
+
+numbers-to-words:numbers-to-words.cpp
+ $(CXX) $(CXXFLAGS) $^ -o $@
+
+clean:numbers-to-words
+ rm $^
+
+run:numbers-to-words
+ ./$^
A 08/numbers-to-words/numbers-to-words.cpp => 08/numbers-to-words/numbers-to-words.cpp +332 -0
@@ 0,0 1,332 @@
+/****************************************
+* numbers-to-words -- print word forms *
+* of numbers
+* Usage: Enter a number between 0-100 *
+* at the prompt. Enter a number *
+* outside that range to exit *
+****************************************/
+
+#include <iostream>
+#include <string>
+
+int number; // number to convert
+
+int main() {
+ std::cout << "numbers-to-words\n";
+
+ while(true) {
+ // user input
+ std::cout << "Enter a number between 0 and 100: ";
+ std::cin >> number;
+
+ // print word form
+ switch(number) {
+ case 0:
+ std::cout << "zero\n";
+ break;
+ case 1:
+ std::cout << "one\n";
+ break;
+ case 2:
+ std::cout << "two\n";
+ break;
+ case 3:
+ std::cout << "three\n";
+ break;
+ case 4:
+ std::cout << "four\n";
+ break;
+ case 5:
+ std::cout << "five\n";
+ break;
+ case 6:
+ std::cout << "six\n";
+ break;
+ case 7:
+ std::cout << "seven\n";
+ break;
+ case 8:
+ std::cout << "eight\n";
+ break;
+ case 9:
+ std::cout << "nine\n";
+ break;
+ case 10:
+ std::cout << "ten\n";
+ break;
+ case 11:
+ std::cout << "eleven\n";
+ break;
+ case 12:
+ std::cout << "twelve\n";
+ break;
+ case 13:
+ std::cout << "thirteen\n";
+ break;
+ case 14:
+ std::cout << "fourteen\n";
+ break;
+ case 15:
+ std::cout << "fifteen\n";
+ break;
+ case 16:
+ std::cout << "sixteen\n";
+ break;
+ case 17:
+ std::cout << "seventeen\n";
+ break;
+ case 18:
+ std::cout << "eighteen\n";
+ break;
+ case 19:
+ std::cout << "nineteen\n";
+ break;
+ case 20:
+ std::cout << "twenty\n";
+ break;
+ case 21:
+ std::cout << "twenty-one\n";
+ break;
+ case 22:
+ std::cout << "twenty-two\n";
+ break;
+ case 23:
+ std::cout << "twenty-three\n";
+ break;
+ case 24:
+ std::cout << "twenty-four\n";
+ break;
+ case 25:
+ std::cout << "twenty-five\n";
+ break;
+ case 26:
+ std::cout << "twenty-six\n";
+ break;
+ case 27:
+ std::cout << "twenty-seven\n";
+ break;
+ case 28:
+ std::cout << "twenty-eight\n";
+ break;
+ case 29:
+ std::cout << "twenty-nine\n";
+ break;
+ case 30:
+ std::cout << "thirty\n";
+ break;
+ case 31:
+ std::cout << "thirty-one\n";
+ break;
+ case 32:
+ std::cout << "thirty-two\n";
+ break;
+ case 33:
+ std::cout << "thirty-three\n";
+ break;
+ case 34:
+ std::cout << "thirty-four\n";
+ break;
+ case 35:
+ std::cout << "thirty-five\n";
+ break;
+ case 36:
+ std::cout << "thirty-six\n";
+ break;
+ case 37:
+ std::cout << "thirty-seven\n";
+ break;
+ case 38:
+ std::cout << "thirty-eight\n";
+ break;
+ case 39:
+ std::cout << "thirty-nine\n";
+ break;
+ case 40:
+ std::cout << "forty\n";
+ break;
+ case 41:
+ std::cout << "forty-one\n";
+ break;
+ case 42:
+ std::cout << "forty-two\n";
+ break;
+ case 43:
+ std::cout << "forty-three\n";
+ break;
+ case 44:
+ std::cout << "forty-four\n";
+ break;
+ case 45:
+ std::cout << "forty-five\n";
+ break;
+ case 46:
+ std::cout << "forty-six\n";
+ break;
+ case 47:
+ std::cout << "forty-seven\n";
+ break;
+ case 48:
+ std::cout << "forty-eight\n";
+ break;
+ case 49:
+ std::cout << "forty-nine\n";
+ break;
+ case 50:
+ std::cout << "fifty\n";
+ break;
+ case 51:
+ std::cout << "fifty-one\n";
+ break;
+ case 52:
+ std::cout << "fifty-two\n";
+ break;
+ case 53:
+ std::cout << "fifty-three\n";
+ break;
+ case 54:
+ std::cout << "fifty-four\n";
+ break;
+ case 55:
+ std::cout << "fifty-five\n";
+ break;
+ case 56:
+ std::cout << "fifty-six\n";
+ break;
+ case 57:
+ std::cout << "fifty-seven\n";
+ break;
+ case 58:
+ std::cout << "fifty-eight\n";
+ break;
+ case 59:
+ std::cout << "fifty-nine\n";
+ break;
+ case 60:
+ std::cout << "sixty\n";
+ break;
+ case 61:
+ std::cout << "sixty-one\n";
+ break;
+ case 62:
+ std::cout << "sixty-two\n";
+ break;
+ case 63:
+ std::cout << "sixty-three\n";
+ break;
+ case 64:
+ std::cout << "sixty-four\n";
+ break;
+ case 65:
+ std::cout << "sixty-five\n";
+ break;
+ case 66:
+ std::cout << "sixty-six\n";
+ break;
+ case 67:
+ std::cout << "sixty-seven\n";
+ break;
+ case 68:
+ std::cout << "sixty-eight\n";
+ break;
+ case 69:
+ std::cout << "sixty-nine\n";
+ break;
+ case 70:
+ std::cout << "seventy\n";
+ break;
+ case 71:
+ std::cout << "seventy-one\n";
+ break;
+ case 72:
+ std::cout << "seventy-two\n";
+ break;
+ case 73:
+ std::cout << "seventy-three\n";
+ break;
+ case 74:
+ std::cout << "seventy-four\n";
+ break;
+ case 75:
+ std::cout << "seventy-five\n";
+ break;
+ case 76:
+ std::cout << "seventy-six\n";
+ break;
+ case 77:
+ std::cout << "seventy-seven\n";
+ break;
+ case 78:
+ std::cout << "seventy-eight\n";
+ break;
+ case 79:
+ std::cout << "seventy-nine\n";
+ break;
+ case 80:
+ std::cout << "eighty\n";
+ break;
+ case 81:
+ std::cout << "eighty-one\n";
+ break;
+ case 82:
+ std::cout << "eighty-two\n";
+ break;
+ case 83:
+ std::cout << "eighty-three\n";
+ break;
+ case 84:
+ std::cout << "eighty-four\n";
+ break;
+ case 85:
+ std::cout << "eighty-five\n";
+ break;
+ case 86:
+ std::cout << "eighty-six\n";
+ break;
+ case 87:
+ std::cout << "eighty-seven\n";
+ break;
+ case 88:
+ std::cout << "eighty-eight\n";
+ break;
+ case 89:
+ std::cout << "eighty-nine\n";
+ break;
+ case 90:
+ std::cout << "ninety\n";
+ break;
+ case 91:
+ std::cout << "ninety-one\n";
+ break;
+ case 92:
+ std::cout << "ninety-two\n";
+ break;
+ case 93:
+ std::cout << "ninety-three\n";
+ break;
+ case 94:
+ std::cout << "ninety-four\n";
+ break;
+ case 95:
+ std::cout << "ninety-five\n";
+ break;
+ case 96:
+ std::cout << "ninety-six\n";
+ break;
+ case 97:
+ std::cout << "ninety-seven\n";
+ break;
+ case 98:
+ std::cout << "ninety-eight\n";
+ break;
+ case 99:
+ std::cout << "ninety-nine\n";
+ break;
+ case 100:
+ std::cout << "one hundred\n";
+ break;
+ default:
+ return(0);
+ }
+ }
+}
+
A 08/numbers-to-words/numbers-to-words.md => 08/numbers-to-words/numbers-to-words.md +20 -0
@@ 0,0 1,20 @@
+# numbers-to-words
+
+> Prints numbers as words
+> Users' Specification
+> Jan 20, 2023 Bobby Hamblin
+
+For numbers 0-100, this program prints the number input as a word.
+Enter a number at the prompt, or a number outside that range to exit.
+
+## Example
+
+> Enter a number between 0 and 100: **0**
+> zero
+> Enter a number between 0 and 100: **17**
+> seventeen
+> Enter a number between 0 and 100: **58**
+> fifty-eight
+> Enter a number between 0 and 100: **100**
+> one hundred
+
A 08/resistance-calculator/Makefile => 08/resistance-calculator/Makefile +13 -0
@@ 0,0 1,13 @@
+# Makefile for program resistance-calculator
+
+# Turn on debugging
+CXXFLAGS=-g
+
+resistance-calculator:resistance-calculator.cpp
+ $(CXX) $(CXXFLAGS) $^ -o $@
+
+clean:resistance-calculator
+ rm $^
+
+run:resistance-calculator
+ ./$^
A 08/resistance-calculator/resistance-calculator.cpp => 08/resistance-calculator/resistance-calculator.cpp +45 -0
@@ 0,0 1,45 @@
+/****************************************
+* resistance-calculator -- calculate *
+* resistance of parallel resistors *
+* Usage: Enter resistance in ohms at *
+* the prompt. Enter 0 to calculate *
+* and exit. *
+****************************************/
+
+#include <iostream>
+
+#define MAX_RESISTORS 100
+
+int i = 0; // counter
+float resistor; // resistor being input
+float biggest_resistor = 0; // resistance of most resistive resistor
+float total_resistance; // total resistance across network in ohms
+
+int main() {
+ std::cout << "resistance-calculator\n";
+
+ while(true) {
+ // user input
+ std::cout << "Resistance of R" << i+1 << " in ohms: ";
+ std::cin >> resistor;
+
+ // exit condition
+ if(resistor == 0) {
+ break;
+ }
+
+ // determine biggest resistor
+ if(resistor > biggest_resistor)
+ biggest_resistor = resistor;
+
+ // increment counter
+ i++;
+ }
+
+ // calculate total resistance
+ total_resistance = biggest_resistor / (i+1);
+
+ // print total resistance
+ std::cout << "Total resistance across network: " << total_resistance << " ohms\n";
+
+}
A 08/resistance-calculator/resistance-calculator.md => 08/resistance-calculator/resistance-calculator.md +22 -0
@@ 0,0 1,22 @@
+# resistance-calculator
+
+> Calculate resistance across parallel resistors
+> Users' Specification
+> Jan 20, 2023 Bobby Hamblin
+
+Computes the total resistance of any number of parallel resistors
+in ohms according to the following equation:
+
+1/R = 1/R1 + 1/R2 + 1/R3 ... + 1/Rn
+
+Enter the resistance in ohms of each resistor wired in parallel at the
+prompt. Enter 0 for the resistance to stop input and begin calculation.
+
+## Example
+
+> resistance-calculator
+> Resistance of R1 in ohms: **400**
+> Resistance of R2 in ohms: **200**
+> Resistance of R3 in ohms: **0**
+> Total resistance across network: 133.33 ohms
+
A 08/vowel-or-consonant/Makefile => 08/vowel-or-consonant/Makefile +13 -0
@@ 0,0 1,13 @@
+# Makefile for the program vowel-or-consonant
+
+# Turn on debugging
+CXXFLAGS=-g
+
+vowel-or-consonant:vowel-or-consonant.cpp
+ $(CXX) $(CXXFLAGS) $^ -o $@
+
+clean:vowel-or-consonant
+ rm $^
+
+run:vowel-or-consonant
+ ./$^
A 08/vowel-or-consonant/vowel-or-consonant.cpp => 08/vowel-or-consonant/vowel-or-consonant.cpp +85 -0
@@ 0,0 1,85 @@
+/****************************************
+* vowel_or_consonant - determine if a *
+* letter is a vowel or a consonant *
+* Usage: Type in character at prompt *
+****************************************/
+
+#include <iostream>
+
+char letter; /* character input */
+
+int main(void) {
+ while(true) {
+ /* receive user input */
+ std::cout << "Enter a letter (a-z, A-Z): ";
+ std::cin >> letter;
+
+ /* check for vowel, consonant, or non-letter */
+ switch (letter) {
+ case 'b':
+ case 'B':
+ case 'c':
+ case 'C':
+ case 'd':
+ case 'D':
+ case 'f':
+ case 'F':
+ case 'g':
+ case 'G':
+ case 'h':
+ case 'H':
+ case 'j':
+ case 'J':
+ case 'k':
+ case 'K':
+ case 'l':
+ case 'L':
+ case 'm':
+ case 'M':
+ case 'n':
+ case 'N':
+ case 'p':
+ case 'P':
+ case 'q':
+ case 'Q':
+ case 'r':
+ case 'R':
+ case 's':
+ case 'S':
+ case 't':
+ case 'T':
+ case 'v':
+ case 'V':
+ case 'w':
+ case 'W':
+ case 'x':
+ case 'X':
+ case 'z':
+ case 'Z':
+ std::cout << letter << " is a consonant\n";
+ break;
+ case 'a':
+ case 'A':
+ case 'e':
+ case 'E':
+ case 'i':
+ case 'I':
+ case 'o':
+ case 'O':
+ case 'u':
+ case 'U':
+ std::cout << letter << " is a vowel\n";
+ break;
+ case 'y':
+ case 'Y':
+ std::cout << letter << " is sometimes a vowel\n";
+ break;
+ case '0':
+ return(0);
+ default:
+ std::cout << "The character input was not a letter. Try again!\n";
+ break;
+ }
+ }
+}
+
A 08/vowel-or-consonant/vowel-or-consonant.md => 08/vowel-or-consonant/vowel-or-consonant.md +17 -0
@@ 0,0 1,17 @@
+# vowel or consonant
+
+> Determine whether a letter is a vowel or a consonant
+> Users' Specification
+> Jan 20, 2023 Bobby Hamblin
+
+Prints whether a letter is a vowel or a consonant to the terminal.
+Enter a 0 to quit.
+
+## Example
+
+> Enter a letter: *A*
+> A is a vowel
+> Enter a letter: *b*
+> b is a consonant
+> Enter a letter: *Y*
+> Y is sometimes a vowel