Algorithmen Scratch

Die vorliegenden Materialien wurden von Daniel Hoherz und André Tempel erstellt. Sollten andere Editoren die Materialien erstellt haben, werden diese explizit genannt.

Dringlichkeit von Umweltproblemen
In der heutigen Zeit stehen wir vor einer Vielzahl von Umweltproblemen, die nicht nur die natürliche Umwelt, sondern auch unsere Gesundheit und Lebensqualität erheblich beeinträchtigen. Diese Probleme sind dringlich und erfordern sofortige Maßnahmen, um die Erde und ihre Bewohner zu schützen.
Feinstaub und Smog Wasserverschmutzung Dürren und wenig Regen
Feinstaub ist ein unsichtbarer, aber gefährlicher Schadstoff, der durch den Verkehr, industrielle Emissionen und andere menschliche Aktivitäten in die Luft gelangt. In großen Städten ist die Luftqualität oft stark beeinträchtigt, was zu einer erhöhten Belastung durch Smog führt. Smog ist nicht nur unangenehm, sondern auch gesundheitsschädlich und kann Atemwegserkrankungen, Herzprobleme und andere gesundheitliche Beschwerden verursachen. Besonders gefährdet sind Kinder, ältere Menschen und Menschen mit bestehenden Gesundheitsproblemen. Die Dringlichkeit, die Luftqualität zu verbessern, ist daher von höchster Bedeutung. Die Verschmutzung von Gewässern stellt ein weiteres ernstes Umweltproblem dar. Industrieabfälle, landwirtschaftliche Chemikalien und Plastikmüll gelangen in unsere Flüsse, Seen und Ozeane. Diese Verschmutzung hat verheerende Auswirkungen auf die Tierwelt und die Ökosysteme. Fische und andere Wasserlebewesen sind zunehmend gefährdet, und die Qualität des Trinkwassers leidet. Der Zugang zu sauberem Wasser ist ein grundlegendes Menschenrecht, und die fortschreitende Wasserverschmutzung gefährdet dieses Recht für Millionen von Menschen weltweit. Ein weiteres alarmierendes Umweltproblem sind Dürren, die durch den Klimawandel und menschliche Aktivitäten verstärkt werden. In vielen Regionen der Welt sind die Niederschläge unregelmäßig und unzureichend, was zu Wasserknappheit und Ernteausfällen führt. Diese Bedingungen bedrohen nicht nur die Nahrungsmittelproduktion, sondern auch das Überleben von Gemeinschaften, die auf Landwirtschaft angewiesen sind. Die Dringlichkeit, nachhaltige Bewässerungssysteme und landwirtschaftliche Praktiken zu entwickeln, ist daher entscheidend, um die Ernährungssicherheit zu gewährleisten.
Fazit
Die Herausforderungen, die durch Feinstaub, Smog, Wasserverschmutzung, Dürren und wenig Regen entstehen, sind nicht nur Umweltprobleme, sondern auch soziale und wirtschaftliche Krisen. Es liegt in unserer Verantwortung, diese Probleme ernst zu nehmen und sofortige Maßnahmen zu ergreifen. Jeder Einzelne kann einen Beitrag leisten, sei es durch umweltfreundliche Entscheidungen im Alltag, die Unterstützung von nachhaltigen Initiativen oder durch das Eintreten für politische Veränderungen. Gemeinsam können wir eine saubere, gesunde und nachhaltige Zukunft für alle schaffen.

Angenommen mehrere Messstationen, die verschiedene Sensoren haben, nehmen jeden Tag zu bestimmten Zeiten Temperaturwerte auf und geben diese weiter. Die Temperaturen werden immer zu den Zeiten 00 Uhr, 06 Uhr, 12 Uhr und 18 Uhr aufgenommen und sollen gespeichert werden.
Die Temperaturdaten sollen jederzeit gezielt eingesehen und auch ausgewertet werden können.
Hierfür liegen die beiden folgenden zwei Vorschläge vor.

Für jede Temperatur wird eine Variable angelegt in der die jeweilige Temperatur gespeichert wird. Für jeden Zeitslot wird eine Liste angelegt. Es gibt also eine Liste für jeden der vier Zeitslots.

Für eine spätere Analyse dieser Daten möchte man z. B. wissen, wie die Durchschnittstemperatur um 12 Uhr oder die Maximaltemperatur um 00 Uhr, jeweils seit Beginn der Aufzeichnungen gewesen ist.
Diskutierem und entscheideen Sie, welche Variante Sie besser finden.

  1. (Partnerarbeit) In dieser Aufgabe sollen Temperaturdaten in Scratch in einer Liste gespeichert werden. Je eine Messstation hat für 10 verschiedene Schulen eine Temperatur aufgenommen. Wie sie unten sehen können. Wählen Sie, ob Sie die Basis- oder die Expertenvariante bearbeiten. Hinweis: Sie können jederzeit wechseln.
  2. Öffnen Sie das Scratch-Projekt „Messwerte aufnehmen und ausgeben“.

    Erstellen Sie ein Programm, welches die folgenden Anforderungen erfüllt:

    • Das Programm soll starten, wenn die Taste „s“ gedrückt wurde.
    • Eine Liste temperaturen soll deklariert und nach dem Start des Programms komplett geleert werden.
    • Die folgenden zehn Temperaturwerte sollen in die Liste eingetragen werden:
      • 25.0, 27.5, 28.0, 31.0, 33.5, 33.1, 32.0, 33.0, 31.0 und 26.8. (Achtung: Geben Sie 31.0 und nicht 31,0 ein!)

    Die Messstation (Temperaratur von 10 verschiedenen Schulen) soll die gespeicherten Daten auch versenden können. Dies modellieren wir zunächst mit dem „sage _für_Sekunden„-Block.
    Erweitern Sie Ihr Programm so, dass alle gespeicherten Temperaturdaten der Reihenfolge nach in den beiden folgenden Varianten ausgegeben werden:

    1. Die gespeicherten Temperaturen sollen einzeln aus der Liste ausgelesen und mit jeweils einem „sage_für_Sekunden„-Block ausgegeben werden.
    2. Die gespeicherten Temperaturen sollen mit einer „wiederhole bis_„-Schleife ausgegeben werden.

    Untersuchen Sie in Scratch, welche Änderungen in beiden Varianten notwendig sind, wenn die folgenden Anforderungen umgesetzt werden sollen:

    1. Die Temperaturen sollen beginnend mit dem letzten rückwärts ausgegeben werden.
    2. Es soll, beginnend mit der ersten Temperatur, nur jede zweite Temperatur ausgegeben werden.

    Beurteilen Sie, inwiefern eine Umsetzung mit einer Schleife hier Vorteile bietet.

    Eine Wissenschaftlerin möchte sich aussuchen können, von welcher Schule sie sich die Temperatur anzeigen lässt. Dafür soll sie die Taste „t“ drücken können. Anschließend wird sie nach einem Index gefragt, gibt diesen ein und die Messtation gibt die Temperatur der gewünschten Schule aus.
    Erweitern Sie Ihr Programm um diese Funktionalität. Nutzen Sie hierfür einen weiteren Startblock, dessen Programmteil nur beim Drücken der Taste „t“ ausgelöst wird.
    Speichern Sie Ihr Programm unter dem Namen „Temperaturwerte“ ab.
    (optionaler Zusatz) Erweitern Sie Ihr Programm so, dass es das folgende Problem abfängt: Was ist, wenn ein index eingegeben wird, den es nicht gibt?

    Öffnen Sie das Scratch-Projekt „Messwerte aufnehmen und ausgeben“.

    Erstellen Sie ein Programm, welches die folgenden Anforderungen erfüllt:

    • Das Programm soll starten, wenn die Taste „s“ gedrückt wurde.
    • Eine Liste temperaturen soll deklariert und nach dem Start des Programms komplett geleert werden.
    • Die folgenden zehn Temperaturwerte sollen in die Liste eingetragen werden:
      • 25.0, 27.5, 28.0, 31.0, 33.5, 33.1, 32.0, 33.0, 31.0 und 26.8. (Achtung: Geben Sie 31.0 und nicht 31,0 ein!)

    Die Messstation (Temperaturen von 10 verschiedenen Schulen) soll die gespeicherten Daten auch versenden können. Dies modellieren wir zunächst mit dem „sage_für_Sekunden“-Block:

    Erweitern Sie Ihr Programm so, dass alle gespeicherten Temperaturdaten der Reihenfolge ausgegeben werden.

    Für die Ausgabe der Messdaten, nachdem die gespeichert wurden, sind unten zwei Varianten dargestellt:

    Variante 1 Variante 2

    Beschreiben Sie die Funktionsweise der beiden Varianten.

    Untersuchen Sie in Scratch, welche Änderungen in beiden Varianten notwendig sind, wenn die folgenden Anforderungen umgesetzt werden sollen. Für Variante 2 müssen Sie in Scratch eine weitere „normale“ Variable mit dem Namen index deklarieren.

    1. Die Temperaturen sollen beginnend mit dem letzten rückwärts ausgegeben werden.
    2. Es soll, beginnend mit der ersten Temperatur, nur jede zweite Temperatur ausgegeben werden.

    Beurteilen Sie, inwiefern eine Umsetzung mit einer Schleife hier Vorteile bietet.

    Eine Wissenschaftlerin möchte sich aussuchen können, von welcher Schule sie sich die Temperatur anzeigen lässt. Dafür soll sie die Taste „t“ drücken können. Anschließend wird sie nach einem Index gefragt, gibt diesen ein und die Messtation gibt die Temperatur der gewünschten Schule aus.
    Erweitern Sie Ihr Programm um diese Funktionalität. Nutzen Sie hierfür einen weiteren Startblock, dessen Programmteil nur beim Drücken der Taste „t“ ausgelöst wird.
    Speichern Sie Ihr Programm unter dem Namen „Temperaturwerte“ ab.
    (optionaler Zusatz) Erweitern Sie Ihr Programm so, dass es das folgende Problem abfängt: Was ist, wenn ein Tag eingegeben wird, den es nicht gibt?

  1. Unsere Wissenschaftlerin möchte nun die vorliegenden Messdaten (Temperatur von 10 verschiedenen Schulen) analysieren. Hierfür möchte sie zunächst die Durchschnittstemperaturen der zehn Schulen ermitteln.
  2. (Partnerarbeit) Diskutieren Sie mit einer anderen Person, wie Sie hierbei vorgehen könnten.

    (Partnerarbeit) Deklarieren Sie zwei neue Variablen mit den Namen summe und durchschnitt und initialisieren Sie beide Variablen nach dem Programmstart mit dem Wert 0.
    Entfernen Sie die Ausgabe der zehn Temperaturdaten aus Ihrem bisherigen Programm.
    Erweitern Sie Ihr Programm so, dass zunächst die Summe der zehn Temperaturen berechnet wird, und lassen Sie sich danach den Wert der Summe in einem vernünftigen Satz ausgeben.
    Erweitern Sie es anschließend so, dass nach der Berechnung der Summe auch der Durchschnitt berechnet wird. Lassen Sie sich auch diesen in einem vernünftigen Satz ausgeben.
    Speichern Sie Ihr Programm ab.

    (Partnerarbeit) Diskutieren Sie mit einer anderen Person, wie Sie hierbei vorgehen könnten.

    (Partnerarbeit) Deklarieren Sie zwei neue Variablen mit den Namen summe und durchschnitt und initialisieren Sie beide Variablen nach dem Programmstart mit dem Wert 0.
    Entfernen Sie die Ausgabe der zehn Temperaturdaten aus Ihrem bisherigen Programm.
    Erweitern Sie Ihr Programm so, dass zunächst die Summe der zehn Temperaturen berechnet wird, und lassen Sie sich danach den Wert der Summe in einem vernünftigen Satz ausgeben.
    Hierfür könnten Ihnen auch die folgenden Blöcke nutzen:

    Erweitern Sie es anschließend so, dass nach der Berechnung der Summe auch der Durchschnitt berechnet wird. Lassen Sie sich auch diesen in einem vernünftigen Satz ausgeben.
    Speichern Sie Ihr Programm ab.

Angenommen, ein Reihe von Temperatursensoren misst die Temperaturen an verschiedenen Schulen im Hochsommer. Die Temperaturwerte des Programms „Temperaturwerte“ sollen dies darstellen.
Natürlich hoffen die Schülerinnen und Schüler, dass es einen Hitzefrei-Tag gibt, wenn es sehr warm ist. Dafür müssen jedoch bestimmte Bedingungen erfüllt sein. Wenn diese Bedingungen erfüllt sind, gibt es Hitzefrei.
Dieses Konzept kennt ihr bereits aus Open Roberta und Scratch 3. Es gibt zwei Arten von Entscheidungen: Eine bedingte Anweisung und eine Verzweigung.

Bedingte Anweisung Verzweigung
  1. (Partnerarbeit) Bei Scratch 3 sind alle sechseckigen Blöcke Bedingungen. Das sind Blöcke, deren „Antwort“ nur „wahr“ oder „falsch“ sein kann. Unten seht ihr eine Auswahl solcher Blöcke.
    Mathematische Operatoren
    Logische Operatoren
    Tastenblock
    Zeichenkettenblock
    Listenblock
    Tauschen Sie sich darüber aus, wie die einzelnen Blöcke funktionieren und in welchen Fällen „wahr“ oder „falsche“ geantwortet wird.
  1. (Partnerarbeit) Als Grundlage für diese Aufgabe dient das Programm „Temperaturwerte“.
    Um eine automatisierte Statistik über hitzebedingte Unterrichtsausfälle aufzustellen, werden wir die vorliegenden Temperaturdaten entsprechend analysieren.
  2. Angenommen, die Leitung einer Schule muss den Unterricht ausfallen lassen, sobald eine Temperatur von über 33° C gemessen wird. Allerdings gilt dies nur, wenn es sich um einen Schultag, also nicht Samstag oder Sonntag handelt. Dafür soll von einem Programm abgefragt werden, für welche Schule die Temperatur geprüft werden soll. Der Nutzer soll hier eine Zahl zwischen 1 und 10 eingeben, welche sich auf die jeweilige Schule bezieht.
    Anschließend wird gefragt, ob es sich um einen Unterrichtstag handelt. Hier wird „wahr“ oder „falsch“ eingegeben.
    Beide Antworten sollen im späteren Verlauf des Programms genutzt werden können.
    Begründen Sie, weshalb für diese Situation mindestens eine Variable notwendig ist.

    Im Anschluss an die beiden Fragen soll geprüft werden, ob die Bedingungen für einen hitzebedingten Unterrichtsausfall erfüllt sind.
    Wenn das so ist, soll eine entsprechende Aussage ausgegeben werden. Wenn das nicht so ist, soll ebenfalls eine entsprechende Aussage ausgegeben werden.
    Erweitern Sie Ihr Programm entsprechend und speichern Sie es ab.

    Unten sehen Sie verschiedene Varianten für die Überprüfung von Aufgabenteil b). Vor den abgebildeten Varianten wird das jeweilige Programm durch Drücken der Taste „s“ gestartet und die zehn bekannten Temperaturen in die Liste temperaturen eingefügt.
    Untersuchen Sie, ob die Varianten das Problem lösen und erläutern Sie bei nicht funktionierenden Varianten die Fehler.
    Vergleichen Sie die zwei Programmausschnitte in der untersten Abbildung und beurteilen Sie, ob eine der Varianten besser ist oder keine Variante einen entscheidenden Vorteil bietet.

    Angenommen, die Leitung einer Schule muss den Unterricht ausfallen lassen, sobald eine Temperatur von über 33° C gemessen wird. Allerdings gilt dies nur, wenn es sich um einen Schultag, also nicht Samstag oder Sonntag handelt. Dafür soll von einem Programm abgefragt werden, für welche Schule die Temperatur geprüft werden soll. Der Nutzer soll hier eine Zahl zwischen 1 und 10 eingeben, welche sich auf die jeweilige Schule bezieht.
    Anschließend wird gefragt, ob es sich um einen Unterrichtstag handelt. Hier wird „wahr“ oder „falsch“ eingegeben.
    Beide Antworten sollen im späteren Verlauf des Programms genutzt werden können.
    Begründet, weshalb für diese Situation mindestens eine Variable notwendig ist.

    Im Anschluss an die beiden Fragen soll geprüft werden, ob die Bedingungen für einen hitzebedingten Unterrichtsausfall erfüllt sind.
    Wenn das so ist, soll eine entsprechende Aussage ausgegeben werden. Wenn das nicht so ist, soll ebenfalls eine entsprechende Aussage ausgegeben werden.
    Erweitern Sie Ihr Programm entsprechend und speichern Sie es ab.
    Hinweise: Sie können hier auf verschiedene Arten vorgehen. Man kann z. B.

    • zwei bedingte Anweisungen eineinander geschachtel nutzen.
    • mit einer Verzweigung arbeiten.
    • einer bedingten Anweisungen und einem „und„-Block arbeiten.

    Unten sehen Sie verschiedene Varianten für die Überprüfung von Aufgabenteil b). Vor den abgebildeten Varianten wird das jeweilige Programm durch Drücken der Taste „s“ gestartet und die zehn bekannten Temperaturen in die Liste temperaturen eingefügt.
    Untersuchen Sie, ob die Varianten das Problem lösen und erläutern Sie bei nicht funktionierenden Varianten die Fehler.
    Vergleichen Sie die zwei Programmausschnitte in der untersten Abbildung und beurteilen Sie, ob eine der Varianten besser ist oder keine Variante einen entscheidenden Vorteil bietet.

  1. Verschiedene Umwelt-Messdaten werden häufig detaillierter analysiert. Dafür müssen verschiedene Algorithmen entwickelt und implementiert werden.
    In dieser Aufgabe werden die vorliegenden Temperaturdaten detaillierter ausgewertet.
  2. (Austausch mit benachbarter Person) Für eine Statistik soll gezählt werden, an wie vielen Schulen an einem Tag hitzebedingt der Unterricht entfällt.
    Diskutieren Sie, wie man hierbei vorgehen kann, wenn die Daten in Form einer Liste gespeichert sind. Gehen Sie auch darauf ein, ob und wofür weitere Variablen genutzt werden müssen.

    (ab hier Partnerarbeit) Erweitern Sie Ihr Programm aus der vorherigen Aufgabe so, dass die Anzahl der Schulen mit hitzebedingtem Unterrichtsentfall gezählt und am Schluss mit einem vernünftigen Satz ausgegeben wird.

    Es kann auch interessant sein zu prüfen, ob bestimmte Temperaturwerte ungewöhnlich hoch sind. Hierfür kann man z. B. den Mittelwert einer Reihe von Temperaturen berechnen und anschließend prüfen, ob ein anderer Wert ungewöhnlich weit über dem Mittelwert liegt.
    Ein bemerkenswert hoher Temperaturwert ist einer, der mindestens 2 °C über dem Durchschnittswert liegt. Es soll gezählt werden, wie viele der zehn Temperaturwerte mindestens 2 °C über dem Mittelwert liegen und eine entsprechende Ausgabe angezeigt werden.
    Erweitern Sie Ihr Programm um diese Funktionalität.

    Es kann auch interessant sein zu prüfen, ob bestimmte Temperaturwerte ungewöhnlich sind. Hierfür kann man z. B. den Mittelwert einer Reihe von Temperaturen berechnen und anschließend prüfen, ob ein anderer Wert ungewöhnlich weit vom Mittelwert abweicht.
    Ein besonders bemerkenswerter Temperaturwert ist einer, der um mindestens 2 °C vom Durchschnittswert abweicht. Es soll gezählt werden, wie viele der zehn Temperaturwerte um mindestens 2 °C vom Mittelwert abweichen und eine entsprechende Ausgabe angezeigt werden.
    Erweitern Sie Ihr Programm um diese Funktionalität.

    Um Extremereignisse untersuchen zu können, sind häufig besonders hohe und besonders niedrige Werte spannend.
    Hierfür kann man zum Beispiel ein Minimum und ein Maximum unter vorliegenden Daten bestimmen.
    Dazu werden zwei neue Variablen, max und min, benötigt.
    Um z. B. ein Maximum zu bestimmen, setzt man den Wert von max auf das erste Element der Datenliste. Anschließend geht man die Liste schrittweise durch und vergleicht den aktuellen Wert von max mit dem aktuellen Listenelement. Wenn man einen größeren Wert gefunden hat, muss man das Maximum neu setzen.
    Erweitern Sie Ihr Programm so, dass zusätzlich das Maximum und Minimum bestimmt und in vernünftigen Sätzen ausgegeben werden.
    Ergänzen Sie Ihr Programm, sodass auch mit zwei weiteren Variablen, indexMin und indexMax, die Indizes, an denen sich das Maximum und das Minimum befinden, gespeichert werden.

    Manchmal ist es sinnvoll, Daten sortiert anzuzeigen.
    Erweitern Sie Ihr Programm so, dass das Maximum an die letzte Stelle der Liste gesetzt wird. Das vorherige Element an der letzten Stelle soll dann an die Stelle gesetzt werden, an der sich das Maximum befindet.
    Hinweis: Bevor ein Element in der Liste überschrieben wird, muss es in einer neuen Variable zwischengespeichert werden, ansonsten ist es verloren.

    Überlegen Sie sich eine Strategie, wie Sie nach und nach die komplette Liste aufsteigend sortieren können.

    Erweitern Sie Ihr Programm so, dass die Werte in der Liste einmal aufsteigend und einmal absteigend sortiert werden können.

    (Austausch mit benachbarter Person) Für eine Statistik soll gezählt werden, an wie vielen Schulen an einem Tag hitzebedingt der Unterricht entfällt.
    Diskutieren Sie, wie man hierbei vorgehen kann, wenn die Daten in Form einer Liste gespeichert sind. Gehen Sie auch darauf ein, weshalb eine weitere Variable anzahl, eine Schleife mit Variable index zum Durchlaufen der Liste, eine bedingte Anweisung und ein „>„-Block genutzt werden müssen.

    (ab hier Partnerarbeit) Erweitern Sie Ihr Programm aus der vorherigen Aufgabe so, dass die Anzahl der Schulen mit hitzebedingtem Unterrichtsentfall gezählt und am Schluss mit einem vernünftigen Satz ausgegeben wird.
    Hierfür können die folgenden Blöcke hilfreich sein.

    Es kann auch interessant sein zu prüfen, ob bestimmte Temperaturwerte ungewöhnlich hoch sind. Hierfür kann man z. B. den Mittelwert einer Reihe von Temperaturen berechnen und anschließend prüfen, ob ein anderer Wert ungewöhnlich weit über dem Mittelwert liegt.
    Ein bemerkenswert hoher Temperaturwert ist einer, der mindestens 2 °C über dem Durchschnittswert liegt. Es soll gezählt werden, wie viele der zehn Temperaturwerte mindestens 2 °C über dem Mittelwert liegen und eine entsprechende Ausgabe angezeigt werden.
    Erweitern Sie Ihr Programm um diese Funktionalität.
    Hierfür können die folgenden Blöcke hilfreich sein.

    Es kann auch interessant sein zu prüfen, ob bestimmte Temperaturwerte ungewöhnlich sind. Hierfür kann man z. B. den Mittelwert einer Reihe von Temperaturen berechnen und anschließend prüfen, ob ein anderer Wert ungewöhnlich weit vom Mittelwert abweicht.
    Ein besonders bemerkenswerter Temperaturwert ist einer, der um mindestens 2 °C vom Durchschnittswert abweicht. Es soll gezählt werden, wie viele der zehn Temperaturwerte um mindestens 2 °C vom Mittelwert abweichen und eine entsprechende Ausgabe angezeigt werden.
    Erweitern Sie Ihr Programm um diese Funktionalität.
    Hierfür können die folgenden Blöcke hilfreich sein.

    Um Extremereignisse untersuchen zu können, sind häufig besonders hohe und besonders niedrige Werte spannend.
    Hierfür kann man zum Beispiel ein Minimum und ein Maximum unter vorliegenden Daten bestimmen.
    Dazu werden zwei neue Variablen, max und min, benötigt.
    Um z. B. ein Maximum zu bestimmen, setzt man den Wert von max auf das erste Element der Datenliste. Anschließend geht man die Liste schrittweise durch und vergleicht den aktuellen Wert von max mit dem aktuellen Listenelement. Wenn man einen größeren Wert gefunden hat, muss man das Maximum neu setzen.
    Erweitern Sie Ihr Programm so, dass zusätzlich das Maximum und Minimum bestimmt und in vernünftigen Sätzen ausgegeben werden.
    Ergänzen Sie Ihr Programm, sodass auch mit zwei weiteren Variablen, indexMin und indexMax, die Indizes, an denen sich das Maximum und das Minimum befinden, gespeichert werden.

    Manchmal ist es sinnvoll, Daten sortiert anzuzeigen.
    Erweitern Sie Ihr Programm so, dass das Maximum an die letzte Stelle der Liste gesetzt wird. Das vorherige Element an der letzten Stelle soll dann an die Stelle gesetzt werden, an der sich das Maximum befindet.
    Hinweis: Bevor ein Element in der Liste überschrieben wird, muss es in einer neuen Variable zwischengespeichert werden, ansonsten ist es verloren.

    Überlegen Sie sich eine Strategie, wie Sie nach und nach die komplette Liste aufsteigend sortieren können.

    Erweitern Sie Ihr Programm so, dass die Werte in der Liste einmal aufsteigend und einmal absteigend sortiert werden können.

  1. Die folgenden Aufgabenteile sind unabhängig vom bisherigen Kontext und diene zur Übung.
  2. Der folgende Algorithmus soll für die Liste zahlen mit den Werten 15.5, -17.2, 0.0, -18.0, 19.1, -20.3, 21.0 die Anzahl der negativen Werte ermitteln.

    Die folgende Tabelle nennt man Tracetabelle. Eine neue Zeile wird am Ende eines Schleifendurchlaufs der „wiederhole bis„-Schleife ausgefüllt. Am Ende des ersten Durchlaufs wurde bereits die erste Zeile ausgefüllt.

    Schleifendurchlauf index aktuell anzahlNegativ
    1 2 15.5 0

    Identifizieren Sie mit Hilfe der Tabelle die Stelle, wo der Algorithmus nicht so arbeitet, wie gewünscht und korrigieren Sie den Algorithmus entsprechend.

    Der folgende Algorithmus soll für die Liste zahlen mit den Werten 3, 7, 10, 5, 1, 12 den Durchschnitt ermitteln.

    Identifizieren Sie mit Hilfe der unten abgebildeten Tracetabelle die Stelle(n), wo der Algorithmus nicht so arbeitet, wie gewünscht und korrigieren Sie den Algorithmus entsprechend.
    Eine neue Zeile wird am Ende eines Schleifendurchlaufs der „wiederhole bis„-Schleife ausgefüllt. Außerdem soll eine Zeile am Ende des Programms ausgefüllt werden.

    Schleifendurchlauf index summe durchschnitt

    Der folgende Algorithmus soll die Werte der Liste zahlen mit den Werten 4, 8, 15, 16, 23 rückwärts in die zweite Liste zahlenRückwärts eintragen.

    Identifizieren Sie mit Hilfe der unten abgebildeten Tracetabelle die Stelle(n), wo der Algorithmus nicht so arbeitet, wie gewünscht und korrigieren Sie den Algorithmus entsprechend.
    Eine neue Zeile wird am Ende eines Schleifendurchlaufs der „wiederhole bis„-Schleife ausgefüllt. In der Spalte zahlenRückwärts soll die komplette Liste nach jedem Schleifendurchlauf eingetragen werden.

    Schleifendurchlauf index aktuell zahlenRückwärts

    Der folgende Algorithmus soll in der Liste zahlen mit den Werten 15, 4, 2, 1, 6 alle Zahlen löschen, die kleiner als 5 sind.

    Identifizieren Sie mit Hilfe der unten abgebildeten Tracetabelle die Stelle(n), wo der Algorithmus nicht so arbeitet, wie gewünscht und korrigieren Sie den Algorithmus entsprechend.
    Eine neue Zeile wird am Ende eines Schleifendurchlaufs der „wiederhole bis„-Schleife ausgefüllt. In der Spalte zahlen soll die komplette Liste nach jedem Schleifendurchlauf eingetragen werden.

    Schleifendurchlauf index aktuell Länge von Zahlen zahlen

    Es liegen zwei Listen vor. In der Liste waren sind verschiedene Produkte gespeichert. In der zweiten Liste mengen sind die dazugehörigen Lagermengen gespeichert. Ein Produkt am Index i der Liste waren hat einen Warenbestand am Index i der Liste mengen. Der folgende Algorithmus soll überprüfen, ob ein bestimmtes Produkt vorhanden ist. Wenn das der Fall ist, wird die Lagermenge um 10 erhöht. Wenn nicht, wird es am Ende der Liste waren eingefügt und ein Lagerbestand von 5 angelegt. Die Listen liegen wie folgt vor:
    waren: „Apfel“, „Banane“, „Orange“
    mengen: 10, 5, 8

    Identifizieren Sie mit Hilfe der unten abgebildeten Tracetabelle die Stelle(n), wo der Algorithmus nicht so arbeitet, wie gewünscht und korrigieren Sie den Algorithmus entsprechend. Hierfür können Sie einmal die Tracetabelle für den Fall, dass „Banane“ gesucht und die zweite für den Fall, dass „Kiwi“ gesucht wird, erstellen.
    Eine neue Zeile wird am Ende eines Schleifendurchlaufs der „wiederhole bis„-Schleife ausgefüllt. Außerdem noch eine Zeile am Ende des Programms.

    Tracetabelle für „Banane“
    Schleifendurchlauf index gesucht gefunden waren mengen
    Tracetabelle für „Kiwi“
    Schleifendurchlauf index gesucht gefunden waren mengen
  1. Die folgenden Aufgabenteile sind unabhängig vom bisherigen Kontext und diene zur Übung. Bearbeiten Sie diese in einer eigenen Scratchdatei.
    Für jeden Aufgabenteil können Sie einen eigenen Startblock verwenden, z. B. „Wenn Taste a gedrückt„-Block für Aufgabenteil a, „Wenn Taste b gedrückt„-Block für Aufgabenteil b etc.
  2. Erstellen Sie eine neue Liste werte und fügen Sie mit einer Schleife 30 zufällige Zahlen zwischen -10 und +10 ein.
    Erweitern Sie Ihr Programm so, dass die Summer und der Durchschnitt der Zahlen ermittelt und ausgegeben wird.

    Erstellen Sie eine neue Liste werte und füllen Sie sie mit 20 zufälligen Ganzzahlen zwischen 0 und 50.
    Erweitern Sie Ihr Programm so, dass das größte Element (Maximum) und das kleinste Element (Minimum) azs der Liste ermittelt und ausgegeben werden.

    Erstellen Sie eine neue Liste namens werte2 und füllen Sie diese mit 40 zufälligen Ganzzahlen im Bereich von -20 bis +20.
    Ergänzen Sie Ihr Programm, sodass gezählt wird, wie viele Werte negativ, wie viele positiv und wie viele gleich Null sind. Geben Sie die Anzahl anschließend aus.

    Erstellen Sie eine neue Liste schülerPunkte und fülle diese mit 25 zufälligen Zahlen zwischen 0 und 100 (jede Zahl repräsentiert einen erzielten Punktwert eines Schülers/einer Schülerin).
    Erweitern Sie das Programm so, dass Sie…

    • die Summe und den Durchschnitt aller Punktwerte berechnen und ausgeben.
    • zählen, wie viele Schüler mehr als 75 Punkte erreicht haben und diese Anzahl ausgeben.

    Erstellen Sie eine Liste zufallszahlen und fülle sie mit 15 zufälligen Zahlen zwischen –50 und +50.
    Erstellen Sie eine zweite Liste quadrate, in der Sie für jedes Element aus der ersten Liste den quadrierten Wert berechnen und speichern.
    Geben Sie beide Listen sowie die Summe aller Elemente in der Liste quadrate aus.

  1. Ein Programm soll eine gespeicherte Liste mit den Noten (1 bis 6) einer Klasse analysieren, wobei die Schülerinnen und Schüler durch den jeweiligen Index der Note festgelegt sind. Hierbei kann interessant sein:
    • Den Mittelwert der Noten berechnen.
    • Zählen, wie viele Schüler eine Note über einem bestimmten Schwellenwert (z. B. 3) haben.
    • Das Ergebnis (Durchschnittsnote und Anzahl der Schüler über dem Schwellenwert) ausgeben.
    • usw.
  2. Erläutern Sie, warum es sinnvoll ist, die Noten in einer Liste zu speichern, anstatt für jede Person separate Variablen zu verwenden.

    Implementieren Sie ein Programm in Scratch, welches aus einer gegebenen Liste noten, in der eine unbekannte Anzahl Noten gespeichert ist, die Durchschnittsnote berechnet und am Ende in einem vernünftigen Satz ausgibt.

    Diejenigen Schüler*Innen, die eine Note von 5 oder 6 haben, sollen in einer weiteren Liste gefaehrdet gespeichert und am Schluss ausgegeben werden.
    In Abbildung 1 ist ein Vorschlag für ein solches Programm gegeben.

    analysieren Sie die Funktionsweise des Programms. Erläutern und korrigieren Sie eventuelle Fehler.

    Implementieren Sie einen Algorithmus in Scratch der zählt, wie viele Schüler*Innen eine Note über dem vorher berechneten Durchschnittswert haben und diesen am Schluss in einem geeigneten Satz ausgibt.
    Den Durchschnittswert durchschnitt kannst du in deinem Algorithmus direkt nutzen.