User Tools

Site Tools


haas:spring2022:unix:projects:mtf0

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
haas:spring2022:unix:projects:mtf0 [2021/10/04 15:05] – external edit 127.0.0.1haas:spring2022:unix:projects:mtf0 [2022/03/15 18:09] (current) – [sample outputs] wedge
Line 15: Line 15:
  
 <cli> <cli>
-      1  2  3  4  5  6  7  8  9+(10)  1  2  3  4  5  6  7  8  9
    x---------------------------    x---------------------------
  1 |  1  2  3  4  5  6  7  8  9  1 |  1  2  3  4  5  6  7  8  9
Line 34: Line 34:
 While you've likely had little need, due to your solid memorization and recall, for years of the base 10 multiplication table, we're going to bring it back to the forefront, like many good mental aids, in that they make for excellent exercises to have the computer generate. While you've likely had little need, due to your solid memorization and recall, for years of the base 10 multiplication table, we're going to bring it back to the forefront, like many good mental aids, in that they make for excellent exercises to have the computer generate.
  
 +=====grabit=====
 +Some projects encountered this semester, or in other classes that utilize lab46, will provide you resources that you can access via the '**grabit**' tool. This is one such project, where your successful utilization of the **grabit** tool, before a certain point in the project lifecycle, will be evaluated.
 +
 +Using your investigative skills cultivated in this class, figure out how to use the **grabit** tool to obtain the project files provided for this project.
 +
 +Do note: as an attempt to ensure some element of time management is practiced, you will want to perform this step by the Sunday prior to the due date of the project.
 =====Script===== =====Script=====
 Your task for this project is to write a bash script to generate a multiplication table. Your task for this project is to write a bash script to generate a multiplication table.
Line 45: Line 51:
   * the operation symbol represented in the top left of the table (in our case, an 'x' for multiplication)   * the operation symbol represented in the top left of the table (in our case, an 'x' for multiplication)
   * all values aligned, allowing for the padding of a single space for the largest value represented   * all values aligned, allowing for the padding of a single space for the largest value represented
 +  * in the upper-left corner, in parentheses, the base is displayed
  
 Additionally, with the specification of command-line arguments, we can change: Additionally, with the specification of command-line arguments, we can change:
Line 52: Line 59:
   * $3: the starting point (0-)   * $3: the starting point (0-)
  
-NOTE that the ending value comes before the starting value.+NOTE that the ending value comes before the starting value in the order of command-line arguments.
  
 =====Toolbox===== =====Toolbox=====
Line 73: Line 80:
  
 ====the shabang==== ====the shabang====
-One thing that makes a bash script an actual **bash** script is the shabang, a mechanism for ensuring our script is run using a particular shell.+One thing that makes a bash script an actual **bash** script is the shabang, a mechanism for ensuring our script is run using a particular shell or interpreter.
  
 The VERY FIRST LINE of our script, to set this up, will therefore be as follows: The VERY FIRST LINE of our script, to set this up, will therefore be as follows:
Line 88: Line 95:
 </code> </code>
  
-Your script will then occur between the shabang and this final exit command.+Your script will then occur between the shabang and this final exit command. Scripts lacking these two bounding elements will not be considered complete and will be subject to credit lost during evaluation.
  
 ====for loops==== ====for loops====
Line 133: Line 140:
 The **printf** tool is an especially powerful output formatter. The **printf** tool is an especially powerful output formatter.
  
 +=====sample outputs=====
 +For checking purposes, here are some sample outputs of what your script should be able to generated, given various command-line arguments:
 +
 +Standard base 11 table:
 +
 +<cli>
 +lab46:~/src/SEMESTER/DESIG/PROJECT$ ./mtf0 11 10 1
 +(11)  1  2  3  4  5  6  7  8  9  A 
 +   x------------------------------ 
 + 1 |  1  2  3  4  5  6  7  8  9  A
 + 2 |  2  4  6  8  A 11 13 15 17 19
 + 3 |  3  6  9 11 14 17 1A 22 25 28
 + 4 |  4  8 11 15 19 22 26 2A 33 37
 + 5 |  5  A 14 19 23 28 32 37 41 46
 + 6 |  6 11 17 22 28 33 39 44 4A 55
 + 7 |  7 13 1A 26 32 39 45 51 58 64
 + 8 |  8 15 22 2A 37 44 51 59 66 73
 + 9 |  9 17 25 33 41 4A 58 66 74 82
 + A |  A 19 28 37 46 55 64 73 82 91
 +</cli>
 +
 +Subset of base 9:
 +
 +<cli>
 +lab46:~/src/SEMESTER/DESIG/PROJECT$ ./mtf0 9 5 2
 +( 9)  2  3  4  5 
 +   x------------ 
 + 2 |  4  6  8 11
 + 3 |  6 10 13 16
 + 4 |  8 13 17 22
 + 5 | 11 16 22 27
 +</cli>
 +
 +Base 15:
 +
 +<cli>
 +lab46:~/src/SEMESTER/DESIG/PROJECT$ ./mtf0 15 17 0
 +(15)    0                              10  11  12 
 +    x------------------------------------------------------------------------ 
 +  0 |                                     0
 +  1 |                                10  11  12
 +  2 |                  11  13  15  17  19  1B  1D  20  22  24
 +  3 |            10  13  16  19  1C  20  23  26  29  2C  30  33  36
 +  4 |          11  15  19  1D  22  26  2A  2E  33  37  3B  40  44  48
 +  5 |        10  15  1A  20  25  2A  30  35  3A  40  45  4A  50  55  5A
 +  6 |        13  19  20  26  2C  33  39  40  46  4C  53  59  60  66  6C
 +  7 |        16  1D  25  2C  34  3B  43  4A  52  59  61  68  70  77  7E
 +  8 |      11  19  22  2A  33  3B  44  4C  55  5D  66  6E  77  80  88  91
 +  9 |      13  1C  26  30  39  43  4C  56  60  69  73  7C  86  90  99  A3
 +  A |      15  20  2A  35  40  4A  55  60  6A  75  80  8A  95  A0  AA  B5
 +  B |      17  23  2E  3A  46  52  5D  69  75  81  8C  98  A4  B0  BB  C7
 +  C |      19  26  33  40  4C  59  66  73  80  8C  99  A6  B3  C0  CC  D9
 +  D |      1B  29  37  45  53  61  6E  7C  8A  98  A6  B4  C2  D0  DD  EB
 +  E |      1D  2C  3B  4A  59  68  77  86  95  A4  B3  C2  D1  E0  EE 10D
 + 10 |    10  20  30  40  50  60  70  80  90  A0  B0  C0  D0  E0 100 110 120
 + 11 |    11  22  33  44  55  66  77  88  99  AA  BB  CC  DD  EE 110 121 132
 + 12 |    12  24  36  48  5A  6C  7E  91  A3  B5  C7  D9  EB 10D 120 132 144
 +</cli>
 =====Submission===== =====Submission=====
 To successfully complete this project, the following criteria must be met: To successfully complete this project, the following criteria must be met:
Line 145: Line 210:
   * Submit a copy of your source code to me using the **submit** tool.   * Submit a copy of your source code to me using the **submit** tool.
  
-To submit this program to me using the **submit** tool, run the following command at your lab46 prompt:+To submit this program to me using the provided Makefile, run the following command at your lab46 prompt:
  
 <cli> <cli>
Line 183: Line 248:
 *:mtf0:project is submitted with relevant and complete script [6/6] *:mtf0:project is submitted with relevant and complete script [6/6]
 *:mtf0:project is submitted on lab46 using 'make submit' [6/6] *:mtf0:project is submitted on lab46 using 'make submit' [6/6]
-*:mtf0:runtime runtime tests of submitted script succeed [6/6]+*:mtf0:runtime tests of submitted script succeed [6/6]
 </code> </code>
  
 Additionally: Additionally:
-  * Solutions not abiding by **SPIRIT** of project will be subject to a 25% overall deduction+  * Solutions not abiding by **SPIRIT** of project will be subject to a 50% overall deduction
   * Solutions not utilizing descriptive why and how **COMMENTS** will be subject to a 25% overall deduction   * Solutions not utilizing descriptive why and how **COMMENTS** will be subject to a 25% overall deduction
   * Solutions not utilizing **INDENTATION** to promote scope and clarity will be subject to a 25% overall deduction   * Solutions not utilizing **INDENTATION** to promote scope and clarity will be subject to a 25% overall deduction
   * Solutions lacking **ORGANIZATION** ior are not easy to read (within 90 char width) are subject to a 25% overall deduction   * Solutions lacking **ORGANIZATION** ior are not easy to read (within 90 char width) are subject to a 25% overall deduction
haas/spring2022/unix/projects/mtf0.1633359952.txt.gz · Last modified: 2021/10/04 15:05 by 127.0.0.1