home *** CD-ROM | disk | FTP | other *** search
- 3 ON ERROR GOTO 64200
- 4 DEFINT K,F,T,L,R,N
- 5 DIM K$(55)
- 6 DIM FLDN$(1,60),FTY(1,60),FL(1,60)
- 7 DEFINT X,P
- 8 DIM X(10000),T(10000),NREC(17),FD(3),Z$(60),L(100),R(100),F$(17)
- 10 MAXR= 6
- 12 GOSUB 8000
- 15 GOSUB 13000
- 16 H = A
- 17 GOSUB 7000
- 19 DEFSTR Z
- 20 A = H
- 25 GOSUB 9000
- 30 FLG = 0
- 45 L = 0
- 50 FOR T = 1 TO NREC(A)
- 55 L = L + FL(A,T)
- 60 NEXT T
- 70 DEFINT T
- 90 GOSUB 11000
- 100 GOSUB 10000
- 400 REM ****** GET DATA FROM DISKS *******
- 405 GOSUB 16000
- 420 FOR T = 1 TO 30000
- 429 IF T > MRN GOTO 26000
- 430 GET #1,T
- 433 REM
- 435 N = FD(1)
- 436 IF FTY(1,N) = 1 GOTO 500
- 438 IF T1 = 1 THEN X(T) = 0
- 439 X(T) = X(T)*1E+06
- 440 ON FTY(1,N) GOTO 500,550,600,650,650
- 500 REM *** LET X(T) = Z$(N)
- 510 GOTO 700
- 550 X(T) = CVI(Z$(N)) + X(T)
- 560 GOTO 700
- 600 X(T) = CVS(Z$(N)) + X(T)
- 610 GOTO 700
- 650 X(T) = CVD(Z$(N)) + X(T)
- 700 REM
- 705 T(T) = T
- 710 NEXT T
- 1200 LP = 1
- 1210 FLG = 0
- 2000 REM
- 2010 M = 5000
- 2020 GOSUB 30000
- 2110 GOSUB 2200
- 2120 GOSUB 30000
- 2130 GOTO 3000
- 2200 REM
- 2210 L(1) = 1
- 2220 R(1) = MAXR
- 2230 S = 1
- 2240 IF (L(S)) < R(S) THEN 2270
- 2250 S = S - 1
- 2260 GOTO 2640
- 2270 I = L(S)
- 2280 J = R(S)
- 2290 P1= X(J)
- 2300 M = (I + J)/2
- 2310 IF (J - I<6) THEN 2400
- 2320 IF ((P1>X(I)) AND (P1<X(M))) THEN 2400
- 2330 IF ((P1<X(I)) AND (P1>X(M))) THEN 2400
- 2340 IF ((X(I)<X(M)) AND (X(I)>P1)) THEN 2380
- 2350 IF ((X(I)>X(M)) AND (X(I)<P1)) THEN 2380
- 2360 SWAP X(M),X(J)
- 2365 SWAP T(M),T(J)
- 2370 GOTO 2390
- 2380 SWAP X(I),X(J)
- 2385 SWAP T(I),T(J)
- 2390 P1 = X(J)
- 2400 WHILE (I<J)
- 2410 WHILE (X(I)< P1)
- 2420 I = I + 1
- 2430 WEND
- 2440 J=J-1
- 2450 WHILE (I<J)AND(P1<X(J))
- 2460 J = J-1
- 2470 WEND
- 2480 IF (I>=J) THEN 2510
- 2490 SWAP X(I),X(J)
- 2500 SWAP T(I),T(J)
- 2510 WEND
- 2520 J = R(S)
- 2530 SWAP X(I),X(J)
- 2540 SWAP T(I),T(J)
- 2550 IF (I - L(S)>=R(S)-I) THEN 2600
- 2560 L(S + 1) = L(S)
- 2570 R(S + 1) = I - 1
- 2580 L(S) = I + 1
- 2590 GOTO 2630
- 2600 L(S + 1) = I + 1
- 2610 R(S + 1) = R(S)
- 2620 R(S) = I - 1
- 2630 S = S + 1
- 2640 IF (S > 0) THEN 2240
- 2650 RETURN
- 3000 REM ******** PUT IN FILE ************
- 3100 GOSUB 9100
- 3110 Q$ = "B:"+F$(A)
- 3200 GOSUB 9200
- 3300 FOR Q = 1 TO MAXR
- 3310 RN = T(Q)
- 3312 GET #1,RN
- 3330 LSET Z1$ = Y$
- 3340 PUT #2,Q
- 3350 NEXT Q
- 3500 CLOSE
- 3600 GOSUB 15000
- 3620 PRINT "SORT FINISHED "
- 3630 END
- 7000 GOSUB 12000
- 7005 OPEN "I",#1,"FFILE"
- 7010 INPUT #1,MAXF
- 7020 FOR A = 1 TO MAXF
- 7030 INPUT #1,A,F$(A),NREC(A),L(A)
- 7040 FOR N = 1 TO NREC(A)
- 7050 INPUT #1,FLDN$(1,N),FTY(1,N),FL(1,N)
- 7055 IF FTY(1,N) = 2 THEN INPUT #1,KY,KEYLIST
- 7060 NEXT N
- 7065 IF A = AHLD THEN RETURN
- 7070 NEXT A
- 7080 CLOSE #1
- 7100 RETURN
- 8000 GOSUB 12000
- 8005 OPEN "I",#1,"FFILE"
- 8010 INPUT #1,MAXF
- 8020 FOR A = 1 TO MAXF
- 8030 INPUT #1,A,F$(A),NREC(A),L(A)
- 8040 FOR N = 1 TO NREC(A)
- 8050 INPUT #1,FLDN$(1,N),FTY(1,N),FL(1,N)
- 8055 IF FTY(1,N) = 2 THEN INPUT #1,KY,KEYLIST
- 8060 NEXT N
- 8070 NEXT A
- 8080 CLOSE #1
- 8100 RETURN
- 9000 REM ******* OPEN FILE SUBROUTINE *******
- 9010 CLOSE #1
- 9020 OPEN "R",#1,F$(A),L(A)
- 9030 D = 0
- 9040 FOR T = 1 TO NREC(A)
- 9050 FIELD #1,D AS D$,FL(1,T) AS Z$(T)
- 9060 D = D + FL(1,T)
- 9070 NEXT T
- 9080 RETURN
- 9100 REM ******* OPEN FILE SUBROUTINE *******
- 9110 CLOSE #1
- 9120 OPEN "R",#1,F$(A),L
- 9140 PRINT " L(A) ";L
- 9150 FIELD #1,L AS Y$
- 9180 RETURN
- 9200 REM ******* OPEN FILE SUBROUTINE *******
- 9210 CLOSE #2
- 9220 OPEN "R",#2,Q$,L
- 9250 FIELD #2,L AS Z1$
- 9280 RETURN
- 10000 REM ******* INITAL SELECTION ********
- 10010 GOSUB 15000
- 10100 PRINT "************** SORT FILE PROGRAM **************"
- 10105 PRINT "FILE NUMBER = ";A;" FILE NAME = ";F$(A)
- 10110 PRINT ""
- 10120 FOR T = 1 TO NREC(A)
- 10130 PRINT T;"- ";FLDN$(A,T)
- 10140 NEXT T
- 10150 PRINT ""
- 10200 PRINT "*** WHICH FIELD IS THE PRIMARY SORT FIELD ? ***"
- 10210 GOSUB 60000
- 10212 IF DT#<1 OR DT#>NREC(A) GOTO 10210
- 10213 IF FTY(1,DT#) <> 2 THEN GOTO 10210
- 10215 T3 = FD(1)
- 10218 FD(1) = DT#
- 10219 T3 = DT#
- 10220 GOTO 10275
- 10230 PRINT "*********** WHICH FIELD IS THE SECONDARY FIELD ? **********"
- 10232 PRINT "- If the primary values are equal"
- 10234 PRINT "the record with the lowest secondary value will be stored first "
- 10240 GOSUB 60000
- 10242 IF DT#<1 OR DT#>NREC(A) GOTO 10240
- 10244 IF FTY(1,DT#) = 1 GOTO 10410
- 10246 FD(2) = DT#
- 10250 IF KTH= 2 GOTO 10275
- 10260 PRINT "************ WHICH FIELD IS THE THIRD FIELD ? *************"
- 10262 PRINT "- If both the primary value and the secondary value are equal"
- 10264 PRINT "the record with the lowest third value will be stored first"
- 1027044:H49)
- 9,51,2R
- (I34+I37:I40-I44:I49)
- 10,51,2R
- (J34+J37:J40-J44:J49)
- 11,51,2R
- (K34+K37:K40-K44:K49)
- 12,51,2R
- (L34+L37:L40-L44:L49)
- 13,51,2R
- (M34+M37:M40-M44:M49)
- 14,51,2R
- (N34+N37:N40-N44:N49)
- 15,51,2R
- (O34+O37:O40-O44:O49)
- 16,51,2R
- (P34+P37:P40-P44:P49)
- 17,51,2R
- (Q34+Q37:Q40-Q44:Q49)
- 18,51,2R
- (R34+R37:R40-R44:R49)
- 19,51,2R
- (S34+S37:S40-S44:S49)
- 20,51,2R
- (T34+T37:T40-T44:T49)
- 21,51,2R
- (U34+U37:U40-U44:U49)
- 22,51,2R
- (V34+V37:V40-V44:V49)
- 23,51,2D
- (V51-V41)
- END
- ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷HDR
- 10
- 10
- 10
- 10
- 10
- 10
- 10
- DAT
- 1,1,2R
- Portions Copyright (c) 1985, 1986:
- 7,1,0A
- (DATE(86,05,09))
- 1,2,2R
- MaeDae Enterprises, Enerco Associates, P & M Software.
- 1,4,2R
- This is a sample worksheet, it is what some call a template. It is setup
- 1,5,2R
- to show you how you can use "EZ-SPREADSHEET" to do a family budget.
- 1,7,2R
- To use the template you just put numbers in for each expense catagory and
- 1,8,2R
- put in the amount for the income figure at the bottom. The worksheet will
- 1,9,2R
- calculate the total expenses and the amount that you can save or must take
- 1,10,2R
- from savings.
- 1,12,2R
- "EZ SPREADSHEET" can forward reference cells and come up with the correct
- 1,13,2R
- answer, even if the forward cell comtains a formula! An example of this
- 1,14,2R
- is shown after the "Budget" below.
- 1,16,2R
- At the end of this worksheet is a sample of the technique used for the
- 1,17,2R
- Internal Rate of Return function. While this function is very nice, it
- 1,18,2R
- does take time to calculate.
- 1,20,2R
- Budget
- 1,21,2R
- Category
- 2,21,0E
- (DATE(86,5,15))
- 3,21,0E
- (B21+30.4)
- 4,21,0E
- (C21+30.4)
- 5,21,0E
- (D21+30.4)
- 6,21,0E
- (E21+30.4)
- 7,21,0E
- (F21+30.4)
- 1,22,2R
- ----------
- 2,22,0C
- ----------
- 3,22,0C
- ----------
- 4,22,0C
- ----------
- 5,22,0C
- ----------
- 6,22,0C
- ----------
- 7,22,0C
- ----------
- 1,23,2R
- Food
- 2,23,0D
- 0
- 3,23,0D
- 0
- 4,23,0D
- 0
- 5,23,0D
- 0
- 6,23,0D
- 0
- 7,23,0D
- 0
- 1,24,2R
- Clothing
- 1,25,2R
- Newspaper
- 1,26,2R
- Insurance
- 1,27,2R
- Church
- 1,28,2R
- Mortgage
- 1,29,2R
- Magazines
- 1,30,2R
- Medical
- 1,31,2R
- Computer
- 1,32,2R
- Auto
- 1,33,2R
- Gasoline
- 1,34,2R
- Electric
- 1,35,2R
- Water
- 1,36,2R
- Loan Pay
- 1,37,2R
- School
- 1,38,2R
- Entertain
- 1,39,2R
- Misc.
- 2,40,0C
- ----------
- 3,40,0C
- ----------
- 4,40,0C
- ----------
- 5,40,0C
- ----------
- 6,40,0C
- ----------
- 7,40,0C
- ----------
- 1,41,2R
- Expenses
- 2,41,0D
- (B23:B40)
- 3,41,0D
- (C23:C40)
- 4,41,0D
- (D23:D40)
- 5,41,0D
- (E23:E40)
- 6,41,0D
- (F23:F40)
- 7,41,0D
- (G23:G40)
- 1,42,2R
- Savings
- 2,42,0C
- (B44-B41)
- 3,42,0C
- (C44-C41)
- 4,42,0C
- (D44-D41)
- 5,42,0C
- (E44-E41)
- 6,42,0C
- (F44-F41)
- 7,42,0C
- (G44-G41)
- 2,43,0C
- ----------
- 3,43,0C
- ----------
- 4,43,0C
- ----------
- 5,43,0C
- ----------
- 6,43,0C
- ----------
- 7,43,0C
- ----------
- 1,44,2R
- Income
- 2,44,0D
- 0
- 3,44,0D
- 0
- 4,44,0D
- 0
- 5,44,0D
- 0
- 6,44,0D
- 0
- 7,44,0D
- 0
- 2,45,0C
- ==========
- 3,45,0C
- ==========
- 4,45,0C
- ==========
- 5,45,0C
- ==========
- 6,45,0C
- ==========
- 7,45,0C
- ==========
- 1,48,2R
- Sample of the forward reference:
- 4,48,0C
- (G50)
- 1,50,0C
- 100
- 2,50,0C
- 200
- 3,50,0C
- 300
- 4,50,0C
- 400
- 5,50,0C
- 500
- 6,50,0C
- 600
- 7,50,0C
- (A50:F50)
- 1,53,2R
- Sample problem, showing the use of the Internal Rate of Return function.
- 1,55,2R
- Loan Analysis
- 1,56,2R
- -------------
- 1,57,2R
- Loan Amount
- 3,57,0D
- -1000
- 4,57,0C
- Shown as negative, because YOU are
- 1,58,2R
- Year 1 Payment
- 3,58,0C
- 500
- 4,58,0C
- making the loan! The loan payments
- 1,59,2R
- Year 2 Payment
- 3,59,0C
- 400
- 4,59,0C
- are income to you and you are trying
- 1,60,2R
- Year 3 Payment
- 3,60,0C
- 200
- 4,60,0C
- to decide if you want to make the loan
- 1,61,2R
- Year 4 Payment
- 3,61,0C
- 100
- 4,61,0C
- or not.
- 3,62,0C
- ----------
- 1,63,2R
- Net Income
- 3,63,0D
- (C57:C61)
- 3,64,0C
- ==========
- 1,66,2R
- Rate of Return
- 3,66,4P
- (IRR(.14,C57..C61))
- 1,68,2R
- Proof is NPV of
- 1,69,2R
- cash flows...
- 3,69,4D
- (ABS(NPV(C66,C58..C61)+C57))
- 4,69,0C
- By definition the Internal Rate of
- 4,70,0C
- Return is the interest rate that will
- 4,71,0C
- discount the cash flow to zero!
- 1,73,2R
- Sample Table Lookup
- 1,74,2R
- ---------------------
- 1,76,2R
- Term
- 2,76,2R
- Rate
- 1,77,2R
- ----
- 2,77,2R
- ----
- 1,78,0C
- 12
- 2,78,2P
- 0.085
- 1,79,0C
- 18
- 2,79,2P
- 0.093
- 1,80,0C
- 24
- 2,80,2P
- 0.097
- 1,81,0C
- 36
- 2,81,2P
- 0.102
- 1,82,0C
- 48
- 2,82,2P
- 0.107
- 4,82,2R
- Value "LOOKED UP" in Table
- 1,83,0C
- 60
- 2,83,2P
- 0.111
- 4,83,2R
- -----------------------------
- 1,84,0C
- 72
- 2,84,2P
- 0.115
- 4,84,2P
- (VLOOKUP(36,A78..A84,1))
- 5,84,2R
- Rate for 36 months
- 1,87,2R
- Sample Asset Depreciation
- 4,87,2R
- Depreciation Calculations
- 1EXT T9
- 60620 IF KTMAX = 0 THEN PRINT "1"
- 60630 IF KTMAX = 0 THEN DT# = 1
- 60640 IF KTMAX = 0 THEN RETURN
- 60650 PRINT ""
- 60660 GOTO 61240
- 60670 REM ********* MOVE CURSE BACK ********
- 60680 IF KT = 1 GOTO 60370
- 60690 KT = KT - 1
- 60700 PRINT CHR$(8);
- 60710 GOTO 60370
- 60720 REM ********* MOVE CURSER FORWARD *********
- 60730 IF KT >= MAX GOTO 60370
- 60740 IF KT > (KTMAX + 1) GOTO 60370
- 60750 PRINT K$(KT);
- 60760 KT = KT + 1
- 60770 GOTO 60370
- 60780 REM ********** INSERT ***********
- 60790 IF KT > KTMAX GOTO 60370
- 60800 X9 = MAX
- 60810 WHILE X9 > KT
- 60820 X9 = X9 - 1
- 60830 K$(X9 + 1) = K$(X9)
- 60840 WEND
- 60850 K$(KT) = " "
- 60860 KTMAX = KTMAX + 1
- 60870 FOR T9 = KT TO KTMAX
- 60880 PRINT K$(T9);
- 60890 NEXT T9
- 60900 T6 = (KTMAX - KT) + 1
- 60910 FOR T7 = 1 TO T6
- 60920 PRINT CHR$(8);
- 60930 NEXT T7
- 60940 GOTO 60370
- 60950 REM ********** DELETE ***********
- 60960 IF KT > KTMAX GOTO 60370
- 60970 K$(MAX + 1) = ""
- 60980 X9 = KT
- 60990 WHILE X9 <= MAX
- 61000 K$(X9) = K$(X9 + 1)
- 61010 X9 = X9 + 1
- 61020 WEND
- 61030 KTMAX = KTMAX - 1
- 61040 FOR T9 = KT TO KTMAX
- 61050 PRINT K$(T9);
- 61060 NEXT T9
- 61070 PRINT "_";
- 61080 T7 = (KTMAX - KT) + 2
- 61090 FOR T8 = 1 TO T7
- 61100 PRINT CHR$(8);
- 61110 NEXT T8
- 61120 GOTO 60370
- 61130 REM ********* BACKSPACE ********
- 61140 IF KT = 1 GOTO 60370
- 61150 KT = KT - 1
- 61160 PRINT CHR$(8);
- 61170 K$(KT) = " "
- 61180 PRINT "_";
- 61190 PRINT CHR$(8);
- 61200 GOTO 60370
- 61210 REM ******* INPUT NOT ACCEPTABLE ********
- 61220 PRINT CHR$(7);
- 61230 GOTO 60380
- 61240 REM ********* CLEAR STRINGS ********
- 61250 MAX = LEN(A$)
- 61260 D2$ = ""
- 61270 D1$ = ""
- 61280 DFLG = 0
- 61290 FOR Q93 = 1 TO MAX
- 61300 R$ = MID$(A$,Q93,1)
- 61310 IF INSTR(DIG$,R$) = 0 GOTO 61380
- 61320 IF R$ = "." OR DFLG = 1 GOTO 61360
- 61330 IF DFLG = 1 GOTO 61360
- 61340 D2$ = D2$ + R$
- 61350 GOTO 61380
- 61360 D1$ = D1$ + R$
- 61370 DFLG = 1
- 61380 NEXT Q93
- 61390 DA# = VAL(D2$)
- 61400 D1# = VAL(D1$)
- 61410 DT# = DA# + D1#
- 61420 IF K$(1) = "-" THEN DT# = -DT#
- 61430 RETURN
- 61900 REM ****** CHECK FOR ASC0
- 61910 S4$ = INKEY$
- 61920 C2 = ASC(S4$)
- 61930 IF C2 = 83 THEN C = 1
- 61940 IF C2 = 82 THEN C = 6
- 61950 IF C2 = 75 THEN C = 19
- 61960 IF C2 = 77 THEN C = 4
- 61970 RETURN
- 64200 REM
- 64210 PRINT " ERROR NUMBER ";ERR ; " ON LINE ";ERL
- 64270 CLOSE
- 64280 PRINT " PRESS ANY KEY TO CONTINUE"
- 64290 IF INKEY$ = "" THEN 64290
- 64300 RESUME 3
- R ; " ON LINE ";ERL
- 64270 CLOSE