Description
Program A: Number Counting (counting.c):
John has some files with a lot of numbers in them. He often likes to do super complicated
mathematical analysis on these numbers, so he really likes these files. However, he’s realized
one downside of working with such large files of numbers: it takes a long time to read what is
potentially pages full of numbers, many of which are duplicates that are not easy to count by
eye.
Luckily, there is at least some level of organization to these numbers: they are sorted in order
from smallest to largest. Also, there are a lot of duplicate numbers (each number with
duplicates is together with all of its other duplicates, since the list is sorted).
Your goal is to condense these series of duplicate values into a more readable list. They
should be ouput in the format “vXc”, where v is the number and c is the number of times it
occurs. For example, if the file contains the numbers:
11234444557
then for these numbers, you should output to standard output:
1x22x13x14x45x27x1
The filename you should read from is “counting.txt” (remember, you will need to create this
file and put numbers in it for testing on your own computer). The first number in this file will be
a positive integer, N, the number of numbers to follow in that file. N numbers will follow in the
file: the sorted list of numbers you should process. As always, don’t forget to make some of
your own test inputs, also.
Sample Run (run using “counting.txt” contents below):
1×2 2×1 3×1 4×4 5×2 7×1
Contents of this example “counting.txt”:
11
1 1 2 3 4 4 4 4 5 5 7
Program B: Point Plotter (plotter.c):
In math, its often useful to visualize points on a graph (with an X and Y axis). Its also possible
to take this even further, graphing lines, equations, etc, but we’ll stick with just a point for now
to keep things easy. Since we don’t have any complicated drawing interfaces, let stick to
drawing with ASCII character pictures.
Given the X and Y coordinates of a single point, plot that point. X and Y will both be integers
between 1 and 9 (inclusive). Your graph should have each axis of size 9. See the samples for
clarification of what this should look like.
For easier modification, you should use constants for the width (X axis size) and height (Y
axis size):
#defineWIDTH9
#defineHEIGHT9
Sample Run (User input in bold and italics):
3 4
++++++++++
9 | | | | | | | | | |
++++++++++
8 | | | | | | | | | |
++++++++++
7 | | | | | | | | | |
++++++++++
6 | | | | | | | | | |
++++++++++
5 | | | | | | | | | |
++++++++++
4 | | | X | | | | | | |
++++++++++
3 | | | | | | | | | |
++++++++++
2 | | | | | | | | | |
++++++++++
1 | | | | | | | | | |
++++++++++
1 2 3 4 5 6 7 8 9
Note: yes I know the axis lines are usually drawn on the values, not between them. It would
be a relatively minor change to do that (there would be no complication in the code, just a
modification of exactly which characters it outputs where). But as I felt this would be a bit
clearer visually, I chose this format instead. This is what you should submit, but after that, I do
challenge you to try it the other way, too.
Program C: Savings (savings.c):
You’re interested in starting a savings account, but you want to know how much money it will
make over time. Each month, you will add a constant amount of money, and the account will
earn interest.
Output the total amount the account will have at the end of every year to standard output. In
addition, for more detailed reference, output the monthly balance of the account for every
month to the file “savings.txt”.
Sample Run (User input in bold and italics):
Enter your initial amount.
10000
Enter your monthly deposit.
100
Enter the annual interest rate (compounded monthly).
6.5
Enter the number of years to calculate.
3
1 $11906.12
2 $13939.90
3 $16109.88
Contents of “savings.txt” after running this sample:
1 $10154.17
2 $10309.17
3 $10465.01
4 $10621.70
5 $10779.23
6 $10937.62
7 $11096.86
8 $11256.97
9 $11417.95
10 $11579.79
11 $11742.52
12 $11906.12
13 $12070.61
14 $12236.00
15 $12402.27
16 $12569.45
17 $12737.54
18 $12906.53
19 $13076.44
20 $13247.27
21 $13419.03
22 $13591.72
23 $13765.34
24 $13939.90
25 $14115.41
26 $14291.87
27 $14469.28
28 $14647.66
29 $14827.00
30 $15007.31
31 $15188.60
32 $15370.87
33 $15554.13
34 $15738.38
35 $15923.63
36 $16109.88
Disclaimer: this is an oversimplification of reallife savings. Please do not use this description
or program as reference for any reallife financial decisions.
Deliverables:
Please submit three separate .c files for your solutions to these problems via WebCourses by
the designated due date:
Program A: counting.c
Program B: plotter.c
Program C: savings.c