COMP 122
Lab 3 Lab Report and Source Code
COMP122
Week 3 iLab
Complete the following two programs:
Programming Problem 1
Write a program that generates all the factors of a number entered
by the user. For instance, the number 12 has the factors 2 * 2 * 3. This
program has the following requirements:
A. The user must enter a positive integer. If the user enters
something else, your program should output an error message and let the user
enter a new value. Use a do/while loop to make sure the user input is
successful.
B. The factors must be output in increasing order. The lowest
factor your program should report is 2.
C. Your program should output 4 factors per line, each factor in a
field of 10 characters. (Hint: the number of factors output determines when to
output endl!)
D. You will need a while loop to report the factors. Here are some
helpful hints:
1. If (a % b == 0) then a is a factor of b.
2. When you have found a factor, output the factor and then reduce
the number you are working with by dividing the number by the factor⦠ie) / a;
1. Design an algorithm in pseudocode to solve the problem. Make
sure to include steps to get each input and to report the output. Include steps
to deal with error cases as specified above.
2. Identify three test cases, one using a number with 4 factors,
one using a negative number, and one using a number with more than 4 factors.
For each of the three test cases show what inputs you will use and what your
expected outputs should be.
3. Write the program to implement your algorithm. Test your
program using your test cases.
Programming Problem 2
This program is designed to analyze the growth of two cities. Each
city has a starting population and annual growth rate. The smaller city has the
larger growth rate (required). Show the comparative populations of each city
year by year until the smaller city has grown larger than the bigger city.
As an example, Dogville has a population of 5000 growing at 20%
annually while Cattown has a population of 7000 growing at 10% annually. The
projected populations are:
Year Dogville Cattown
1 6000 7700
2 7200 8470
3 8640 9317
4 10368 10249
1. Identify the inputs and outputs of the problem.
2. Identify the processing needed to convert the inputs to the
outputs
3. Design an algorithm in pseudocode to solve the problem. Make
sure to include steps to get each input and to report each output.
4. Identify three significant test cases including one for
incorrect input (ie Small town has lower growth rate). For each of the three
test cases show what inputs you will use and calculate what your expected
outputs should be.
5. Write the program to implement your algorithm. Test your
program using your test cases.