| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 60
- TURBO-LESSON 13: STRINGS
- OBJECTIVES - In this lesson, you will learn about:
- 1. Strings
- 2. String replacement statement
- 3. Predefined string function, LENGTH
- 1. Strings.
- You have already seen some Pascal strings in the WriteLn
- statements of earlier lessons.
- WriteLn('This is a string.');
- It is often convenient to store strings as variables or
- constants.
- A string constant may be defined in the CONST section:
- CONST String_1 = 'TURBO-LESSONS';
- String variables must be declared in the VAR section. The form
- of the declaration is:
- VAR First_Name : String[12];
- This sets up storage for a variable named First_Name which can
- store a string up to 12 characters long.
- 2. String replacement statement.
- The replacement statement for strings is:
- String_Name := (string expression);
- ##### DO:
- Examine PROG13. Notice the following:
- A string constant, S_Test is given the value 'Test String' in the
- CONST declaration section.
- Several string variables are defined in the VAR section.
- Œ
- TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 61
- ##### DO:
- Run the program.
- What happens when an attempt is made to store too long a string
- in a string variable?
- ##### DO:
- Add the following to the program:
- S5 := S_Test;
- WriteLn(S5);
- Run the program.
- How many characters of S5 are printed?
- ##### DO:
- Modify WriteLn(S5) to:
- WriteLn('[', S5, ']');
- Run the program. How many characters of S5 are printed?
- DEBUGGING NOTE: When working with strings, you may find it
- helpful to print some kind of marker before and after a string to
- help "see" the occurrences of the character, blank.
- You have seen what happens when storing 'Test String' in too
- short a variable: S3 holds 'Tes', S8 holds 'Test Str'.
- What happens when a string is stored in a variable that is larger
- than needed? Are blanks added?
- ##### DO:
- Modify the WriteLn(S14) to bracket S14 (like you did above with
- S5) and run the program.
- How many characters of S14 were printed?
- Were extra blanks added? (More on this later.)
- Œ
- TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 62
-
- ##### DO:
- Look at PROG13A.
- WriteLn(S8[I]);
- Notice the use of the square brackets in the statement above.
- This is a way to refer to a specific character in a string.
- S8[2] means the 2nd character in the string, S8.
- NOTE: SQUARE BRACKETS ARE USED IN TWO DIFFERENT WAYS WITH
- STRINGS. WHEN DECLARING VARIABLES, THE BRACKETS ENCLOSE THE
- MAXIMUM LENGTH OF THE STRING. IN PROCESSING STATEMENTS, THE
- NUMBER IN THE BRACKETS DESIGNATE A PARTICULAR CHARACTER IN A
- STRING.
- ##### DO:
- Run the program, using 2 as position number.
- Try 5 as an input. What character was stored as the 5th
- character of S8?
- The string stored in S8, 'TURBO', is 5 characters long
- but S8 is 8 characters long.
- What characters, if any, are stored in S8[6], S8[7], and
- S8[8]?
- ##### DO:
- Run the program with input values of 6, 7, and 8.
- What characters were printed?
- ##### DO:
- Add the following statement as the first statement in the BEGIN
- END block:
- S8 := '12345678';
- Run the program again, using 6, 7, and 8 as input.
- What do you conclude about "unused" positions in a string?
- Before you are prompted to enter the "position number", S8 is
- printed.
- Do positions 6, 7, 8 of the string print? Why?
- Œ
- TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 63
- ##### DO:
- Run the program once more, this time use 0 as the input value.
- What character printed?
- If you look up this character, clubs symbol, in the ASCII chart
- in your BASIC manual, you find that it is the character
- associated with ASCII value 8.
- String variables in TURBO are one character longer than the
- maximum length you specify. This extra character is at the
- beginning of the string, at position 0, and always contains the
- length of the string stored.
- So why isn't the length stored as a number?
- Storing the length information as a character makes position 0
- the same type as the other characters in the string.
- 3. Predefined string function, LENGTH.
- Because the length of a string is often needed in processing,
- the function, LENGTH, has been provided for that purpose.
- ##### DO:
- Add the following statement after the UNTIL statement:
- WriteLn('Length of string: ', LENGTH(S8) );
- Run the program.
- There is also another way to get the ASCII value of the character
- at position 0 of a string.
- ##### DO:
- Add the following statement just before the END:
- WriteLn('ASCII value: ', ORD(S8[0]) );
- Run the program.
- Does the ASCII value agree with the value obtained with the
- LENGTH function?
- Œ
- TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 64
- ##### DO:
- Just before the END, insert:
- FOR I := 0 to LENGTH(S8) DO
- WriteLn('Position ', I:2, ': ',S8[I]);
- Run the program.
- ##### DO:
- Change the CONST declaration to:
- S_Test = 'OK';
- Run the program.
- Also try 'Wake Up' for S_Test.
- Œ
|