PRG 211 Week 3 Labs
Lab 7.1 Loops Convert to binary
Write a program that takes in a positive integer as input, and outputs a string of 1’s and 0’s representing the integer in binary. For an integer x, the algorithm is:
As long as x is greater than 0
Output x % 2 (remainder is either 0 or 1)
x = x / 2
Note: The above algorithm outputs the 0’s and 1’s in reverse order.
Ex: If the input is 6, the output is:
(6 in binary is 110; the algorithm outputs the bits in reverse).
Lab 7.2 Loops Varied amount of input data
Statistics are often calculated with varying amounts of input data. Write a program that takes any number of non-negative integers as input, and outputs the average and max. A negative integer ends the input and is not included in the statistics.
Ex: When the input is 15 20 0 5 -1, the output is:
You can assume that at least one non-negative integer is input.
Lab 7.3 Loops Output range with increment of 10
Write a program whose input is two integers, and whose output is the first integer and subsequent increments of 10 as long as the value is less than or equal to the second integer.
Ex: If the input is -15 30, the output is:
-15 -5 5 15 25
Ex: If the second integer is less than the first as in 20 5, the output is:
Second integer can’t be less than the first.
For coding simplicity, output a space after every integer, including the last.
Lab 7.4 Loops Countdown until matching digits
Write a program that takes in an integer in the range 20-98 as input. The output is a countdown starting from the integer, and stopping when both output digits are identical.
Ex: If the input is 93, the output is:
93 92 91 90 89 88
Ex: If the input is 77, the output is:
Ex: If the input is not between 20 and 98 (inclusive), the output is:
Input must be 20-98
For coding simplicity, follow each output number by a space, even the last one. Use a while loop. Compare the digits; do not write a large if-else for all possible same-digit numbers (11, 22, 33, …, 88), as that approach would be cumbersome for large ranges.