home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hall of Fame
/
HallofFameCDROM.cdr
/
prpascal
/
tptutor.lzh
/
TL08.TXT
< prev
next >
Wrap
Text File
|
1986-06-15
|
6KB
|
215 lines
TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 32
TURBO-LESSON 8: CASE STATEMENT
OBJECTIVES - In lesson 8 you will learn about:
1. Block statements
2. CASE statement
1. Block statement.
As noted in an earlier lesson, the form of the IF statement is:
IF condition THEN statement_1 ELSE statement_2;
IF the condition is true, statement_1 is executed, otherwise
statement_2 is executed. However, a single statement may not
always get the job done.
The Block statement (also called a Compound statement) allows you
to substitute a multiple statement block anywhere a simple
statement is acceptable. The form of the Block statement is:
BEGIN Statement_1; Statement_2 END;
You can include as many statements as you like between the BEGIN
and END.
Notice that the main body of a Pascal program is a single
statement! That single statement is a block statement:
BEGIN
Statement_1;
Statement_2;
.
.
.
Statement_n;
END.
To illustrate the use of a Block statement in an IF statement,
consider the following problem:
If the value of I is greater than the value of J, swap the two in
memory (a common problem when sorting data).
If you happen to have a single statement to swap the values of
two memory locations, the IF statement might be:
IF I > J
THEN SWAP(I,J);
î
TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 33
Later, you will learn how to make up your own "statements" (by
creating functions and procedures), but for now, the way to swap
I and J is:
IF I > J
THEN
BEGIN
Temp := I;
I := J;
J := I;
END;
Notice that the form of this IF statement is still correct:
IF condition THEN statement;
The statement, in this case, is a Block statement, rather than a
simple statement.
##### DO:
Take a look at the program called TEST1.
The sample programs which begin with the word TEST are provided
to make it quicker for you to test new statements and concepts.
The program, TEST1, has some integer variables and character
variables declared and the main BEGIN END. All you need to do to
test a statement, or group of statements, is edit them into the
test program and run the program.
##### DO:
Insert the following statements between the BEGIN and END of
program TEST1:
Write('Enter two numbers ');
ReadLn(I, J);
WriteLn('I=', I, ' J=', J);
Run the program.
##### DO:
Between the ReadLn and WriteLn statements you just entered, add
the IF statement to swap I and J if I is larger:
IF I > J
THEN
BEGIN
Temp := I;
I := J;
J := Temp;
END;
Run the program several times using several pairs of input
numbers to test the program. Does the "swap" work right?
î
TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 34
##### DO:
Remove the BEGIN and END in the IF statement and run the program
several times.
Does the "swap" still work right?
Without the BEGIN and END to make the three statements appear as
one, the statements "appear" as follows to Pascal:
IF I > J
THEN
Temp := I;
I := J;
J := Temp;
Only the statement, Temp := I, is controlled by the IF condition.
2. CASE statement.
First, a bit of review from an earlier lesson:
Program sequencing is done in Pascal with
(1) Simple Sequence, one statement follows another,
(2) Selection Structures,
IF for one-way and two-way selection,
CASE for many-way selection,
(3) Repetition Structures,
REPEAT statement,
WHILE statement,
FOR statement.
The CASE statement is useful when there are more than two actions
or statement sequences needed. The form of the CASE statement:
CASE variable OF
value_1 : Statement_1;
value_2 : Statement_2;
.
.
.
value_n : Statement_n;
ELSE
Statement;
END; {CASE}
î
TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 35
Note the following:
The variable must be a simple type such as Integer, CHAR,
BOOLEAN. (REAL is not allowed).
The values used to determine which Statement to execute must be
of the same type as the variable.
The values may be a constant, a list of constants, or a subrange
such as 1..10 (all integers from 1 to 10).
How it works:
If the variable has a value of "value_1" then Statement_1 is
executed. If "value_2" then Statement_2, . . .
If the value of the variable matches none of the values, the
statement following the ELSE is executed.
There must be an END to mark the end of the CASE statement.
(It's a good idea to add the comment {CASE} after the END).
##### DO:
Use the editor to examine PROG8.
This is the same problem as in the previous lesson, with a bit
more programming flexibility derived from the CASE statement and
the block statements.
Notice that the list of variables in the CASE statement allow
appropriate responses for acceptable responses: A, a, B, b, C, c
correct responses: D, d
unacceptable responses: anything else.
##### DO:
Modify the CASE statement in PROG8 to accept C as the best
answer.
Run the program. Did it work?
What message appears when D is entered?
î