Fachkonzept - Problem/Algorithmus/Programm
Problembeschreibung
Vor jeder Problembearbeitung sollte das zu lösende Problem möglichst klar beschrieben werden.
Wir benutzen hier ein Verfahren zur Problembeschreibung, das in vielen Bereichen der Informatik angewandt wird. Wir beschreiben ein Problem mit Hilfe der Zustände, die das betrachtete System (hier: Kara und ihre/seine Welt) vor und nach der Problembearbeitung einnehmen soll.
Zur Darstellung der Zustände benutzen wir häufig Bilder mit den entsprechenden Problemsituationen.
Beispiel: Problem "Kleeblatt suchen" - Kara-Welt vorher / nachher
Die zu bearbeitenden Probleme sind oft allgemein in dem Sinne, dass viele konkrete Problemsituationen möglich sind. Im oben dargestellten Beispiel sind viele verschiedene Anordnungen von Baumreihen und von zu suchendem Kleeblatt denkbar. Häufig deuten wir den allgemeinen Charakter eines Problems dadurch an, dass wir mehrere unterschiedliche Problemsituationen wiedergeben.
Beispiel: Problem "Kleeblatt suchen" - Kara-Welt vorher / nachher
Fachkonzept - Algorithmus
In der Informatik versucht man, Probleme automatisiert zu lösen.
Ein Algorithmus ist eine Verarbeitungsvorschrift zur Lösung eines Problems, die so präzise formuliert ist, dass sie (zumindest im Prinzip) auch von einer Maschine abgearbeitet werden kann.
Beispiel: Algorithmus "Kleeblatt suchen"
SOLANGE nicht auf einem Kleeblatt: WENN vor einem Baum: links drehen Schritt weitergehen rechts drehen Schritt weitergehen SOLANGE rechts ein Baum: Schritt weitergehen rechts drehen Schritt weitergehen links drehen SONST: Schritt weitergehen Kleeblatt aufheben
Mehr zum Thema Algorithmus
findest du im Kapitel
Algorithmen
Fachkonzept - Programm
Algorithmen sind Verarbeitungsvorschriften, die dazu dienen, die Ablauflogik beim Verarbeiten eindeutig zu beschreiben. Algorithmen kann man auf unterschiedliche Weise darstellen. Oben wurde eine halbformale Beschreibung benutzt, die zwar den Ablauf klar beschreibt, die aber von Kara nicht ausgeführt werden kann, da sie nicht die vom Kara-System vorgeschriebene Sprache benutzt. Damit Kara den Algorithmus ausführen kann, muss er in die von Kara benutzt Sprache übersetzt werden:
Ein Programm ist ein Algorithmus zur Lösung eines Problems, der in einer vorgegebenen Programmiersprache verfasst ist.
Beispiel: Programm "Kleeblatt suchen"
while not kara.onLeaf(): if kara.treeFront(): kara.turnLeft() kara.move() kara.turnRight() kara.move() while kara.treeRight(): kara.move() kara.turnRight() kara.move() kara.turnLeft() else: kara.move() kara.removeLeaf()