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 die Scratchwelt) vor und nach der Problembearbeitung einnehmen soll.

Zur Darstellung der Zustände benutzen wir häufig Bilder mit den entsprechenden Problemsituationen.

Beispiel 1 - vorher: gelber Fisch mit Ball irgendwo im Aquarium / nachher: gelber Fisch berührt den Ball

Blindekuh vorherBlindekuh nachher

Beispiel 2 - vorher: gelber Fisch mit Ball irgendwo im Aquarium / nachher: gelber Fisch berührt den Ball

Blindekuh vorherBlindekuh nachher

Die zu bearbeitenden Probleme sind meist allgemein in dem Sinne, dass viele konkrete Problemsituationen möglich sind. Im oben dargestellten Beispiel sind viele verschiedene Anordnungen des gelben Fischs und des Balls denkbar. Häufig deuten wir den allgemeinen Charakter eines Problems dadurch an, dass wir mehrere unterschiedliche Problemsituationen wiedergeben.

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 "Blindekuh"

wiederhole bis der Rand oder der Ball berührt wird:
    schwimme 10 Einheiten nach unten
wenn der Rand berührt wird:
    schwimme 10 Einheiten nach oben
    drehe dich nach links
    wiederhole bis der Rand oder der Ball berührt wird:
        schwimme 10 Einheiten nach vorne
    wenn der Rand berührt wird:
        drehe dich nach rechts
        schwimme 20 Einheiten nach vorne
        wiederhole bis der Rand oder der Ball berührt wird:
            wenn der Ball nicht berührt wird:
                wiederhole bis der Rand oder der Ball berührt wird:
                    schwimme 10 Einheiten nach vorne
                wenn der Rand berührt wird:
                    schwimme 10 Einheiten nach oben
                    drehe dich nach links
                    schwimme 20 Einheiten nach vorne
                    wiederhole bis der Rand oder der Ball berührt wird:
                        schwimme 10 Einheiten nach vorne
                    wenn der Rand berührt wird:
                         schwimme 10 Einheiten nach oben
                         drehe dich nach rechts
                         schwimme 20 Einheiten nach vorne

Wenn ein Problem automatisiert gelöst werden soll, dann müssen die Verarbeitungsschritte genau festgelegt werden. Algorithmen als präzise Lösungsbeschreibungen können in einer Programmiersprache (wie z. B. Scratch) verfasst werden. Das hat den Vorteil, dass man sie direkt testen kann. Bei komplexeren Problemstellungen werden sie jedoch meist programmiersprachenunanbhängig dargestellt. Das wiederum hat den Vorteil, dass die Idee der Lösung stärker betont werden kann und dass man keine Rücksicht auf die Besonderheiten der Programmiersprache nehmen muss.

Mehr zum Thema Algorithmus findest du im Kapitel Algorithmen

Fachkonzept - Programm

Algorithmen kann man auf unterschiedliche Weise darstellen. Oben wurde eine halbformale Beschreibung benutzt, die zwar den Ablauf klar beschreibt, die aber von Sratch nicht ausgeführt werden kann, da sie nicht die vom Sratch-System vorgeschriebenen Kacheln benutzt.

Ein Programm ist ein Algorithmus zur Lösung eines Problems, der in einer vorgegebenen Programmiersprache verfasst ist.

Beispiel: Programm "Blindekuh"

Programm - Blindekuh

X

Fehler melden

X

Suche