home *** CD-ROM | disk | FTP | other *** search
- CHAPTER 4 - The Pascal loops and control structures
-
-
- Every program we have examined to this point has been a
- simple one pass through with no statements being repeated.
- As in all other languages, Pascal has extensive capabilities
- to do looping and conditional branching. We will look at
- these now.
-
- THE FOR LOOP
-
- We will start with what may be the easiest structure to
- understand, the FOR loop. This is used to repeat a single
- Pascal statement any number of times we desire. Load
- LOOPDEMO and we will discuss the loops presented there.
-
- The first example is the simplest and is simply a repeat
- of a WRITELN 7 times. We have three new reserved words,
- FOR, TO, and DO which are used as shown. Any simple
- variable of type INTEGER, BYTE, or CHAR can be used for the
- loop index and it must be defined in a VAR statement.
- Following the DO reserved word is any single Pascal
- statement that will be repeated the specified number of
- times. Note that the loop is an incrementing loop but
- substitution of DOWNTO for TO will make it a decrementing
- loop as is illustrated in the last example in this program.
-
- A COMPOUND PASCAL STATEMENT
-
- The second example contains our first compound Pascal
- statement. It was mentioned in Chapter 1 that the BEGIN END
- pair of reserved words could be used to mark the limits of a
- compound statement. In this case, the single statement
- starting with the BEGIN and extending through and including
- the END statement is the single Pascal statement that will
- be executed 10 times. A second variable "total" has been
- introduced to simply add another operation to the loop. Any
- valid Pascal operation can be performed within the BEGIN END
- pair, including another loop, thus resulting in nested loops
- to whatever depth you desire.
-
- The third example shows how the CHAR variable could be
- used in a FOR loop. Pascal requires that the loop variable,
- the starting point, and the ending point all be of the same
- type or it will generate an error message.
-
- The fourth example is a decrementing loop as mentioned
- earlier.
-
- THE IF STATEMENT
-
- Now we will look at the conditional branching
- capability, or at least one of them, the IF statement. Load
- IFDEMO for an onscreen look at the IF THEN pair of reserved
-
-
- Page 15
-
-
-
-
-
-
-
-
-
- CHAPTER 4 - The Pascal loops and control structures
-
-
- words. Any condition that can be reduced to a boolean
- answer is put between the IF THEN pair of words. If the
- resulting expression resolves to TRUE, then the following
- single Pascal statement is executed, and if it resolves to
- FALSE, then the following single statement is skipped over.
- Of course, you can probably guess that the single statement
- can be replaced with a compound statement bracketed with a
- BEGIN END pair and you are correct. Study example 1 and you
- will see that the line will always be printed in this
- particular fragment. It is very difficult to come up with a
- good example without combining some of the control
- structures which we will do in the next file.
-
- The second example is similar to the first but with the
- single statement replaced with a compound statement and
- should be easy to understand.
-
- The third example contains a new reserved word, ELSE.
- When the IF condition is FALSE, the single statement is
- skipped and if a semicolon is encountered, the IF clause is
- totally complete. If instead of a semicolon, the reserved
- word ELSE is encountered, then the single Pascal statement
- following ELSE is executed. One and only one of the single
- statements will be executed every time the IF statement is
- encountered in the program. Examination of the third
- example should clear this up in your mind.
-
- THE IF-THEN-ELSE "block"
-
- Put on your thinking cap because the next principle is
- difficult to grasp at first but will suddenly clear up and
- be one of the most useful facts of Pascal programming.
- Since the entire IF THEN ELSE "block" of code is itself a
- single Pascal statement, by definition, it can be used
- anywhere that an executable statement is legal without BEGIN
- END separators. This is shown in the fourth example of the
- IFDEMO Pascal example program. The IF THEN ELSE construct
- is one of the most used, most useful, and therefore most
- important aspects of PASCAL. For this reason you should
- become very familiar with it.
-
- Try changing some of the conditions in the example
- program to see if you can get it to print when you expect it
- to just for your own practice and enjoyment. When you are
- ready, we will go on to a program with loops and conditional
- statements.
-
- LOOPS AND IFS TOGETHER
-
- Load LOOPIF and observe it for a few minutes. It
- contains most of what you have studied so far and should be
-
-
- Page 16
-
-
-
-
-
-
-
-
-
- CHAPTER 4 - The Pascal loops and control structures
-
-
- understandable to you at this point. It contains a loop
- with two IF statements within it, and another loop within
- one of the IF statements.
-
- An easily made error should be pointed out at this time.
- If an extraneous semicolon were put at the end of the second
- IF statement, the code following the statement would always
- be executed because the "null" statement (the nothing
- statement between the THEN and the semicolon) would be the
- conditional statement. The compiler would not generate an
- error and you would get no warning. Add a semicolon after
- the IF statement to see the error.
-
- FINALLY, A MEANINGFUL PROGRAM
-
- Load TEMPCONV and study its structure. Run it and you
- will have a list of Centigrade to Fahrenheit temperature
- conversions with a few added notes. Load, examine, and run
- DUMBCONV for a good example of poor variable naming. The
- structure of the program is identical to the last program
- and when you run it, you will see that it is identical in
- output, but it is difficult to understand what it does by
- studying the listing. These programs should both be easily
- understood by you by now, so we will go on to our next
- Pascal control structure.
-
- THE REPEAT UNTIL LOOP
-
- The next two Pascal structures are very similar because
- they are both indefinite loops (indefinite because they are
- not executed a fixed number of times). One of the loops is
- evaluated at the top and the other at the bottom. It will
- probably be easier to start with the REPEAT UNTIL structure
- which is the loop that is evaluated at the bottom.
-
- Retrieve the file REPEATLP to see a repeat loop. Two
- more reserved words are defined here, namely REPEAT and
- UNTIL. This rather simple construct simply repeats all
- statements between the two reserved words until the boolean
- expression following the UNTIL is found to be TRUE. This is
- the only expression I know of that operates on a range of
- statements rather than a single statement and BEGIN END
- delimiters are not required. A word of caution is in order
- here. Since the loop is executed until some condition
- becomes TRUE, it is possible that the condition will never
- be TRUE and the loop will never terminate.
-
- THE WHILE LOOP
-
- The file WHILELP contains an example of another new
- construct, the WHILE loop. This uses the WHILE DO reserved
-
-
- Page 17
-
-
-
-
-
-
-
-
-
- CHAPTER 4 - The Pascal loops and control structures
-
-
- words and will execute one Pascal statement (or one compound
- statement bounded with BEGIN END) continuously until the
- boolean expression between the two words becomes FALSE.
- This loop is also indeterminate and could, like the REPEAT
- UNTIL, never terminate. You should therefore exercise care
- in using it.
-
- THE CASE STATEMENT
-
- The final control structure introduces yet another
- reserved word, CASE. The CASE construct actually should be
- included with the IF statement since it is a conditional
- execution statement, but I chose to save it for last because
- it is rather unusual and will probably be used less than the
- others we have discussed in this chapter.
-
- The CASE statement is used to select one of many
- possible simple Pascal statements to execute based on the
- value of a simple variable. Load the file CASEDEMO and
- observe the program for an example of a case statement. The
- variable between the CASE and OF reserved words is the
- variable used to make the selection. Following that, the
- various selections are given in the form of a possible value
- or range, a colon, a single Pascal statement, and a
- semicolon. Following the list of selections, an ELSE can be
- added to cover the possibility that none of the selections
- were executed. Finally, an END; statement is used to
- terminate the case construct. Note that this is one of the
- few places in Pascal that an END is used without a
- corresponding BEGIN.
-
- The example file uses "count" for a variable and prints
- the numbers one through five in text form, and declares that
- numbers outside this range are not in the allowable list.
- The program should be self explanatory beyond that point.
- This is admittedly a very brief explanation of the CASE
- statement but you will have no trouble using it when you
- have need for it. You can study it in detail at that time.
-
- This brings us to the end of chapter 4 and you now have
- enough information to write essentially any program desired
- in Pascal. There would be a few difficulties if you
- attempted to try to program without the further topics
- coming up in the next chapters. The additional topics will
- greatly add to the flexibility of Pascal and will greatly
- ease programming in it.
-
-
-
-
-
-
-
- Page 18
-
-
-
-
-
-
-
-
-
- CHAPTER 4 - The Pascal loops and control structures
-
-
- PROGRAMMING EXERCISES
-
- 1. Write a program that lists the numbers from 1 to 12 and
- writes a special message beside the number representing
- your month of birth.
-
- 2. Write a program that lists all of the numbers from 1 to
- 12 except for the numbers 2 and 9.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 19