User Tools

Site Tools


Sidebar

projects

wcp1 (due 20240828)
btt0 (due 20240904)
wcp2 (due 20240904)
pct0 (bonus; due 20240905)
pct1 (bonus; due 20240905)
pct2 (due 20240905)
abc0 (due 20240906)
msi0 (due 20240911)
pct3 (bonus; due 20240911)
wcp3 (due 20240911)
msi1 (due 20240918)
pct4 (due 20240918)
wcp4 (due 20240918)
dsr0 (due 20240926)
pct5 (bonus; due 20240926)
wcp5 (due 20240926)
gfo0 (due 20241002)
pct6 (due 20241002)
pnc0 (due 20241002)
wcp6 (due 20241002)
dsr1 (due 20241009)
pct7 (bonus; due 20241009)
wcp7 (due 20241009)
bwp1 (bonus; due 20241016)
pct8 (due 20241016)
pnc1 (due 20241016)
wcp8 (due 20241016)
pct9 (bonus; due 20241023)
pnc2 (due 20241023)
wcp9 (due 20241023)
gfo1 (due 20241030)
mag0 (due 20241030)
pctA (due 20241030)
wcpA (due 20241030)
mag1 (due 20241106)
pctB (bonus; due 20241106)
wcpB (due 20241106)
mag2 (due 20241113)
pctC (due 20241113)
wcpC (due 20241113)
pctD (bonus; due 20241120)
wcpD (bonus; due 20241120)
bwp2 (bonus; due 20241204)
gfo2 (due 20241204)
pctE (bonus; due 20241204)
wcpE (bonus; due 20241204)
EoCE (due 20241216)
haas:fall2024:discrete:projects:mtf0

If interested, I’ve thought up a bonus project you can undertake (it would be due the Wednesday of the first week of classes):

* Write a program that generates a multiplication table (project will be mtf0)

  • argv[1] is an optional upper bound (default is 12)
  • argv[2] is an optional lower bound (default is 1)

Example (default output):

lab46:~/src/discrete/mtf0$ ./mtf0
       1   2   3   4   5   6   7   8   9  10  11  12
   x------------------------------------------------
 1 |   1   2   3   4   5   6   7   8   9  10  11  12
 2 |   2   4   6   8  10  12  14  16  18  20  22  24
 3 |   3   6   9  12  15  18  21  24  27  30  33  36
 4 |   4   8  12  16  20  24  28  32  36  40  44  48
 5 |   5  10  15  20  25  30  35  40  45  50  55  60
 6 |   6  12  18  24  30  36  42  48  54  60  66  72
 7 |   7  14  21  28  35  42  49  56  63  70  77  84
 8 |   8  16  24  32  40  48  56  64  72  80  88  96
 9 |   9  18  27  36  45  54  63  72  81  90  99 108
10 |  10  20  30  40  50  60  70  80  90 100 110 120
11 |  11  22  33  44  55  66  77  88  99 110 121 132
12 |  12  24  36  48  60  72  84  96 108 120 132 144

I hope that renders correctly- note how everything is neatly aligned in its spaced column.

Altering the upper bound:

lab46:~/src/discrete/mtf0$ ./mtf0 6
     1  2  3  4  5  6
  x------------------
1 |  1  2  3  4  5  6
2 |  2  4  6  8 10 12
3 |  3  6  9 12 15 18
4 |  4  8 12 16 20 24
5 |  5 10 15 20 25 30
6 |  6 12 18 24 30 36

Another variation (customizing the upper, lower bounds):

lab46:~/src/discrete/mtf0$ ./mtf0 7 4
     4  5  6  7
  x------------
4 | 16 20 24 28
5 | 20 25 30 35
6 | 24 30 36 42
7 | 28 35 42 49

Spacing, formatting, and presentation are centrally important. I want those headers and headings, and dividing lines. Your output should match my output.

An issue you might run into is how much space will you have to allocate (you want it universal for the display of the entire table). For that, I say determine the length of the maximum value being output (ie the bottom-most right value). That value’s length should then influence all the other output in the table.

haas/fall2024/discrete/projects/mtf0.txt · Last modified: 2019/08/21 12:25 by 127.0.0.1