Solved

easiest way to do upper case and lower case

Posted on 2000-04-11
4
214 Views
Last Modified: 2010-04-16
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.
0
Comment
Question by:kazooie21
4 Comments
 

Author Comment

by:kazooie21
ID: 2705722
Adjusted points from 5 to 20
0
 
LVL 6

Accepted Solution

by:
My name is Mud earned 20 total points
ID: 2706771
VAR
  STRTest: String;

Procedure Upper(Var Str: String);
Var
  I: Byte;
Begin
  For I:=1 to Length(Str) Do
    Str[I]:=UpCase(Str[I]);
End;

Procedure Lower(Var Str: String);
Var
  I: Byte;
Begin
  For I:=1 to Length(Str) Do
    If Str[I] in ['A'..'Z'] Then
      Str[I]:=Char(Ord(UpCase(Str[I])) + 32);
End;

Begin
  STRTest:='HeLlO WoRd... @#$%^';
  Upper(STRTest);
  WriteLn(STRTest);
  STRTest:='HeLlO WoRd... @#$%^';
  Lower(STRTest);
  WriteLn(STRTest);
End.
0
 
LVL 1

Expert Comment

by:bakry99
ID: 2706789

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

0
 
LVL 3

Expert Comment

by:vikiing
ID: 2718857
¿What's the reason to use a ToUpper() function when UpCase() (built-into compiler itself) does the same job?
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

There are many Password Managers (PM) out there to choose from. PM's can help with your password habits and routines, but they should not be a crutch you rely on too heavily. I also have an article for company/enterprise PM's.
This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…
Both in life and business – not all partnerships are created equal. As the demand for cloud services increases, so do the number of self-proclaimed cloud partners. Asking the right questions up front in the partnership, will enable both parties …

861 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now