Wenn du morgens nach einem Rezept Pfannkuchen machst, eine Route zur Schule suchst oder eine Liste sortierst, folgst du einer Schrittfolge. In der Informatik nennt man eine solche präzise Schrittfolge Algorithmus. Nach dieser Erklärung kannst du Algorithmen erkennen, ihre Eigenschaften prüfen und einfache Verfahren in eigenen Worten beschreiben.
- Ich kann erklären, was ein Algorithmus ist.
- Ich kann Eingabe, Verarbeitung und Ausgabe unterscheiden.
- Ich kann Eigenschaften wie Eindeutigkeit, Ausführbarkeit und Endlichkeit prüfen.
- Ich kann Algorithmus, Programm und Heuristik voneinander abgrenzen.
- Ich kann einfache Algorithmen mit Schleifen und Verzweigungen verstehen.
Eine Anleitung, die wirklich ausführbar ist
Nicht jede Anleitung ist automatisch ein guter Algorithmus. "Mach das Bild schöner" ist zu ungenau. "Erhöhe die Helligkeit jedes Pixels um 10, höchstens bis 255" ist viel präziser.
Algorithmus
Ein Algorithmus ist eine eindeutige, ausführbare und endliche Schrittfolge zur Lösung eines Problems oder einer Problemklasse. Er verarbeitet Eingaben und erzeugt Ausgaben.
Problemklasse
Eine Problemklasse ist eine Gruppe ähnlicher Aufgaben. Ein Sortieralgorithmus soll zum Beispiel nicht nur eine konkrete Liste sortieren, sondern viele mögliche Listen.
Ein Algorithmus kann in Alltagssprache, Pseudocode, einem Flussdiagramm oder einer Programmiersprache formuliert sein. Entscheidend ist nicht die Darstellungsform, sondern ob die Schritte klar genug sind.
Kein guter Algorithmus:
"Sortiere die Namen sinnvoll."
Problem: Was heißt sinnvoll? Nach Vorname? Nach Nachname? Aufsteigend? Absteigend?
Besser:
- Vergleiche die Nachnamen alphabetisch.
- Wenn zwei Nachnamen gleich sind, vergleiche die Vornamen.
- Ordne kleinere Namen vor größeren Namen ein.
- Wiederhole das, bis die Liste vollständig geordnet ist.
Ein Algorithmus muss so genau sein, dass ein geeigneter Ausführer bei jedem Schritt weiß, was zu tun ist.
Interaktive Quizfrage wird geladen ...
Eingabe, Verarbeitung, Ausgabe
Viele Algorithmen kannst du als EVA-Prinzip lesen: Eingabe, Verarbeitung, Ausgabe. Die Eingabe sind die Daten am Anfang. Die Verarbeitung sind die Schritte. Die Ausgabe ist das Ergebnis.
Eingabe
Die Eingabe sind die Daten, mit denen ein Algorithmus startet. Beispiele sind eine Zahl, ein Text, eine Liste oder ein Bild.
Ausgabe
Die Ausgabe ist das Ergebnis, das der Algorithmus nach der Verarbeitung liefert.
Verarbeitung
Die Verarbeitung ist die Folge von Schritten, mit denen die Eingabe in die Ausgabe umgewandelt wird.
Ohne klare Eingabe und Ausgabe kann man schwer prüfen, ob ein Algorithmus korrekt ist. Ein Suchalgorithmus braucht zum Beispiel eine Liste und einen Suchwert als Eingabe. Als Ausgabe kann er die Position liefern oder melden, dass der Wert nicht vorkommt.
Algorithmus: Größte Zahl in einer Liste finden.
Eingabe:
Liste [4, 9, 2, 7]
Verarbeitung:
- Merke die erste Zahl als bisher größtes Ergebnis: 4.
- Vergleiche 9 mit 4. 9 ist größer, also merke 9.
- Vergleiche 2 mit 9. 9 bleibt größer.
- Vergleiche 7 mit 9. 9 bleibt größer.
Ausgabe:
9
Interaktiver Lückentext wird geladen ...
Eigenschaften guter Algorithmen
In der Schule werden oft mehrere Eigenschaften geprüft. Sie helfen dir zu entscheiden, ob eine Beschreibung wirklich als Algorithmus taugt.
Eindeutigkeit
Eindeutigkeit bedeutet, dass bei jedem Schritt klar ist, was als Nächstes passiert. Es darf keine unklare Auswahl ohne Regel geben.
Ausführbarkeit
Ausführbarkeit bedeutet, dass jeder Schritt vom vorgesehenen Ausführer tatsächlich ausgeführt werden kann.
Endlichkeit
Endlichkeit bedeutet, dass die Beschreibung des Algorithmus endlich lang ist und das Verfahren für die betrachtete Aufgabe nach endlich vielen Schritten zu einem Ergebnis kommen soll.
Ein Algorithmus für einen Menschen darf andere Schritte enthalten als einer für einen Computer. "Schmecke ab" kann für einen Koch ausführbar sein, aber für einen einfachen Roboter ohne Geschmackssensor nicht.
Prüfe diese Anleitung:
"Nimm eine Zahl. Wenn sie gerade ist, teile sie durch 2. Wenn sie ungerade ist, addiere 1. Wiederhole das, bis du zufrieden bist."
Probleme:
- "bis du zufrieden bist" ist nicht eindeutig.
- Die Abbruchbedingung ist unklar.
- Für einen Computer ist "zufrieden" nicht ausführbar.
Besser:
"Wiederhole die Schritte genau 5-mal."
Oder:
"Wiederhole, bis die Zahl 1 erreicht ist."
Wenn du einen Algorithmus prüfst, frage: Sind die Schritte eindeutig? Kann der Ausführer sie ausführen? Gibt es ein klares Ende?
Interaktive Quizfrage wird geladen ...
Schleifen und Verzweigungen
Viele Algorithmen brauchen nicht nur eine gerade Liste von Schritten. Sie müssen Entscheidungen treffen oder Schritte wiederholen.
Verzweigung
Eine Verzweigung ist eine Wenn-dann-sonst-Entscheidung. Je nach Bedingung wird ein anderer Schritt ausgeführt.
Schleife
Eine Schleife wiederholt Schritte, solange eine Bedingung gilt oder bis eine bestimmte Anzahl erreicht ist.
Verzweigungen machen Algorithmen flexibel. Schleifen machen sie allgemein: Du musst nicht für jede Listenlänge eine eigene Anleitung schreiben.
Algorithmus: Zähle alle geraden Zahlen in einer Liste.
Eingabe: Liste von Zahlen.
- Setze
anzahlauf 0. - Gehe jede Zahl der Liste durch.
- Wenn die Zahl ohne Rest durch 2 teilbar ist, erhöhe
anzahlum 1. - Wenn alle Zahlen geprüft wurden, gib
anzahlaus.
Für [3, 8, 10, 11, 14] ist die Ausgabe 3.
Eine Schleife ohne sinnvolle Abbruchbedingung kann zur Endlosschleife werden. Manche Systeme laufen absichtlich dauerhaft, zum Beispiel ein Betriebssystem. Für typische Schulalgorithmen zur Berechnung eines Ergebnisses erwartest du aber eine klare Terminierung.
Interaktive Quizfrage wird geladen ...
Algorithmus, Programm und Heuristik
Die Begriffe werden im Alltag oft gemischt. Für Informatikaufgaben lohnt die Unterscheidung.
Programm
Ein Programm ist eine konkrete Umsetzung eines Algorithmus in einer Programmiersprache, sodass ein Computer ihn ausführen kann.
Heuristik
Eine Heuristik ist eine Vorgehensweise, die oft gute Lösungen findet, aber nicht unbedingt immer die perfekte Lösung garantiert.
Ein Algorithmus ist die Idee der Schrittfolge. Ein Programm ist eine konkrete technische Form davon. Eine Heuristik ist eher eine kluge Suchstrategie, wenn die perfekte Lösung zu teuer, zu langsam oder unbekannt ist.
Navigation zur Schule:
Algorithmus:
"Berechne aus allen möglichen Wegen den kürzesten Weg."
Problem: In großen Netzen kann das aufwendig sein.
Heuristik:
"Bevorzuge zuerst Hauptstraßen und meide bekannte Baustellen."
Das kann sehr gut funktionieren, garantiert aber nicht in jedem Sonderfall den mathematisch kürzesten Weg.
Algorithmus ist die Schrittidee. Programm ist die Umsetzung. Heuristik ist eine oft nützliche, aber nicht immer perfekte Strategie.
Prüfungsmodus
Wenn du einen Algorithmus entwerfen sollst, starte nicht mit Code. Beschreibe erst Eingabe, Ausgabe und die Hauptidee. Danach formulierst du die Schritte.
Aufgabe:
"Entwirf einen Algorithmus, der prüft, ob ein Wort den Buchstaben a enthält."
Eingabe:
Ein Wort.
Ausgabe:
Ja oder Nein.
Algorithmus:
- Gehe die Buchstaben des Wortes von links nach rechts durch.
- Wenn der aktuelle Buchstabe
aist, gib "Ja" aus und stoppe. - Wenn alle Buchstaben geprüft wurden und kein
agefunden wurde, gib "Nein" aus.
Warum ist das allgemein? Es funktioniert für Wörter unterschiedlicher Länge.
Interaktive Quizfrage wird geladen ...
Alles auf einen Blick
Interaktive Mindmap wird geladen ...
Interaktive Lernkarten wird geladen ...
Abschluss-Check
Interaktive Quizfrage wird geladen ...
Zusammenfassung
Ein Algorithmus ist eine klare Schrittfolge, die Eingaben verarbeitet und Ausgaben erzeugt. Gute Algorithmen sind eindeutig, ausführbar und für die Aufgabe endlich formuliert.
Wichtige Bausteine sind Verzweigungen und Schleifen. Mit ihnen kann ein Verfahren Entscheidungen treffen und wiederholt auf beliebig viele Daten anwenden.
Ein Programm ist die konkrete Umsetzung eines Algorithmus. Eine Heuristik ist eine praktische Strategie, die oft gute Lösungen findet, aber nicht immer eine perfekte Lösung garantiert.
Mit Google fortfahren