mirror of
https://github.com/PDP-10/stacken.git
synced 2026-03-01 09:21:15 +00:00
293 lines
7.5 KiB
QBasic
293 lines
7.5 KiB
QBasic
|
||
100 REM MALAR -- SIMULATION OF ATTACK PHASE TREATMENT
|
||
110 REM OF A MALARIA EPIDEMIC
|
||
120 REM BASED ON COSTS SUPPLIED THROUGH THE W.H.O.
|
||
130 REM ORIGINAL CONCEPT - A. FRISHMAN
|
||
140 REM DEVELOPED BY - J. FRIEDLAND
|
||
150 REM PROGRAMMING - J. FRIEDLAND, S. HOLLANDER
|
||
160 REM COPYRIGHT 1972 - STATE UNIVERSITY OF NEW YORK
|
||
170 REM LATEST REVISION 12/6/72
|
||
200 PRINT "DO YOU REQUIRE INSTRUCTIONS FOR MALAR (1=YES, 0=NO)";
|
||
210 INPUT Q
|
||
220 IF Q=0 THEN 400
|
||
230 IF Q<>1 THEN 200
|
||
240 PRINT "CURRENT CONDITIONS:"
|
||
245 PRINT " APPROX. POP. OF AREA:100000"
|
||
250 PRINT " APPROX. NO. ILL WITH MALARIA:25000"
|
||
255 PRINT " APPROX. NO. DEATHS/YR DUE TO MALARIA:1000"
|
||
260 PRINT
|
||
265 PRINT "TO CORRECT THIS SITUATION YOU CAN:"
|
||
270 PRINT " ISOLATE THOSE ILL IN QUARANTINE HOSPITALS"
|
||
275 PRINT " ADMINISTER DRUGS TO THOSE ILL"
|
||
280 PRINT " APPLY PESTICIDES TO KILL MOSQUITOES"
|
||
285 PRINT " GIVE PREVENTIVE DRUGS TO THOSE STILL HEALTHY"
|
||
290 PRINT
|
||
295 PRINT "THESE ARE THE APPROX. COSTS:"
|
||
300 PRINT " FIELD HOSPITAL OF 20 BEDS: $2000 PER YEAR"
|
||
305 PRINT " DRUG TREATMENT FOR ILL: $2 PER PERSON FOR 1 YR."
|
||
310 PRINT " FULL ANTI-MOSQUITO SPRAY:$ 75000 FOR 1 YEAR"
|
||
315 PRINT " WHEN USING DDT, OTHER SPRAYS HIGHER COST"
|
||
320 PRINT " PREVENTIVE DRUG EFFECTIVE 1 YR.:72 CENTS PER PERSON"
|
||
330 PRINT
|
||
335 PRINT "CONSULT YOUR STUDENT MANUAL FOR FURTHER INFORMATION"
|
||
|
||
|
||
400 PRINT"YOU MAY USE MALAR EITHER WITH A BUDGET (VERSION 1)"
|
||
410 PRINT"OR WITHOUT A BUDGET (VERSION 2). VERSION NUMBER";
|
||
415 INPUTZ9
|
||
420 IF(Z9-1)*(Z9-2)<>0THEN400
|
||
425 RANDOMIZE
|
||
430 DEF FNR(A)=COS(6.283*RND(0))*SQR(-2*LOG(RND(0)))
|
||
435 DIM Y(4,5)
|
||
440 LET N=0
|
||
445 READS2,S4
|
||
450 READ S1,S5,S6,E1,E2,E3,E4
|
||
455 FOR Z=1TO4
|
||
456 FORX=1TO5
|
||
460 LETY(Z,X)=0
|
||
462 NEXTX
|
||
465 NEXTZ
|
||
470 IFN<>0THEN495
|
||
475 READC7,C6,G
|
||
480 DATA 0,0,0,0,0,0,0,0,0,5E5,5E5,0
|
||
485 IF Z9=1THEN495
|
||
490 LETC6=0
|
||
495 LETC8=C6
|
||
500 PRINT
|
||
505 PRINT"YOUR OBJECTIVE IS TO MINIMIZE MALARIA FOR THE NEXT"
|
||
510 IF Z9=2THEN525
|
||
515 PRINT"5 YEARS, WITH A TOTAL FUND OF ";C6/1E3;" THOUSAND DOLLARS"
|
||
520 GOTO 530
|
||
525 PRINT"FIVE YEARS."
|
||
530 GOSUB 1675
|
||
535 PRINT" (HOSPITALS)"
|
||
540 PRINT
|
||
545 LET Z=1
|
||
550 PRINT"HOW MANY FIELD HOSPITALS DO YOU INTEND TO USE";
|
||
555 INPUTR
|
||
560 IFR<=0THEN605
|
||
565 IFR<>INT(R)THEN550
|
||
570 GOSUB 1515
|
||
575 LETY1=Y
|
||
580 LETC1=INT(R*Y*2000)
|
||
585 LETC=C1
|
||
590 GOSUB1585
|
||
595 IFC=.5THEN550
|
||
600 GOTO610
|
||
605 LETC1=0
|
||
610 GOSUB1675
|
||
615 PRINT" (DRUGS FOR SICK)"
|
||
620 PRINT
|
||
625 LETZ=2
|
||
630 PRINT"HOW MANY FULL TREATMENTS OF DRUGS"
|
||
635 PRINT"FOR THE ILL, SHOULD BE ORDERED PER YEAR";
|
||
640 INPUT P
|
||
645 IFP<=0THEN690
|
||
650 IFP<>INT(P)THEN630
|
||
655 GOSUB1515
|
||
660 LETY2=Y
|
||
665 LETC2=INT(2*P*Y)
|
||
670 LETC=C2
|
||
675 GOSUB1585
|
||
680 IFC=.5THEN630
|
||
685 GOTO695
|
||
690 LETC2=0
|
||
695 GOSUB1675
|
||
700 PRINT" (MOSQUITOES)"
|
||
705 PRINT
|
||
710 LETL3=.75
|
||
715 LETZ=3
|
||
720 PRINT"WHAT PERCENTAGE OF MOSQUITOES DO YOU WANT TO ELIMINATE";
|
||
725 INPUTV
|
||
730 IFV<=0THEN825
|
||
735 IFABS(V-50)>50THEN720
|
||
740 LETV=V/100
|
||
745 PRINT"WHAT PESTICIDE WILL YOU USE"
|
||
750 PRINT"1=DDT 2=MALATHION 3=PROPOXUR"
|
||
755 INPUT Q
|
||
760 IFQ=1THEN790
|
||
765 IFQ<>2THEN780
|
||
770 LETL3=L3*3.08
|
||
775 GOTO790
|
||
780 IFQ<>3THEN750
|
||
785 LETL3=L3*8.5
|
||
790 GOSUB1515
|
||
795 LETY3=Y
|
||
800 LETC3=INT(L3*1E5*V*Y)
|
||
805 LETC=C3
|
||
810 GOSUB1585
|
||
815 IFC=.5THEN710
|
||
820 GOTO830
|
||
825 LETC3=0
|
||
830 GOSUB1675
|
||
835 PRINT" (PREVENTIVE DRUGS)"
|
||
840 PRINT
|
||
845 LETZ=4
|
||
850 PRINT"HOW MANY DOSES OF PREVENTIVE DRUGS, FOR THOSE"
|
||
855 PRINT"HEALTHY, DO YOU WANT TO ORDER PER YEAR";
|
||
860 INPUT H
|
||
865 IFH<=0THEN910
|
||
870 IFH<>INT(H)THEN850
|
||
875 GOSUB1515
|
||
880 LETY4=Y
|
||
885 LETC4=INT(.72*H*Y)
|
||
890 LETC=C4
|
||
895 GOSUB1585
|
||
900 IFC=.5THEN850
|
||
905 GOTO915
|
||
910 LETC4=0
|
||
915 REM CALC. SECT.
|
||
920 PRINT
|
||
925 PRINT
|
||
930 IFN<>0THEN955
|
||
935 LETQ=FNR(0)
|
||
940 LETM=2.5E4+Q*SQR(4500)
|
||
945 LETF=.04*M+Q*SQR(.04*M)
|
||
950 PRINT"USING YOUR PLAN:"
|
||
955 PRINT"YEAR","NO. SICK","NO. DEATHS DUE TO MALARIA"
|
||
960 PRINT"----","--------","-------------------------"
|
||
965 PRINTN,INT(M+.5),INT(F+.5)
|
||
970 FORX=1TO5
|
||
975 IFY(3,X)<>1THEN995
|
||
980 LETV1=V*.8
|
||
985 LET E3=E3+V1
|
||
990 GOTO1000
|
||
995 LETV1=0
|
||
1000 LETS5=.25*S4+S5
|
||
1005 LETS4=INT(.75*S4+.5)
|
||
1010 IFY(4,X)<>1THEN1050
|
||
1015 LETH1=(H+S4)/1E5
|
||
1020 IFH1<1THEN1035
|
||
1025 LETH1=1
|
||
1030 LETS4=S4+H-1E5
|
||
1035 LETH1=H1*.6
|
||
1040 LETE4=E4+H1
|
||
1045 GOTO1055
|
||
1050 LETH1=0
|
||
1055 LETQ=FNR(0)
|
||
1060 LETM=2.5E4*(1-V1)*(1-H1)+Q*SQR(4500)
|
||
1065 LET S6=.25*S2+S6
|
||
1070 LETS2=INT(.75*S2+.5)
|
||
1075 IFY(2,X)<>1THEN1115
|
||
1080 LETP1=(P+S2)/M
|
||
1085 IFP1<1THEN1100
|
||
1090 LETP1=1
|
||
1095 LETS2=S2+P-M
|
||
1100 LETP1=P1*.85
|
||
1105 LETE2=E2+P1
|
||
1110 GOTO1120
|
||
1115 LETP1=0
|
||
1120 IFY(1,X)<>1THEN1190
|
||
1125 LETR3=20*R
|
||
1130 IFY(2,X)<>1THEN1155
|
||
1135 IFP+S2>50*RTHEN1150
|
||
1140 LETR3=P+S2+R
|
||
1145 GOTO1155
|
||
1150 LETR3=51*R
|
||
1155 LETR1=R3/M
|
||
1160 IFR1<=1THEN1175
|
||
1165 LETR1=1
|
||
1170 LETS1=S1+1
|
||
1175 LETR1=R1*.97
|
||
1180 LET E1=E1+R1
|
||
1185 GOTO1195
|
||
1190 LETR1=0
|
||
1195 IFR1>P1THEN1205
|
||
1200 LET R1=P1
|
||
1205 LETM=(1-R1)*M
|
||
1210 LETF=(.04-.036*P1)*M+Q*SQR((.04-.036*P1)*M)
|
||
1215 IFF>0THEN1225
|
||
1220 LET F=0
|
||
1225 LETG=G+INT(F+.5)
|
||
1230 PRINTX+N,INT(M+.5),INT(F+.5)
|
||
1235 NEXTX
|
||
1240 REM EVAL.SECT.
|
||
1245 PRINT
|
||
1250 PRINT"OVER YOUR ";N+5;" YEAR TREATMENT PROGRAM"
|
||
1255 PRINTG;" DEATHS DUE TO MALARIA HAVE BEEN RECORDED"
|
||
1260 PRINT
|
||
1265 PRINT"DO YOU WISH AN EVALUATION (1=YES, 0=NO)";
|
||
1270 INPUT Q
|
||
1275 IFQ=0THEN1410
|
||
1280 IFQ<>1THEN1260
|
||
1285 PRINT
|
||
1290 PRINT
|
||
1295 PRINT"TOTAL COST ";C8-C6;" DOLLARS"
|
||
1300 IFC1+C2+C3+C4=0THEN1410
|
||
1305 PRINT"PROGRAM","COST","YEARS","EFFECTIVENESS (PCT.)"
|
||
1310 PRINT"-------","----","-----","-------------------"
|
||
1315 IFC1=0THEN1325
|
||
1320 PRINT"HOSPITALS",C1,Y1,INT(E1*1000/Y1)/10
|
||
1325 IF C2=0THEN1335
|
||
1330 PRINT"DRUG TREAT",C2,Y2,INT(E2*1000/Y2)/10
|
||
1335 IFC3=0THEN1345
|
||
1340 PRINT"MOSQ SPRAY",C3,Y3,INT(E3*1000/Y3)/10
|
||
1345 IFC4=0THEN1355
|
||
1350 PRINT"PREVENT DRUG",C4,Y4,INT(E4*1000/Y4)/10
|
||
1355 IFS1+S2+S4+S5+S6=0THEN1410
|
||
1360 PRINT
|
||
1365 PRINT"SURPLUS ORDERING:"
|
||
1370 IFS1=0THEN1380
|
||
1375 PRINTS1;" YEARS SURPLUS IN SOME UNOCCUPIED BEDS"
|
||
1380 IFS2+S6=0THEN1395
|
||
1385 PRINTINT(S2+S6);" TREATMENTS OF DRUGS FOR SICK UNUSED"
|
||
1390 PRINT"OF THESE ";INT(.75*S2+.5);" DOSES ARE STILL USABLE"
|
||
1395 IFS4+S5=0THEN1410
|
||
1400 PRINTINT(S4+S5);" DOSES OF PREVENTIVE DRUG NOT ADMINISTERED"
|
||
1405 PRINT"OF THESE ";INT(S4*.75+.5);" DOSES ARE STILL USABLE"
|
||
1410 PRINT
|
||
1415 PRINT"DO YOU WANT TO (1) TAKE THE NEXT FIVE YEARS"
|
||
1420 PRINT"OR (2) START OVER OR (3) END. TYPE NUMBER";
|
||
1425 INPUTQ
|
||
1430 IFQ=1THEN1455
|
||
1435 IFQ=3THEN1700
|
||
1440 IFQ<>2THEN1410
|
||
1445 RESTORE
|
||
1450 GOTO440
|
||
1455 IFZ9=2THEN1495
|
||
1460 IFC6<=0THEN1475
|
||
1465 PRINT"YOUR FUND HAS BEEN CREDITED WITH YOUR CURRENT"
|
||
1470 PRINT"BALANCE OF $";C6
|
||
1475 LETC6=C6+C7
|
||
1480 LETN=N+5
|
||
1485 RESTORE
|
||
1490 GOTO450
|
||
1495 LETN=N+5
|
||
1500 LETC6=C8
|
||
1505 RESTORE
|
||
1510 GOTO450
|
||
1515 PRINT
|
||
1520 PRINT"FOR THIS TREATMENT:"
|
||
1525 IFC<>0THEN1540
|
||
1530 PRINT"INDICATE YEARS TO BE USED BY TYPING, AFTER THE YEAR,"
|
||
1535 PRINT"1=YES OR 0=NO"
|
||
1540 LETY=0
|
||
1545 FORX=1TO5
|
||
1550 PRINT"YEAR";X+N;
|
||
1555 INPUTY(Z,X)
|
||
1560 IF Y(Z,X)=0THEN1575
|
||
1565 IFY(Z,X)<>1THEN1535
|
||
1570 LET Y=Y+1
|
||
1575 NEXTX
|
||
1580 RETURN
|
||
1585 PRINT"COST OF THIS TREATMENT: $";C
|
||
1590 IFZ9=1THEN1610
|
||
1595 LETC8=C8+C
|
||
1600 PRINT"TOTAL MONEY ALREADY ALLOCATED FOR ";N+5;" YEARS $";C8
|
||
1605 RETURN
|
||
1610 LETC6=C6-C
|
||
1615 IFC6<0THEN1630
|
||
1620 PRINT"THIS LEAVES A BALANCE OF ";C6;" DOLLARS"
|
||
1625 RETURN
|
||
1630 LETC6=C6+C
|
||
1635 LETC=.5
|
||
1640 PRINT"YOUR LAST ITEM OVERSPENT YOUR BUDGET"
|
||
1645 PRINT"RESET THIS EXPENDITURE SO IT'S WITHIN THE $";C6;" REMAINING"
|
||
1650 RETURN
|
||
1675 PRINT
|
||
1680 FOR X=1TO49
|
||
1685 PRINT"-";
|
||
1690 NEXTX
|
||
1695 RETURN
|
||
1700 END
|
||
*U*+9 |