1  REM ****  HP BASIC PROGRAM LIBRARY  ******************************
2  REM
3  REM       GVOTE: COMMITTEE CHOICE ANALYSIS
4  REM
5  REM       36550 REV A
6  REM
7  REM ****  CONTRIBUTED PROGRAM  ***********************************
8  REM
9  REM PROGRAM CONVERSION DONE BY * JOHN H. BARLOW *
39  DIM A$[10]
40  PRINT "DO YOU WANT INSTRUCTIONS";
41  INPUT A$
42  IF A$[1,1]="Y" THEN 1000
43  PRINT 
50  DIM S[20,100],V[20,20],C[20]
55  N1=N2=0
100  PRINT "HOW MANY ALTERNATIVES (<=20)";
102  INPUT I9
110  PRINT "HOW MANY MEMBERS (<=100)";
112  INPUT J9
120  PRINT "HOW MANY TRIALS";
122  INPUT T9
200  FOR T=1 TO T9
210  REM -- S(I,J) IS THE SCORE FOR ALTERNATIVE I AND VOTRER J
220  FOR I=1 TO I9
222  FOR J=1 TO J9
230  S[I,J]=RND(1)
240  NEXT J
242  NEXT I
300  REM -- V(I1,I2) IS THE VOTE ON I1 OVER I2
310  FOR I1=1 TO I9
312  FOR I2=I1 TO I9
320  V[I1,I2]=0
325  IF I1=I2 THEN 390
330  FOR J=1 TO J9
335  IF S[I1,J]<S[I2,J] THEN 350
340  V[I1,I2]=V[I1,I2]+1
342  GOTO 360
350  V[I1,I2]=V[I1,I2]-1
360  NEXT J
370  V[I2,I1]=-V[I1,I2]
390  NEXT I2
395  NEXT I1
400  REM -- COMPUTE COUNTS FOR ALTERNATIVES
410  FOR I1=1 TO I9
412  C[I1]=0
420  FOR I2=1 TO I9
425  IF I1=I2 THEN 480
430  IF V[I1,I2]>0 THEN 470
435  REM -- NEGATIVE ENTRY -- ROW < COL
436  C[I1]=C[I1]-1
440  GOTO 480
470  REM -- POSITIVE ENTRY -- ROW > COL
475  C[I1]=C[I1]+1
480  NEXT I2
490  NEXT I1
500  REM -- C(I)=# INFERIOR TO I MINUS # SUPERIOR TO I
510  REM -- CHECK FOR EQUAL VALUES (INDICATES INTRANSITIVITY)
520  FOR I1=1 TO I9
525  FOR I2=(I1+1) TO I9
530  IF C[I1]=C[I2] THEN 600
535  NEXT I2
540  NEXT I1
550  REM -- PREFERENCES ARE TRANSITIVE
555  N1=N1+1
560  PRINT "T";
565  GOTO 700
600  REM -- PREFERENCES ARE INTRANSITIVE
605  N2=N2+1
610  PRINT '7"*";
700  NEXT T
705  PRINT 
706  PRINT 
710  PRINT "PERCENT TRANSITIVE =";100*N1/(N1+N2)
800  STOP 
1000  REM ------------------------------------
1001  REM -- GIVE INSTRUCTIONS
1010  PRINT "THIS PROGRAM SIMULATES THE VOTING OF A COMMITTEE"
1012  PRINT "EACH MEMBER IS ASSUMED TO HAVE TRANSITIVE PREFERENCES"
1014  PRINT "   AMONG A NUMBER OF ALTERNATIVES, ONE OF WHICH"
1016  PRINT "   IS TO BE CHOSEN BY MAJORITY VOTE"
1018  PRINT "THE  NUMBER OF COMMITTEE MEMBERS SHOULD BE ODD, SO"
1020  PRINT "   THERE ARE NO TIES. THUS , GIVEN TWO ALTERNATIVES,"
1022  PRINT "   THE COMMITTEE WILL ALWAYS 'PREFER' ONE OVER THE OTHER"
1030  PRINT "YOU MAY CHOOSE THE NUMBER OF ALTERNATIVES AND THE"
1032  PRINT "  NUMBER OF MEMBERS"
1040  PRINT "YOU MAY ALSO CHOOSE THE NUMBER OF 'TRIALS'"
1042  PRINT "   YOU MAY THINK OF EACH TRIAL AS A DIFFERENT COMMITTEE"
1044  PRINT "    VOTING ON THE SAME SET OF ALTERNATIVES."
1046  PRINT "   ALTERNATIVELY, YOU MAY THINK OF EACH TRIAL AS THE"
1048  PRINT "    SAME COMMITTEE VOTING ON A DIFFERENT SET OF "
1050  PRINT "    ALTERNATIVES."
1060  PRINT "FOR EACH TRIAL, THE PROGRAM WILL DETERMINE IF THE"
1062  PRINT "   COMMITTEE'S 'PREFERENCES' ARE TRANSITIVE."
1064  PRINT "   IF SO -- A 'T' WILL BE PRINTED"
1066  PRINT "   IF NOT -- A '*' WILL BE PRINTED"
1068  PRINT "AT THE END, THE PERCENT OF THE TRIALS IN WHICH THE"
1070  PRINT "COMMITTEE'S PREFERENCES WERE TRANSITIVE WILL BE PRINTED"
1090  GOTO 43
9999  END 
