10 REM ===================================== 20 REM CHANCE.BAS 30 REM 40 REM By Dave Rich & James A. Thomson 50 REM Commercial Rights Reserved 60 REM 70 REM Edited for COGS Disk by J Phillips 80 REM 90 REM ===================================== 100 REM Last Modified: 12 December 1984 105 KEY OFF: SCREEN 0: WIDTH 80 110 YES=1: NO=0 120 BKG=15: REM Inverse background color for IBM-PC 130 REM ********************** 140 REM TITLE PAGE 150 REM ********************** 160 CLS: LOCATE 4,1,1,0,13 170 PRINT" ____ ___ ____ ____ " 180 PRINT" | | | | | |\ | | | " 190 PRINT" | |---| |---| | \ | | |--- " 200 PRINT" |____ | | | | | \| |____ |____ " 210 PRINT"______________________________________________________________________________" 220 PRINT" " 230 PRINT" By Dave Rich and James A. Thomson .:::::::. " 240 PRINT" .:::''''':::. " 250 PRINT" ':' ::: " 260 PRINT" ::: " 270 PRINT"ENTER: .:::' " 280 PRINT" Chance of success for each well in a program, or .:::' " 290 PRINT" Number of wells and average chance of success. ::: " 300 PRINT" ::: " 310 PRINT"CALCULATES: " 320 PRINT" Chance of at least 1 successful well in the ,:, " 325 PRINT" exploration program. ':' " 330 LOCATE 24,1,1,0,13 340 PRINT " to continue; to exit; for help.........."; 350 Q$=INKEY$: IF Q$="" THEN 350 360 IF Q$=CHR$(27) THEN 1700 370 IF Q$="H" OR Q$="h" THEN 1470 380 IF Q$<>" " THEN 350 390 REM ********************** 400 REM DATA ENTRY 410 REM ********************** 420 CLS 430 PRINT TAB(18)"CHANCE OF SUCCESS CALCULATION--DATA ENTRY" 440 PRINT: PRINT: PRINT 445 REM --- INDIVIDUAL OR AVERAGE PROBABILITIES --------- 450 PRINT "Use Overall Average Chance or by Individual Wells? (A/I)"; 460 CH$=INKEY$: IF CH$="" THEN 460 470 IF CH$="a" THEN CH$="A" 480 IF CH$="i" THEN CH$="I" 490 IF CH$<>"A" AND CH$<>"I" THEN 460 500 PRINT CH$ 510 PRINT: PRINT 515 REM --- OPTIONAL TITLE ---------- 520 INPUT "Enter a Title if Desired or Return..............",T$ 530 IF T$="" THEN GOTO 590 540 IF LEN(T$)>44 GOTO 590 550 T$ = T$+" " 560 IF LEN(T$)>44 GOTO 590 570 T$ = " "+T$ 580 GOTO 540 :REM Center by padding spaces one at a time 585 REM --- AVERAGE PROBABILITY, NO. WELLS --- 590 PRINT: PRINT 600 IF CH$="I" THEN GOTO 640 610 INPUT "Chance of Success per Well (percent)....",C$ 615 C = VAL(C$) 620 IF C > 100 THEN GOTO 590 630 IF C < 0 THEN GOTO 590 640 INPUT "Number of Wells.........................",W$ 645 W = VAL(W$) 650 REM ********************** 660 REM SCREEN OR PRINTER 670 REM ********************** 680 CLS: LOCATE 12,1,1,0,13 690 PRINT "Send results to screen or printer and screen? (S/P)........."; 700 P$=INKEY$: IF P$="" THEN 700 710 IF P$="s" THEN P$="S" 720 IF P$="p" THEN P$="P" 730 IF P$<>"S" AND P$<>"P" THEN 700 740 PRINT P$ 750 OPEN "SCRN: " FOR OUTPUT AS #1 760 IF P$ = "S" THEN GOTO 870 770 OPEN "LPT1: " FOR OUTPUT AS #2 780 REM --- PRINTER PROMPT --------- 790 CLS: PRINT "READY TO PRINT.": PRINT " Adjust Paper." 800 PRINT " Turn on Printer.": PRINT " Press a Key to Continue....."; 810 Q$ = INKEY$: IF Q$ = "" THEN 810 820 PRINT Q$ 830 PRINT #2, CHR$(27);"E";: REM EPSON command for emphasized type 840 REM ********************** 850 REM DISPLAY RESULTS 860 REM ********************** 870 CLS: LOCATE 3,1 880 PRINT #1, "=============================================" 890 PRINT #1, " CHANCE OF SUCCESS CALCULATION " 900 IF T$="" GOTO 920 910 PRINT #1, T$ 920 PRINT #1, "=============================================" 930 PRINT #1, " " 940 PRINT #1, "DATA ENTERED" 950 IF CH$="I" THEN GOTO 970 960 PRINT #1, " Chance of Success per Well .............";C;"%" 970 PRINT #1, " Number of Wells.........................";W 980 PRINT #1, " " 990 PRINT #1, "CALCULATED RESULTS" 1000 PRINT #1, " Well Number % Chance of Success" 1010 PRINT #1, " This Well Whole Project" 1020 PRINT #1, " =======================================" 1030 IF P$="S" THEN GOTO 1190 1040 PRINT #2, "=============================================" 1050 PRINT #2, " CHANCE OF SUCCESS CALCULATION " 1060 IF T$="" GOTO 1080 1070 PRINT #2, T$ 1080 PRINT #2, "=============================================" 1090 PRINT #2, " " 1100 PRINT #2, "DATA ENTERED" 1110 IF CH$="I" THEN GOTO 1130 1120 PRINT #2, " Chance of Success per Well .............";C;"%" 1130 PRINT #2, " Number of Wells.........................";W 1140 PRINT #2, " " 1150 PRINT #2, "CALCULATED RESULTS" 1160 PRINT #2, " Well Number % Chance of Success" 1170 PRINT #2, " This Well Whole Project" 1180 PRINT #2, " =======================================" 1190 R = 1 1200 FOR X = 1 TO W 1210 IF CH$ = "A" THEN GOTO 1290 1220 PRINT #1, USING " #### ";X; 1230 INPUT; C$ 1235 C = VAL(C$) 1240 IF C > 100 THEN GOTO 1230 1250 IF C < 0 THEN GOTO 1230 1260 R = R*(1-C/100) 1270 IF R < .0001 THEN R = .0001 1280 GOTO 1340 1290 R = R*(1-C/100) 1300 IF R < .0001 THEN R = .0001 1310 PRINT #1, USING " #### ### ##.##";X,C,100*(1-R) 1320 IF P$ ="P" THEN PRINT #2, USING " #### ### ##.##";X,C,100*(1-R) 1330 GOTO 1360 1340 PRINT #1, USING " ##.##";100*(1-R) 1350 IF P$ ="P" THEN PRINT #2, USING " #### ### ##.##";X,C,100*(1-R) 1360 NEXT 1400 IF P$="P" THEN LPRINT CHR$(12) 1410 GOSUB 1630 :REM Pause 1420 CLOSE #1: CLOSE #2 1430 GOTO 160 1440 REM ********************** 1450 REM HELP SCREEN 1460 REM ********************** 1470 CLS: PRINT TAB(34)"C H A N C E" 1480 PRINT 1490 PRINT 1500 PRINT 1510 PRINT "This program calculates the chance of success for a drilling program given" 1520 PRINT "the chance of success per well and the number of wells. ('Success' in this" 1530 PRINT "case is defined to be one discovery.)" 1540 PRINT 1550 PRINT 1560 PRINT "It uses the concept of binomial probability in which the chance of failure" 1570 PRINT "is repeatedly multiplied by itself. One minus the fractional chance of" 1580 PRINT "failure equals the chance of success:" 1582 PRINT 1584 PRINT 1586 PRINT " PROBABILITY __ /| ( Well 1 ) ( Well 2 ) ( Well 3 )" 1588 PRINT " OF __ | -- ( failure ) X ( failure ) X ( failure ) ..." 1590 PRINT " SUCCESS _|_ (probability) (probability) (probability)" 1592 GOSUB 1630 1600 REM --- RETURN TO PROGRAM ----- 1610 GOTO 160 1620 REM --- PAUSE SUBROUTINE ----- 1630 LOCATE 24,1,1,0,13 1640 PRINT "Press a key to continue....."; 1650 Q$ = INKEY$: IF Q$ = "" THEN 1650 1660 RETURN 1670 REM ********************** 1680 REM EXIT ROUTINE 1690 REM ********************** 1700 CLS: PRINT TAB(28) "E X I T P R O G R A M" 1710 LOCATE 8,20: PRINT "EXIT TO:" 1720 M$(1) = " 1. MENU, to run another program. " 1730 M$(2) = " 2. BASIC " 1740 M$(3) = " 3. MS-DOS System level " 1750 M$(4) = " 4. CANCEL Exit Command " 1760 FOR Y = 1 TO 4: LOCATE 2*Y + 8, 20: PRINT M$(Y): NEXT Y 1770 LOCATE 24,1: PRINT "Enter number or use arrows to make selection; then press "; 1780 LOCATE ,,0: REM Cursor OFF 1790 Y=1: MVE=NO 1800 WHILE Q$ <> CHR$(13) 1810 LOCATE 2*Y + 8, 20: COLOR 0,BKG: PRINT M$(Y): COLOR 7,0 1820 Q$=INKEY$: IF Q$="" THEN 1820 1830 IF LEN(Q$) = 2 AND ASC(RIGHT$(Q$,1)) = 72 THEN MVE=YES: X=Y-1: IF X=0 THEN X=4 1840 IF LEN(Q$) = 2 AND ASC(RIGHT$(Q$,1)) = 80 THEN MVE=YES:X=Y+1: IF X=5 THEN X=1 1850 IF Q$ >="1" AND Q$ <= "4" THEN X=VAL(Q$): MVE=YES 1860 IF MVE=YES THEN LOCATE 2*Y + 8, 20: PRINT M$(Y): Y=X: MVE=NO 1870 WEND 1880 LOCATE ,,1: REM Cursor ON 1890 CLS 1900 IF Y = 1 THEN LOCATE 12,1: PRINT "Loading.....MENU": RUN "MENU" 1910 IF Y = 2 THEN END 1920 IF Y = 3 THEN SYSTEM 1930 IF Y = 4 THEN 160: REM Title Page 1940 CLS: END