Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision | ||
niki:syntax [04.02.2018 18:00] – [Compileroptionen] whupfeld | niki:syntax [05.02.2018 05:11] – whupfeld | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | + | < | |
- | ====== Die Programmiersprache ====== | + | [ [[niki:home|Home]] ] [ [[niki:menu|Das Niki - Menü]] ] [ [[niki: |
- | + | <html></div></html> | |
- | + | ====== | |
- | + | ===== Program | |
- | ===== Die Programmiersprache ===== | + | {{niki: |
- | + | ==== Block ==== | |
- | Die NIKI-Sprache entspricht einer Untermenge von PASCAL. Als Grundelemente kommen nur die NIKI-Anweisungen in Betracht. Die Formulierung der Schlüsselwörter und der Programmanweisungen hängen von der gewählten Programmsprache ab. Je nach Einstellung im Optionen-Dialog können Sie englische oder deutsche Schlüsselwörter benutzen. Die folgenden Ausführungen basieren auf den englischen Bezeichnungen. | + | {{niki: |
- | + | ---- | |
- | ===== Programmaufbau ===== | + | {{niki: |
- | + | ---- | |
- | + | {{niki: | |
- | Jedes NIKI-Programm besteht aus einem Programmkopf und einem Programmrumpf. Der Programmkopf enthält das Schlüsselwort '' | + | ---- |
- | + | {{niki: | |
- | Nach dem Programmkopf können Prozeduren folgen, die dem Aufbau von Programmen entsprechen. Der Prozedurkopf besteht aus dem Wort '' | + | ---- |
- | + | {{niki: | |
- | An jeder beliebigen Stelle im Programm können Kommentare eingefügt werden. Beim Übersetzen des Programmtexts ignoriert der Compiler die Kommentare. Zwei Kommentarklammerungen sind möglich: | + | ---- |
- | + | {{niki: | |
- | { dies ist ein Kommentar mit geschweiften Klammern } | + | |
- | + | ||
- | (* dies ist eine Klammer mit einem Stern *) | + | |
- | + | ||
- | Beispiele für ein vollständiges NIKI-Programm in [[niki:beispiel-englisch|englisch]] und [[niki:beispiel-deutsch|deutsch]]. | + | |
- | + | ||
- | ===== Kontrollstrukturen ===== | + | |
- | + | ||
- | Die Formulierung der Kontrollstrukturen hängt von der gewählten Programmsprache ab. Es können je nach Einstellung im Optionen-Dialog englische oder deutsche Schlüsselwörter verwendet werden. Die Syntax entspricht der von PASCAL. | + | |
- | + | ||
- | Folgende Kontrollstrukturen sind in der NIKI-Programmiersprache | + | |
- | | + | |
- | | + | |
- | + | ||
- | + | ||
- | + | ||
- | ==== Kontrollstrukturen in englisch: ==== | + | |
- | + | ||
- | Verbund-Anweisung: | + | |
- | <code pascal>BEGIN Anweisungen END;</code> | + | |
- | Schleife mit Eingangsbedingung: | + | |
- | <code pascal> | + | |
- | Schleife mit Ausgangsbedingung: | + | |
- | <code pascal> | + | |
- | einseitige Entscheidungsanweisung: | + | |
- | <code pascal> | + | |
- | zweiseitige Entscheidungsanweisung: | + | |
- | <code pascal> | + | |
- | + | ||
- | + | ||
- | ==== Kontrollstrukturen in deutsch: | + | |
- | + | ||
- | Verbund-Anweisung: | + | |
- | <code pascal> | + | |
- | Schleife mit Eingangsbedingung: | + | |
- | <code pascal> | + | |
- | Schleife mit Ausgangsbedingung: | + | |
- | <code pascal> | + | |
- | einseitige Entscheidungsanweisung: | + | |
- | <code pascal> | + | |
- | zweiseitige Entscheidungsanweisung: | + | |
- | <code pascal> | + | |
- | + | ||
- | ===== NIKI-Anweisungen ===== | + | |
- | + | ||
- | Die folgenden Befehle bilden den Grundwortschatz. | + | |
- | + | ||
- | |'' | + | |
- | |'' | + | |
- | |'' | + | |
- | |'' | + | |
- | |'' | + | |
- | |'' | + | |
- | + | ||
- | Der Befehl Arbeitsfeld dient zum Laden eines Arbeitsfeldes von Diskette oder Festplatte. Die Anweisung darf nur als erster Befehl in einem Block stehen, d.h. entweder erster Befehl im Hauptprogramm oder in einer Prozedur. Es wäre also denkbar, NIKI in einem Programm auf mehreren Arbeitsfeldern agieren zu lassen. | + | |
- | + | ||
- | Die Anweisung abschalten kann an jeder beliebigen Stelle des Programms aufgerufen werden und schaltet den Roboter ab. | + | |
- | + | ||
- | ===== NIKI-Sensoren | + | |
- | + | ||
- | Seine `Intelligenz' | + | |
- | + | ||
- | Wahr, wenn | + | |
- | + | ||
- | | vorne_frei |vor NIKI in Blickrichtung kein Hindernis steht | | + | |
- | |rechts_frei | + | |
- | |links_frei | + | |
- | |Platz_belegt | + | |
- | |hat_Vorrat | + | |
- | |nordwaerts | + | |
- | |suedwaerts | + | |
- | |westwaerts | + | |
- | |ostwaerts | + | |
- | + | ||
- | Die Sensoren können als Bedingungen in die Entscheidungsanweisungen und Wiederholungsanweisungen eingesetzt werden. Sie lassen sich mit '' | + | |
- | + | ||
- | Beispiel: | + | |
- | + | ||
- | WHILE vorne_frei AND NOT Platz_belegt DO vor; | + | |
- | + | ||
- | ===== Compileroptionen ===== | + | |
- | + | ||
- | In der vorliegenden Version ist eine Compileroption D zum Umschalten der NIKI-Programmsprache vorgesehen. Man kann so innerhalb eines Programms zwischen der Syntax für deutsche und englische Schlüsselwörtern wählen. | + | |
- | + | ||
- | Compileroptionen stehen in Kommentarklammern, | + | |
- | + | ||
- | D+ schaltet auf deutsche Schlüsselwörter ein | + | |
- | D- schaltet auf englische Schlüsselwörter ein | + | |
- | D= schaltet zu der vor der letzten Compiler-Option gültigen Version | + | |
- | + | ||
- | Gültige Ausdrücke sind z.B. '' | + | |
- | + | ||
- | ===== Include-Dateien ===== | + | |
- | + | ||
- | Durch das Einbinden von Include-Dateien kann der Quelltext auf mehrere Dateien verteilt werden, was die Projektarbeit erheblich vereinfacht. | + | |
- | + | ||
- | Mit der Compileroption " | + | |
- | + | ||
- | Beispielsweise wird durch "'' | + | |