home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.whtech.com
/
ftp.whtech.com.tar
/
ftp.whtech.com
/
club100
/
pg
/
pggene
/
decide.ba
< prev
next >
Wrap
Text File
|
2006-10-19
|
4KB
|
84 lines
0 REM DECIDE.BA copyright (c) 1989
1 REM by Paul Globman [72227,1661]
2 MAXFILES=1:DIMR(10,10):KEYON:IFPEEK(1)=171THENLO=560ELSELO=240
3 ONKEYGOSUB15,16,17,18,19,20,21,22:ONERRORGOTO77:ES$=CHR$(27):LL=LO+40:GOTO8
4 GOSUB24
5 GOSUB32:GOSUB37
6 GOSUB43
7 GOSUB47
8 GOSUB49
9 PRINT@LO,STRING$(40,232);:PRINT"Subj Fact Wght Rate Load Save Prnt Menu";
10 K=0
11 ONKGOTO4,5,23,6,12,13,14:GOTO11
12 GOSUB67:IFX$="?"THEN7ELSE9
13 GOSUB73:GOTO9
14 GOSUB59:GOTO10
15 K=1:RETURN
16 K=2:RETURN
17 K=3:RETURN
18 K=4:RETURN
19 K=5:RETURN
20 K=6:RETURN
21 K=7:RETURN
22 MENU
23 GOSUB37:GOTO7
24 CLS:PRINT"This program is designed to assist you":PRINT"in making decisions. Please enter the
25 PRINT"SUBJECT of your quandary. For example:":PRINT:PRINT" which job offer to accept
26 PRINT" which car to purchase":PRINT:LINEINPUT"SUBJECT =>";S$:IFS$=""THENRUN
27 GOSUB66:PRINT"please enter how many CHOICES you have.":PRINT:LINEINPUT"Number of CHOICES =>";C$
28 C=VAL(C$):IFC>10 ORC<2THEN27
29 GOSUB66:PRINT"please list all"C"of your choices.":PRINT:FORI=1TOC
30 PRINT"Option"I;:LINEINPUT"=>";C$(I):IFC$(I)=""THEN30
31 C$(I)=LEFT$(C$(I),15):NEXT:RETURN
32 GOSUB66:PRINT"please enter how many factors you wish":PRINT"to consider.":PRINT
33 LINEINPUT"Number of FACTORS =>";F$:F=VAL(F$):IFF>10 ORF<2THEN32
34 GOSUB66:PRINT"please list all"F"FACTORS.":PRINT:FORI=1TOF:W(I)=0
35 PRINT"Factor"I;:LINEINPUT"=>";F$(I):IFF$(I)=""THEN35
36 F$(I)=LEFT$(F$(I),15):NEXT:RETURN
37 CLS:PRINT"Since some FACTORS are more important":PRINT"than others, please assign relative
38 PRINT"values to each factor. A value of 10":PRINT"is the highest weight and 1 is the":PRINT"lowest weight.
39 IFLO>320THENPRINT
40 PRINT"[ ";:FORI=1TOF:PRINTF$(I)W(I)"/ ";:NEXT:PRINT"]":PRINT:FORI=1TOF
41 PRINTF$(I)" = ";:LINEINPUTW$:W(I)=VAL(W$):IF(W(I)<=0)OR(W(I)>10)THEN41
42 NEXT:RETURN
43 FORI=1TOF:CLS:PRINT"Consider "ES$"p"F$(I)ES$"q ONLY!":PRINT:PRINT"Rate the following choices (0 is valid).
44 PRINT"[ ";:FORK=1TOC:PRINTC$(K)" / ";:NEXTK:PRINT"]":PRINT:FORJ=1TOC
45 PRINTC$(J)" = ";:LINEINPUTR$:R(I,J)=VAL(R$):IFR(I,J)=0 ANDR$<>"0"THEN45
46 NEXTJ:NEXTI:RETURN
47 CLS:PRINT" Evaluating...":FORI=1TO500:NEXT:FORI=1TOC:T(I)=0:NEXT:FORJ=1TOC:FORI=1TOF:T(J)=T(J)+R(I,J)*W(I)
48 NEXTI:NEXTJ:RETURN
49 CLS:X=(34-LEN(S$))/2:FORI=1TOC:S(I)=I:NEXT:FORSS=1TOC-1:FORS=SS+1TOC:IFT(S(SS))>T(S(S))THEN51
50 T=S(SS):S(SS)=S(S):S(S)=T
51 NEXTS:NEXTSS:PRINT@X,"<<<"S$">>>":PRINT:PRINT"Factor (weight)";:PRINTTAB(20)"Choice (rating)
52 PRINTSTRING$(40,"-");:IFC>FTHENX=CELSEX=F
53 IFLO<320THENX=2
54 FORI=1TOX:IFI>FTHEN56
55 W$=STR$(W(I)):W$=RIGHT$(W$,LEN(W$)-1):PRINTF$(I)" ("W$")";
56 IFI>CTHENPRINT:GOTO58
57 R$=STR$(T(S(I))):R$=RIGHT$(R$,LEN(R$)-1):PRINTTAB(20)C$(S(I))" ("R$")
58 NEXT:RETURN
59 X=(80-LEN(S$))/2:LPRINTTAB(X-5)"<<<"S$">>>":LPRINT:LPRINTTAB(8)"Factor (weight)";:LPRINTTAB(50)"Choice (Rating)
60 LPRINTTAB(8)STRING$(64,"-"):IFC>FTHENX=CELSEX=F
61 FORI=1TOX:IFI>FTHEN63
62 W$=STR$(W(I)):W$=RIGHT$(W$,LEN(W$)-1):LPRINTTAB(8)F$(I)" ("W$")";
63 IFI>CTHENLPRINT:goto65
64 R$=STR$(T(S(I))):R$=RIGHT$(R$,LEN(R$)-1):LPRINTTAB(50)C$(S(I))" ("R$")
65 NEXT:FORI=1TO10:LPRINT"":NEXT:RETURN
66 CLS:PRINT"To help you decide...":PRINT" "S$",":PRINT:RETURN
67 PRINT@LL,ES$"V"ES$"KLoad from";:GOSUB81:X$="
68 OPENSA$FORINPUTAS1
69 LINEINPUT#1,X$
70 IFX$<>"?"THENERROR3
71 INPUT#1,S$:INPUT#1,C:INPUT#1,F:FORI=1TOC:INPUT#1,C$(I):NEXT:FORJ=1TOF:INPUT#1,W(J),F$(J):NEXT
72 FORI=1TOC:FORJ=1TOF:INPUT#1,R(J,I):NEXTJ:NEXTI:CLOSE:RETURN
73 PRINT@LL,ES$"V"ES$"KSave as";:GOSUB81:IFSA$=""THENRETURN
74 OPENSA$FORINPUTAS1:PRINT@LL,ES$"KOverwrite "SA$"?";:CLOSE:AN$=INPUT$(1):IFAN$<>"y"ANDAN$<>"Y"THENRETURN
75 CLOSE:OPENSA$FOROUTPUTAS1:PRINT#1,"?":PRINT#1,S$:PRINT#1,C:PRINT#1,F:FORI=1TOC:PRINT#1,C$(I)
76 NEXT:FORJ=1TOF:PRINT#1,W(J):PRINT#1,F$(J):NEXT:FORI=1TOC:FORJ=1TOF:PRINT#1,R(J,I):NEXTJ:NEXTI:CLOSE:RETURN
77 IFERL=74THENRESUME75
78 IFERL=75THENBEEP:RESUME82
79 IFERL=68 ORERL=69 ORERL=70THENCLOSE:PRINT@LL,"Can't Load";:FORI=1TO1500:NEXT:RESUME82
80 PRINT"Error"ERR"in line"ERL:STOP
81 LINEINPUT": ";SA$:PRINT@0,ES$"W
82 RETURN