niki:beispiele

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
Nächste ÜberarbeitungBeide Seiten der Revision
niki:beispiele [05.02.2018 05:19] – [Handsteuerung] whupfeldniki:beispiele [06.02.2018 16:07] whupfeld
Zeile 8: Zeile 8:
 Mit Hilfe einer kleinen Einführungssequenz lernen Sie die Möglichkeiten der NIKI-Programmierumgebung kennen. Im folgenden werden bei allen Beispielen die englischen Schlüsselwörter verwendet. Mit Hilfe einer kleinen Einführungssequenz lernen Sie die Möglichkeiten der NIKI-Programmierumgebung kennen. Im folgenden werden bei allen Beispielen die englischen Schlüsselwörter verwendet.
  
- 
- 
- 
-  
  
 ===== Die Grundaufgabe ===== ===== Die Grundaufgabe =====
Zeile 44: Zeile 40:
 Wenn man im Menü Teach-inid_teachin den Eintrag Sequenz aufzeichnen anwählt, werden alle nachfolgenden Arbeitsanweisungen aufgezeichnet. Die Aufzeichnung wird durch Anwahl des gleichen Menüeintrags beendet. Mit Sequenz starten kann NIKI jeweils den gleichen Arbeitsauftrag beliebig oft wiederholen. Wenn man im Menü Teach-inid_teachin den Eintrag Sequenz aufzeichnen anwählt, werden alle nachfolgenden Arbeitsanweisungen aufgezeichnet. Die Aufzeichnung wird durch Anwahl des gleichen Menüeintrags beendet. Mit Sequenz starten kann NIKI jeweils den gleichen Arbeitsauftrag beliebig oft wiederholen.
  
-Mit Speichern sichert man Sequenzen auf Diskette oder Festplatte.+Mit Speichern sichert man Sequenzen auf Festplatte.
  
---> Erstellen Sie eine Teachin-Sequenz für die Anfangsaufgabe und speichern Sie diese unter dem Namen Treppe0.tip auf Diskette oder Festplatte.+**Aufgabe**: Erstellen Sie eine Teachin-Sequenz für die Anfangsaufgabe und speichern Sie diese unter dem Namen Treppe0.tip.
  
 ===== Programmsteuerung ===== ===== Programmsteuerung =====
Zeile 124: Zeile 120:
 NIKI bekommt eine neue Aufgabe. Er soll von der Treppe einen Gegenstand auflesen. Es ist aber nicht bekannt, an welcher Stelle auf der Treppe dieser Gegenstand liegt. Ein Arbeitsfeld könnte folgendermaßen aussehen: NIKI bekommt eine neue Aufgabe. Er soll von der Treppe einen Gegenstand auflesen. Es ist aber nicht bekannt, an welcher Stelle auf der Treppe dieser Gegenstand liegt. Ein Arbeitsfeld könnte folgendermaßen aussehen:
  
-treppe3.gif (2392 Byte)+{{niki:treppe3.gif}}
  
 Um entscheiden zu können, wo sich ein Gegenstand befindet, benötigt NIKI Sensoren, mit denen er seine Umgebung abtasten kann. NIKI verfügt über mehrere Sensorenid_sensoren. Der Sensor für Gegenstände heißt Platz_belegt. Niki kann diesen Sensor abfragen und dann entscheiden, ob er einen Gegenstand aufnehmen muß. Dies geschieht mit der Anweisung Um entscheiden zu können, wo sich ein Gegenstand befindet, benötigt NIKI Sensoren, mit denen er seine Umgebung abtasten kann. NIKI verfügt über mehrere Sensorenid_sensoren. Der Sensor für Gegenstände heißt Platz_belegt. Niki kann diesen Sensor abfragen und dann entscheiden, ob er einen Gegenstand aufnehmen muß. Dies geschieht mit der Anweisung
Zeile 137: Zeile 133:
 Das Arbeitsfeld wird jetzt so verändert, daß NIKI die Lage der Treppe und des Podestes nicht kennt. Treppe und Podest stehen hintereinander, aber weder der Abstand zur Treppe noch der Abstand zwischen Treppe und Podest sind bekannt. Das Arbeitsfeld wird jetzt so verändert, daß NIKI die Lage der Treppe und des Podestes nicht kennt. Treppe und Podest stehen hintereinander, aber weder der Abstand zur Treppe noch der Abstand zwischen Treppe und Podest sind bekannt.
  
-treppe1.gif (2435 Byte)+{{niki:treppe1.gif}}
  
 NIKI verfügt allerdings über einen Sensorid_Sensoren, mit dem er Hindernisse wahrnehmen kann. Dieser Sensor heißt vorne_frei. NIKI verfügt allerdings über einen Sensorid_Sensoren, mit dem er Hindernisse wahrnehmen kann. Dieser Sensor heißt vorne_frei.
Zeile 153: Zeile 149:
 Da NIKI keine Variablen kennt, läßt sich die folgende Aufgabe nur schwer realisieren: Da NIKI keine Variablen kennt, läßt sich die folgende Aufgabe nur schwer realisieren:
  
-rekurs.gif (869 Byte)+{{niki:rekurs.gif}}
  
 NIKI soll bis zum Hindernis gehen, sich umdrehen und dann exakt die gleiche Anzahl von Schritten wieder zurückgehen. NIKI soll bis zum Hindernis gehen, sich umdrehen und dann exakt die gleiche Anzahl von Schritten wieder zurückgehen.
Zeile 173: Zeile 169:
 End; End;
 </code> </code>
 +
 +Hier folgt die Umsetzung in Niki-Pascal:
  
 <code Pascal>  <code Pascal> 
 Program Gehe_zum_Hindernis_und_zurueck; Program Gehe_zum_Hindernis_und_zurueck;
 +
 Procedure drehe_um; Procedure drehe_um;
 Begin Begin
Zeile 181: Zeile 180:
   drehe_links   drehe_links
 End; End;
 +
 Procedure Zum_Hindernis_und_zurueck; Procedure Zum_Hindernis_und_zurueck;
 Begin Begin
Zeile 193: Zeile 193:
     End;     End;
 End; End;
 +
 Begin Begin
   Zum_Hindernis_und_zurueck   Zum_Hindernis_und_zurueck
Zeile 198: Zeile 199:
 </code>  </code> 
  
-Die Grundaufgabe wird nun dahingehend erweitern, daß NIKI über eine beliebig hohe Treppe geht. Man kann den Lösungsweg für eine rekursive Prozedur gehe_über_die_Treppe so beschreiben:+**Aufgabe**: Die Grundaufgabe wird nun dahingehend erweitern, daß NIKI über eine beliebig hohe Treppe geht. Man kann den Lösungsweg für eine rekursive Prozedur gehe_über_die_Treppe so beschreiben:
  
 <code> <code>
Zeile 210: Zeile 211:
  
    
 +<html><div style="background-color:#eee;padding:3px;text-align:center;"></html> 
 +[ [[niki:home|Home]] ] [ [[niki:menu|Das Niki - Menü]] ] [ [[niki:programmiersprache|Die Programmiersprache]] ] [ [[niki:syntax|Syntax]] ] [ [[niki:aufgaben|Aufgaben]] ] [ **[[niki:beispiele|NIKI-Beispiele]]** ] 
 +<html></div></html>
  • niki/beispiele.txt
  • Zuletzt geändert: 30.10.2023 18:54
  • von whupfeld