Arrays auswerten (Minimum, Maximum, Summe)

    Bisher können wir Arrays speichern und einzelne Elemente oder das komplette Array ausgeben. Mit Arrays geht aber noch deutlich mehr: Es ist auch möglich, das komplette Array zu "scannen", um z.B. Summen zu bilden oder Maximalwerte zu berechnen.

    Wie so etwas funktioniert, schauen wir uns an einem kleinen Spiel an. Wir steuern dabei einen Roboter, der 6 Sekunden Zeit hat, möglichst viele im Raum verstreute Zahlen aufzusammeln. Diese Zahlen wandern dann in sein Inventar, für das wir ein Array erstellt haben.

    Summe: Wer sammelt die besten Zahlen?

    Ziel des Spieles ist es natürlich, möglichst "wertvolle" Zahlen zu sammeln. Um herauszufinden, wie erfolgreich wir waren, müssen wir also alle Zahlen zusammenzählen. Mit anderen Worten: Wir müssen die Summe der Elemente im Array bilden.

    Struktogramm: Berechnung der Summe

    Aufgabe: Summe der Werte eines Arrays bilden

    (1) Summe im Unterprogramm berechnen

    Benutzen Sie das Projekt 7120_Array_Auswerten-AUFGABE

    Entwerfen Sie das Programm zur Berechnung der Summe und lassen Sie sich diese ausgeben! Das Struktogramm oben sollte Ihnen hilfreich sein …

    Damit das Ganze möglichst übersichtlich bleibt, sollen Sie die Berechnung der Summe in einem eigenen Unterprogramm entwerfen. Im Sprite Player wurde bereits ein Programm summeBerechnen angelegt (siehe Abbildung) - aber das funktioniert natürlich noch nicht richtig, da als Summe immer 0815 gespeichert wird).

    Maximum: Wer hat die größte Zahl gesammelt?

    Wir wollen jetzt noch ermitteln, wer die größte Zahl gesammelt hat. Dafür durchlaufen wir das Array und speichern die jeweils größte Zahl in der Variablen max!

    Struktogramm: Ermitteln des Maximums

    Aufgaben: Maximum, Minimum

    (2) Maximum ermitteln

    Benutzen Sie das Projekt 7120_Array_Auswerten-AUFGABE

    Entwerfen Sie entsprechend Aufgabe 1 ein Unterprogramm maximumErmitteln, mit dem Sie die größte Zahl im Array inventar herausfinden und ausgeben.

    (3) Minimum ermitteln

    In einer späteren Version des Programms soll es Strafpunkte für den Spieler geben, der mindestens eine Zahl eingesammelt hat, die kleiner als 2 ist. Sie müssen deshalb ermitteln, welches die kleinste Zahl ist, die der Roboter eingesammelt hat.

    Erstellen Sie hierzu ein Struktogramm und ein Unterprogramm (minimumErmitteln)!

    (Tipp: Wir werden die Variable min mit jedem Element des Arrays vergleichen (wie wir es mit dem Maximalwert max gemacht haben). Deshalb brauchen wir für das Minimum einen Startwert. Sie können das Minimum z.B. am Anfang auf den Wert 10 setzen. Im Spiel gibt es nur die Zahlen 1 bis 9, wir wissen also, dass wir im Array nur Zahlen haben werden, die kleiner sind!)

    (4) Mittelwert berechnen

    Entwerfen Sie ein Unterprogramm (mittelwertBerechnen), das den Mittelwert der Zahlen im Array inventar ermittelt. Erstellen Sie auch ein Struktogramm zu diesem Unterprogramm.

    (5) Wie viele Zahlen sind größer als 7?

    Wir denken darüber nach, das Programm so zu ändern, dass es Zusatzpunkte für alle Zahlen gibt, die größer als 7 sind. Entwerfen Sie ein Unterprogramm, mit dem Sie herausfinden, wie viele dieser Zahlen wir eingesammelt haben.

    (6) Gesamtanwendung: Blumenladen

    Schnappen Sie sich das Projekt 7125_blumenladen-AUFGABE und setzen Sie noch einmal alle Themen um (Summe, Minimum, Maximum, Mittelwert - jeweils mit Struktogramm).

    Vielleicht denken Sie jetzt, hää, das ist doch genau das gleiche! - Recht haben Sie. Es ist IMMER genau das gleiche. Wenn Sie einmal kapiert haben, wie das funktioniert, ist es immer das gleiche. Also machen Sie es, und wenn Sie sich dabei langweilen, ist es ein Zeichen dafür, dass Sie es verstanden haben.

    (7) Struktogrammübungen: Münzen

    Der kleine Dieter hat mal wieder im Supermarkt Süßigkeitenschrott gekauft. Seine Mutter findet den Kassenzettel und möchte mal auswerten, was Dieter so in sich reingestopft hat. Sie ist Informatikerin, deshalb macht sie das natürlich mit einem Array.

    Auf dem Kassenzettel befinden sich diese Einträge:
    Schokoriegel - 1.29
    Bonbons - 2.99
    Energydrink - 2.39
    Gummibärchen - 1.29
    Halloween-Augäpfel - 3.99
    Cola - 0.59
    Tafel Schokolade - 0.99

    Erstellen Sie ein Struktogramm für ein Programm, das die Summe des verschwendeten Geldes berechnet, die durchschnittlichen Kosten der Süßigkeiten, den teuersten Posten und den billigsten Posten. Am Schluss soll eine Ausgabe erfolgen wie: »Schnitt: 33.33, Summe: 33.33, teuerster Einkauf: 33.33, billigster Einkauf: 33.33«

    Ergänzung: Erweitern Sie das Programm wie folgt: Dieter bekommt 10 Euro Taschengeld monatlich (bitte Variable anlegen). Wenn Dieter für seinen Süßigkeitenkauf mehr als das Doppelte seines monatlichen Taschengelds ausgegeben hat, soll das Taschengeld um 20% reduziert werden. Wenn Dieter mehr als sein monatliches Taschengeld ausgegeben hat (aber maximal das Doppelte), wird das Taschengeld um 10% reduziert. Ausgabe: "Dieter bekommt ab sofort statt 10 Euro nur noch 9 Euro Taschengeld pro Monat." Wenn Sie Nerven haben, sorgen Sie dafür, dass das "nur noch" nur dann ausgegeben wird, wenn sich das Taschengeld auch wirklich reduziert.

    Erklärvideo: Array auswerten

    Arbeitsblatt: Arrays auswerten

    Arbeitsblatt »Arrays auswerten (Summe, Maximum, Minimum)« (PDF)