niki:syntax

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
niki:syntax [04.02.2018 17:56] – [NIKI-Anweisungen] whupfeldniki:syntax [30.10.2023 18:54] (aktuell) – [Anweisung] whupfeld
Zeile 1: Zeile 1:
 +[ [[niki:home|Home]] ] [ [[niki:menu|Das Niki - Menü]] ] [ [[niki:programmiersprache|Die Programmiersprache]] ] [ **[[niki:syntax|Syntax]]** ] [ [[niki:aufgaben|Aufgaben]] ] [ [[niki:beispiele|NIKI-Beispiele]] ]
  
-====== Die Programmiersprache ======+====== Syntax ======
  
 +==== Program ====
 +{{niki:image22.gif}}
  
-[ Home ] [ Das Niki - Menü ] [ Die Programmiersprache ] [ Syntax ] [ Aufgaben ] [ NIKI-Beispiele ]+==== Block ==== 
 +{{niki:image23.gif}}
  
- +==== Prozedurvereinbarung ==== 
 +{{niki:image24.gif}}
  
-===== Die Programmiersprache =====+==== Name ==== 
 +{{niki:image25.gif}}
  
-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.+==== Faktor ==== 
 +{{niki:image26.gif}}
  
-===== Programmaufbau =====+==== Ausdruck ==== 
 +{{niki:image27.gif}}
  
 +==== Anweisung ====
 +{{niki:image28.gif}}
  
-Jedes NIKI-Programm besteht aus einem Programmkopf und einem Programmrumpf. Der Programmkopf enthält das Schlüsselwort ''PROGRAM'' und den Namen des Programms. Der Programmrumpf muss mit ''BEGIN'' und ''END'' geklammert und beinhaltet Anweisungen, die durch ein Semikolon getrennt werden. Ein Punkt markiert das Programmende.+[ [[niki:home|Home]] ] [ [[niki:menu|Das Niki - Menü]] ] [ [[niki:programmiersprache|Die Programmiersprache]] ] [ **[[niki:syntax|Syntax]]** ] [ [[niki:aufgaben|Aufgaben]] ] [ [[niki:beispiele|NIKI-Beispiele]] ]
  
-Nach dem Programmkopf können Prozeduren folgen, die dem Aufbau von Programmen entsprechen. Der Prozedurkopf besteht aus dem Wort ''PROCEDURE'' und dem Prozedurnamen, gefolgt von einem Anweisungsblock. Prozeduren können sich dabei selbst aufrufen (Rekursion) 
- 
-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: 
- 
-  { 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 enthalten: 
-  * Einseitige und zweiseitige Entscheidungsanweisungen 
-  * Wiederholungsanweisungen mit Eingangs- und Ausgangsbedingungen 
- 
-  
- 
-==== Kontrollstrukturen in englisch: ==== 
- 
-Verbund-Anweisung:  
-<code pascal>BEGIN Anweisungen END;</code> 
-Schleife mit Eingangsbedingung:  
-<code pascal>WHILE Bedingung DO Anweisung;</code> 
-Schleife mit Ausgangsbedingung:  
-<code pascal>REPEAT Anweisungen UNTIL Bedingung;</code> 
-einseitige Entscheidungsanweisung:  
-<code pascal>IF Bedingung THEN Anweisung;</code> 
-zweiseitige Entscheidungsanweisung:  
-<code pascal>IF Bedingung THEN Anweisung ELSE Anweisung;</code> 
-  
- 
-==== Kontrollstrukturen in deutsch: ==== 
- 
-Verbund-Anweisung:  
-<code pascal>BEGINN Anweisungen ENDE;</code> 
-Schleife mit Eingangsbedingung:  
-<code pascal>SOLANGE Bedingung TUE Anweisung;</code> 
-Schleife mit Ausgangsbedingung:  
-<code pascal>WIEDERHOLE Anweisungen BIS Bedingung;</code> 
-einseitige Entscheidungsanweisung:  
-<code pascal>WENN Bedingung DANN Anweisung;</code> 
-zweiseitige Entscheidungsanweisung:  
-<code pascal>WENN Bedingung DANN Anweisung SONST Anweisung;</code> 
- 
-===== NIKI-Anweisungen ===== 
- 
-Die folgenden Befehle bilden den Grundwortschatz. 
- 
-''vor'' NIKI geht eine Stelle in Blickrichtung weiter 
-''drehe_links'' NIKI dreht sich um 90° links 
-''nimm_auf'' NIKI nimmt einen Gegenstand von seiner Position auf 
-''gib_ab'' NIKI legt einen Gegenstand auf seiner Position ab 
-''Arbeitsfeld(Feld)'' Das Arbeitsfeld Feld wird geladen 
-''abschalten'' Das Programm wird beendet 
- 
-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' erhält NIKI erst dadurch, daß er über Sensoren verfügt und mit diesen Sensoren flexibel auf seine Umgebung reagieren kann. 
- 
-Wahr, wenn 
- 
-| vorne_frei |vor NIKI in Blickrichtung kein Hindernis steht | 
-|rechts_frei  |rechts neben NIKI kein Hindernis ist | 
-|links_frei  |links neben NIKI kein Hindernis ist | 
-|Platz_belegt  |sich auf Nikis Position mindestens ein Gegenstand befindet | 
-|hat_Vorrat  |NIKI mindestens einen Gegenstand als Vorrat besitzt | 
-|nordwaerts  |NIKI in Richtung Nord blickt | 
-|suedwaerts  |NIKI in Richtung Süd blickt | 
-|westwaerts  |NIKI in Richtung West blickt | 
-|ostwaerts   |NIKI in Richtung Ost blickt | 
- 
-Die Sensoren können als Bedingungen in die Entscheidungsanweisungen und Wiederholungsanweisungen eingesetzt werden. Sie lassen sich mit NOT negieren, bzw. mit AND und OR verknüpfen. Dabei gelten die in Pascal üblichen Vorrangregeln. Klammern binden stärker als NOT, NOT geht vor AND und dieses vor OR. 
- 
-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, denen ein $-Zeichen folgt. Die folgenden Optionen sind möglich: 
- 
-  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. {$ D+} oder (*$ D= *). 
- 
-===== Include-Dateien ===== 
- 
-Durch das Einbinden von Include-Dateien kann der Quelltext auf mehrere Dateien verteilt werden, was die Projektarbeit erheblich vereinfacht. 
- 
-Mit der Compileroption "I" gefolgt vom Dateiname der Include-Datei können Sie Include-Dateien in NIKI-Programme einfügen. Die Include-Datei wird dann auf dem aktuellem Pfad gesucht. 
- 
-Beispielsweise wird durch "''{$ IBASIS.PAS }''" die Datei "BASIS.PAS" zum Quelltext hinzugeladen. Auf diese Weise lassen sich auch Teach-in-Sequenzen zu einem Programmtext laden. Die Sequenz wird durch Aufruf des entsprechenden Dateinamens gestartet. 
- 
-  
  • niki/syntax.1517766986.txt.gz
  • Zuletzt geändert: 05.02.2018 05:13
  • (Externe Bearbeitung)