Compucolor.org – Virtual Media

Listing of file='INVEST.BAS;01' on disk='vmedia/personal_finance_vol_1-sector.ccvf'

100 TM= 256* PEEK (32941)+ PEEK (32940)
110 Z= TM+ 8:AD= 33283:GOSUB 160:TM= TM+ 1
120 X= 0:Y= 12:H= 15:W= 64:C= 1
130 Z= 28672+ 128* Y+ X+ X:AD= TM+ 126:GOSUB 160
140 Z= 128- W- W:AD= TM+ 149:GOSUB 160:POKE TM+ 129,H- 1
150 POKE TM+ 131,W* (C+ 1):POKE TM+ 143,35* (1- C):GOTO 170
160 ZZ= INT (Z/ 256):POKE AD,Z- 256* ZZ:POKE AD+ 1,ZZ:RETURN
170 REM
180 PLOT 12,27,24
190 DIM A$(10),Z$(10)
200 T9= 100:L= 12
210 DIM F(361)
220 PLOT 6,6,14,3,20,0
230 PRINT "INTERNAL RATE OF RETURN"
240 PLOT 3,20,2
250 PRINT "   AND PRESENT VALUE":PLOT 15,6,2
260 C$= CHR$ (3)+ CHR$ (0)+ CHR$ (5)+ CHR$ (11)
270 D$= CHR$ (3)+ CHR$ (0)+ CHR$ (6)+ CHR$ (11)
280 E$= CHR$ (3)+ CHR$ (0)+ CHR$ (8)+ CHR$ (11)
290 F$= CHR$ (3)+ CHR$ (0)+ CHR$ (9)+ CHR$ (11)
300 G$= CHR$ (3)+ CHR$ (0)+ CHR$ (10)+ CHR$ (11)
310 REM
320 PLOT 22
330 PRINT C$;"NUMBER OF PERIODS AFTER PERIOD ZERO ";
340 GOSUB 1330
350 N= Z9+ 1
360 PRINT D$;"+ REPRESENTS A NET INFLOW, - REPRESENTS A NET OUTFLOW"
370 PRINT
380 PRINT E$;"INITIAL CASH FLOW IN PERIOD ZERO (MUST BE NEGATIVE) ";
390 GOSUB 1330
400 F(1)= Z9
410 PRINT F$;"CASH FLOW IN FIRST PERIOD";SPC( 27);
420 GOSUB 1330
430 F(2)= Z9
440 IF N< = 2THEN 590
450 PRINT G$;"ARE ALL THE OTHER FLOWS THE SAME";SPC( 14);
460 GOSUB 1370
470 A$= Z$
480 IF LEFT$ (A$,1)= "Y"THEN 550
490 FOR I= 3TO N
500 GOSUB 1500:PRINT "PERIOD ";I- 1;SPC( 4- LEN (STR$ (I- 1)));" FLOW";SPC( 36);
510 GOSUB 1330
520 F(I)= Z9
530 NEXT I
540 GOTO 590
550 REM
560 FOR I= 3TO N
570 F(I)= F(2)
580 NEXT I
590 PLOT 14:FOR I= 4TO 26STEP 2:PLOT 3,0,I,11:NEXT :PLOT 15
600 PLOT 3,0,27,11:PRINT "SELECT NUMBER OF DESIRED CHOICE:"
610 PRINT "1 - CONTINUE			      3 - COMPUTE PRESENT VALUE"
620 PRINT "2 - COMPUTE INTERNAL RATE OF RETURN   4 - END PROGRAM"
630 INPUT "YOUR CHOICE: ";A$:A= VAL (A$)
640 PLOT 14:FOR I= 4TO 30STEP 2:PLOT 3,0,I,11:NEXT :PLOT 15:PLOT 3,0,20
650 ON AGOTO 740,670,690,720
660 GOTO 600
670 GOSUB 780
680 GOTO 600
690 GOSUB 1190
700 GOTO 600
710 REM
720 PLOT 27,11,6,2,12,1
730 REM
740 PLOT 14:FOR I= 4TO 30STEP 2:PLOT 3,0,I,11:NEXT :PLOT 15
750 GOTO 310
760 PRINT "I DON'T UNDERSTAND ... TRY AGAIN "
770 GOTO 600
780 REM
790 IF F(1)< 0THEN 850
800 PRINT "THE INTERNAL RATE OF RETURN CANNOT BE CALCULATED"
810 PRINT "UNLESS THE INITIAL CASH FLOW IS AN OUTFLOW (-)"
820 PRINT "SORRY"
830 PRINT
840 RETURN
850 REM
860 R= .95
870 M= 0
880 F1= 1
890 M= M+ 1
900 S1= F(1)
910 IF M> 20AND N< 100THEN 1110
920 IF M> 40AND N> = 100THEN 1110
930 S2= 0
940 FOR I= 2TO N
950 S2= S2+ (I- 1)* F1* F(I)
960 F1= F1* R
970 S1= S1+ (F1* F(I))
980 NEXT I
990 D= S1/ S2
1000 R= R- D
1010 IF ABS (D)> .0005THEN 880
1020 R= 100* ((1/ R)- 1)
1030 R$= STR$ (INT (R))
1040 S$= STR$ (.000001* INT (1000000* (R- 1)+ .5))
1050 IF LEFT$ (S$,1)= " "THEN S$= RIGHT$ (S$,LEN (S$)- 1)
1060 R$= R$+ S$
1070 R= .01* INT (100* R+ .5)
1080 PRINT "THE INTERNAL RATE OF RETURN IS ";R$;" PERCENT"
1090 PRINT
1100 RETURN
1110 REM
1120 PRINT "NO INTERNAL RATE OF RETURN FOUND USING STANDARD"
1130 PRINT "PROCEDURES. YOU MIGHT FIND IT WITH TRIAL-AND-ERROR"
1140 PRINT "COMPUTATIONS OF PRESENT VALUES. IF YOU WANT TO TRY."
1150 PRINT "START WITH A DISCOUNT RATE OF ";
1160 PRINT 100* ((1/ R)- 1);" PERCENT"
1170 PRINT
1180 RETURN
1190 REM
1200 PRINT
1210 PRINT "DISCOUNT RATE (IN PERCENT)";
1220 INPUT K
1230 K= .01* K
1240 P= 0
1250 K1= 1
1260 FOR I= 1TO N
1270 P= P+ F(I)/ K1
1280 K1= K1* (1+ K)
1290 NEXT I
1300 PRINT "NET PRESENT VALUE IS ";P
1310 PRINT
1320 RETURN
1330 REM
1340 Z9= 1
1350 GOSUB 1410
1360 RETURN
1370 REM
1380 Z9= 0
1390 GOSUB 1410
1400 RETURN
1410 REM
1420 GOTO 1430
1430 REM
1440 IF Z9= 1THEN 1470
1450 INPUT Z$
1460 RETURN
1470 REM
1480 INPUT Z9
1490 RETURN
1500 L= L+ 1:IF L= 26THEN ZZ= CALL (1):L= 25
1510 GOSUB 1520:PRINT SPC( 63)""
1520 PLOT 3,0,L:RETURN
1530 END