Assignment 14
Due Tuesday, May 29 at 9:20am on Canvas

Assignment 14.1: Multiplication Tables (10 pts)

  • One of the principle applications of nested loops is to display tabular data (data organized into rows and columns).
  • In this assignment, we will create a program to display the times tables.
  • Create a new file called multiplication.cpp
  • Copy and paste the starter code into your program and fill in your name in the comments section:

/**
* Name
* CIS 22A
*/

int main() {

    int size = 0;
    cout << "***Time to Learn The Times Table!***\n\n";
    //write the rest of the code here

    return 0;
}
  • Next, add code to prompt the user to enter in a number for the times tables they want to be displayed.
  • For example: If the user enters 5, the program will display the times tables from 1 up to and including 5.
  • The user should see a message like this one appear on the console:
Enter the size of the times table: _
  • Next, read in the user input and store it in the size variable.
  • Finally, add a nested for loop to your program to print out the times tables from 1 to size
  • Fill in the missing parts of the code here:

for (int row = ????; row <= 12; row++) { //printing times table 1 through 12
    for (int col = ????; col <= ????; col++) { //for the numbers up to size
        cout << col << " * " << row << "\t";
    }
    cout << endl;

}

  • Now, as an intermediate step, run your code and verify that you get the following output:

***Time to Learn The Times Table!***

Enter the size of the times table: 5
1 * 1     2 * 1     3 * 1     4 * 1     5 * 1   
1 * 2     2 * 2     3 * 2     4 * 2     5 * 2   
1 * 3     2 * 3     3 * 3     4 * 3     5 * 3   
1 * 4     2 * 4     3 * 4     4 * 4     5 * 4   
1 * 5     2 * 5     3 * 5     4 * 5     5 * 5   
1 * 6     2 * 6     3 * 6     4 * 6     5 * 6   
1 * 7     2 * 7     3 * 7     4 * 7     5 * 7   
1 * 8     2 * 8     3 * 8     4 * 8     5 * 8   
1 * 9     2 * 9     3 * 9     4 * 9     5 * 9   
1 * 10    2 * 10    3 * 10    4 * 10    5 * 10   
1 * 11    2 * 11    3 * 11    4 * 11    5 * 11   
1 * 12    2 * 12    3 * 12    4 * 12    5 * 12       

  • Finally, let's alter the cout statement inside the for loop so that we print out the products, getting an output like the following:
***Time to Learn The Times Table!***

Enter the size of the times table: 5
1 * 1 = 1      2 * 1 = 2      3 * 1 = 3      4 * 1 = 4      5 * 1 = 5   
1 * 2 = 2      2 * 2 = 4      3 * 2 = 6      4 * 2 = 8      5 * 2 = 10   
1 * 3 = 3      2 * 3 = 6      3 * 3 = 9      4 * 3 = 12     5 * 3 = 15   
1 * 4 = 4      2 * 4 = 8      3 * 4 = 12     4 * 4 = 16     5 * 4 = 20   
1 * 5 = 5      2 * 5 = 10     3 * 5 = 15     4 * 5 = 20     5 * 5 = 25   
1 * 6 = 6      2 * 6 = 12     3 * 6 = 18     4 * 6 = 24     5 * 6 = 30   
1 * 7 = 7      2 * 7 = 14     3 * 7 = 21     4 * 7 = 28     5 * 7 = 35   
1 * 8 = 8      2 * 8 = 16     3 * 8 = 24     4 * 8 = 32     5 * 8 = 40   
1 * 9 = 9      2 * 9 = 18     3 * 9 = 27     4 * 9 = 36     5 * 9 = 45   
1 * 10 = 10    2 * 10 = 20    3 * 10 = 30    4 * 10 = 40    5 * 10 = 50   
1 * 11 = 11    2 * 11 = 22    3 * 11 = 33    4 * 11 = 44    5 * 11 = 55   
1 * 12 = 12    2 * 12 = 24    3 * 12 = 36    4 * 12 = 48    5 * 12 = 60 
  • What do you need to add to the cout statement inside the nested for loop to get the above display? Hint: You are multiplying row and col together.
  • Note: Part of the output may get cut off if the user enters too large of a number or the numbers might not line up perfectly. Both are okay.
  • When you are finished, submit your assignment to Canvas

Assignment 14.2: Comparing Characters (10 pts)

  • Write a program that tests if the first or last letter of a word is earlier in the alphabet.
  • If the characters are the same, we will note that as well.
  • Recall that we may compare string characters to each other because they are stored as numbers in the computer. The characters of the alphabet are arranged in numerical order using the ASCII table.
  • Name the source code file firstlast.cpp and include all your code in this single file.
  • Ask the user for the following inputs (and no other input) in this order and each on their own line:
    1. a word such as "easy" (without the quote marks) as a string
    2. "y" or "n" (without the quote marks) to see if the program should loop again
    • Assume the user enters only valid data.
    • See sample output below
  • Use the string's [] syntax to extract the first and last characters, and then test if the first or last letter of the word is earlier in the alphabet (has a smaller ASCII value).
    • Do NOT use substr() or you will not receive credit for this assignment. You must use [] to access each character.
  • Note the use of "" around the letter in the output below. These must be included.
  • If the letters are the same then print, "Letters are the same." (without the quotes) as shown in the sample output.
  • Add a while statement that allows the user to repeat the program by inputting a "y" (without the quotes), and exiting the loop for any other character entered, as shown in the sample output.
  • When your program works identically to the example output below, submit it to Canvas:

Your output should look identical to the output below:

***Comparing First and Last Characters***

Input a word: easy
First letter "e" is earlier in the alphabet.

Run again? (y/n) y

Input a word: zebra
Last letter "a" is earlier in the alphabet.

Run again? (y/n) y

Input a word: Zebra
First letter "Z" is earlier in the alphabet.

Run again? (y/n) y

Input a word: eve
Letters are the same.

Run again? (y/n) n