1 REM PROGRAM 'Bank Manager' 2 REM from the book '2^5 Mathematical Programs in Basic' 3 REM by Jakub Tatarkiewicz & Andrzej Witkowski 4 REM English version by Piotr Pagowski 5 MODE3:VDU 19,7,6;0; 9 PRINT:PRINT:PRINT:PRINT" H E L L O ! B A N K M A N A G E R":PRINT:PRINT:PRINT 10 PRINT"Searched value, code" 20 PRINT"Time for saving or paying back 1" 30 PRINT"Interest rate 2" 40 PRINT"Final amount 3" 50 PRINT"Investment or loan 4" 60 PRINT"Instalment/Dividends rate 5" 70 PRINT 80 INPUT"Give a problem's code, please",K 90 IF K=1 THEN GOTO 120 100 INPUT"Time of operation (years)",N 110 IF K=2 THEN GOTO 150 120 INPUT"Interest rates(%) per year",I 130 I=I/100 140 IF K=3 THEN GOTO 180 150 INPUT"Final amount-Is it to be paid(Yes=1,No=0)",T 160 INPUT"Give amount, please",F 170 IF T=1 THEN F=-F 180 IF K=4 THEN GOTO 220 190 INPUT"Start amount-Is it to be be paid in(Yes=1,No=0)",T 200 INPUT"Give amount, please",P 210 IF T=1 THEN P=-P 220 INPUT"How many times per year are interests added to the savings",D 230 R=D 240 IF K=5 THEN GOTO 300 250 X=0 260 INPUT"Instalments/Dividends-Do you pay in(Yes=1,No=0)",T 270 INPUT"Give amount, please",S 280 IF T=1 THEN S=-S 290 IF S=0 THEN GOTO 320 300 INPUT"How many instalments per year",R 310 INPUT"Type of payment (back=1, ahead=0)",X 320 IF K=2 THEN GOTO 610 330 I1=(1+I/D)^(D/R)-1 340 IF K=1 THEN GOTO 410 350 IF K=3 THEN GOTO 790 360 IF K=4 THEN GOTO 1000 370 IF K=5 THEN GOTO 1100 380 PRINT"Wrong choice of the code" 390 GOTO 10 400 REM Time of saving or paying back 410 C=S*(1+X*I1)/I1 420 N=LOG((C-F)/(C+P))/LOG(1+I1) 430 N=INT(N*1E2)*1E-2 440 IF F<0 THEN GOTO 470 450 PRINT"Final amount to be taken";F 460 GOTO 480 470 PRINT"Final amount to be paid ";-F 480 PRINT"will be reached after ";N;" periods" 490 PRINT"it means after";INT(10*N/R)/10;" years" 500 GOTO 10000 600 REM Interest rates 610 IF S<>0 THEN GOTO 640 620 I=((ABS(F/P))^(1/(D*N))-1)*D 630 GOTO 750 640 I=ABS(S)/(ABS(P)+ABS(F)) 650 I=I+(ABS(P)+ABS(F))/ABS(S)/(N^3*R^3) 660 A=(1+I)^(N*R)-1 670 C=S*(1+I*X)/I 680 F1=A*(P+C)+P+F 690 F2=N*R*(A+1)*(P+C)/(1+I)-A*C/I 700 I1=I-F1/F2 710 IF (I1-I)/I1<1E-6 THEN GOTO 740 720 I=I1 730 GOTO 650 740 I=((I1+1)^(R/D)-1)*D 750 I=INT(I*1E5)*1E-3 760 PRINT"Interest rate per year" 770 PRINT"is ";I;"%" 780 GOTO 10000 790 REM Final amount 800 C=S*(1+X*I1)/I1 810 A=(1+I1)^(N*R)-1 820 F=-(P+A*(P+C)) 830 F=INT(1E3*F)*1E-3 840 PRINT"After ";N;" years the final amount" 860 IF F<0 THEN GOTO 890 870 PRINT"to be taken will be ";F 880 GOTO 10000 890 PRINT"to be paid will be ";-F 900 GOTO 10000 1000 REM Loan 1010 C=S*(1+X*I1)/I1 1020 A=(1+I1)^(N*R)-1 1030 P=-(F+A*C)/(A+1) 1040 P=INT(1E3*P)*1E-3 1050 IF P<0 THEN 1080 1060 PRINT"The borrowed amount ";P 1070 GOTO 10000 1080 PRINT"The paid in amount ";-P 1090 GOTO 10000 1100 REM Instalment rate 1110 B=(1+I1*X)/I1 1120 A=(1+I1)^(N*R)-1 1130 S=-(F+P*(A+1))/(A*B) 1140 S=INT(1E3*S)*1E-3 1150 IF S<0 THEN GOTO 1180 1160 PRINT"The dividends we will get: ";S 1170 GOTO 10000 1180 PRINT"The instalments we have to pay ";-S 10000 END