PROGRAM DICE
************************************************************************
* This program uses a random number generator to simulate rolling a *
* pair of dice several times, counting the number of times a specified *
* number of spots occurs. Identifiers used are: *
* SPOTS : number of spots to be counted *
* COUNT : number of times SPOTS occurred *
* NROLLS : number of rolls of dice *
* R1, R2 : two random real numbers in the range 0 to 1 *
* DIE1, *
* DIE2 : number of spots on die #1, #2, respectively *
* PAIR : sum of DIE1 and DIE2 = total # of spots on the dice *
* ROLL : counts dice rolls *
* RESPON : user response *
* RANDOM : random number generator (subroutine) *
* *
* Input: NROLLS, SPOTS, RESPON, seed for random number generator *
* Output: User prompts, and the relative frequency of the number of *
* spots *
************************************************************************
INTEGER SPOTS, COUNT, NROLLS, DIE1, DIE2, PAIR, ROLL
REAL R1, R2
CHARACTER*1 RESPON
PRINT *, 'ENTER NUMBER OF TIMES TO ROLL THE DICE:'
READ *, NROLLS
PRINT *, 'ENTER REAL NUMBER SEED FOR THE RANDOM NUMBER GENERATOR:'
READ *, R1
*23456789012345678901234567890123456789012345678901234567890123456789012
* Begin the simulation
9 FORMAT (7X, A, I1, A, I1, A)
10 CONTINUE
PRINT *, 'ENTER THE PAIR VALUE OF SPOTS TO COUNT (2-12):'
READ *, SPOTS
COUNT = 0
DO 20 ROLL = 1, NROLLS
CALL RANDOM(R1)
CALL RANDOM(R2)
DIE1 = 1 + INT(6*R1)
DIE2 = 1 + INT(6*R2)
PRINT 9, '(', DIE1, ', ', DIE2, ')'
PAIR = DIE1 + DIE2
IF (PAIR .EQ. SPOTS) COUNT = COUNT + 1
20 CONTINUE
IF (SPOTS .GE. 10) THEN
PRINT 30, SPOTS, 100 * REAL(COUNT) / REAL(NROLLS)
30 FORMAT (1X, 'THE RELATIVE FREQUENCY OF ROLLING ', I2,
+ ' WAS', F