Midterm #2 A22.0002 Afternoon session
April 24, 1995 Samuel Marateck
Do any 5 problems and do all the work on the exam sheet

1. (20 points points) What does the following program produce as output?

```PROGRAM one(input, output);
CONST Blank = ' ';
VAR J, K:integer;
BEGIN
FOR j:= 1 TO 5 DO
BEGIN
write('*':j);
FOR k:= 1 to (6 - j) DO
BEGIN
write(blank)
END;
writeln('*'
END
END.
```

2. (20 points) Write a program that reads a number N (an integer) from the keyboard and:

(a) Prints all the numbers less than or equal to N that are prime numbers. A prime number is one that is divisible only by 1 and the number itself. When a number is divisible by another number there is no remainder. For example, 7 is a prime number because it is not divisible by 2, 3, 4, 5, 6.

Hint: Test whether the values of the loop control variable, J are divisors of N. Here are some questions that should help you do the problem:

Is N read before or in the loop?

If j is the loop control variable, what is its upper limit?

What is the test determining whether j is a divisor of N?

3. (20 points) What does the following program produce?

```PROGRAM two(input, output);
VAR J:integer;
letter:char;

PROCEDURE plot(J:integer);
VAR I:integer;
BEGIN
FOR I:= 1 TO J DO
write('*':i);
writeln
END {plot};

BEGIN
FOR letter:= 'a' TO 'e' DO
BEGIN
J:= ord(letter) - ord('a');
plot(j)
END
END.
```

4. (20 points) Evaluate the following (you may use the table on the board):

```(a) (3 <= 7) AND NOT (9 = 8)	    (b) NOT (4 >= 5) OR (3 <= 3)

(c) NOT ((5 <= 9) OR  (3 < 2))	    (d) (6 <= 8) OR (3 > 5) OR (3 = 3)
```

5. (20 points) What does the following procedure produce for plot(1,'x')?

```     Procedure plot ( top : Integer; ch:char);
Var j : Integer;
Begin
Case top Of
1 : For j := 1 To 5 Do
Begin
Writeln (ch:j, ch:(11 - (2 * j)))
End;
2 : For j := 5 DownTo 1 Do
Begin
Writeln (ch:j, ch:(11 - (2 * j)))
End
End
End;
```

6. (20 points) Write a procedure called MakeX that produces the block letter X by using procedure plot shown in problem 5. The block letter should be formed from asterisks (*).

Sam Marateck
Tue Nov 19 20:15:29 EST 1996