Solved

Getting error in statement in both programs

Posted on 2000-03-25
2
295 Views
Last Modified: 2010-04-16
I'm getting an error in statement in both of these. The error in statement occurs at the else in both of these.

var name: string;
    numb: integer;
    wt: integer;
    AppFile: text;

procedure GETDATA (var localAppFile: text;
                   var localname: string;
                   var localnumb: integer;
                   var localwt: integer);

  begin
    readln (localAppFile, localname);
    readln (localAppFile, localnumb);
    readln (localAppFile, localwt);
  end; {GETDATA}

procedure POSITION;
    begin
      if (numb < 10) and (wt < 180) then
        writeln ('Accepted ');
      else
        begin
           writeln ('Rejected ');
           writeln ('Your weight is more than the given weight ');
           writeln ('The number of cigarettes you smoke is over the limit ');
        end;
    end; {POSITION}

begin {main}
  assign (AppFile, 'A:\AppFile2.dat');
  reset (AppFile);
  while not seekeof (AppFile) do
     begin
        GETDATA (AppFile, name, numb, wt);
        POSITION;
     end;
  close (Appfile)
end.

****************************************
var state: string;
    capital : string;
    Statefile: text;
    tries: integer;
    guess: 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);

   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
        writeln ('Nice work.  You got it on try ', tries);
      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}


begin {main}
     assign (Statefile, 'A:\state2.dat');
     reset (Statefile);
     while not seekeof (Statefile) do
       begin
         GETDATA (Statefile, state, capital);
         GUESS_CAPITAL (tries, guess);
       end;
     close (Statefile)
end.

0
Comment
Question by:kazooie21
  • 2
2 Comments
 
LVL 6

Accepted Solution

by:
My name is Mud earned 5 total points
Comment Utility
Here's your problem...


if (numb < 10) and (wt < 180) then
  writeln ('Accepted '); <-this semicolon does not belong in here if you're gona make an ELSE statement...
else


if guess = capital then
  writeln ('Nice work.  You got it on try ', tries); <-Same here...
else


If <condition> Then
  <sentence>;

If <condition> Then
  Begin
    <sentence>;
    <sentence>;
    <sentence>   {<- This last sentence before the End can be like this, without semicolon}
  End;

If <condition> Then
  <sentence>
Else
  <sentence>;

If <condition> Then
  Begin
    <sentence>;
    <sentence>
  End
Else
  <sentence>;

If <condition> Then
  <sentence>
Else
  Begin
    <sentence>;
    <sentence>
  End;

If <condition> Then
  Begin
    <sentence>;
    <sentence>
  End
Else
  Begin
    <sentence>;
    <sentence>
  End;


See the path here??? Learn to use the IF-THEN-ELSE and the nested IFs Like:

If <condition1> Then
  If <condition2> Then
    If <condition3> Then
      <sentence>

Will be like:
  If <condition1> And <condition2> And <condition3> Then
    <sentence>


And know how to use it like:
If <condition> Then
  <sentence>
Else If <condition> Then
  <sentence>
Else If <condition> Then
  <sentence>
Else
  <sentence>
0
 
LVL 6

Expert Comment

by:My name is Mud
Comment Utility
Just think about it, like in real life...

Suppose you're walking in a street, and there's a 10 dollar bill, laying in the street side, what would you do??? pick it up; So...
  If <dollar bill in street side> Then
    <pick it Up>;

But what if there were two bills??? well you pick one, then the other...
  If <dollar bills in street side> Then
    Begin {you have to use it to state the begin of a "Block"}
      <Pick up first bill>;
      <Pick up second bill>
    End;

But what if they were pooped???
  If <dollar bill in street> AND NOT<pooped> Then
    <Pick up bill>
  Else
    <walk away>;

Then what if there were 2 bills, and you really, really need 'em...
  If <dollar bill in street> AND NOT <pooped> Then
    Begin
      <pick up first bill>;
      <pick up second bill>
    End
  Else
    Begin
      <clean first pooped bill>
      <pick up bill>
      <clean second pooped bill>
      <pick up bill>
    End;

Now you could create a procedure to "clean the pooped bill", or something to optimize your code...
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

In this article, you will read about the trends across the human resources departments for the upcoming year. Some of them include improving employee experience, adopting new technologies, using HR software to its full extent, and integrating artifi…
Find out what Office 365 Transport Rules are, how they work and their limitations managing Office 365 signatures.
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…

772 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

10 Experts available now in Live!

Get 1:1 Help Now