10X$=SYS(CHR$(7)):R$=LEFT(X$,7):L$=RIGHT(X$,8) 20 REM****************************************************************** 30 REM CMODP CMODP CMODP CMODP CMODP CMODP 40 REM 50 REM PIECEWISE EXPECTED UTILITY 60 REM 70 REM***************************************************************** 80 DIM #1,A1(111),A2(111),A3(111) 90 OPEN R$ AS FILE 1 130 A1(0)=25 140 DIM M(9),U(9),P(3) 150 FOR I=1 TO 9:M(I)=A2(I-1):U(I)=A2(I+8):NEXT I 160 DIM V(1) 170 V(1)=A3(0) 180 IF V(1)=1 THEN 1850 190 P(3)=0 200 PRINT L$ 210 PRINT " PIECEWISE EXPECTED UTILITY" 220 PRINT 230 PRINT "THIS MODULE COMPUTES THE EXPECTED UTILITY USING THE LEAST" 240 PRINT "SQUARES UTILITIES OR ANY SPECIFIED UTILITIES AND THE" 250 PRINT "DISTRIBUTION YOU CHOOSE." 260 PRINT 270 IF U(9) <> 0 THEN 620 280 PRINT "ENTER THE NINE POINTS YOU USED IN ASSESSING YOUR UTILITY" 290 PRINT "FUNCTION AND THE CORRESPONDING UTILITIES. ENTER THE POINT" 300 PRINT "FOLLOWED BY A COMMA AND THEN THE UTILITY." 310 PRINT 320 FOR K5=1 TO 9 340 A$=" POINT # " 341PRINT A$,K5; 350 GOSUB 9050 360 IF K5=1 THEN 390 370 IF O1 <= M(K5-1) THEN 770 380 IF O2 <= U(K5-1) THEN 800 390 M(K5)=O1 400 U(K5)=O2 410 IF U(1) <> 0 THEN 830 420 NEXT K5 430 IF U(9) <> 1 THEN 860 440 PRINT L$ 450 PRINT "HERE IS WHAT YOU ENTERED." 460 PRINT " VALUE UTILITY" 470 FOR K5=1 TO 9 490A$="POINT # ####.## #.##" 491PRINT USING A$,K5,M(K5),U(K5); 500 PRINT 510 NEXT K5 520 PRINT 530 PRINT "IF YOU WANT TO REENTER TYPE '1', ELSE '0'."; 540 GOSUB 9000 550 IF O1=0 THEN 610 560 IF O1 <> 1 THEN 590 570 PRINT L$ 580 GOTO 310 590 PRINT "REENTER. MUST BE 0 OR 1." 600 GOTO 540 610 PRINT L$ 620 PRINT "TYPE THE NUMBER OF THE KIND OF PROBABILITY DISTRIBUTION YOU " 630 PRINT "WANT TO USE." 640 PRINT " 1. BETA" 650 PRINT " 2. NORMAL" 660 PRINT " 3. STUDENT'S T " 670 PRINT " 4. INVERSE CHI" 680 PRINT " 5. EXIT MODULE" 690 GOSUB 9000 700 IF O1=5 THEN 1840 710 IF O1=1 THEN 890 720 IF O1=2 THEN 1220 730 IF O1=3 THEN 1600 740 IF O1=4 THEN 1350 750 PRINT "REENTER. INPUT MUST BE 1,2,3,4 OR 5." 760 GOTO 690 770 PRINT "REENTER. YOUR POINT VALUES ARE NOT MONOTONIC INCREASING." 780 GOTO 310 790 PRINT 800 PRINT 810 PRINT "REENTER. YOUR UTILITIES ARE NOT MONOTONIC UTILITIES." 820 GOTO 310 830 PRINT 840 PRINT "REENTER. UTILITY OF FIRST POINT VALUE MUST BE 0." 850 GOTO 310 860 PRINT 870 PRINT "REENTER. UTILITY OF LAST POINT VALUE MUST BE 1." 880 GOTO 310 890 PRINT L$ 900 PRINT "BETA DISTRIBUTION" 910 PRINT 920 IF M(1)<0 THEN 940 930 IF M(9) <= 1 THEN 1060 940 PRINT 950 PRINT "BETA DISTRIBUTIONS ARE ONLY DEFINED FOR VALUES FROM 0 TO 1." 960 PRINT "SOME OF YOUR POINTS HOWEVER ARE NOT IN THIS INTERVAL." 965PRINT 970 PRINT "IF YOU WANT TO RESPECIFY THE POINTS AND UTILITIES TYPE '1'." 980 PRINT "IF YOU WANT TO RESPECIFY THE TYPE OF DISTRIBUTION TYPE '2'." 990 PRINT "IF YOU WANT TO EXIT MODULE TYPE '0'." 1000 GOSUB 9000 1010 IF O1=1 THEN 310 1020 IF O1=2 THEN 610 1030 IF O1=0 THEN 1840 1040 PRINT "REENTER. INPUT MUST BE 0,1 OR 2." 1050 GOTO 970 1060 PRINT 1070 PRINT "INPUT PARAMETER A"; 1080 GOSUB 9000 1090 IF O1>1.15 THEN 1120 1100 PRINT "REENTER. PARAMETER MUST BE GREATER THAN 1.15." 1110 GOTO 1080 1120 P(1)=O1 1130 PRINT 1140 PRINT "INPUT PARAMETER B"; 1150 GOSUB 9000 1160 IF O1>1.15 THEN 1190 1170 PRINT "REENTER. PARAMETER MUST BE GREATER THAN 1.15." 1180 GOTO 1150 1190 P(2)=O1 1200 FOR I=1 TO 9:A3(I-1)=M(I):A3(I+8)=U(I):NEXT I 1202 FOR I=1 TO 3:A3(I+17)=P(I):NEXT I 1210 CLOSE 1: CHAIN "CMODB" 1220 REM 1230 PRINT L$ 1240 PRINT "NORMAL DISTRIBUTION" 1250 PRINT 1260 PRINT "INPUT THE MEAN "; 1270 GOSUB 9000 1280 P(1)=O1 1290 PRINT 1300 PRINT "INPUT THE STANDARD DEVIATION"; 1310 GOSUB 9000 1312 IF O1>0THEN 1320 1315 PRINT"REENTER. STANDARD DEVIATION IS POSITIVE." 1317 GOTO 1310 1320 P(2)=O1 1330 FOR I=1 TO 9:A3(I-1)=M(I):A3(I+8)=U(I):NEXT I 1332 FOR I=1 TO 3:A3(I+17)=P(I):NEXT I 1340 CLOSE 1: CHAIN "CMODE" 1350 REM INVERSE CHI 1360 PRINT L$ 1370 PRINT "INVERSE CHI DISTRIBUTION" 1380 PRINT 1390 IF M(1) >= 0 THEN 1430 1400 PRINT "INVERSE CHI DISTRIBUTIONS ARE NOT DEFINED FOR NEGATIVE" 1410 PRINT "VALUES." 1420 GOTO 970 1430 PRINT 1440 PRINT "INPUT THE DEGREES OF FREEDOM"; 1450 GOSUB 9000 1460 IF O1>2 THEN 1490 1470 PRINT "REENTER. DEGREES OF FREEDOM MUST BE GREATER THAN 2." 1480 GOTO 1450 1490 P(1)=O1 1500 PRINT 1510 PRINT "INPUT THE SCALE PARAMETER."; 1520 GOSUB 9000 1530 IF O1>0 THEN 1560 1540 PRINT "REENTER. SCALE PARAMETER MUST BE POSITIVE." 1550 GOTO 1520 1560 P(2)=O1 1570 P(3)=0 1580FOR I=1 TO 9:A3(I-1)=M(I):A3(I+8)=U(I):NEXT I 1582 FOR I=1 TO 3:A3(I+17)=P(I):NEXT I 1590 CLOSE 1: CHAIN "CMODD" 1600 REM 1610 PRINT L$ 1620 PRINT "STUDENT'S T DISTRIBUTION" 1630 PRINT 1640 PRINT "INPUT THE DEGREES OF FREEDOM"; 1650 GOSUB 9000 1660 IF O1>=3 THEN 1690 1670 PRINT "REENTER. DEGREES OF FREEDOM MUST BE AT LEAST 3." 1680 GOTO 1650 1690 P(1)=O1 1700 PRINT 1710 PRINT "INPUT THE MEAN"; 1720 GOSUB 9000 1730 P(2)=O1 1740 PRINT 1750 PRINT "INPUT THE SCALE PARAMETER"; 1760 GOSUB 9000 1770 IF O1>0 THEN 1800 1780 PRINT "REENTER. SCALE PARAMETER MUST BE POSITIVE." 1790 GOTO 1760 1800 P(3)=O1 1810 FOR I=1 TO 9:A3(I-1)=M(I):A3(I+8)=U(I):NEXT I 1812 FOR I=1 TO 3:A3(I+17)=P(I):NEXT I 1820 CLOSE 1: CHAIN "CMODC" 1830 REM TTTT 1840 CLOSE 1: CHAIN "RSTRT" 1850 PRINT 1860 V(1)=A3(0) 1865 FOR I=1 TO 9:M(I)=A3(I):U(I)=A3(I+9):NEXT I 1867 FOR I=1 TO 3:P(I)=A3(I+18):NEXT I 1870 PRINT L$ 1880 PRINT "TYPE THE NUMBER OF THE OPTION YOU WANT." 1890 PRINT " 1. SPECIFY A DIFFERENT UTILITY FUNCTION" 1900 PRINT " 2. TAKE EXPECTATION WITH RESPECT TO ANOTHER DISTRIBUTION" 1910 PRINT " 3. EXIT MODULE" 1920 GOSUB 9000 1930 IF O1=3 THEN 1990 1940 IF O1=2 THEN 610 1950 PRINT 1960 IF O1=1 THEN 280 1970 PRINT "REENTER. INPUT MUST BE 1, 2, OR 3." 1980 GOTO 1920 1990 CLOSE 1: CHAIN "RSTRT" 2000 REM******************************************************************** 2010 REM 2020 REM APPPENDED GOSUBS FOLLOW 2030 REM 9000 REM--SUBROUTINE THAT DETERMINES IF RESTART HAS BEEN REQUESTED. 9005 INPUT O1 9015 IF O1=-9999 THEN 9025 9020 RETURN 9025 CLOSE 1: CHAIN "RSTRT" 9035 REM*************END ROUTINE 9050 REM--SUBROUTINE THAT DETERMINES IF RESTART HAS BEEN REQUESTED. 2 INPUTS 9055 INPUT O1,O2 9065 IF O1=-9999 THEN 9080 9070 IF O2=-9999 THEN 9080 9075 RETURN 9080 CLOSE 1: CHAIN "RSTRT" 9090 REM*************END ROUTINE 9999 END