?
Solved

what's wrong with this

Posted on 2000-04-11
1
Medium Priority
?
165 Views
Last Modified: 2011-09-20
When I choose deposit, say $200, the answer comes out in the 4,000 range. I think the case w of statement is putting me in an infinite loop. Everytime I choose withdrawal and withdrawal, it'll go into an infinite loop. I haven't even tried the see_balance procedure yet.

var balance: integer;
balance := $1,000;


procedure PRINTMENU;
   begin
        writeln ('MENU OF CHOICES');
        writeln (' 1) Deposit');
        writeln (' 2) Withdrawal');
        writeln (' 3) See balance');
        writeln (' 4) Quit');
   end; {PRINTMENU}

procedure Deposit;
  var d: integer;
  begin
     write ('How much do you want to deposit?');
     readln (d);
       balance := balance + d;
  end; {Deposit};


procedure Withdrawal;
  var w: integer;
      amount: integer;

  begin
     write ('How much do you want to withdrawal?');
     write ('$50');
     write ('$100');
     write ('$200');
     write ('$500');
     readln (w);

     case w of
       1 : amount := 50;
       2 : amount := 100;
       3 : amount := 200;
       4 : amount := 500
     end; {case}
     balance := balance - amount
  end; {Withdrawal}


procedure {See_balance}
  begin
     writeln ('Your balance is ' , balance);
  end; {See_balance}

begin {main}
  repeat
     PRINTMENU;
     write ('Enter choice ');
     readln (choice);
     case choice of
       1 : Deposit;
       2 : Withdrawal;
       3 : See_balance;
       4 : {quit the loop}
      else writeln ('Invalid choice -- choose again')
     end; {case}
  writeln
  until choice = 4
end.



0
Comment
Question by:kazooie21
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 
LVL 6

Accepted Solution

by:
My name is Mud earned 120 total points
ID: 2706729
CONST
  balance: integer = 1000;

procedure PRINTMENU;
begin
  writeln ('MENU OF CHOICES');
  writeln (' 1) Deposit');
  writeln (' 2) Withdrawal');
  writeln (' 3) See balance');
  writeln (' 4) Quit');
end; {PRINTMENU}

procedure Deposit;
var
  d: integer;
begin
  write ('How much do you want to deposit?');
  readln (d);
  balance := balance + d;
end; {Deposit};

procedure Withdrawal;
var
  w: integer;
  amount: integer;
begin
  write ('How much do you want to withdrawal?');
  write ('$50');
  write ('$100');
  write ('$200');
  write ('$500');
  readln (w);
  case w of
    1 : amount := 50;
    2 : amount := 100;
    3 : amount := 200;
    4 : amount := 500
  end; {case}
  If balance > amount Then
    balance := balance - amount
  else
    Begin
      WriteLn('You don't have that kind of money');
      WriteLn('Do you think we're stupid to give you money, you moron');
      WriteLn('Thanks for your preference');
    End
end; {Withdrawal}

procedure See_balance
begin
  writeln ('Your balance is ' , balance);
end; {See_balance}

begin {main}
  repeat
    PRINTMENU;
    write ('Enter choice ');
    readln (choice);
    case choice of
      1 : Deposit;
      2 : Withdrawal;
      3 : See_balance;
      4 : {quit the loop}
      else writeln ('Invalid choice -- choose again')
    end; {case}
    writeln
  until choice = 4
end.
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

This is a fine trick which I've found useful many times, when you just don't want to accidentally run a batch script or the commands needs administrator rights.
The well known Cerber ransomware continues to spread this summer through spear phishing email campaigns targeting enterprises. Learn how it easily bypasses traditional defenses - and what you can do to protect your data.
In this video we outline the Physical Segments view of NetCrunch network monitor. By following this brief how-to video, you will be able to learn how NetCrunch visualizes your network, how granular is the information collected, as well as where to f…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…
Suggested Courses

801 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