### Assignment G

For each problem:

• Use the lab instructions given on the Internet at http://voyager.deanza.edu/~oldham
• Use the same format for the opening comments as in assignment A, with your name, course and quarter, assignment, problem, and short problem description.
• Create a program to meet the requirements of the problem.
• Correct any errors.
• Run the program with the specified data and save the execution results in an Execution Results comment at the end of your program.
• Print the program from Code::Blocks.
• Staple all the problems for this assignment together.

### Problem G1

This program will read integers from a file and find results from these integers.

Open the file, test to make sure the file opened. Use a loop to read the integers and process each integer as it is read. When End Of File is reached, close the file.

After all of the integers have been read and processed, print the results for the following output:

• The integer count:
• The sum of the integers:
• The smallest integer:
• The largest integer:
• The average of the integers:

Use notepad, vim, or other simple text editor to create a file named `file1.txt` containing the following, with one integer per line.

Test the program two times.

Use the following data in the first test:

```11
9
18
22
27
33
21
```

For the second test add an additional line containing the number 40.

### Problem G2

Provide a loop with a menu. Repeat until the user selects quit. Prompt the user to select one of the menu items. Test for numbers that are not in the menu, provide an error message, and then continue. The menu shall contain:

```1. Square   pattern
2. Triangle pattern
3. Diagonal pattern
4. Reverse diagonal pattern
5. Quit
```

After the user selects a pattern, allow them to specify the size. If the size is smaller than 1 or larger than 9, give them an error message and repeat the specification of the size.

Once the user has correctly selected a pattern and a size, print the pattern using the size specified.

Pattern 1 is a square. Example for size 4:

```4444
4444
4444
4444
```

Pattern 2 is a triangle. Example for size 5:

```5
55
555
5555
55555
```

Pattern 3 is a square with a diagonal of numbers in stars. Example for size 6:

```6*****
*6****
**6***
***6**
****6*
*****6
```

Pattern 4 is a square with a reversed diagonal of numbers in stars. Example for size 7:

```******7
*****7*
****7**
***7***
**7****
*7*****
7******
```

Test the program once using each of these values in order:
Pattern 9; when that is rejected try:
Pattern 1, size 11; when that is rejected use:
Pattern 1, size 3
Pattern 2, size 4
Pattern 3, size 5
Pattern 4, size 6
Quit