5 ! ******************* WESS5 ************************ ! ** WRIST VERSION OF LESS5, FEBRUARY, 1975 ** 10 ! ** FROM LOUISVILLE EXP SIMULATION SYSTEM ** 15 ! ** WABASH COLLEGE: P. SPELT & J. WARDEN ** 20 ! ************************************************** 25 !OTHER PROGRAMS CHAIN HERE 30 O$=SYS(CHR$(7%)) 35 OPEN O$ FOR INPUT AS FILE 1% 40 DIM #1%,X%(48),A9(1),A1$(5)=128,A2$(24,4)=128,D2(24,12),X2(24,384) 45 ! \-----ID RECORD ------/ \-----24 MODEL RECORDS-----------/ 48 DIM M%(30) 50 CHANGE SYS(CHR$(6%)+CHR$(9%)) TO M% : O2$="WESS"+CHR$(65%+M%(2%)/2%)+".TMP" : OPEN O2$ AS FILE 2% 55 DIM #2%,A3$(4)=128,Q(3,128),I(27),S(27),X(48),O(27),D(12),N(10), P(10),K(20),V(20),T$(500)=64 60 X9=V(1) : Q0=V(2) : P5=V(3) : P6=V(4) : D2=V(5) : Q2=V(6) : M2=V(7) : N=V(8) : A8=V(9) : A9=V(10) : J=V(11) 62 IF T$(0%)="BACKUP" THEN O3%=-1% 65 DIM T1(10,50),A(10),B(24,2) 70 A0$=A1$(0%) 75 U$=" #### ########.####" 78 U1$=";! #### !" : U2$="!########.####!" 80 RANDOMIZE 990 GOTO 2000 1000 !GAUSS - MEAN=P9, STD. DEV.=P4, VALUE=P3 1010 P3=P4*SQR(-2.*LOG(RND))*COS(6.28318*RND) + P9 1060 RETURN 1100 !***SUBROUTINE TO CORRECT L1 & L2 (ROW & COLUMN INDICES). 1110 IF L2>128 THEN L2=L2-128 : L1=L1+1 : GO TO 1110 1150 RETURN 1500 !SUBROUTINE TO CALCULATE "X" EFFECT 1520 !Y=1/SQR(2*3.14159*.1667^2)*EXP(-.5(K0-.5)^2) 1530 DEF FNB(K0)=2.39365*EXP(-18*(K0-.5)^2) 1540 IF S(V9)>0THEN 1570 1550 I(V9)=RND(1)*V7 1560 GOTO 1930 1570 I(V9)=0 1580 H3=1 1590 IF K(1)=0THEN 1900 1600 IF K(1)>4 THEN 1740 1610 IF K(1)<>1 THEN 1650 1620 IF K(1)<.5 THEN 1930 1630 I(V9)=K(11)*V7*H3 1640 GOTO 1930 1650 IF K(1)<>2 THEN 1680 1660 I(V9)=-V7+K(11)*2*V7 1670 GOTO 1930 1680 IF K(1)<>3 THEN 1710 1690 H3=-1 1700 GOTO 1620 1710 IF K(1)<>4 THEN 1920 1720 I(V9)=V7-K(11)*2*V7 1730 GOTO 1930 1740 IF K(1)>6 THEN 1810 1750 IF K(1)<>5 THEN 1780 1760 I(V9)=FNB(K(11))*.45*V7*H3 1770 GOTO 1930 1780 IF K(1)<>6 THEN 1920 1790 H3=-1 1800 GOTO 1760 1810 IF K(1)<>8 THEN 1870 1820 I(V9)=K(11)^4*V7*2*H3 1830 GOTO 1930 1840 IF K(1)<> 8 THEN 1870 1850 I(V9)=2*H3*(V7-(1-K(11))^4*V7) 1860 GOTO 1930 1870 IF K(1)<>9 THEN 1920 1880 H3=-1 1890 GOTO 1820 1900 H3=-1 1910 GOTO 1850 1920 &"ERROR IN X ROUTINE" 1930 I(V9)=I(V9)+V8 1940 RETURN 2000 !***PROGRAM SEGMENT CONTAINING COCKTAIL PARTY MODEL. ! ORIGINATED BY JOHN THURMOND & PROGRAMMED BY ART ! CROMER, UNIVERSITY OF LOUISVILLE--TRANSLATED BY P.SPELT 2040 IF S(3)<>2 THEN 2080 2041 IF S(2)<>1 THEN 2080 2050 &"YOUR COMBINATION OF MEASURES NOT ALLOWED." 2060 X(4)=1 2070 GOTO 3280 2080 T0$=" SUBJ. EFFICIENCY SCORES:" : GOSUB 3990 2090 MAT I=ZER 2100 FOR L=1 TO S(1) 2110 O2=(S(3)-1)*3 2120 L1=D(9) 2130 L2=D(10)+O2+S(2) 2140 GOSUB 1100 2150 O1=Q(L1,L2) 2160 L1=D(9) 2170 L2=D(10)+6+O2+S(4) 2180 GOSUB 1100 2190 O1=O1+Q(L1,L2) 2200 L1=D(9) 2210 L2=D(10)+12+O2+S(5) 2220 GOSUB 1100 2230 O1=O1+Q(L1,L2) 2240 IF S(V9)=99 THEN 2340 2250 IF S(3)=2 THEN 2280 2260 V8=-40 2265 V7=-10 2270 GOTO 2290 2280 V8=K(11) 2290 V7=.1*(O1+V8) 2300 GOSUB 1500 2310 O1=O1+V8 2320 GOTO 2770 2330 DEF FNE(V1)=INT(V1*RND(1)+.9999) 2340 FOR J=8 TO 11 2350 I(J)=S(J) 2360 IF I(J)>0 THEN 2380 2370 I(J)=FNE(Q(2,2*J)) 2380 NEXT J 2390 IF S(3)=2 THEN 2530 2400 IFI(9)=6 THEN 2460 2410 L1=D(9) 2420 L2=D(10)+18+I(9) 2430 GOSUB 1110 2440 O1=O1+Q(L1,L2) 2450 GOTO 2500 2460 L1=D(9) 2470 L2=D(10)+23+(S(2)-1)*3+S(7) 2480 GOSUB 1110 2490 O1=O1+Q(L1,L2) 2500 IF I(10) <=4 THEN 2770 2510 O1=O1-1 2520 GOTO 2770 2530 IF S(3)=2 THEN 2590 2540 IF I(9)<=5 THEN 2590 2550 L1=D(9) 2560 L2=D(10)+32+S(7) 2570 GOSUB 1100 2580 O1=O1+Q(L1,L2) 2590 IF I(10)=3 THEN 2770 2591 IF I(10)=4 THEN 2770 2600 IF I(10)=5 THEN 2670 2610 IF I(11)<2 THEN 2700 2620 L1=D(9) 2630 L2=D(10)+35+I(11) 2640 GOSUB 1100 2650 O1=O1+Q(L1,L2) 2660 GOTO 2770 2670 L1=D(9) 2680 L2=D(10)+41+I(11) 2690 GOSUB1100 2700 O1=O1+Q(L1,L2) 2710 GOTO 2770 2720 IF I(9)<=5 THEN 2770 2730 L1=D(9) 2740 L2=D(10)+38+(I(8)-1)*3+S(7) 2750 GOSUB 1100 2760 O1=O1+Q(L1,L2) 2770 P4=2 : P9=40 ! STD. DEV., MEAN 2790 GOSUB 1000 2800 O1=O1+50+P3 2810 IF O1>=0 THEN 2840 2820 O1=ABS(RND(1)/3) 2830 GOTO 2860 2840 IF O1<98 THEN 2860 2850 O1=100-RND(1) 2860 P5=P5+O1 2870 P6=P6+O1^2 2880 PRINT USING U$,L,O1 2885 T0$=U1$+CVTF$(L) : GOSUB 4000 : T0$=U2$+CVTF$(O1) : GOSUB 4000 2890 NEXT L 2900 L1=D(7) 2910 L2=D(8)+3+S(2) 2920 GOSUB 1100 2930 O1=100+Q(L1,L2)+S(1)*2 2940 IF K(1)<>0 THEN 2950 2941 IF K(4)=1 THEN 3160 2950 IF S(V9)=99 THEN 2990 2960 IF K(1)<>0 THEN 2970 2961 IF S(V9)=0 THEN 3170 2970 IF K(1)<>0 THEN 3160 2980 GOTO 3170 2990 IF I(9)>5 THEN 3050 3000 L1=D(7) 3005 STOP 3010 L2=D(8)+6+I(9) 3020 GOSUB 1100 3030 O1=O1+Q(L1,L2) 3040 GOTO 3060 3050 O1=O1+10 3060 L1=D(7) 3070 L2=D(8)+12+I(10) 3080 GOSUB 1100 3090 O1=O1+Q(L1,L2) 3100 L1=D(7) 3110 L2=D(8)+17+S(7) 3120 GOSUB 1100 3130 O1=O1+S(1)*Q(L1,L2) 3140 O1=O1+3*S(1) 3150 GOTO 3170 3160 P1=O1+S(1)*10 3170 T0$="COST FOR THIS RUN IS"+NUM$(INT(O1))+"POINTS." : GOSUB 3990 3180 !***BACK TO WESS 3190 V(1)=X9 : V(2)=Q0 : V(3)=P5 : V(4)=P6 : V(5)=D2 : V(6)=Q2 : V(7)=M2 : V(8)=N : V(9)=A8 : V(10)=A9 :V(11)=J 3200 CLOSE 1%,2%,3% 3205 O$=SYS(CHR$(8%)+O$+"!2000") 3210 &:&".": CHAIN A0$+"WESS" 14 3990 PRINT T0$ 4000 IF O3% THEN V(0)=V(0)+1 : T$(V(0))=T0$ 4010 RETURN 9999 END