1000,"R: A TUTORIAL PROGRAM IN PILOT ABOUT PILOT",1010,"R:",1020,"R: PACIFIC UNION COLLEGE, L. TURNER, JUL 73",1030,"R:",1040,"R: PROGRAM NUMBER 3, LABELS, JUMPS, AND MORE GOODIES",1050,"R:",1060,"R:*****************************************************************",1070,"T:",1080,"T:IT IS GOOD TO SEE YOU AGAIN. THIS IS THE THIRD PROGRAM IN THE +",1090,"T:PILOT TUTORIAL SERIES. I HOPE THAT YOU HAVE PROGRESSED TO THIS +",1100,"T:POINT BECAUSE YOU ARE GENUINELY INTERESTED IN THE PILOT LANGUAGE." 1110,"T:IN THE FIRST TWO PROGRAMS WE DISCUSSED FOUR DIFFERENT KINDS OF +",1120,"T:STATEMENTS AND SEVERAL OTHER CONCEPTS. WITH THESE ONE CAN +",1130,"T:WRITE SOME RATHER GOOD CAI PROGRAMS. BUT, THERE ARE ALL SORTS +",1140,"T:OF GOOD THINGS YET TO LEARN THAT HELP MAKE THE PROGRAMS EASIER +",1150,"T:TO WRITE AND MORE EFFECTIVE TO USE.",1160,"T:",1170,"T:HAVE YOU HAD A CHANCE TO PRACTICE WRITING YOUR OWN PILOT +",1180,"T:PROGRAMS +",1190,"A:",1200,".M:[Y],[YES,RIGHT,CERT,OF*COURS",1210,"JN:*NOPRAC" 1220,"T:I AM PLEASED! DID YOU HAVE ANY TROUBLE +",1230,"A:",1240,".M:[Y],[YES,RIGHT,[A]*LOT,MUCH,SOME,[BIT],[LIT*LE],NO*WORK",1250,"JN:*QUIZ",1260,"T:I AM SORRY TO HEAR THAT. REMEMBER THAT WITH ANY NEW LANGUAGE +",1270,"T:ANYONE IS EXPECTED TO RUN INTO A FEW DIFFICULTIES. NOTE +",1280,"T:ESPECIALLY THAT +",1290,"*NOPRAC T:PRACTICE IS IMPORTANT. PILOT IS SUCH AN EASY LANGUAGE +",1300,"T:TO LEARN THAT THERE IS A TENDENCY TO THINK THAT YOU UNDERSTAND +" 1310,"T:ALL THERE IS TO KNOW AND THAT PRACTICE IS UNNECESSARY. THIS IS +",1320,"T:NOT TRUE! IT IS VERY IMPORTANT TO TRY THESE IDEAS AND CONCEPTS +",1330,"T:OUT ON YOUR OWN.",1340,"R:",1350,"R: REVIEW QUIZ",1360,"*QUIZ T:",1370,"T:LET US TRY A LITTLE REVIEW QUIZ TO SEE +",1380,"N:HOW MUCH YOU REMEMBER.",1390,"Y:IF THE BASIC CONCEPTS ARE THE CAUSE OF YOUR DIFFICULTY.",1400,"T:",1410,"T:1. WHAT PILOT STATEMENT PRODUCES OUTPUT +",1420,"A:",1430,"M:'T" 1440,"CY:A=1",1450,".MN:[T],[TYP,[N],[Y],[TY],[TN]",1460,"CN:A=1",1470,"T:2. WHAT PILOT STATEMENT EXAMINES AND CHECKS A RESPONSE +",1480,"A:",1490,".M:[M],[MATCH",1500,"CN:B=1",1510,"T:3. WHAT PILOT STATEMENT REQUESTS A RESPONSE +",1520,"A:",1530,".M:[A],[ANSWER",1540,"CN:C=1",1550,"T:4. WHAT PART OF A PILOT STATEMENT DESIGNATES THE ORDER OF THE +",1560,"T:PILOT STATEMENTS +" 1570,"A:",1580,".M:[NUMBER",1590,"CN:D=1",1600,"T:5. WHAT DOES A 'REMARK' STATEMENT DO +",1610,"A:",1620,".M:NO*THIN,N'T*EXEC,NO*EXEC,INFORM,COM*ENT,LISTIN,LISTS",1630,"CN:E=1",1640,"T:6. WHAT SEPARATES THE OBJECT FROM THE INSTRUCTION PART +",1650,"A:",1660,".M::,[COLON",1670,"CN:F=1",1680,"T:7. IF A MATCH STATEMENT FAILS, THEN WHICH SUBSEQUENT +",1690,"T:STATEMENTS ARE SKIPPED +" 1700,"A:",1710,".M:[Y],[YES*CONDIT",1720,"CN:G=1",1730,"T:8. WHAT CHARACTER DESIGNATES A STRING VARIABLE +",1740,"A:",1750,".M:$,DOL*AR SIGN",1760,"CN:H=1",1770,"T:9. WHAT CHARACTER SIGNIFIES CONCATENATION +",1780,"A:",1790,"M:+,PLUS",1800,"CN:I=1",1810,"T:10. HOW DO YOU DELETE A GIVEN STATEMENT +",1820,"A:" 1830,".M:TYP,[ENT,[INP",1840,"M:NUMB",1850,".M:[LIN,[STAT,[SEQ",1860,".D:3",1870,"CN:J=1",1880,"T:11. WHAT PILOT COMMAND GIVES THE NUMBER OF STATEMENTS IN +",1890,"T:YOUR PILOT PROGRAM +",1900,"A:",1910,".M:[SIZ],[SIZE]",1920,"CN:K=1",1930,"C:X=A+C+D+F+H+I+J+K",1940,"C:Y=B+E+G",1950,"C:Z=X+Y" 1960,"C(X):W=1",1970,"C(Y):W=W+2",1980,"T:",1990,"T(Z=0):EXCELLENT, YOU GOT THEM ALL PERFECT!!!",2000,"T(Z=1):ALMOST PERFECT, YOU MISSED ONLY ONE!",2010,"T(Z=2):NOT BAD, YOU DID MISS TWO HOWEVER.",2020,"T(Z=3):WELL, YOU DID ONLY MISS THREE.",2030,"T(Z=4):I REALLY THINK YOU COULD DO BETTER, YOU MISSED FOUR.",2040,"T(Z=5):YOU GOT ALL BUT FIVE CORRECT.",2050,"T(Z>5):I REALLY THINK YOU SHOULD REVIEW THE PREVIOUS TUTORIAL +",2060,"T(Z>5):PROGRAMS AND PRACTICE WRITING YOUR OWN PILOT PROGRAMS--+" 2070,"T(Z=10):ONLY ONE QUESTION CORRECT. +",2080,"T(Z=11):NOT EVEN ONE RIGHT. +",2090,"T(Z>5):SIGH!",2100,"T:",2110,"T(Z):THE CORRECT ANSWERS ARE:",2120,"T(A):1. THE 'TYPE' STATEMENT PRODUCES OUTPUT AND IS DESIGNATED +",2130,"T(A):BY 'T' OR '.T' OR EVEN POSSIBLY 'Y' OR 'N'.",2140,"T(B):2. THE RESPONSE IS CHECKED BY THE 'MATCH' STATEMENT WHICH +",2150,"T(B):SETS THE MATCH FLAG TO 'YES' IF SOMEWHERE WITHIN THE +",2160,"T(B):RESPONSE IT FINDS ONE OF ITS ALTERNATIVES. IF NOT, THEN +" 2170,"T(B):THE MATCH FLAG IS SET TO 'NO'.",2180,"T(C):3. AN 'ANSWER' STATEMENT PRODUCES A QUESTION MARK (?) AND +",2190,"T(C):THE COMPUTER WAITS FOR A RESPONSE TO BE TYPED IN.",2200,"T(D):4. THE LINE NUMBER DESIGNATES THE ORDER OF THE PILOT +",2210,"T(D):STATEMENTS. THIS ALLOWS EDITING--DELETION, INSERTION, OR +",2220,"T(D):REPLACEMENT.",2230,"T(E):5. A 'REMARK' STATEMENT DOES NOTHING! IT MERELY GIVES A +",2240,"T(E):COMMENT OR INFORMATION TO SOMEONE LOOKING AT A LISTING." 2250,"T(F):6. ALL PILOT STATEMENTS HAVE A COLON (:) WHICH SEPARATES +",2260,"T(F):THE OBJECT (ON THE RIGHT) FROM THE INSTRUCTION PART (ON THE +",2270,"T(F):LEFT).",2280,"T(G):7. IF THE 'MATCH' STATEMENT FAILS, THEN THOSE STATEMENTS +",2290,"T(G):WITH A 'Y' CONDITION ARE SKIPPED. IF IT IS SUCCESSFUL, THEN +",2300,"T(G):THOSE WITH A 'N' CONDITION ARE SKIPPED.",2310,"T(H):8. STRING VARIABLES ARE INDICATED WITH A DOLLAR SIGN ($) +",2320,"T(H):AND CONSIST OF A CONTIGUOUS SET OF LETTERS AND DIGITS." 2330,"T(I):9. A PLUS SIGN (+) PRODUCES CONCATENATION. IT PREVENTS THE +",2340,"T(I):NORMAL CARRIAGE RETURN AND LINE FEED AT THE END OF A TYPE +",2350,"T(I):OBJECT AND ALSO ALLOWS A STRING OR NUMERIC VARIABLE +",2360,"T(I):REFERENCE TO DELETE THE NORMAL BLANK AT THE END.",2370,"T(J):10. TO DELETE A PILOT STATEMENT MERELY TYPE THE LINE NUMBER +",2380,"T(J):OF THE OFFENDING STATEMENT.",2390,"T(K):11. YOU CAN FIND THE NUMBER OF PILOT STATEMENTS IN A PROGRAM +",2400,"T(K):BY THE 'SIZE' COMMAND.",2410,"T(Z):" 2420,"T(Z):THE CONCEPTS YOU MISSED WERE PRIMARILY COVERED IN +",2430,"T(W=3):BOTH +",2440,"T(X):THE FIRST TUTORIAL PROGRAM, P-TUA+",2450,"T(W=1):.",2460,"T(W=3):, AND +",2470,"T(Y):THE SECOND TUTORIAL PROGRAM, P-TUB.",2480,"T(Z):",2490,"R: NEW STUFF",2500,"R:",2510,"T:WELL, LET'S FORGE AHEAD AND LEARN SOME NEW GOODIES! I WOULD +",2520,"T:LIKE TO KNOW YOUR NAME SO I CAN PRAISE YOU PERSONALLY. OK, +",2530,"T:WHAT IS YOUR JOHN HENRY +",2540,"A:$NAME" 2550,"T:",2560,"T:YOU HAVE LEARNED IN THE FIRST PROGRAMS IN THIS SERIES THAT THE +",2570,"T:LINE NUMBERS DETERMINE THE ORDER IN WHICH THE STATEMENTS ARE +",2580,"T:EXECUTED. THE COMPUTER EXECUTES EACH STATEMENT IN SEQUENCE. +",2590,"T:THERE IS A WAY TO PREVENT CERTAIN STATEMENTS FROM BEING +",2600,"T:EXECUTED. OK, $NAME+, WHAT IS THIS WAY +",2610,"A:",2620,"M:CONDIT",2630,"Y:PRECISELY!",2640,"N:NOT QUITE, YOU CAN PREVENT CERTAIN STATEMENTS FROM BEING +",2650,"N:EXECUTED BY MAKING THEM CONDITIONAL." 2660,"T:HOWEVER, THE ORDER OF THE EXECUTION IS NOT ALTERED. TO DO THIS +",2670,"T:TAKES ANOTHER KIND OF PILOT STATEMENT AND A NEW PART FOR THE +",2680,"T:INSTRUCTION PORTION. THE STATEMENT IS A 'JUMP' STATEMENT. +",2690,"T:WHAT DO YOU THINK IS THE ONE CHARACTER INSTRUCTION FOR THIS +",2700,"A:",2710,".M:[J]",2720,"Y:RIGHT ON! +",2730,"N:I AM AFRAID NOT, +",2740,"T:THE 'JUMP' INSTRUCTION IS DESIGNATED BY 'J' AND IT CAUSES THE +",2750,"T:EXECUTION TO GO TO ANOTHER STATEMENT. WHAT PART OF THE 'JUMP' +" 2760,"T:DESIGNATES THE NEW STATEMENT +",2770,"A:",2780,"M:OBJECT,LEFT",2790,"Y:YOU ARE SO RIGHT $NAME+! +",2800,"N:I HATE TO TELL YOU THIS, BUT THAT IS WRONG. +",2810,"T:THE OBJECT OF THE 'JUMP' STATEMENT TELLS THE COMPUTER WHERE TO +",2820,"T:GO. CONSIDER:",2830,"T:",2840,"T: 1039 J:*NEXTQUEST",2850,"T: 2340 J:*OVER32",2860,"T: 3110 JY:*RIGHTONE",2870,"T: 4520 JB:*GIMEANUMBER",2880,"T: 8500 J:*127" 2890,"T:",2900,"T:THE OBJECT OF A 'JUMP' STATEMENT IS TERMED A 'LABEL' AND +",2910,"T:EXECUTION IS TRANSFERED TO THE STATEMENT WITH THAT LABEL. +",2920,"T:WHERE IN THE STATEMENT DO YOU SUPPOSE THE LABEL GOES +",2930,"A:",2940,".M:BEGIN,BEFOR*INSTR,LEFT,AFT*NUMBER,NUMBER*INSTRUC",2950,"Y:EXACTLY $NAME+! +",2960,"N:NOPE! +",2970,"T:IT GOES AT THE BEGINNING OF THE STATEMENT, BETWEEN THE LINE +",2980,"T:NUMBER AND THE INSTRUCTION, AND IT IS SEPARATED FROM THE +",2990,"T:INSTRUCTION BY AT LEAST ONE BLANK." 3000,"T:WHAT IS THE FIRST CHARACTER OF A LABEL +",3010,"A:",3020,"M:*",3030,".MN:[ASTER,[ASTR,[STAR]",3040,"Y:YOU ARE VERY OBSERVANT! +",3050,"N:WELL, +",3060,"T:THE LEADING CHARACTER MUST BE AN ASTERISK (*). NOTE ALSO THAT +",3070,"T:THE REST OF THE LABEL IS COMPOSED OF A CONTIGUOUS SET OF DIGITS +",3080,"T:AND LETTERS. WHAT OTHER PILOT ANIMAL IS SO COMPOSED??",3090,"A:",3100,".M:[STRIN*[VARI*BL",3110,"Y:YOU LEARNED YOUR LESSONS WELL! +" 3130,"T:HOWEVER, THERE'S NO RESTRICTION TO THE LENGTH OF A LABEL. +",3140,"T:LET'S LOOK AT A SAMPLE PROGRAM!",3150,"T:",3160,".T: 2000 *GETAGE T:WHAT IS YOUR AGE + ",3170,".T: 2010 A:#X",3180,".T: 2020 TB:DON'T BE AFRAID, GIVE ME A NUMBER!",3190,".T: 2030 JB:*GETAGE",3200,".T: 2040 T:#X IS A NICE AGE!",3210,"T:",3220,"T:THE ORDER OF EXECUTION IS:",3230,"T:",3240,"T: A NUMBER IS NOT TYPED IN A NUMBER IS TYPED IN",3250,"T: 2000 2000" 3260,"T: 2010 2010",3270,"T: 2020 2040",3280,"T: 2030",3290,"T: 2000",3300,"T: 2010",3310,"T:",3320,"T:TRY IT!",3330,"*GETA T: WHAT IS YOUR AGE +",3340,"A:#T",3350,"TB: DON'T BE AFRAID, GIVE ME A NUMBER!",3360,"JB:*GETA",3370,"T: #T IS A NICE AGE!",3380,"T:" 3390,"T:LET'S TRY ANOTHER EXAMPLE:",3400,"T:",3410,".T: 3100 R: SECTION TO GET SEX",3420,".T: 3110 *ASKSX T:WHAT IS YOUR SEX + ",3430,".T: 3120 A:",3440,".T: 3130 M:FEMALE,GIRL,LADY,GAL,FEMIN,NOT MALE,WOMAN,WOMEN",3450,".T: 3140 Y:A CUTE ONE!",3460,".T: 3150 JY:*NEXT",3470,".T: 3160 M:MALE,MAN,BOY,GUY,MEN,MASCUL",3480,".T: 3170 Y:A HANDSOME ONE!",3490,".T: 3180 N:I DON'T RECOGNIZE THAT!",3500,".T: 3190 JN:*ASKSX",3510,".T: 3200 *NEXT R:" 3520,"T:",3530,"T:HERE IT IS NECESSARY TO BRANCH OVER THE SECOND MATCH SINCE +",3540,"T:IN ESSENCE THERE ARE THREE POSSIBLE RESPONSES AND THE 'YN' CAN +",3550,"T:ONLY SEPARATE TWO OF THEM. DO YOU UNDERSTAND THE STRUCTURE OF +",3560,"T:THIS PROGRAM +",3570,"A:",3580,".M:[Y],[YE,RIGHT,OF*COURS,CORREC,EXACT,PERF,CERT",3590,"Y:EXCELLENT!",3600,"JY:*NEXTID",3610,"*PLSUN T:WHAT STATEMENT(S) DON'T YOU UNDERSTAND +",3620,"A:",3630,".M:[ALL,NONE,EVERY,NO*[ANY,0,[ZER,[NOT",3640,"Y:THE PROGRAM IS NOT THAT HARD TO UNDERSTAND." 3650,"C:A=B=C=D=E=F=G=H=I=J=K=1",3660,"C:Z=11",3670,"JY:*MIDDL",3680,"M:3100",3690,"CN:A=0",3700,"M:3110,*ASKSX",3710,"CN:B=0",3720,".M:3120,[A]",3730,"CN:C=0",3740,"M:3130",3750,"CN:D=0",3760,"M:3140",3770,"CN:E=0" 3780,"M:3150,JY",3790,"CN:F=0",3800,"M:3160",3810,"CN:G=0",3820,"M:3170",3830,"CN:H=0",3840,".M:3180,[N]",3850,"CN:I=0",3860,"M:3190,JN",3870,"CN:J=0",3880,"M:3200,*NEXT",3890,"CN:K=0",3900,"C:Z=A+B+C+D+E+F+G+H+I+J+K" 3910,"T(Z=0):I DON'T RECOGNIZE THE STATEMENT. PLEASE USE LINE NUMBERS!",3920,"J(Z=0):*PLSUN",3930,"*MIDDL T:",3940,"T(A):3100 R: THIS IS JUST A COMMENT TO INFORM YOU WHAT",3950,"T(A): THIS PART OF THE PROGRAM IS DOING",3960,"T(B):3110 *ASKSX T: OUTPUT THE QUESTION",3970,"T(C):3120 A: A RESPONSE IS REQUESTED",3980,"T(D):3130 M:FEMALE, LOOK THROUGH THE ENTIRE RESPONSE FOR 'FEMALE'",3990,"T(D): OR EQUIVALENT ENTRIES",4000,"T(E):3140 Y: OUTPUT FOR 'FEMININE' RESPONSE" 4090,"T(J): GO BACK AND ASK THE QUESTION AGAIN",4100,"T(K):3200 *NEXT R: BEGINNING OF NEXT SECTION, IT WILL GET HERE",4110,"T(K): ONLY IF 'MALE' OR 'FEMALE' IS TYPED IN",4120,"T:",4130,"T:I HOPE THIS HELPS CLARIFY YOUR QUESTIONS. +",4140,"J(Z<3):*NOWAPL",4150,"T:DO YOU HAVE ANY FURTHER PUZZELMENTS +",4160,"A:",4170,".M:[YE,[Y],RIGHT,COR*ECT,OF*COURS",4180,"N:GOOD! +",4190,"JN:*NOWAPL",4200,"J(Z<10):*PLSUN",4210,"T:I AM SORRY TO HEAR THAT. +" 4220,"*NOWAPL T:STUDY THE PROGRAM FOR THE THREE POSSIBLE DIFFERENT +",4230,"T:RESPONSES:",4240,"T:",4250,"T: FEMALE, MALE, NEITHER",4260,"*NEXTID T:",4270,"T:A PILOT STATEMENT CAN BE DIAGRAMED AS:",4280,"T:",4290,"T: [LABEL] [CONDITION]:",4300,"T:",4310,"T:WHERE <> INDICATES A REQUIRED ELEMENT, AND [] INDICATES AN +",4320,"T:OPTIONAL ELEMENT. THE OBJECT MAY BE OMITTED ONLY FOR SOME +",4330,"T:KINDS OF STATEMENTS. THIS IS THE MOST GENERAL FORM OF A PILOT +",4340,"T:STATEMENT!" 4350,"T:",4360,"R: FINISH OFF CONDITIONS",4370,"R:",4380,"T:SO FAR WE HAVE DISCUSSED TWO KINDS OF CONDITIONS, DO YOU +",4390,"T:REMEMBER WHAT THEY ARE +",4400,"A:",4410,".M:[YE,OF*COURS,RIGHT,PERFECT",4420,"Y:WELL WHAT ARE THEY +",4430,"AY:",4440,"C:Y=B=1",4450,".M:[Y],[YN],[N],[NY]",4460,"CY:Y=0",4470,".M:[G],[GB],[B],[BG]" 4480,"CY:B=0",4490,".M:[YB],[YG],[NB],[NG],[BY],[BN],[GY],[GN]",4500,"CY:Y=B=0",4510,"C:X=Y+B",4520,"T(X=0):VERY GOOD $NAME+, YOU'VE GOT BOTH KINDS!",4530,"T(X=1):YOU DID GET ONE RIGHT, BUT YOU MISSED +",4540,"T(X=2):AH, COME ON NOW! YOU DIDN'T EVEN GET ONE. THEY ARE +",4550,"T(Y):THE 'Y' AND 'N' +",4560,"T(X=2):AND +",4570,"T(B):THE 'G' AND 'B' +",4580,"T(X=1):CONDITION.",4590,"T(X=2):CONDITIONS.",4600,"T(Y):AND WHAT DOES THE 'Y' AND 'N' INDICATE??" 4610,"A(Y):",4620,"T(B):AND WHAT DOES THE 'G' AND 'B' INDICATE??",4630,"A(B):",4640,"T(X):IN ALL CASES THE CONDITION TELLS WHETHER THE STATEMENT IS TO +",4650,"T(X):BE EXECUTED OR NOT. IT IS AN 'IF' CLAUSE!",4660,"T:",4670,"T:ANOTHER KIND OF CONDITION EXISTS (AND THIS IS THE LAST!!) WHICH +",4680,"T:ALLOWS THE VALUE STORED IN A NUMERIC VARIABLE TO BE USED AS +",4690,"T:PART OF THE CONDITION. THIS KIND OF CONDITION IS ENCLOSED IN +",4700,"T:PARENTHESES, AS IN:",4710,"T:" 4720,".T: 1000 T(A<18):YOU ARE A MINOR OF #A YEARS.",4730,".T: 2000 J(X=0):*NEXTONE",4740,".T: 3000 A(C#X):",4750,"T:",4760,"T:IN LINE 1000 THE STATEMENT WILL BE EXECUTED ONLY IF THE VALUE +",4770,"T:STORED IN THE VARIABLE 'A' IS LESS THAN 18. WHAT MUST BE +",4780,"T:STORED IN 'X' FOR LINE 2000 TO BE EXECUTED +",4790,"C:X=7",4800,"A:#X",4810,".M:[ZERO,[NOTHING",4820,"CY:X=0",4830,"T(X=0):THAT IS EXACTLY RIGHT! +",4840,"T(X):I AM AFRAID THAT IS NOT QUITE RIGHT. +" 4850,"T:THE 'JUMP' IS EXECUTED ONLY IF THE VALUE STORED IN 'X' IS EQUAL +",4860,"T:TO ZERO (X=0)!",4870,"T:IN GENERAL THIS KIND OF CONDITION LOOKS LIKE:",4880,"T:",4890,"T: (LOGICAL EXPRESSION)",4900,"T:",4910,"T:IF THE 'LOGICAL EXPRESSION' IS FALSE, WHAT HAPPENS TO THE +",4920,"T:STATEMENT??",4930,"A:",4940,".M:IGNOR,SKIP,NO*EXEC",4950,"Y:RIGHT ON $NAME+! +",4960,"N:WOOPS, +",4970,"T:IT IS NOT EXECUTED, THE STATEMENT IS SKIPPED!" 4980,"T:LET'S EXAMINE THE 'LOGICAL EXPRESSION' IN MORE DETAIL. THE +",4990,"T:CONDITION MAY CONSIST OF:",5000,"T:",5010,"T: CONDITION EXAMPLES",5020,"T:",5030,"T: () (A=P)",5040,"T:",5050,"T: () (D=17), (F>-56), (G<=0)",5060,"T:",5070,"T: () (E), (J), (L), (W)",5080,"T:",5090,"T: NOTE THAT IN THE ABOVE THE <> SURROUNDING A QUANTITY INDICATE" 5100,"T: A SYNTACTICAL ELEMENT IN THE PILOT LANGUAGE. THEY ARE",5110,"T: NOT TO BE CONFUSED WITH THE RELATIONS BELOW.",5120,"T:",5130,"T:THE RELATIONS ARE:",5140,"T:",5150,"T: < LESS THEN <= LESS THAN OR EQUAL TO",5160,"T: = EQUAL TO # NOT EQUAL TO",5170,"T: > GREATER THAN >= GREATER THAN OR EQUAL TO",5180,"T:",5190,"T:WHAT MUST IMMEDIATELY FOLLOW THE OPENING PARENTHESIS IN ALL +",5200,"T:CASES OF THIS KIND OF CONDITION +",5210,"A:" 5220,".M:[VARIAB,[LET,[CHARAC,[VARIBL",5230,"Y:YOU ARE VERY OBSERVANT $NAME+! +",5240,"N:WELL, +",5250,"T:A LOGICAL EXPRESSION MUST BEGIN WITH A NUMERIC VARIABLE NAME.",5260,"T:IF ONLY A VARIABLE IS GIVEN (LAST CASE ABOVE), WHAT DO YOU +",5270,"T:THINK MUST BE STORED IN IT FOR THE STATEMENT TO BE EXECUTED +",5280,"C:X=0",5290,"A:#X",5300,".M:[NO*[ZER,[OTHE*[ZER,[POSIT,[NEGAT",5310,"CY:X=1",5320,"T(X):THAT IS VERY GOOD $NAME+, +",5330,"T:THIS IS A BIT TRICKY! +",5340,"T(X=0):NOT QUITE THOUGH, +" 5350,"T:THE LOGICAL EXPRESSION IS 'FALSE' IF THE VARIABLE HAS A VALUE +",5360,"T:OF ZERO. IF THE VALUE IS NON-ZERO (POSITIVE OR NEGATIVE), +",5370,"T:THEN THE LOGICAL EXPRESSION IS 'TRUE'. +",5380,"T(X=0):THIS (X) IS PERFECTLY EQUIVALENT TO (X#0). +",5390,"T:THE STATEMENT IS EXECUTED ONLY IF THE LOGICAL EXPRESSION IS +",5400,"T:'TRUE'.",5410,"T:",5420,"T:CONSIDER THESE TWO STATEMENTS:",5430,"T:",5440,".T: 1000 JY:*OVERTHEFENCE",5450,".T: 2000 J(Y):*OVERTHEFENCE",5460,"T:",5470,"T:ARE THEY EQUIVALENT +" 5480,"A:",5490,".M:[NO,[N]",5500,"Y:THAT IS ABSOLUTELY CORRECT! +",5510,"JY:*CORREQUIV",5520,"T:AHA! THERE IS A SUBTLE AND IMPORTANT DIFFERENCE! FIRST, WHAT +",5530,"T:MUST BE STORED IN THE VARIABLE 'Y' FOR STATEMENT 2000 TO BE +",5540,"T:EXECUTED +",5550,"C:X=0",5560,"A:#X",5570,".M:[NO*[ZER,[OTHE*[ZER,[POSIT,[NEGA",5580,"CY:X=1",5590,"T(X):RIGHT.",5600,"T(X=0):NO, IT MUST HAVE A NON-ZERO VALUE." 5610,"T:IS THE 'Y' IN STATEMENT 1000 A NUMERIC VARIABLE +",5620,"A:",5630,".M:[NO,[N]",5640,"Y:OF COURSE NOT.",5650,"N:NO, NO, NO, IT IS NOT A NUMERIC VARIABLE. IT IS A CONDITION +",5660,"N:DEPENDING ON THE LAST MATCH STATEMENT.",5670,"T:THUS THE TWO STATEMENTS ARE NOT EQUIVALENT. +",5680,"*CORREQUIV T:THE FIRST CONDITION REFERS TO WHETHER THE LAST MATCH +",5690,"T:WAS SUCCESSFUL OR NOT AND IS COMPLETELY INDEPENDENT OF THE +",5700,"T:VALUE STORED IN THE NUMERIC VARIABLE 'Y'. WHEREAS, THE SECOND +" 5710,"T:IS NOT AT ALL AFFECTED BY THE 'MATCH FLAG'. IT DEPENDS ONLY ON +",5720,"T:THE VALUE STORED IN THE VARIABLE 'Y'.",5730,"T:",5740,"T:DO YOU THINK YOU ARE READY TO TRY AN EXAMPLE PROBLEM +",5750,"A:",5760,".M:[YE,[Y],RIGHT,OR*COURS,[GO",5770,"Y:HERE GOES!",5780,"C:F=0",5790,"JY:*CONDEXP",5800,"*AGAINSUM T:WELL, I SUPPOSE THIS CONCEPT IS NOT COMPLETELY +",5810,"T:OBVIOUS. ONE WAY TO THINK OF THIS CONDITION IS TO MENTALLY +",5820,"T:READ:",5830,"T:" 5840,"T: 1000 J(X=7):*CUPERTINO",5850,"T:AS:",5860,"T: JUMP, IF THE VALUE OF X IS EQUAL TO SEVEN, TO *CUPERTINO.",5870,"T: IF X IS NOT EQUAL TO SEVEN, THEN SKIP TO THE NEXT",5880,"T: STATEMENT.",5890,"T:",5900,"T:DO YOU THINK YOU UNDERSTAND ALL THE RELATIONS +",5910,"A:",5920,".M:[YE,[Y],THINK*SO,RIGHT,OF*COURS,PERFECT,CERTAIN",5930,"T:LET'S TRY A FEW +",5940,"Y:ANYWAY!",5950,"CY:U=0",5960,"N:TO HELP YOU REMEMBER." 5970,"CN:U=10",5980,"T:",5990,"T:WHAT IS THE SYMBOL FOR 'GREATER THAN' +",6000,"A:",6010,"M:>=,<>,=>,> =,= >",6020,"JY:*NOGR",6030,"M:>",6040,"Y:RIGHT!",6050,"JY:*YESGR",6060,"*NOGR T:NO, IT IS A SINGLE '>' LOCATED ON THE 'PERIOD' KEY.",6070,"C:U=U+1",6080,"*YESGR T:WHAT IS THE SYMBOL FOR 'NOT EQUAL TO' +",6090,"A:" 6100,"M:#",6110,"Y:GOOD!",6120,"N:NO, IT IS '#' LOCATED ON THE 'THREE' KEY.",6130,"CN:U=U+1",6140,"T:HOW WOULD YOU EXPRESS 'LESS THAN OR EQUAL TO' +",6150,"A:",6160,"M:<=,< =",6170,"Y:RIGHT ON!",6180,"N:THIS TAKES TWO CHARACTERS '<='.",6190,"CN:U=U+1",6200,"T(U=0):YES, I DO THINK YOU HAVE GOT IT! LET'S TRY THAT PROBLEM +",6210,"T(U=0):NOW!",6220,"J(U=0):*CONDEXP" 6230,"T:HOW ABOUT 'LESS THAN' +",6240,"A:",6250,"M:<=,<>,=<,< =,= <",6260,"JY:*NOLES",6270,"M:<",6280,"Y:OK.",6290,"JY:*YESLES",6300,"*NOLES T:IT IS A SINGLE '<' LOCATED ON THE 'COMMA' KEY.",6310,"C:U=U+1",6320,"*YESLES T:LET'S TRY SOMETHING DIFFERENT. WHAT DO YOU THINK IS +",6330,"T:THE 'OPPOSITE' OF 'EQUAL TO' +",6340,"A:",6350,".M:[NO*EQUAL" 6360,"Y:FINE, WHAT IS THE SYMBOL FOR IT +",6370,"AY:",6380,"M:#",6390,"Y:VERY GOOD!",6400,"N:ACTUALLY, IT IS 'NOT EQUAL' WHICH IS SYMBOLIZED BY '#'.",6410,"CN:U=U+1",6420,"T:WHAT IS THE 'OPPOSITE' OF 'LESS THAN' +",6430,"A:",6440,".M:[GREAT*[EQUAL",6450,"Y:OK, WHAT IS THE SYMBOL FOR IT +",6460,"AY:",6470,"M:>=,> =",6480,"Y:CORRECT!" 6490,"N:WELL, TO BE COMPLETELY OPPOSITE IS MUST BE 'GREATER THAN OR +",6500,"N:EQUAL TO', WHICH IS '>='.",6510,"CN:U=U+1",6520,"T(U<3):NOW FOR THAT EXAMPLE PROBLEM!",6530,"J(U<3):*CONDEXP",6540,"T:LET'S SUMMARIZE THE RELATIONS AGAIN.",6550,"T:",6560,"T: RELATION OPPOSITE RELATION",6570,"T:",6580,"T: < LESS THAN >= GREATER THAN OR EQUAL TO",6590,"T: <= LESS THAN OR EQUAL TO > GREATER THAN",6600,"T: = EQUAL TO # NOT EQUAL TO" 6610,"T: # NOT EQUAL TO = EQUAL TO",6620,"T: > GREATER THAN <= LESS THAN OR EQUAL TO",6630,"T: >= GREATER THAN OR EQUAL TO < LESS THAN",6640,"T:",6650,"T:DOES THIS HELP CLARIFY +",6660,"A:",6670,".M:[Y],[YE,RIGHT,OF*COURS,SOME,LITTLE,BIT",6680,"Y:GOOD! +",6690,"N:WELL, +",6700,"T:LET'S TRY OUR EXAMPLE PROBLEM +",6710,"Y:NOW.",6720,"N:ANYWAY.",6730,"R:" 6740,"R: EXAMPLE PROGRAM",6750,"*CONDEXP T:",6760,"T(F=1):I HOPE IT GOES BETTER THIS TIME!",6770,"T(F=2):THIS IS THE THIRD TIME! PLEASE PAY CLOSE ATTENTION.",6780,"T(F>2):MY, YOU ARE PERSISTENT! ARE YOU A SALESMAN??",6790,"C:F=F+1",6800,"T:THE PROBLEM IS TO WRITE A PILOT PROGRAM TO ASK FOR A PERSON'S +",6810,"T:AGE AND TO PRINT APPROPRIATE MESSAGES ABOUT HIS RESPONSE. +",6820,"T:FIRST, LET'S ASK THE QUESTION WITH:",6830,"T:",6840,"T: 1000 T:WHAT IS YOUR AGE + ",6850,".T: 1010 A:#A",6860,"T:" 6870,"T:NEXT WE NEED TO CHECK IF A NUMBER HAS ACTUALLY BEEN TYPED IN. +",6880,"T:HOW WOULD YOU DO THIS??",6890,"A:",6900,"T:OK, LET'S TRY IT THIS WAY:",6910,"T:",6920,"T: 1000 *AGE T:WHAT IS YOUR AGE + ",6930,".T: 1010 A:#A",6940,"T: 1020 TB: . . .",6950,"T: 1030 JB:*AGE",6960,"T:",6970,"T:WHAT MESSAGE WOULD YOU LIKE FOR THE COMPUTER TO TYPE OUT IF NO +",6980,"T:NUMBER IS ENTERED??",6990,"A:$NUMMESS" 7000,"T:SO FAR WE HAVE INSURED THAT A NUMBER IS GIVEN BEFORE GOING +",7010,"T:FURTHER. THE PERSON MIGHT TYPE IN AN INVALID NUMBER, I.E. A +",7020,"T:NEGATIVE NUMBER. WE CAN HAVE AN 'ERROR MESSAGE' PRINTED BY +",7030,"T:USING A CONDITIONAL STATEMENT. TO CHECK FOR A NEGATIVE NUMBER, +",7040,"T:WHAT CONDITION WOULD HAVE TO BE USED??",7050,"A:",7060,"M:A<0,A < 0,A< 0,A <0",7070,"Y:EXACTLY!",7080,"N:I AM AFRAID NOT, IT SHOULD BE: (A<0).",7090,"T:WHAT MESSAGE WOULD YOU LIKE PRINTED IF SUCH A NUMBER IS ENTERED??" 7100,"A:$NEGNUM",7110,"T:THUS WE HAVE:",7120,"T:",7130,"T: 1000 *AGE T:WHAT IS YOUR AGE + ",7140,".T: 1010 A:#A",7150,"T: 1020 TB:$NUMMESS",7160,"T: 1030 JB:*AGE",7170,"T: 1040 T(A<0):$NEGNUM",7180,"T: 1050 J(A<0):*AGE",7190,"T:",7200,"T:IT IS UNLIKELY THAT ANYONE WITH AN AGE OF LESS THAN 5 YEARS OR +",7210,"T:OVER 80 WILL BE USING THIS PROGRAM. LET'S PRINT A MESSAGE FOR +",7220,"T:THESE CASES, BUT NOT BRANCH BACK. WHAT WOULD YOU LIKE PRINTED +" 7230,"T:FOR:",7240,"T: A<5 +",7250,"A:$ALT5",7260,"T: A>80 +",7270,"A:$AGT80",7280,"T:OUR PROGRAM NOW LOOKS LIKE:",7290,"T:",7300,"T: 1000 *AGE T:WHAT IS YOUR AGE + ",7310,".T: 1010 A:#A",7320,"T: 1020 TB:$NUMMESS",7330,"T: 1030 JB:*AGE",7340,"T: 1040 T(A<0):$NEGNUM",7350,"T: 1050 J(A<0):*AGE" 7360,"T: 1060 T(A<5):$ALT5",7370,"T: 1070 T(A>80):$AGT80",7380,"T:",7390,"T:ONE MIGHT WANT A MESSAGE TYPED OUT AND A BRANCH BACK IF TOO +",7400,"T:LARGE A NUMBER IS TYPED IN. NO PERSON IS OVER 150 YEARS OLD! +",7410,"T:WHERE SHOULD WE PUT SUCH A MESSAGE AND JUMP +",7420,"C:A=0",7430,"A:#A",7440,"M:JB",7450,"CY:A=1030",7460,"M:T(A<0",7470,"CY:A=1040",7480,"M:J(" 7490,"CY:A=1050",7500,"M:T(A<5",7510,"CY:A=1060",7520,"M:AFTER,BETW",7530,"CY:A=A+1",7540,"M:BEF",7550,"CY:A=A-1",7560,"C:B=A/10",7570,".I:B",7580,"C:B=B*10",7590,"T(A<1030):IT SHOULD BE AFTER STATEMENT 1030+",7600,"T(A<10):, BUT BEFORE STATEMENT 1060+",7610,"T(A<1030):!" 7620,"J(A<1030):*FINDPLAC",7630,"T(A>1060):IT SHOULD BE BEFORE STATEMENT 1060!",7640,"J(A>1060):*FINDPLAC",7650,"T(A=B):I THINK THAT WOULD WIPE OUT A STATEMENT!",7660,"J(A=B):*FINDPLAC",7670,"T:THAT IS VERY ASTUTE $NAME+! +",7680,"*FINDPLAC T:A GOOD PLACE WOULD BE BETWEEN STATEMENTS 1050 AND +",7690,"T:1060. WHAT MESSAGE WOULD YOU LIKE PRINTED??",7700,"A:$BIGMESS",7710,"T:OK, OUR FINAL VERSION NOW LOOKS LIKE:",7720,"T:",7730,"T: 1000 *AGE T:WHAT IS YOUR AGE + ",7740,".T: 1010 A:#A" 7750,"T: 1020 TB:$NUMMESS",7760,"T: 1030 JB:*AGE",7770,"T: 1040 T(A<0):$NEGNUM",7780,"T: 1050 J(A<0):*AGE",7790,"T: 1054 T(A>150):$BIGMESS",7800,"T: 1057 J(A>150):*AGE",7810,"T: 1060 T(A<5):$ALT5",7820,"T: 1070 T(A>80):$AGT80",7830,"T:",7840,"T:DO YOU THINK YOU UNDERSTAND THIS PROGRAM +",7850,"A:",7860,".M:[Y],[YE,RIGHT,OF*COURS,PERFECT,CERT",7870,"JN:*AGAINSUM" 7880,"R:",7890,"R: END IT ALL",7900,"R:",7910,"T:VERY GOOD $NAME+! YOU HAVE PROGRESSED THROUGH MOST OF THE +",7920,"T:PILOT LANGUAGE. I AM PROUD OF YOU!",7930,"T:",7940,"T:BEFORE YOU GO I WISH TO GIVE YOU A 'HOMEWORK' ASSIGNMENT. +",7950,"T:THIS INVOLVES A NEW CONCEPT (A NEW PILOT STATEMENT!), AND +",7960,"T:ARISES FROM A QUESTION LIKE:",7970,"T:",7980,"T: 7000 T:NAME TWO STATES BORDERING ON CALIFORNIA + ",7990,"T: 7010 A:",8000,"T:" 8010,"T:FOR YOU POOR PEOPLE UNFORTUNATE NOT TO LIVE IN THE GOLDEN STATE +",8020,"T:THE CORRECT STATES ARE: ARIZONA, NEVADA, AND OREGON.",8030,"T:THE PROBLEM ARISES FROM THE VARIOUS POSSIBLE COMBINATIONS OF +",8040,"T:ALLOWED ANSWERS. OK, HOW COULD YOU DO THIS IN PILOT? ",8050,"T:THINK ABOUT THIS AND THEN CHECK THE 'PILOT REFERENCE MANUAL' +",8060,"T:CONCERNING THE 'DEMAND' STATEMENT. WILL YOU DO IT +",8070,"A:",8080,".M:[YE,[Y],[O*K],RIGHT,CERT,OF*COURS",8090,"Y:THAT IS THE SPIRIT $NAME+! +" 8100,"N:NOW $NAME+, LISTEN TO ME. +",8110,"T:IT IS VERY IMPORTANT TO PRACTICE USING THE PILOT LANGUAGE, AND +",8120,"T:THIS INCLUDES GETTING AQUAINTED WITH THE REFERENCE MANUAL. +",8130,"N:NOW GO DO IT! +",8140,"T:IN THE NEXT PROGRAM I WILL CHECK IF REALLY DID LEARN ABOUT THE +",8150,"T:'DEMAND' STATEMENT!",8160,"T:ALSO IN THE NEXT PROGRAM YOU WILL LEARN HOW TO MODIFY THE VALUE +",8170,"T:OF A NUMERIC VARIABLE (OTHER THAN IN AN 'ANSWER' STATEMENT). +",8180,"T:AND THAT SHOULD JUST ABOUT FINISH UP THINGS!!",8190,"T:"