# Assignment #3

Due: Fri, Oct 7

## Objective

This assignment will involve further practice with control structures, including repetition statements (loops).

Write the following programs, each in a separate file. Filenames should be:
• sum.cpp
• numbers.cpp
• pennies.cpp
(Note that the filenames are all lowercase)

## Exercise 1

Filename: sum.cpp

Prompt the user and let them enter two integers (we'll call them x and y, for the purposes of this writeup). Compute and print the sum of the ingeters in the range x through y (including the endpoints). Output should look like the sample runs below, and print the addition details from the smallest to the largest number.

(Note: The user input will not necessarily have the lowest number first -- see Sample Run 2. You must take this into account).

### Sample Runs

(user input is underlined, to distinguish it from output)

#### Sample Run 1

```  Input two integers: 10 20

Sum of values from 10 through 20 is:
10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20
= 165
```

#### Sample run 2

```  Input two integers: 9 -4

Sum of values from -4 through 9 is:
-4 + -3 + -2 + -1 + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9
= 35
```

#### Sample run 3

```  Input two integers: 7 7

Sum of values from 7 through 7 is:
7
= 7
```

## Exercise 2

Filename: numbers.cpp

Write a program that will allow the user to enter a set of integers (as many as they want), then prints out a summary of information, as follows:

• Prompt the user continually to enter a number, until the value 0 is entered, which will be the signal to stop entering values. (This is sometimes known as a "sentinel" value).
• Once the sentinel value has been entered, print out the following information:
• The number of positive values that were input
• The number of negative values that were input
• The sum of the input values
• The average (to two decimal places) of the input values
• Your output must match mine exactly. See the sample runs below

### Sample Runs

(user input is underlined, to distinguish it from output)

#### Sample Run 1

```  Input integer (0 to stop): 12
Input integer (0 to stop): 4
Input integer (0 to stop): -1
Input integer (0 to stop): -5
Input integer (0 to stop): 18
Input integer (0 to stop): 0

# of positives = 3
# of negatives = 2
Sum = 28
Average = 5.60
```

#### Sample Run 2

```  Input integer (0 to stop): 4
Input integer (0 to stop): 8
Input integer (0 to stop): 24
Input integer (0 to stop): 94
Input integer (0 to stop): -1
Input integer (0 to stop): 43
Input integer (0 to stop): 13
Input integer (0 to stop): 0

# of positives = 6
# of negatives = 1
Sum = 185
Average = 26.43
```

## Exercise 3

Filename: pennies.cpp

This is programming challenge #7 from chapter 5

Write a program that calculates how much a person would earn over a period of time if his or her salary is one penny the first day, two pennies the second day, and continues to double each day. The program should proceed as follows:

• Ask the user for the number of days worked, and allow them to enter it. You may assume this will be an integer
• A valid entry must be 1 or more days, so whenever the user enters a valid that is not positive (1 or more), print an error message and make them re-enter
• Display a table showing how much the salary was for each day
• Display the total pay at the end of the period
• All monetary outputs should be in dollar and cents notation (not just number of pennies), in this format: \$ D.cc , where D is the number of dollars, and cc is the cents (always two digits). Examples:
```  Valid:    \$ 1.34 , \$ 0.05 , \$ 123.45
```

### Sample Runs

(user input is underlined, to distinguish it from output)

#### Sample Run 1

```Please enter the number of days worked: -1
Invalid number of days.  Try again
Please enter the number of days worked: 0
Invalid number of days.  Try again
Please enter the number of days worked: 5

Day                     Amount Earned
-------------------------------------------
1                       \$ 0.01
2                       \$ 0.02
3                       \$ 0.04
4                       \$ 0.08
5                       \$ 0.16

Total earnings: \$ 0.31

```

#### Sample Run 2

```Please enter the number of days worked: 18

Day                     Amount Earned
-------------------------------------------
1                       \$ 0.01
2                       \$ 0.02
3                       \$ 0.04
4                       \$ 0.08
5                       \$ 0.16
6                       \$ 0.32
7                       \$ 0.64
8                       \$ 1.28
9                       \$ 2.56
10                      \$ 5.12
11                      \$ 10.24
12                      \$ 20.48
13                      \$ 40.96
14                      \$ 81.92
15                      \$ 163.84
16                      \$ 327.68
17                      \$ 655.36
18                      \$ 1310.72

Total earnings: \$ 2621.43
```

### Requirements for all programs

• No global variables
• All input/output must be done with cin/cout objects, from the iostream library
• You may only use the iostream library (you should not need any others for these tasks)
• Readable and well-documented source code

### Submitting:

Submit only your source code files through the web submission page. This will consist of the following files:

```  sum.cpp
numbers.cpp
pennies.cpp
```