10  REM ***  HP TIME-SHARED BASIC PROGRAM LIBRARY  *********************
11  REM
12  REM         TUT15:  TUTOR SERIES BASIC LANGUAGE PROGRAMMING COURSE,
13  REM                 (PART 15 OF 25)
14  REM         36139 (A810) REV A -- 7/71
15  REM
16  REM ***  CONTRIBUTED PROGRAM  **************************************
17  REM
100  PRINT "EGAD - YOU AGAIN?  WHAT PERSEVERANCE."
110  PRINT 
120  PRINT "IN THE PAST SESSIONS WE HAVE DEALT PRIMARILY WITH STATEMENTS"
130  PRINT "AND INSTRUCTIONS WHICH DETERMINE THE LOGIC OF A PROGRAM."
140  PRINT "A SYSTEM COMMAND, AS DISTINCT FROM A PROGRAM INSTRUCTION."
150  PRINT "REQUESTS A CHANGE IN YOUR CURRENT STATUS WITH THE COMPUTER. FOR"
160  PRINT "EXAMPLE, THE SYSTEM COMMAND 'RUN' DIRECTS THE COMPUTER TO"
170  PRINT "EXECUTE A PROGRAM.  IN NO WAY CAN IT AFFECT THE LOGICAL"
180  PRINT "STRUCTURE OF THE PROGRAM."
190  PRINT 
200  PRINT "TO SEE IF THIS DISTINCTION IS REASONABLY CLEAR, TRY YOUR HAND"
210  PRINT "AT THE FOLLOWING. TYPE A ZERO IF YOU THINK A SYSTEM COMMAND IS"
220  PRINT "INVOLVED, AND A ONE FOR A PROGRAM INSTRUCTION."
230  PRINT 
240  LET S=0
250  LET T=0
260  LET H[1]=1
270  LET H[2]=1
280  LET H[3]=0
290  LET H[4]=1
300  LET H[5]=0
310  LET H[6]=0
320  LET H[7]=1
330  LET H[8]=1
340  LET H[9]=0
350  LET H[10]=0
360  PRINT " "," ";"    BATTING AVERAGE"
370  PRINT 
380  PRINT "GOSUB ";
390  GOSUB 600
400  PRINT "DEF ";
410  GOSUB 600
420  PRINT "BYE ";
430  GOSUB 600
440  PRINT "IF...THEN... ";
450  GOSUB 600
460  PRINT "HELLO ";
470  GOSUB 600
480  PRINT "SCR ";
490  GOSUB 600
500  PRINT "LET ";
510  GOSUB 600
520  PRINT "INPUT ";
530  GOSUB 600
560  PRINT "LIST ";
570  GOSUB 600
580  GOTO 710
590  REM SUBR
600  LET T=T+1
610  INPUT Z
620  IF Z=H[T] THEN 650
630  PRINT " ","   OUT",
640  GOTO 670
650  PRINT " ","   HIT",
660  LET S=S+1
670  LET B=INT(S/T*1000+.5)
680  PRINT B
690  RETURN 
700  REM END SUBR
710  PRINT 
720  IF B>850 THEN 760
730  IF B>600 THEN 780
740  PRINT "YOUR BATTING AVERAGE WAS .....NEVER MIND.  TENNIS ANYONE?"
750  GOTO 790
760  PRINT "THE DODGERS COULD HAVE USED YOU LAST SEPTEMBER."
770  GOTO 790
780  PRINT "HOW ARE YOU AT PING PONG?"
790  PRINT 
800  PRINT "--NOTE-- A PROGRAM INSTRUCTION MUST BE PRECEEDED BY A STATEMENT"
810  PRINT "NUMBER -- A SYSTEM COMMAND  IS NEVER PRECEEDED BY ONE."
820  PRINT 
830  PRINT 
840  PRINT "LET'S SEE HOW SOME OF THESE SYSTEM COMMANDS CAN BE USED. ASSUME"
850  PRINT "THE FOLLOWING IS PART OF A PROGRAM BEING DEVELOPED:"
860  PRINT 
870  PRINT "    ."
880  PRINT "    ."
890  PRINT "   410 GOSUB 800"
900  PRINT "   420 LET T=T+T1"
910  PRINT "   430 LET T=T+T1"
920  PRINT "   440 LET D=V*T"
930  PRINT "    ."
940  PRINT "    ."
950  PRINT "   800 LET Q=C1*V+2"
960  PRINT "   810 LET R=K*D"
970  PRINT "   820 END"
980  PRINT 
990  PRINT "UPON EXAMINATION, YOU MAY NOTE THAT STATEMENT 430 IS REDUNDANT."
1000  PRINT "YOU COULD DELETE THIS BY MERELY TYPING IN THE STATEMENT NUMBER."
1010  PRINT "THEN DEPRESSING THE CARRIAGE RETURN. THE COMPUTER INTERPETS"
1020  PRINT "THIS AS AN ERASURE OF THE PREVIOUSLY WRITTEN STATEMENT 430."
1030  PRINT 
1040  PRINT "THERE IS ALSO A STATEMENT MISSING FROM THE SAMPLE PROGRAM ABOVE."
1050  PRINT "WITHOUT WHICH THE PROGRAM WOULD NOT RUN. JUST FOR EXERCISE."
1060  PRINT "TYPE IN THE 2 STATEMENT NUMBERS (SEPARATED BY A COMMA) WHERE"
1070  PRINT "THE MISSING STATEMENT SHOULD HAVE BEEN.";
1080  LET Z=0
1090  INPUT B,T
1100  PRINT 
1110  IF B+T=1630 THEN 1190
1120  IF Z>0 THEN 1170
1130  LET Z=1
1140  PRINT "NO. I'LL GIVE YOU A HINT. THE SUBROUTINE IS INCOMPLETE."
1150  PRINT "TRY TO GUESS THE 2 NUMBERS AGAIN. ";
1160  GOTO 1090
1170  PRINT "REALLY,NOW...";
1180  GOTO 1200
1190  PRINT "VERY GOOD.  ";
1200  PRINT "A 'RETURN' STATEMENT WAS OMITTED FROM THE"
1210  PRINT "SUBROUTINE, WHICH SHOULD BE INSERTED BETWEEN STATEMENT NUMBERS"
1220  PRINT "810 AND 820. YOU COULD CORRECT THIS BY TYPING IN:"
1230  PRINT 
1240  PRINT "   815 RETURN"
1250  PRINT 
1260  PRINT "DO YOU SEE THE ADVANTAGE OF NUMBERING YOUR STATEMENTS"
1270  PRINT "INCREMENTALLY? IT'S EASIER TO INSERT STATEMENTS AT A LATER"
1280  PRINT "TIME WITHOUT NEEDLESS RETYPING OF NEIGHBORING STATEMENTS."
1290  PRINT 
1300  PRINT "IF YOU WERE CORRECTING A PROGRAM, YOU WOULD SOON REALIZE THAT"
1310  PRINT "YOU HAVE A HOPELESS RECORD OF YOUR WORK, AND WOULD"
1320  PRINT "LIKE A FRESH UPDATED LISTING."
1330  PRINT 
1340  PRINT "THE SYSTEM COMMAND 'LIST' WILL SUPPLY THIS FOR YOU, STARTING"
1350  PRINT "FROM THE VERY FIRST STATEMENT OF YOUR PROGRAM. SHOULD YOU"
1360  PRINT "WANT A LISTING STARTING FROM A SPECIFIED STATEMENT NUMBER."
1370  PRINT "FOR EXAMPLE 1280, YOU SHOULD TYPE "
1380  PRINT 
1390  PRINT "   LIST-1280"
1400  PRINT 
1660  PRINT "WHEN YOU ARE READY, CALL 'TUT16'. SEE YOU SOON."
1680  END 
