home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / pg / pggene / decide.ba < prev    next >
Text File  |  2006-10-19  |  4KB  |  84 lines

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