Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Zwei Werte bearbeiten Kategorie: Programmierung Basic (von Stefan Tappertzhofen, Homepage - 23.02.2005 23:02)
 Als Antwort auf Re: Zwei Werte bearbeiten von Dierk - 23.02.2005 22:03
Hallo,

> Hier hast Du den Fehler gemacht, dass Du  Ã­n der 1. Zeile gleich die Zuweisung geschrieben hast.
> Das kannst Du zwar machen, dann gilt aber die If-Abfrage nur für eine Zeile.

ja da hast Du Recht. Aus diesem Grund sagt der Compiler auch er würde ein END IF ohne IF haben, da das vorherige IF für ihn schon abgeschlossen ist (der Compiler setzt sozusagen ein "imaginäres END IF" ans Zeilenende. Wenn er kein IF zum END IF finden ist offenbar eins zu viel oder es liegt ein Fehler vor, wie hier.

> Früher, im alten Basic hat man noch alles in eine Zeile geschrieben, aber durch Doppelpunkte getrennt.

Jein, man konnte zwar durch Doppelpunkte mehrere Anweisungen in eine Zeile schreiben, aber meines Wissens nach nicht mehrere Befehle in eine IF Abfrage:


if 1 = 1 then print 100: print 200: print 300


ergibt nämlich folgenden Pseudo Code:


4 : 20 PUSH 1
7 : 20 PUSH 1
10 : 64 TEST EQUAL
11 : 4 JNE 22
14 : 20 PUSH 100
17 : 30 PRINTNUMB
18 : 31 PRINT
17 : 0 PRINTEND
22 : 20 PUSH 200
25 : 30 PRINTNUMB
26 : 31 PRINT
25 : 0 PRINTEND
30 : 20 PUSH 300
33 : 30 PRINTNUMB
34 : 31 PRINT
33 : 0 PRINTEND
38 : 255 END


Das heißt wenn 1 nicht 1 wäre (nur zur Anschauung her) wird automatisch zum Offset 22 gesprungen, also 200 ausgegeben. Es war offenbar früher nicht so ohne weiteres möglich (zum Beispiel ohne GOTO) mehrere Befehle in die If Abfrage einzubinden, obwohl die BASIC Token dies ausdrücklich ermöglichen. Das Kompilat stammt vom CCBASIC Compiler.

> Geht eventuell auch noch im Basic++, ist aber ziemlich unübersichtlich.

Zunächst wollte ich den ":" auch in BASIC++ erlauben, habe mich dann dennoch umentschieden. Der Doppelpunkt hat im Prinzip keinen Vorteil, er fördert nicht die Lesbarkeit und ermöglicht es auch nicht kompakteren Code zu erzeugen. Zusätzlich kam dann noch die Schwierigkeit, dass ich den Doppelpunkt schon für eine andere Sachen reservieren wollte und jetzt auch habe, nämlich für lokale Labels/Sprungmarken, wie man es auch aus anderen BASIC Dialekten her kennt.

Gruß,

Stefan

Meine Homepage: http://www.fdos.de/ccbpp

 Antwort schreiben

Bisherige Antworten:

Re: Zwei Werte bearbeiten (von Dietmar - 24.02.2005 0:01)
    Re: Zwei Werte bearbeiten (von Achim - 24.02.2005 2:35)
        Re: Zwei Werte bearbeiten (von Dietmar - 24.02.2005 5:43)
            Re: Zwei Werte bearbeiten (von Achim - 24.02.2005 12:49)
                Re: Zwei Werte bearbeiten (von Dietmar - 24.02.2005 22:13)
                    Re: Zwei Werte bearbeiten (von Stefan Tappertzhofen - 24.02.2005 23:07)
    Re: Zwei Werte bearbeiten (von Stefan Tappertzhofen - 24.02.2005 0:13)
        Re: Zwei Werte bearbeiten (von Henrik - 24.02.2005 0:27)