Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
10 FOR A = 1 TO 5 STEP 1
20 FOR B = 2 TO 7 STEP 2:FOR C = 2 TO 14 STEP 5
30 PRINT A*B*C
40 NEXT C
50 NEXT B:NEXT A
60 PRINT 666
jmp (addr)
10 FOR J=1 TO 5
20 FOR I=1 TO 3
30 PRINT I*J
40 NEXT J
10 FOR J=1 TO 5
20 FOR I=1 TO 3
30 PRINT I*J
35 IF I = 2 THEN POP:GOTO 50
40 NEXT I
50 NEXT J
10 FOR I = 1 TO 5
20 FOR J = 1 TO 3
30 PRINT I*J
40 NEXT I
50 NEXT J
60 PRINT 666
Now compiling...
Variable "I" not used yet. Spawning new one...
FOR LOOP "I" with BORDER at $6bd0 and STEP at $6ba0
line: 10 compiled
Variable "J" not used yet. Spawning new one...
FOR LOOP "J" with BORDER at $6bd6 and STEP at $6ba6
line: 20 compiled
Variable "I" found...
Variable "J" found...
Creating temporary variable at location $70c...
line: 30 compiled
NEXT: Current loop: "J" - next statement = "I"
ERROR: FOR/NEXT identifier mismatch
****** compilation failed
xxl:
mam pytanie - a jesli bedzie wiecej niz jeden NEXT dla FOR?Bluki:
Innymi słowy: choć BASIC na to pozwala, to pewnych konstrukcji nie należy stosować, pomimo że działają.10 FOR I=1 TO 10
15 PRINT I
20 GOTO 100
30 END
100 NEXT I
10 FOR I = 1 TO 2
20 FOR J = 1 TO 5
30 IF J = 3 THEN GOTO 37
31 PRINT I*J
32 GOTO 40
37 PRINT 37
38 NEXT J
40 NEXT J
50 NEXT I
60 PRINT 666
NEXT: Current loop: "I" - next statement = "J"
ERROR: FOR/NEXT identifier mismatch
mgr_inz_rafal:
Po pierwsze: dlaczego "NOT -0 = 0"? Zwłaszcza, że "0 AND -0 = 0"...mono:
Wygląda na to, że jest błąd w tablicy parsowania składni SXTAB ($A605), ale gdzie konkretnie trzeba by się zastanowić.jhusak:
Z drugiej strony jeśli pisałbym kompilator, to jednak nie implementowałbym błędów z pełną świadomościąmono:
Gratuluję znalezienia błędu BASICa, którego nie ma w atariki :)10 IF 5>6 AND (0 OR 3=3) THEN PRINT 1
20 IF 5>6 AND 0 OR 3=3 THEN PRINT 2
30 IF 5> NOT 6 THEN PRINT 3
40 IF 5<>3 THEN PRINT NOT 3 + NOT 0
50 A=5
60 IF A=5 THEN A=A + NOT 0
70 PRINT A
80 DIM STEFAN(10)
90 STEFAN( NOT 0)=666
100 PRINT STEFAN(A - 5)
10 DIM T(5)
20 FOR T(3)=4 TO 8:NEXT T(3)
int main ()
{
int a[17];
for (a[4] = 5; a[4] < 8; ++a[4])
{}
}
10 FOR I = 1 TO 9
20 FOR J = 1 TO 9
30 PRINT I;"*";J,"= ";I*J
40 NEXT J
45 PRINT "---"
50 NEXT I
60 PRINT 666
10 FOR I = 15 TO 1 STEP -1
20 FOR J = 1 TO I
30 PRINT "*";
40 NEXT J
50 PRINT
60 NEXT I
70 PRINT 666
10 PRINT 1,2,3,4,5,6,7,8,9