Solved

what's wrong with this

Posted on 2000-04-11
1
161 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
1 Comment
 
LVL 6

Accepted Solution

by:
My name is Mud earned 30 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: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone 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

In previous parts of this Nano Server deployment series, we learned how to create, deploy and configure Nano Server as a Hyper-V host. In this part, we will look for a clustering option. We will create a Hyper-V cluster of 3 Nano Server host nodes w…
This article summaries thoughts and ideas from two years of sustained use. It provides good reasoning to make the jump to Windows 10.
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …

679 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