Da ein Computer von Haus aus nicht fantasiebegabt ist, sind die Anweisungen sehr einfach und klar. Man merkt an dieser Stelle, dass der Computer ursprünglich geschaffen wurde, um mathematische Probleme zu lösen. Weiß der Computer, wie er ein Problem lösen kann, dann kann er das immer wieder tun. Und er tut es eben sehr schnell. Sie werden noch sehen, dass man mit einem Computer neben der Mathematik noch anderen Unsinn machen kann.
Rechne du doch!
Hinweis
Damit Sie ein Bild über das Programmieren an sich gewinnen, werde ich Sie nun im Schnelldurchgang mit einigen Python-Listings belästigen. Geraten Sie nicht in Panik. Alles wird an anderer Stelle ausführlich beschrieben. Hier geht es nur um den Überblick. Entspannen Sie sich und lehnen Sie sich zurück!
Nehmen wir an, Sie wollen für die nächste Demo Tomaten kaufen. Sie wissen, dass fünf Tomaten 1,35 Euro kosten. Sie wollen aber 17 Tomaten, weil Ihr Patronengurt genau so viele aufnimmt. Sie erkennen sofort: Das ist der klassische Dreisatz. Sie zücken vielleicht schon Ihren Taschenrechner. Aber halt! Anstatt den Dreisatz jedes Mal selbst durchzurechnen, schreiben Sie ein Programm. Das bedeutet, Sie erklären dem Computer einmal, wie er mit dem Dreisatz umzugehen hat, und danach kann er das alleine. Leider müssen Sie dazu einmal darüber nachdenken, wie so ein Dreisatz funktioniert. Er besteht aus folgenden Schritten. Es sind drei. Logisch. Sonst hieße das Verfahren auch nicht Dreisatz.
1. Teile den Preis des Tomatenpakets durch die Anzahl der Tomaten.
2. Multipliziere diesen Preis mit der Zahl der gewünschten Tomaten.
3. Gib das Ergebnis auf dem Bildschirm aus.
Dies ist ein Programm. Allerdings ist die Programmiersprache für den Computer schwer nachvollziehbar. Der hätte es nämlich gern ein wenig formaler. Nehmen wir also irgendeine Programmiersprache. Wie wäre es mit Python?
PreisTomatenPaket = 1.35
Anzahl = 5
GewuenschteAnzahl = 17
PreisEinerTomate = PreisTomatenPaket / Anzahl
Ergebnis = PreisEinerTomate * GewuenschteAnzahl
print(Ergebnis)
Listing 1.1 Python im Tomatendreisatz
Wenn der Computer das Programm durchläuft, ermittelt er als Ergebnis 4,59. Wollen Sie eine andere Anzahl an Tomaten, ändern Sie im Programm den entsprechenden Wert und starten das Programm noch einmal. Ändert sich der Preis, ändern Sie ihn.
Natürlich gibt es auch eine Anweisung, mit der der Computer den Benutzer auffordert, Zahlen einzugeben. So müssen Sie nicht für jede Wertänderung das Programm anpassen. Aber lassen Sie mir dieses süße Geheimnis für später.
Eine Beschreibung zur Lösung eines Problems nennt man Algorithmus. Ein gut gegliederter Algorithmus kann leicht in ein Programm überführt werden.
Von Fall zu Fall
Das Programm könnte aber noch mehr. Wenn Sie ab 10 Tomaten Rabatt von 10 Prozent bekommen, würde dies der Computer auch berechnen können. Dazu schieben Sie an geeigneter Stelle den folgenden Algorithmus ein.
• Wenn die gewünschte Menge der Tomaten 10 oder höher ist …
• … ziehe vom Einzelpreis 10 Prozent ab.
10 Prozent abzuziehen ist dasselbe wie 90 Prozent vom Preis. 90 Prozent von irgendetwas errechnet man einfach, indem man irgendetwas mit 0,9 multipliziert. Das vereinfacht den Programmiercode etwas. Die Abfrage wird dann an passender Stelle in unser Listing 1.1 eingebaut.
PreisTomatenPaket = 1.35
Anzahl = 5
GewuenschteAnzahl = 17
PreisEinerTomate = PreisTomatenPaket / Anzahl
if GewuenschteAnzahl >= 10:
PreisEinerTomate = PreisEinerTomate * 0.90
Ergebnis = PreisEinerTomate * GewuenschteAnzahl
print(Ergebnis)
Listing 1.2 Tomatenberechnung mit Rabattabfrage
Sie könnten jetzt noch weitere Sonderfälle in das Programm einbauen. So könnte es sein, dass ein Beutel mit 7 Tomaten mit 1,40 billiger ist als die einzelnen Tomaten. Also soll der Computer doch bitte errechnen, wie viele Beutel ich kaufen muss, wie viele einzelne Tomaten und was das alles zusammen kostet.
Spicker
Das Prinzip ist, dass Sie dem Computer erklären, wie es gemacht wird, und der Computer erledigt die Rechnerei für Sie. Das gilt für Tomateneinkäufe wie für Börsengeschäfte oder Sparbriefe. Lassen Sie den Computer arbeiten!
Wiederholungstäter
Ihre Freundin erzählt Ihnen, dass der Nachbar seit einem Jahr mit dem Rauchen aufgehört hat und dadurch 1.000 Euro gespart hat, die er nun auf der Bank in einem Sparbrief angelegt hat. Sie rauchen zwar nicht. Diese Einnahmequelle fällt flach. Aber Sie beschließen, das Tomatenwerfen einzustellen, und wollen nun auch 1.000 Euro anlegen.
Bei Sparbriefen werden die Zinsen immer wieder am Ende des Jahres hinzugefügt und das führt uns zu einem weiteren Element der Programmierung, nämlich der Wiederholung. Der Programmierer spricht auch von Schleifen. Sie bekommen für einen Sparbrief jedes Jahr 6 Prozent Zinsen, die auf die Einlagen aufgeschlagen werden, also in den Folgejahren mitverzinst werden. Der Vertrag läuft über 7 Jahre. Wenn Sie das dem Computer vorlegen, können Sie ihm einfach sagen: Wiederhole diese Berechnung bitte 7 Mal.
Damit das Beispiel nicht zu trivial wird, nehmen wir noch an, dass Sie ab dem 3. Jahr sogar 9 Prozent Zinsen bekommen. Ich kann bei den Zinsen großzügig sein. Ich muss sie Ihnen ja nicht auszahlen.
• Die Geldanlage sind 1.000 Euro.
• Wiederhole 7 Mal:
• Wenn das Jahr kleiner als 3 ist:
• Schlage der Einlage 6 Prozent Zinsen zu.
• Wenn das Jahr 3 oder größer ist:
• Schlage der Einlage 9 Prozent Zinsen zu.
• Erhöhe das Jahr um 1
• Gebe die Einlage auf dem Bildschirm aus.
Sie sehen, dass die Abfrage in die Schleife eingebaut wurde. Diese Art der Kombination der Programmierelemente ist zunächst vielleicht verwirrend, aber bei längerem Nachdenken logisch. Diese Art, Aufgaben zu formalisieren, damit der Computer es versteht, ist die Aufgabe eines Programmierers.
Der Vollständigkeit halber zeige ich Ihnen, wie das Programm aussieht, das aus dem Algorithmus hervorgeht. Vielleicht werden Sie die Befehle nicht verstehen. Keine Sorge, die werden in den nächsten Kapiteln im Detail erläutert. Wichtig ist nur, dass Sie sehen, wie sich aus dem Algorithmus das fertige Programm entwickelt.
Einlage = 1000
Jahr = 1
while Jahr <= 7:
if Jahr < 3:
Einlage = Einlage + Einlage * 0.06
if Jahr >= 3:
Einlage = Einlage + Einlage * 0.09
Jahr = Jahr + 1
print(Einlage)
Listing 1.3 Sparbriefe
Tatsächlich kann der Computer gar nicht viel mehr als Abläufe, Abfragen und Schleifen. Programmiersprachen kommen nur deshalb nicht mit fünf Befehlen aus, weil es noch einige Mechanismen gibt, die dem Programmierer helfen, Programmteile zu strukturieren, um sie mehrfach verwenden zu können.
Wenn Computer und Menschen über Zahlen reden, meinen