copied some samples from a branch to trunk. Added two new samples.
authorMichael Welch <michaelgwelch@gmail.com>
Sun, 28 Jan 2007 03:48:23 +0000 (03:48 +0000)
committerMichael Welch <michaelgwelch@gmail.com>
Sun, 28 Jan 2007 03:48:23 +0000 (03:48 +0000)
samples/array.mbas [new file with mode: 0644]
samples/array2.mbas [new file with mode: 0644]
samples/array3.mbas [new file with mode: 0644]
samples/array4.mbas [new file with mode: 0644]
samples/checkparens.mbas [new file with mode: 0644]
samples/codebreaker.mbas [new file with mode: 0644]
samples/input.mbas [new file with mode: 0644]
samples/testPrint.mbas [new file with mode: 0644]

diff --git a/samples/array.mbas b/samples/array.mbas
new file mode 100644 (file)
index 0000000..e02b7a1
--- /dev/null
@@ -0,0 +1,19 @@
+99 REM from page II-108 of User's Guide\r
+100 REM This program pairs two lists\r
+110 REM LINES 120 to 150 assign values to list X\r
+120 For T = 1 TO 4\r
+130 READ X(T)\r
+140 NEXT T\r
+150 DATA 1,3,5,7\r
+160 REM LINES 170 TO 200 ASSIGN VALUES TO LIST Y\r
+170 FOR S = 1 TO 4\r
+180 READ Y(S)\r
+190 NEXT S\r
+200 DATA 2,4,6,8\r
+210 REM LINES 220 TO 270 PAIR THE LISTS AND PRINT THE COMBINATIONS\r
+220 FOR T = 1 TO 4\r
+230 FOR S = 1 TO 4\r
+240 PRINT X(T);Y(S);" ";\r
+250 NEXT S\r
+260 NEXT T\r
+280 END\r
diff --git a/samples/array2.mbas b/samples/array2.mbas
new file mode 100644 (file)
index 0000000..e225ef1
--- /dev/null
@@ -0,0 +1,21 @@
+99 REM Page II-109 of User's Guide\r
+100 REM Multiplication Table\r
+110 Call Clear\r
+150 For A=1 To 5\r
+160 For B=1 To 5\r
+170 M(A,B)=A*B\r
+180 Next B\r
+190 Next A\r
+200 For A = 1 To 5\r
+210 For B = 1 To 5\r
+220 PRINT M(A,B);\r
+230 IF B<>1 Then 250\r
+240 Print "|";" ";\r
+250 Next B\r
+260 Print\r
+270 Rem The following statements print the lines defining the table\r
+280 If A<>1 then 330\r
+290 Print\r
+300 Print "~~~~~~~~~~~~~~~~~~"\r
+330 Next A\r
+340 End\r
diff --git a/samples/array3.mbas b/samples/array3.mbas
new file mode 100644 (file)
index 0000000..45a79be
--- /dev/null
@@ -0,0 +1,3 @@
+100 M(3,4) = 75\r
+101 A$(0,3) = "hello"\r
+102 print A$(0,3)
\ No newline at end of file
diff --git a/samples/array4.mbas b/samples/array4.mbas
new file mode 100644 (file)
index 0000000..cae2670
--- /dev/null
@@ -0,0 +1,6 @@
+100 OPTION BASE 1\r
+110 DIM A(10, 5)\r
+120 DIM A$(5, 10)\r
+130 B(1,1,1) = 6\r
+140 B$(2,1,3) = "hello"\r
+150 end
\ No newline at end of file
diff --git a/samples/checkparens.mbas b/samples/checkparens.mbas
new file mode 100644 (file)
index 0000000..b4042b9
--- /dev/null
@@ -0,0 +1,57 @@
+100 REM Checks a string for matching brackets\r
+101 REM '(', ')', '[', ']', '{', '}'\r
+\r
+108 DIM STACK$(100)\r
+\r
+109 REM Initialize Stack\r
+110 GOSUB 1000\r
+130 INPUT "String: ":STRING$\r
+\r
+140 FOR I = 1 TO LEN(STRING$)\r
+150 CHAR$ = SEG$(STRING$, I, 1)\r
+151 STACKVAL$ = CHAR$\r
+155 LEFTBRACKET = (CHAR$="(") + (CHAR$="[") + (CHAR$="{")\r
+156 RIGHTBRACKET = (CHAR$=")") + (CHAR$="]") + (CHAR$="}")\r
+160 IF LEFTBRACKET THEN 180\r
+170 IF RIGHTBRACKET THEN 190\r
+175 GOTO 250\r
+180 GOSUB 2000\r
+185 GOTO 250\r
+190 GOSUB 3000\r
+195 MATCH = ((STACKVAL$="(")*(CHAR$=")") + (STACKVAL$="[")*(CHAR$="]") + (STACKVAL$="{")*(CHAR$="}"))\r
+200 IF MATCH=0 THEN 300\r
+250 NEXT I\r
+260 GOSUB 4000\r
+270 IF STACKCOUNT<>0 THEN 300\r
+280 PRINT "Match"\r
+290 GOTO 301\r
+300 PRINT "No match detected at pos "&STR$(I)\r
+301 INPUT "Another String (Y or N): ":AGAIN$\r
+302 IF (AGAIN$="Y") THEN 110\r
+310 END\r
+\r
+999  REM SUBROUTINE 1000 Initializes the stack to be empty\r
+1000 STACKIDX = -1\r
+1010 STACKVAL$ = ""\r
+1020 RETURN\r
+\r
+1999 REM This subroutine pushes STACKVAL$ onto stack\r
+2000 STACKIDX = STACKIDX + 1\r
+2010 STACK$(STACKIDX) = STACKVAL$\r
+2020 RETURN\r
+\r
+3000 REM This subroutine pops a value off of the stack\r
+3010 REM and puts it into variable STACKVAL$. If the\r
+3020 REM stack is empty then STACKVAL$ will get the empty string\r
+3030 IF (STACKIDX > -1) THEN 3060\r
+3040 STACKVAL$ = ""\r
+3050 GOTO 3080\r
+3060 STACKVAL$ = STACK$(STACKIDX)\r
+3070 STACKIDX = STACKIDX - 1\r
+3080 RETURN\r
+\r
+4000 REM This routine updates STACKCOUNT with the number\r
+4010 REM of items in the STACK. STACKCOUNT is only reliable\r
+4020 REM if this subroutine is called before inspecting it.\r
+4030 STACKCOUNT = STACKIDX + 1\r
+4040 RETURN
\ No newline at end of file
diff --git a/samples/codebreaker.mbas b/samples/codebreaker.mbas
new file mode 100644 (file)
index 0000000..4987459
--- /dev/null
@@ -0,0 +1,48 @@
+99 REM From page III-24 of User's Guide\r
+100 REM CODEBREAKER GAME\r
+110 RANDOMIZE\r
+120 CALL CLEAR\r
+130 FOR I = 1 TO 4\r
+140 N(I) = INT(9*RND)+1\r
+150 IF I=1 THEN 190\r
+160 FOR J = 1 TO I-1\r
+170 IF N(I)=N(J) THEN 140\r
+180 NEXT J\r
+190 NEXT I\r
+200 TRIES = 0\r
+\r
+210 INPUT "ENTER GUESS? ":GUESS\r
+220 SCORE = 0\r
+230 TRIES=TRIES+1\r
+\r
+240 FOR COUNT=1 TO 4\r
+241 K = 5 - COUNT\r
+248 REM Following line changed from original to account\r
+249 REM for rounding errors in .NET double\r
+250 DIGIT=GUESS-(INT(GUESS/10)*10)\r
+260 IF DIGIT<>N(K) THEN 290\r
+270 SCORE=SCORE+1\r
+280 GOTO 340\r
+290 FOR L=1 TO 4\r
+300 IF N(L)<>DIGIT THEN 330\r
+310 SCORE=SCORE+.1\r
+320 GOTO 340\r
+330 NEXT L\r
+340 GUESS=INT(GUESS/10)\r
+350 NEXT COUNT\r
+\r
+360 IF INT(SCORE)<>SCORE THEN 390\r
+370 PRINT STR$(SCORE)&".0"\r
+380 GOTO 430\r
+390 IF SCORE>1 THEN 420\r
+400 PRINT "0"&STR$(SCORE)\r
+410 GOTO 430\r
+420 PRINT STR$(SCORE)\r
+430 IF SCORE<>4 THEN 210\r
+\r
+440 PRINT "YOU TOOK " &STR$(TRIES)&" TRIES TO GUESS"\r
+450 PRINT "THE CODE NUMBER."\r
+460 DISPLAY "WOULD YOU LIKE TO PLAY AGAIN"\r
+470 INPUT "ENTER Y OR N: ":A$\r
+480 IF A$="Y" THEN 110\r
+490 END
\ No newline at end of file
diff --git a/samples/input.mbas b/samples/input.mbas
new file mode 100644 (file)
index 0000000..3938e78
--- /dev/null
@@ -0,0 +1,7 @@
+100 INPUT A,B$\r
+110 PRINT A;B$\r
+115 INPUT "Hit Enter":B$\r
+116 A = LEN(B$)\r
+120 print len(c$)\r
+130 print d$\r
+140 e$ = d$\r
diff --git a/samples/testPrint.mbas b/samples/testPrint.mbas
new file mode 100644 (file)
index 0000000..5c04211
--- /dev/null
@@ -0,0 +1,12 @@
+\r
+100 expected$ = " 10  20 "\r
+110 gosub 1000\r
+\r
+1000 REM Subroutine Assert Equals( expected$, actual$ )\r
+l1005 lineNumber = lineNumber + 1\r
+1007 input actual$\r
+1010 if expected$ = actual$ then 1030\r
+1020 print "Line";lineNumber;":";expected$;"<>";actual$\r
+1030 return\r
+\r
+1040 end
\ No newline at end of file