kazooie21
asked on
easiest way to do upper case and lower case
What's the easiest way to do upper case and lower case on this program?
var
state: string;
capital : string;
Statefile: text;
states: text;
tries: integer;
guess: string;
correct_guess: integer;
correct_state: string;
procedure GETDATA (var localStatefile: text;
var localstate: string;
var localcapital: string);
begin
readln (localStatefile, localstate);
readln (localStatefile, localcapital);
end; {GETDATA}
procedure GUESS_CAPITAL (var tries: integer;
guess: string;
var localcorrect_guess: integer);
begin{GUESS_CAPITAL}
tries := 0;
repeat
tries := tries + 1;
write ('Give capital of ', state, ' ' );
readln (guess);
until (guess = capital) or (tries = 4);
if guess = capital then
begin
writeln ('Nice work. You got it on try ', tries);
inc(localcorrect_guess);
if tries = 1 then
writeln (states, guess);
end
else
begin{until}
writeln ('You did not get it in 4 tries or less');
writeln ('The correct answer is ', capital);
end;{until}
end; {GUESS_CAPITAL}
procedure GUESSES (localcorrect_guess: integer);
begin
writeln ('You have guessed ' ,localcorrect_guess, ' states in 4 or fewer tries ');
end;{GUESSES}
procedure Tolower (var str: string);
var i: integer;
begin
for i:= 1 to length (str) do
if ord(str[i]) > = 'A' and ord(str[i]) < = 'Z' then
str[i] = chr(ord(str[i] - 'A' + 'a'))
end; {tolower}
begin {main}
assign (Statefile, 'A:\state2.dat');
reset (Statefile);
assign (states, 'A:\state3.dat');
rewrite (states);
correct_guess:= 0;
while not seekeof (Statefile) do
begin
GETDATA (Statefile, state, capital);
GUESS_CAPITAL (tries, guess, correct_guess);
GUESSES (correct_guess)
Tolower (str)
end;
close (Statefile);
close (states);
reset (states);
writeln ('Great! You got these states in 1 try: ');
while not eof (states) do
begin
readln (states, correct_state);
writeln (correct_state);
end;
close (states)
end.
var
state: string;
capital : string;
Statefile: text;
states: text;
tries: integer;
guess: string;
correct_guess: integer;
correct_state: string;
procedure GETDATA (var localStatefile: text;
var localstate: string;
var localcapital: string);
begin
readln (localStatefile, localstate);
readln (localStatefile, localcapital);
end; {GETDATA}
procedure GUESS_CAPITAL (var tries: integer;
guess: string;
var localcorrect_guess: integer);
begin{GUESS_CAPITAL}
tries := 0;
repeat
tries := tries + 1;
write ('Give capital of ', state, ' ' );
readln (guess);
until (guess = capital) or (tries = 4);
if guess = capital then
begin
writeln ('Nice work. You got it on try ', tries);
inc(localcorrect_guess);
if tries = 1 then
writeln (states, guess);
end
else
begin{until}
writeln ('You did not get it in 4 tries or less');
writeln ('The correct answer is ', capital);
end;{until}
end; {GUESS_CAPITAL}
procedure GUESSES (localcorrect_guess: integer);
begin
writeln ('You have guessed ' ,localcorrect_guess, ' states in 4 or fewer tries ');
end;{GUESSES}
procedure Tolower (var str: string);
var i: integer;
begin
for i:= 1 to length (str) do
if ord(str[i]) > = 'A' and ord(str[i]) < = 'Z' then
str[i] = chr(ord(str[i] - 'A' + 'a'))
end; {tolower}
begin {main}
assign (Statefile, 'A:\state2.dat');
reset (Statefile);
assign (states, 'A:\state3.dat');
rewrite (states);
correct_guess:= 0;
while not seekeof (Statefile) do
begin
GETDATA (Statefile, state, capital);
GUESS_CAPITAL (tries, guess, correct_guess);
GUESSES (correct_guess)
Tolower (str)
end;
close (Statefile);
close (states);
reset (states);
writeln ('Great! You got these states in 1 try: ');
while not eof (states) do
begin
readln (states, correct_state);
writeln (correct_state);
end;
close (states)
end.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
you can do it as functions
function Tolower(str: string): string;
var i: integer;
begin
for i:= 1 to length (str) do
if str[i] in['A'..'Z'] then
str[i] := chr(ord(str[i]) + 32);
ToLower := str;
end; {tolower}
function ToUpper(str: string): string;
var i: integer;
begin
for i:= 1 to length (str) do
str[i] := UpCase(str[i]);
ToUpper:= str;
end; {toUpper}
Regards Bakry
¿What's the reason to use a ToUpper() function when UpCase() (built-into compiler itself) does the same job?
ASKER