10 L1=9
20 DEF FNR(X)=INT(X*100+.5)/100
30 CL$=CHR$(26):REM SCREEN CLEAR CHAR.
40 REM ********************************************************
50 REM
60 PRINT CL$;"ESTE PROGRAMA ES UNA COLECCION DE APLICACIONES"
70 PRINT "DE NEGOCIOS. HE AQUI UNA LISTA DE LOS VALORES QUE"
80 PRINT "PUEDEN COMPUTARSE DANDO DATOS DE SOPORTE:"
90 PRINT
100 PRINT "1) VALOR FUTURO DE UNA INVERSION"
110 PRINT "2) VALOR FUTURO DE DEPOSITOS REGULARES (ANUALIDAD)"
120 PRINT "3) DEPOSITOS REGULARES"
130 PRINT "4) DEPOSITOS REGULARES DESDE UNA INVERSION"
140 PRINT "5) INVERSION INICIAL"
150 PRINT "6) INVERSION MINIMA PARA RETIROS"
160 PRINT "7) TASA DE INTERES NOMINAL EN INVERSIONES"
170 PRINT "8) TASA DE INTERES EFECTIVA EN INVERSIONES"
180 PRINT "9) TABLA DE INTERESES DEVENGADOS"
190 PRINT
200 PRINT "CUALES DE LOS VALORES ANTERIORES QUIERE"
210 PRINT "COMPUTAR ( 1 A";L1;", O 0 PARA FINALIZAR )";
220 INPUT X
230 PRINT CL$
240 IF X=0 THEN 1860
250 ON X GOSUB 270,360,470,590,690,800,910,1010,1150
260 GOTO 90
270 PRINT "VALOR FUTURO DE UNA INVERSION"
280 PRINT:INPUT "INVERSION INICIAL (0 PARA PARAR) ";P:IF P=0 THEN RETURN
290 GOSUB 1130
300 GOSUB 1140
310 GOSUB 1110
320 I=I/N/100
330 T=P*(I+1)^(N*Y)
340 GOSUB 1100
350 GOTO 280
360 PRINT "VALOR FUTURO DE DEPOSITOS REGULARES (ANUALIDAD)"
370 PRINT
380 INPUT "CANTIDAD DE DEPOSITOS REGULARES (0 PARA PARAR)";R
390 IF R=0 THEN RETURN
400 GOSUB 1130
410 INPUT "CANTIDAD DE DEPOSITOS POR ANIO";N
420 GOSUB 1110
430 I=I/N/100
440 T=R*((I+1)^(N*Y)-1)/I
450 GOSUB 1100
460 GOTO 370
470 PRINT "DEPOSITOS REGULARES"
480 PRINT
490 INPUT "VALOR TOTAL LUEGO DE Y ANIOS (0 TO STOP) ";T
500 IF T=0 THEN RETURN
510 GOSUB 1130
520 DEF FNR(X)=INT(X*100+.5)/100
530 INPUT "CANTIDADES DE DEPOSITOS POR ANIO";N
540 GOSUB 1110
550 I=I/N/100
560 R=T*I/((I+1)^(N+Y)-1)
570 PRINT "DEPOSITOS REGULARES: $";INT(R*100+.5)/100
580 GOTO 480
590 PRINT "RETIROS REGULARES DE UNA INVERSION"
600 PRINT:INPUT"INVERSION INICIAL (0 PARA DETENER) ";P
610 IF P=0 THEN RETURN
620 GOSUB 1130
630 INPUT "CANTIDAD DE RETIROS POR ANIO";N
640 GOSUB 1110
650 I=I/N/100
660 R=P*(I/((I+1)^(N*Y)-1)+I)
670 PRINT "CANTIDAD DE CADA RETIRO = $";INT(R*100+.5)/100
680 GOTO 600
690 PRINT "INVERSION INICIAL"
700 PRINT
710 INPUT "VALOR TOTAL ANTES DE Y ANIOS (0 PARA DETENER) ";T
720 IF T=0 THEN RETURN
730 GOSUB 1140
740 GOSUB 1110
750 GOSUB 1130
760 I=I/N/100
770 P=T/(I+1)^(N*Y)
780 PRINT "INVERSION INICIAL = $";INT(P*100+.5)/100
790 GOTO 700
800 PRINT "INVERSION MINIMA PARA RETIROS"
810 PRINT
820 INPUT "CANTIDAD DE RETIROS (0 TO STOP) ";R
830 IF R=0 THEN RETURN
840 GOSUB 1130
850 INPUT "CANTIDAD DE RETIROS POR ANIO";N
860 GOSUB 1110
870 I=I/100
880 P=R*N/I*(1-1/((1+I/N)^(N*Y)))
890 PRINT "INVERSION MINIMA = $";INT(100*P+.5)/100
900 GOTO 810
910 PRINT "TASA DE INTERES NOMINAL SOBRE INVERSIONES"
920 PRINT
930 INPUT "PRINCIPAL (0 TO STOP)";P
940 IF P=0 THEN RETURN
950 INPUT "VALOR TOTAL";T
960 GOSUB 1110
970 GOSUB 1140
980 I2=N*((T/P)^(1/(N*Y))-1)*100
990 PRINT "TASA DE INTERES NOMINAL = ";I2;"%"
1000 GOTO 920
1010 PRINT "TASA DE INTERES EFECTIVA EN INVERSIONES"
1020 PRINT
1030 INPUT "INVERSION INICIAL (0 TO STOP) ";P
1040 IF P=0 THEN RETURN
1050 INPUT "VALOR TOTAL LUEGO DE Y ANIOS";T
1060 GOSUB 1110
1070 PRINT "TASA DE INTERES ANUAL = ";((T/P)^(1/Y)-1)*100;"%"
1080 GOTO 1020
1090 REM *******
1100 PRINT "VALOR FUTURO = $"; INT(T*100+.5)/100:RETURN
1110 INPUT "CANTIDAD DE ANIOS Y MESES (2 NUMEROS CON UNA COMA ENTRE ELLOS)";Y0,M
1120 Y=(12*Y0+M)/12:RETURN
1130 INPUT "TASA DE INTERES NOMINAL (0 A 100) ";I:RETURN
1140 INPUT "CANTIDAD DE PERIODOS COMPUESTOS POR ANIO";N:RETURN
1150 PRINT "**** GENERADOR DE TABLA DE INTERESES DEVENGADOS ***"
1160 PRINT
1170 INPUT "PRINCIPAL";P
1180 GOSUB 1130
1190 I=I/100
1200 INPUT "CANTIDAD DE DEPOSITOS/RETIROS ANUALES";N1
1210 IF N1=0 THEN 1260
1220 INPUT "CANTIDAD DE DEPOSITOS/RETIROS";R
1230 N=360
1240 L2=N1
1250 GOTO 1290
1260 GOSUB 1140
1270 N1=0
1280 L2=4
1290 INPUT "COMENZAR CON QUE ANIO (DONDE 1 SIGNIFICA EL PRIMERO, 2 EL SEGUNDO, ETC.) ";X
1300 INPUT "FINALIZAR CON QUE ANIO";Y
1310 X=INT(X)
1320 B0=P:I1=0:I2=0:I3=0:K=66:P1=4
1330 FOR J0=1 TO INT(Y)+1
1340 IF J0<X THEN 1510
1350 IF K<55 THEN 1500
1360 REM SPACE TO NEXT PAGE, PRINT HEADINGS (ASSUMING 66 LINES/PAGE)
1370 FOR K1=K TO 66
1380 PRINT
1390 NEXT K1
1400 K=6
1410 PRINT " TABLA DE INTERES OBTENIDO"
1420 PRINT " PRINCIPAL= $";P;" AT ";I*100;"% NOMINAL FOR ";Y;"YEARS"
1430 IF N1=0 THEN 1460
1440 PRINT "REGULAR DEPOSITO/RETIRO $";R;". ";N1;" TIMES PER YEAR"
1450 K=K+1
1460 PRINT " TASA DE INTERES EFECTIVA";FNR(100*((1+I/N)^N-1));"% PER YEAR"
1470 PRINT
1480 PRINT "ANIO","BALANCE","INTERES","INTERES ACUM."
1490 PRINT
1500 PRINT J0,
1510 L1=1
1520 N2=1
1530 P2=1
1540 FOR J1=1 TO N
1550 IF N2>N1 THEN 1590
1560 IF N2/N1>J1/N THEN 1590
1570 B0=B0+R
1580 N2=N2+1
1590 B2=B0*(1+I/N)
1600 I1=B2-B0
1610 I3=I3+I1
1620 I2=I2+I1
1630 IF P2/P1>J1/N THEN 1670
1640 I2=FNR(I2)
1650 B2=FNR(B2)
1660 P2=P2+1
1670 IF J0<X THEN 1750
1680 IF J1/N<L1/L2 THEN 1750
1690 L1=L1+1
1700 PRINT TAB(17);
1710 PRINT FNR(B2),FNR(I3),FNR(I2)
1720 I3=0
1730 K=K+1
1740 REM
1750 B0=B2
1760 IF J0+J1/N-1>=Y THEN 1820
1770 NEXT J1
1780 IF J0<X THEN 1810
1790 PRINT
1800 K=K+1
1810 NEXT J0
1820 PRINT
1830 PRINT "CAMBIAR DATOS Y RECOMPUTAR ";
1840 INPUT A$:IF LEFT$(A$,1)="Y" THEN 1160
1850 RETURN
1860 REM RUN "DIR"
1870 END
2000 REM -------------------------------
2010 REM commented out line 1860
2020 REM added space after IF stmts
2999 END