ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

72 lines
2.8 KiB

  1. 1 REM CONDPROF
  2. 5 CLEAR 1000
  3. 10 CLS:PRINT TAB(10);"CONDITIONAL PROFIT TABLE":PRINT
  4. 20 PRINT"THIS PROGRAM ASSUMES THERE ARE FROM 1 TO 6 STATES OF NATURE.
  5. 25 PRINT"THERE ARE ALSO FROM 1 TO 6 POSSIBLE ACTIONS WE CAN TAKE. IF THE
  6. 30 PRINT"STATE OF NATURE(S OF N) IS KNOWN THEN EACH ACTION LEADS TO
  7. 35 PRINT"A KNOWN MONETARY RESULT. THIS RESULT IS A CONDITIONAL PROFIT.
  8. 40 PRINT"FOR EXAMPLE, IF ACTION 3 LEADS TO A $35 PAYOFF WHEN STATE OF
  9. 45 PRINT"NATURE 4 IS TRUE THEN 35 IS THE CONDITIONAL PROFIT OF ACTION
  10. 50 PRINT"3 GIVEN STATE OF NATURE 4. THE FOLLOWING PROGRAM CONSTRUCTS
  11. 55 PRINT"A MATRIX WITH ELEMENTS BEING THE CONDITIONAL PROFITS.
  12. 60 PRINT"IN ADDITION THE PROBABILITY OF EACH S OF N IS ENTERED AND
  13. 70 PRINT"THE EXPECTED VALUE OF EACH ACTION IS COMPUTED.
  14. 95 PRINT:INPUT"PRESS ENTER TO BEGIN";Z9$
  15. 100 D=6:REM MAXIMUM DIMENSION
  16. 102 DIM AA(D+2,D+2),PP(D),EE(D)
  17. 105 P=0
  18. 110 CLS
  19. 120 INPUT"ENTER NUMBER OF POSSIBLE STATES OF NATURE";N
  20. 125 IF N<2 OR N>D OR N<>INT(N) THEN GOSUB 10000:GOTO 120
  21. 127 PRINT
  22. 130 FOR I=1 TO N
  23. 135 PRINT"ENTER PROBABILITY OF S OF N";I;:INPUT PP(I)
  24. 140 P=P+PP(I)
  25. 150 NEXT I
  26. 160 IF P=1 THEN PRINT:GOTO 200
  27. 170 PRINT:PRINT"PROBABILITIES DO NOT SUM TO 1."
  28. 175 INPUT"ENTER 1 TO STANDARDIZE,0 TO BEGIN OVER";Z9
  29. 180 IF Z9<>0 AND Z9<>1 THEN GOSUB 10000:GOTO 170
  30. 185 IF Z9=0 THEN GOTO 105
  31. 190 FOR I=1 TO N:PP(I)=PP(I)/P:NEXT:P=1
  32. 200 PRINT:INPUT"ENTER NUMBER OF POSSIBLE ACTIONS(<=5)";M
  33. 205 IF M<2 OR M>6 OR M<>INT(M) THEN GOSUB 10000:GOTO 200
  34. 210 PRINT "NO PAYOFF MORE THAN 9999.99":PRINT
  35. 220 FOR J=1 TO M
  36. 225 PRINT
  37. 230 PRINT"ACTION";J
  38. 240 FOR I=1 TO N
  39. 250 PRINT TAB(5);"PAYOFF WHEN S OF N IS";I;:INPUT AA(I,J)
  40. 260 NEXT I
  41. 270 NEXT J
  42. 300 REM COMPUTATION
  43. 310 CLS:PRINT @ 340,"COMPUTING"
  44. 400 FOR J=1 TO M
  45. 410 FOR I=1 TO N:EE(J)=EE(J)+AA(I,J)*PP(I):NEXT I:REM EXP. VAL.
  46. 420 NEXT J
  47. 495 REM PRINT
  48. 500 CLS
  49. 510 F$(1)=" ACTION # "
  50. 515 F$(2)=" #####.## "
  51. 520 F$(3)=" CONDITIONAL PAYOFFS OF ACTION GIVEN S OF N "
  52. 521 F$(4)="S N PR ACTION"
  53. 525 PRINT:INPUT"IS LINE PRINTER OUTPUT DESIRED(Y/N)";Z2$
  54. 527 IF Z2$<>"Y" AND Z2$<>"N" THEN GOSUB 10000:GOTO 525
  55. 530 PRINT F$(3):PRINT:PRINT F$(4):IF Z2$="Y" THEN LPRINT F$(3):LPRINT" ":LPRINT F$(4)
  56. 535 PRINT TAB(9);"";:FOR I=1 TO M:PRINT USING F$(1);I;:NEXT:PRINT
  57. 537 IF Z2$="Y" THEN LPRINT TAB(9);"";:FOR I=1 TO M:LPRINT USING F$(1);I;:NEXT:LPRINT" "
  58. 540 FOR I=1 TO N
  59. 550 PRINT USING "## #.## ";I,PP(I);
  60. 555 IF Z2$="Y" THEN LPRINT USING "## #.## ";I,PP(I);
  61. 560 FOR J=1 TO M:PRINT USING F$(2);AA(I,J);:NEXT:PRINT
  62. 562 IF Z2$="Y" THEN FOR J=1 TO M:LPRINT USING F$(2);AA(I,J);:NEXT:LPRINT" "
  63. 563 NEXT
  64. 564 PRINT:IF Z2$="Y" THEN LPRINT" "
  65. 565 PRINT "EXP VAL.";TAB(9);"";:
  66. 570 IF Z2$="Y" THEN LPRINT "EXP VAL.";TAB(9);"";:
  67. 575 FOR I=1 TO M:PRINT USING F$(2);EE(I);:NEXT
  68. 580 IF Z2$="Y" THEN FOR I=1 TO M:LPRINT USING F$(2);EE(I);:NEXT
  69. 600 PRINT:END
  70. 10000 PRINT"INPUT ERROR!TRY AGAIN!":FOR JJ=1 TO 300:NEXT:RETURN
  71. 10100 INPUT"PRESS ENTER TO CONTINUE";Z9$:RETURN