| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- 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?
- Œ
|