OPTION DIALECT DARTMOUTH 001 REM THIS IS A PROGRAM WRITTEN IN BASIC. 002 REM YOU CAN WRITE ONE STATEMENT PER LINE. 003 REM EACH STATEMENT MUST HAVE A LINE NUMBER. 004 REM THE "REM" LINES ARE COMMENTS, WHICH ARE IGNORED 005 ' YOU CAN ALSO DO COMMENTS WITH APOSTROPHES 006 ' LET'S START WITH A "PRINT"... 100 PRINT "HELLO! LET'S PROGRAM IN BASIC." 101 PRINT ' <-- THIS PRINTS A BLANK LINE, IT LOOKS NICER 105 ' "INPUT" WAITS FOR USER INPUT FROM THE KEYBOARD 106 ' THE NUMBER ENTERED WILL GO INTO THE VARIABLE "N" 110 INPUT "FIRST, TELL ME YOUR FAVORITE NUMBER";N 111 PRINT 115 ' YOU CAN DO CALCULATIONS WITH THE + - / * OPERATORS 116 ' THE ^ IS AN EXPONENT, SO N^2 IS N-SQUARED 119 ' "LET" ASSIGNS THE RESULT TO A VARIABLE 120 LET Z = N^2 121 ' THE SEMICOLON ";" SEPARATES THINGS TO BE PRINTED 122 PRINT "THAT'S A GOOD ONE! I LIKE";Z;"MYSELF." 123 PRINT 125 ' IF A VARIABLE ENDS IN "$" IT IS A STRING 126 ' AND CONTAINS CHARACTERS INSTEAD OF A NUMBER 127 ' LET'S READ FROM THE KEYBOARD INTO THE A$ VARIABLE 130 INPUT "WOULD YOU MIND TYPING IN YOUR NAME";A$ 131 PRINT 135 ' WE CAN PRINT MULTIPLE THINGS PER LINE 136 ' IN THIS BASIC DIALECT, NUMBERS ARE PRINTED 137 ' WITH SPACES BEFORE AND AFTER 140 PRINT "GOOD TO MEET YOU, ";A$;" WHO LOVES";N;"!" 141 PRINT 150 INPUT "WOULD YOU LIKE TO SEE ME CALCULATE";B$ 151 PRINT 155 ' "IF" CAN TEST A CONDITION 156 ' AND JUMP TO A DIFFERENT LINE IF IT IS TRUE 160 IF B$ = "Y" THEN 180 161 IF B$ = "YES" THEN 180 170 PRINT "TOO BAD, ";A$;"! WE'RE DOING THIS." 180 PRINT 190 PRINT "WATCH ME COUNT..." 195 ' THIS "FOR" STATEMENT STARTS A LOOP WHICH SETS 196 ' VARIABLE I TO 1 AND COUNTS TO 50 200 FOR I = 1 TO 50 210 PRINT I, ' USE A COMMA FOR NEAT PRINT ZONES 220 NEXT I ' REPEAT LOOP 225 ' USING THE COMMA (OR SEMICOLON) IN THE PRINT STATEMENT 226 ' KEEPS THE CURSOR ON THE SAME LINE, SO WE PRINT 227 ' A BLANK LINE TO RETURN TO THE LEFT MARGIN 230 PRINT 240 PRINT "I CAN ALSO GRAPH TRIG FUNCTIONS!" 245 ' YOU CAN DEFINE YOUR OWN FUNCTIONS WITH "DEF" 246 ' FUNCTIONS MUST START WITH "FN" 250 DEF FNY(X) = (SIN(X*0.3)+1)*30+2 260 FOR I = 1 TO 25 270 PRINT TAB(FNY(I));"*" 280 NEXT I 300 ' YOU CAN DEFINE AN ARRAY WITH "DIM" 301 ' YOU CAN HAVE ARRAYS OF EITHER NUMBERS OR STRINGS 310 DIM T$(15),A$(15),W(15) 315 ' "READ" LOADS FROM "DATA" STATEMENTS 316 ' DATA CAN BE ANYWHERE, OURS IS AT LINE 900 320 FOR I = 1 TO 15 330 READ T$(I),A$(I),W(I) 340 NEXT I 350 ' NOW THE ARRAYS ARE FILLED WITH DATA 351 ' SO LET'S PICK A VALUE AT RANDOM 352 ' THE RND FUNCTION RETURNS A RANDOM NUMBER 353 ' FIRST WE USE "RANDOMIZE" TO INITIALIZE THE 354 ' RANDOM NUMBER GENERATOR 360 RANDOMIZE 362 ' "LET" ASSIGNS A VARIABLE FROM AN EXPRESSION 370 LET J = INT(15*RND) 380 PRINT "MY FAVORITE SONG IS '";T$(J);"'" 390 PRINT "BY ";A$(J);", DO YOU KNOW IT?" 400 PRINT "IT SPENT";W(J);"WEEKS ATOP THE CHARTS." 410 PRINT 890 ' HERE'S THE DATA WE READ EARLIER 891 ' WE CAN USE NUMBERS, QUOTED OR UNQUOTED STRINGS 900 DATA "HELLO, GOODBYE",THE BEATLES,2 901 DATA "JUDY IN DISGUISE",JOHN FRED AND HIS PLAYBOY BAND,2 902 DATA "GREEN TAMBOURINE",THE LEMON PIPERS,1 903 DATA "LOVE IS BLUE",PAUL MAURIAT,5 904 DATA "(SITTIN' ON) THE DOCK OF THE BAY",OTIS REDDING,4 905 DATA "HONEY",BOBBY GOLDSBORO,5 906 DATA "TIGHTEN UP",ARCHIE BELL & THE DRELLS,3 907 DATA "MRS. ROBINSON",SIMON & GARFUNKEL,3 908 DATA "THIS GUY'S IN LOVE WITH YOU",HERB ALPERT,4 909 DATA "GRAZING IN THE GRASS",HUGH MASEKELA,2 910 DATA "HELLO, I LOVE YOU",THE DOORS,2 911 DATA "PEOPLE GOT TO BE FREE",THE RASCALS,5 912 DATA "HARPER VALLEY PTA",JEANNIE C. RILEY,1 913 DATA "HEY JUDE",THE BEATLES,9 914 DATA "LOVE CHILD",DIANA ROSS & THE SUPREMES,2 915 DATA "I HEARD IT THROUGH THE GRAPEVINE",MARVIN GAYE,3 979 ' WE'RE DONE, SAY GOODBYE TO THE USER 980 PRINT "I APOLOGIZE, BUT I AM FATIGUED FROM ALL OF THIS" 981 PRINT "CALCULATING. I SHALL TAKE MY LEAVE OF YOU NOW." 990 PRINT "NICE MEETING YOU, ";A$;"." 998 ' PROGRAMS MUST END WITH "END" IN THIS DIALECT 999 END