5.5. Two-dimensional tables

A two-dimensional table is a table where you choose a row and a column and read the value at the intersection. A multiplication table is a good example. Let’s say you wanted to print a multiplication table for the values from 1 to 6.

A good way to start is to write a simple loop that prints the multiples of 2, all on one line.

Run the active code below, which uses a simple loop that prints the multiples of 2, all on one line.

Two-dimensional tables
 1#include <iostream>
 2
 3int main() {
 4  int i = 1;
 5  while (i <= 6) {
 6    std::cout << 2*i << "   ";
 7    i = i + 1;
 8  }
 9  cout << '\n';
10  return 0;
11}

The first line initializes a variable named i, which is going to act as a counter, or loop variable. As the loop executes, the value of i increases from 1 to 6, and then when i is 7, the loop terminates. Each time through the loop, we print the value 2*i followed by three spaces. By omitting the newline from the first output statement, we get all the output on a single line.

The output of this program is:

2   4   6   8   10   12

So far, so good. The next step is to encapsulate and generalize.

Q1

What should be the return type of the function convert_to_celsius?

______ convert_to_celsius (double fahrenheit) {
  double celsius;
  celsius = (fahrenheit - 32) * 5 / 9;
  return celsius;
}

Q2

What would be returned by secret_function if the input was 14?

int secret_function (int input) {
  if (input % 2 == 0) {
    return 3 * input - 2;
  }
  else {
    if (input % 7 == 0) {
      return input;
    }
    return 2 * input + 9;
  }
  return input + 4;
}