{ May 2, 1995 } { String management procedures } program Strings; uses crt; { ------------------------------------------------------------------------ } procedure Intro; begin { procedure Intro } writeln('Welcome!'); writeln; writeln('This program uses several string management functions to'); writeln('demonstrate how strings can be manipulated in Turbo Pascal.'); writeln('There are three demonstrations. Follow the instructions for'); writeln('each.'); writeln; end; { procedure Intro } { ------------------------------------------------------------------------ } procedure Average; var count, code : integer; sum, average : real; numbers : string; pause : char; begin { procedure Average } clrscr; writeln('This procedure calculates the avgerages of inputted numbers.'); writeln; writeln('Enter as many numbers as you wish.'); writeln('Enter "done" on a blank line to quit.'); writeln; sum := 0; count := 0; code := 0; repeat write('Enter a number: '); readln( numbers ); if numbers <> 'done' then begin count := count + 1; val ( numbers, average, code ); sum := sum + average; end; until numbers = 'done'; average := sum / count; writeln; writeln; write('The average is '); writeln( average:1:2, '.' ); writeln; writeln('Press any key to continue.'); pause := readkey; end; { procedure Average } { ------------------------------------------------------------------------ } procedure Sum; var Sum, Number, count, code : integer; StrSum, numString, StringSum : string; pause : char; begin { procedure Sum } clrscr; writeln('This procedure calculates the sum of inputted numbers.'); writeln; writeln('Enter as many numbers as you wish, as one continuous integer.'); writeln; sum := 0; count := 0; code := 0; write('Enter a number: '); readln( number ); str ( number, numString ); for count := 1 to length ( numString ) do begin Strsum := numString[count]; val ( StrSum, Number, code ); Sum := Sum + Number; end; writeln; writeln; write('The sum is '); writeln( sum, '.' ); writeln; writeln('Press any key to continue.'); pause := readkey; end; { procedure Sum } { ------------------------------------------------------------------------ } procedure StringThing; var input : string; count : integer; pause : char; begin { procedure StringThing } clrscr; writeln('This procedure does a neat little thing with a string. It is'); writeln('rather hard to explain the effect of this procedure, so please'); writeln('just try it out to see what it does for yourself.'); writeln; writeln; write('Please enter a string: '); readln( input ); for count := 1 to length ( input ) do begin { for count := 1 to length ( input ) do } writeln( copy ( input, 1, count ) ); end; { for count := 1 to length ( input ) do } writeln; writeln; writeln('--'); writeln('Thank you for using this software.'); writeln; writeln('Press any key to quit.'); pause := readkey; end; { procedure StringThing } { ------------------------------------------------------------------------ } begin { Main Program } Intro; Average; Sum; StringThing; end. { Main Program }