mirror of
https://github.com/PDP-10/stacken.git
synced 2026-03-01 09:21:15 +00:00
202 lines
4.7 KiB
QBasic
202 lines
4.7 KiB
QBasic
|
|
100 REM POLICY - NATIONAL POLICY FORMATION
|
|
110 REM CHANGES 18 INDICATORS IN RESPONSE TO WHICH OF THE
|
|
120 REM 14 PROPOSITIONS ARE PASSED.
|
|
130 REM COPYRIGHT 1972, STATE UNIVERSITY OF NEW YORK
|
|
140 REM S(X): VALUE OF INDICATOR X AT BEGINNING OF PERIOD
|
|
150 REM E(X): VALUE OF INDICATOR X AT END OF PERIOD
|
|
160 REM W(X): NUMBER OF POINTS TO BE USED BY GROUP X
|
|
170 REM Y(X): NUMBER OF MINUS POINTS TO BE USED BY GROUP X
|
|
180 REM Q(X): BETWEEN LINES 650 AND 1190 Q(X) IS THE NUMBER OF POINTS
|
|
190 REM FOR PROPOSITION X. AT OTHER TIMES Q(X) =
|
|
200 REM 1, IF PROPOSITION X PASSED
|
|
210 REM 0, IF PROPOSITION X DID NOT PASS
|
|
220 REM DEVELOPED BY D. KLASSEN AND J. MCGRATH
|
|
230 REM PROGRAMMED BY S. HOLLANDER AND L. OBERLANDER
|
|
240 REM LATEST REVISION 8-27-72
|
|
250 DIME(18),S(18),Q(14),W(6),Y(6)
|
|
260 FORZ=1TO18
|
|
270 READE(Z)
|
|
280 LETS(Z)=E(Z)
|
|
290 NEXTZ
|
|
300 PRINT
|
|
310 DATA 976.5,197,80,18.2,3,82
|
|
315 DATA 54,3,140,4.5,25,8.2
|
|
320 DATA 30,116.3,142,5568,20,0
|
|
330 PRINT"HOW MANY PERIODS";
|
|
340 INPUTP1
|
|
350 LETP2=0
|
|
360 PRINT
|
|
370 PRINT
|
|
380 IFP2>0THEN410
|
|
390 PRINT"INITIAL AMOUNTS:"
|
|
400 GOTO420
|
|
410 PRINT"END OF PERIOD";P2
|
|
420 PRINT
|
|
430 PRINT
|
|
440 PRINT"INDICATOR","CURRENTLY","INCREASE","PCT. INC."
|
|
450 FORZ=1TO18
|
|
460 LETD1=INT(100*(E(Z)-S(Z)))/100
|
|
470 IFS(Z)=0THEN490
|
|
480 LETD2=100*D1/S(Z)
|
|
490 LETD2=INT(100*D2)/100
|
|
500 PRINTZ+100,INT(100*E(Z))/100;
|
|
510 IFP2=0THEN530
|
|
520 PRINT" ",D1,D2;
|
|
530 PRINT
|
|
540 NEXTZ
|
|
550 PRINT
|
|
560 PRINT
|
|
570 LETP2=P2+1
|
|
580 FORZ=1TO18
|
|
590 LETS(Z)=E(Z)
|
|
600 NEXTZ
|
|
610 FORZ=1TO6
|
|
620 LETW(Z)=100
|
|
630 LETY(Z)=50
|
|
640 NEXTZ
|
|
650 FORZ=1TO14
|
|
660 LETQ(Z)=0
|
|
670 NEXTZ
|
|
680 PRINT"TAPE?(1=YES,0=NO)";
|
|
690 INPUTZ
|
|
700 IFZ=1THEN1900
|
|
710 IFP2>P1THEN2040
|
|
720 FORZ=1TO6
|
|
730 PRINT
|
|
740 IFZ>1THEN770
|
|
750 PRINT"BUSINESS"
|
|
760 GOTO900
|
|
770 IFZ>2THEN800
|
|
780 PRINT"LABOR"
|
|
790 GOTO900
|
|
800 IFZ>3THEN830
|
|
810 PRINT"CIVIL RIGHTS"
|
|
820 GOTO900
|
|
830 IFZ>4THEN860
|
|
840 PRINT"MILITARY"
|
|
850 GOTO900
|
|
860 IFZ>5THEN890
|
|
870 PRINT"NATIONALISTS"
|
|
880 GOTO900
|
|
890 PRINT"INTERNATIONALISTS"
|
|
900 PRINT
|
|
910 PRINT"TOTAL POINTS REMAINING : ";W(Z)
|
|
920 IFY(Z)<=W(Z)THEN940
|
|
930 LETY(Z)=W(Z)
|
|
940 PRINT"MAXIMUM MINUS POINTS : ";Y(Z)
|
|
950 PRINT"INPUT POLICY NO.,POINTS"
|
|
960 PRINT
|
|
970 INPUTA,B
|
|
980 LETA=INT(A)
|
|
990 LETB=INT(B)
|
|
1000 IFA>14THEN910
|
|
1010 IFA=0THEN1150
|
|
1020 IFB=0THEN910
|
|
1030 IFA>0THEN1080
|
|
1040 PRINT"TAPE?(1=YES,0=NO)";
|
|
1050 INPUTG
|
|
1060 IFG=1THEN1900
|
|
1070 GOTO910
|
|
1080 IFABS(B)>W(Z)THEN910
|
|
1090 IFB>=0THEN1120
|
|
1100 IFABS(B)>Y(Z)THEN910
|
|
1110 LETY(Z)=Y(Z)+B
|
|
1120 LETQ(A)=Q(A)+B
|
|
1130 LETW(Z)=W(Z)-ABS(B)
|
|
1140 IFW(Z)>0THEN970
|
|
1150 NEXTZ
|
|
1160 PRINT
|
|
1170 PRINT"PASSED : ";
|
|
1180 LETZ2=0
|
|
1190 FORZ=1TO14
|
|
1200 IFQ(Z)<101THEN1250
|
|
1210 PRINTZ;
|
|
1220 LETZ2=1
|
|
1230 LETQ(Z)=1
|
|
1240 GOTO1260
|
|
1250 LETQ(Z)=0
|
|
1260 NEXTZ
|
|
1270 IFZ2>0THEN1300
|
|
1280 PRINT"NONE"
|
|
1290 GOTO1600
|
|
1300 PRINT
|
|
1310 PRINT
|
|
1320 FORZ=1TO14
|
|
1330 IFQ(Z)<>0THEN1370
|
|
1340 READA,B
|
|
1350 IFA<>0THEN1340
|
|
1360 GOTO1410
|
|
1370 READA,B
|
|
1380 IFA=0THEN1410
|
|
1390 LETE(A)=E(A)+B
|
|
1400 GOTO1370
|
|
1410 NEXTZ
|
|
1420 RESTORE
|
|
1430 FORZ=1TO9
|
|
1440 READA,B
|
|
1450 NEXTZ
|
|
1460 DATA1,15.2,0,0
|
|
1470 DATA1,10,8,2,9,2.25,0,0
|
|
1480 DATA1,12,2,5,9,2.25,12,-1.5,13,-5,16,-100,0,0
|
|
1490 DATA2,4,3,1,12,2,13,3,0,0
|
|
1500 DATA1,12,2,3,6,1,7,1,10,-.1,11,-.05,12,-1,13,-3,16,-50,0,0
|
|
1510 DATA1,8,2,2,3,1,6,.5,10,-.1,14,3,0,0
|
|
1520 DATA2,1,16,-100,0,0
|
|
1530 DATA1,24,2,11,4,.3,6,3,11,-.05,13,-.1,16,-500,17,-2,0,0
|
|
1540 DATA1,9,2,8,4,-1,8,1,10,-.05,11,-2,12,-1,13,-.05,16,-300,17,-3,0,0
|
|
1550 DATA1,-8,2,-10,3,-30,5,1,6,-4,7,4,10,.25,13,1,14,-2,0,0
|
|
1560 DATA1,2,2,.5,6,-2,7,5,8,-1,14,1,15,-15,17,-1,0,0
|
|
1570 DATA1,4,2,2,3,2,6,.5,15,3,0,0
|
|
1580 DATA1,10,6,5,7,3,14,-4,0,0
|
|
1590 DATA1,3,2,1,5,1,0,0
|
|
1600 IFE(1)<>S(1)THEN1620
|
|
1610 LETE(1)=1.04*E(1)
|
|
1620 IFE(2)<>S(2)THEN1640
|
|
1630 LETE(2)=E(2)+1
|
|
1640 IFE(3)<>S(3)THEN1660
|
|
1650 LETE(3)=.99*E(3)
|
|
1660 IFE(4)<>S(4)THEN1680
|
|
1670 LETE(4)=E(4)*.99
|
|
1680 IFE(5)<>S(5)THEN1700
|
|
1690 LETE(5)=.9*E(5)
|
|
1700 IFE(8)<>S(8)THEN1720
|
|
1710 LETE(8)=1.01*E(8)
|
|
1720 IFS(1)=0THEN1750
|
|
1730 IF(E(1)-S(1))/S(1)<.04THEN1750
|
|
1740 LETE(10)=1.015*E(10)
|
|
1750 IFE(11)<>S(11)THEN1770
|
|
1760 LETE(11)=.99*E(11)
|
|
1770 IFE(12)<>S(12)THEN1810
|
|
1780 IFS(1)=0THEN1810
|
|
1790 IF(E(1)-S(1))/S(1)<.04THEN1810
|
|
1800 LETE(12)=1.03*E(12)
|
|
1810 IFE(13)<>S(13)THEN1830
|
|
1820 LETE(13)=.98*E(13)
|
|
1830 IFE(14)<>S(14)THEN1850
|
|
1840 LETE(14)=1.04*E(14)
|
|
1850 IFE(15)<>S(15)THEN1870
|
|
1860 LETE(15)=1.1*E(15)
|
|
1870 IFE(16)<>S(16)THEN360
|
|
1880 LETE(16)=1.18*E(16)
|
|
1890 GOTO360
|
|
1900 PRINT
|
|
1910 PRINT" "
|
|
1920 FORL=0TO12STEP6
|
|
1930 IFL>0THEN1960
|
|
1940 PRINT"310";
|
|
1950 GOTO2000
|
|
1960 IFL>6THEN1990
|
|
1970 PRINT"315";
|
|
1980 GOTO2000
|
|
1990 PRINT"320";
|
|
2000 PRINT"DATA";
|
|
2005 FORZ=L+1TOL+5
|
|
2010 PRINTE(Z);",";
|
|
2015 NEXTZ
|
|
2020 PRINTE(L+6)
|
|
2025 NEXTL
|
|
2030 PRINT
|
|
2035 PRINT
|
|
2040 END
|
|
*U*=
|
|
|
|
# |