1  IF  ERROR  THEN 1000
10  REM *****CASH:TEACH GIVING CHANGE*****
20  REM        AUTHOR: RANDY WONG   EDP RESOURCE  CENTER
30  REM          REVISED: TIMM BENTLEY  12/3/76;(2000F)
40  REM:  PRODUCED AT THE EDP RESOURCE CENTER, SAN FRANCISCO, CALIF.
50  DIM N$[72],F$[10],A[12],B[8]
60  REM-HOUSEKEEPING--RANDOMIZE-P.
70  MAT  READ B
80  ENTER #P
90  IF TIM(1)>11 THEN 120
100  PRINT "GOOD MORNING, ";
110  GOTO 160
120  IF TIM(1)>15 THEN 130
130  PRINT "GOOD AFTERNOON, ";
140  GOTO 160
150  PRINT "GOOD EVENING, ";
160  PRINT "have you ever run this program before?(yes/no)";
170  INPUT F$
180  IF F$[1,1]="Y" THEN 470
190  W1=1
200  PRINT "NEED INSTRUCTIONS?(YES/NO)";
210  INPUT N$
220  PRINT 
230  IF N$[1,1]#"Y" THEN 440
240  PRINT "YOU PLAY THE ROLE OF A SUPERMARKET CHECKOUT CLERK..."
250  PRINT "YOUR TASK IS TO:"
260  PRINT '10"  RING UP THE TOTAL"
270  PRINT "  ACCEPt PAYMENT"
280  PRINT "  RETURN CORRECT CHANGE"
290  PRINT '10"THE RETURN OF CHANGE CAN BE ARRANGED SO THAT THE USE OF"
300  PRINT "PENNIES, NICKELS, DIMES, ETC. IS KEPT TO A MINIMUM."'10
310  PRINT "THIS METHOD WILL BECOME CLEAR (HOPEFULLY) AS YOU RUN 'CASH'"'10
320  PRINT "FOR CHANGE OF 7 CENTS, YOU CAN RETURN 7 PENNIES OR"
330  PRINT "                       YOU CAN RETURN 1 NICKEL AND 2 PENNIES."
340  PRINT '7'7'7'7'7"****IT IS BETTER TO RETURN 1 NICKEL AND 2 PENNIES!"
350  PRINT '10"FOR CHANGE OF $5, YOU CAN RETURN 5 ONES OR 1 FIVE,"
360  PRINT '7'7'7'7"****BUT IT IS BETTER TO RETURN 0 ONES AND 1 FIVE!"
370  PRINT '10"THE COMPUTER ONLY WANTS THE BEST!  SO TO GET THE"
380  PRINT "CORRECT ANSWER, GIVE THE CORRECT CHANGE WITH THE LEAST"
390  PRINT "AMOUNT OF COINS AND BILLS!"'10
400  PRINT "IF YOU MAKE A MISTAKE THE MACHINE WILL TYPE:"
410  PRINT "      'TOO MANY' WHATEVER THE DENOMINATION IS, OR"
420  PRINT "      'NOT ENOUGH' WHATEVER THE DENOMINATION IS."
430  PRINT '10"DON'T BE AFRAID TO GUESS THE ANSWER  "'7"!"'7"!"'7"!"'7"!!!!"'7'7'7'7'7
440  LET X=X1=INT(1999*RND(P))+1
450  W1=1
460  GOTO 490
470  PRINT '10"WOULD YOU LIKE LEVEL 1 OR LEVEL 2";
480  INPUT W1
490  FOR L=1 TO 5 STEP 1
500  PRINT '10"YOU ARE A CASHIER AT MUSCAT BROS. SUPERMARKET."
510  LET X=X1=INT(1999*RND(P))+1
520  PRINT  USING 530;X1/100
530  IMAGE "YOU RING UP A BILL OF $",DDD.DD
540  LET K=INT(RND(P)*6)+1
550  IF W1=2 THEN 580
560  X2=2000
570  IF W1=1 THEN 590
580  LET X2=INT((B[K]+X)/B[K])*B[K]+(RND(P)>.666)*-(INT(X1/5)*5-X)
590  PRINT  USING 610;X2/100
600  PRINT "HOW MANY OF THE FOLLOWING DO YOU GIVE HIM:"
610  IMAGE "THE CUSTOMER PAYS $",DDD.DD
620  LET X=X2-X1
630  GOSUB 900
640  RESTORE 980
650  FOR I=8 TO 1 STEP -1
660  READ N$
670  PRINT N$;
680  INPUT E3
690  IF E3=A[I] THEN 750
700  IF E3<A[I] THEN 730
710  PRINT "TOO MANY "N$
720  GOTO 670
730  PRINT "NOT ENOUGH "N$
740  GOTO 670
750  A[11]=A[11]+E3
760  IF W1=1 THEN 780
770  IF A[11]=A[12] THEN 790
780  NEXT I
790  PRINT "GOOD WORK, AND DON'T FORGET TO SAY 'THANK YOU'"
800  NEXT L
810  PRINT '10"WOULD YOU LIKE TO TRY MORE?(YES/NO)";
820  INPUT N$
830  IF N$[1,1]="Y" THEN 850
840  GOTO 1000
850  PRINT '10"WOULD YOU LIKE LEVEL 1 OR LEVEL 2?"
860  PRINT "LEVEL 2 WILL BE A LITTLE HARDER (TYPE 1 OR 2)";
870  INPUT W1
880  GOTO 490
890  STOP 
900  MAT A=ZER
910  FOR I=1 TO 8
920  LET A[I]=INT((X-A[I+1])/B[I])
930  LET A[I+2]=A[I+1]+(A[I]*B[I])
940  LET A[12]=A[12]+A[I]
950  NEXT I
960  RETURN 
970  DATA 1000,500,100,50,25,10,5,1
980  DATA "PENNIES","NICKELS"
990  DATA "DIMES","QUARTERS","HALVES","ONES","FIVES","TENS"
1000  CHAIN R,"*HELP"
1010  SYSTEM R,"BYE"
1020  END 
