Übungsaufgaben

Stoffwiederholung

Aufgabe 1: Algorithmen interpretieren

Aufgabe 1.1: Lineare Suche

Der Algorithmus, der im folgenden Struktogramm dargestellt ist, erhält eine Liste von Suchbegriffen S1, …, Sn als Eingabe. In der Variablen a soll gezählt werden, wie oft der Suchbegriff “Corona” vorkommt:

Diagram

Welche Abbruchbedingung muss für die bedingte Wiederholung verwendet werden?

Aufgabe 1.2: Ergebnis

Der Algorithmus, der im folgenden Struktogramm dargestellt ist, erhält eine Reihe von Messwerten M1, …, Mn als Eingabe:

Diagram

Was berechnet der Algorithmus allgemein gesprochen in der Variablen e?

Aufgabe 1.3: Bedingte Summe

Der Algorithmus, der im folgenden Struktogramm dargestellt ist, erhält eine Reihe von Messwerten M1, …, Mn als Eingabe und soll in der Variablen s die Summe aller positiven Messwerte berechnen. Der erste Messwert soll dabei ausgelassen werden.

Diagram

Füllen Sie die fehlenden Einträge im Struktogramm passend aus.

Aufgabe 2: Aufzählen und Überprüfen

Es soll ein Algorithmus zur Auswertung von Abstimmungsergebnissen entwickelt werden. Als Eingabe dient dabei eine Liste von Stimmen S1 bis Sn wobei n die Anzahl aller Stimmen ist. Jede Stimme hat entweder den Wert “ja”, “nein” oder “Enthaltung”.

Der Algorithmus soll das Gesamtergebnis ermitteln. Es zählt die einfache Mehrheit: Das Ergebnis lautet also “ja” wenn es mehr “ja”-Stimmen als “nein”-Stimmen gibt, “nein” wenn es mehr “nein”-Stimmen als “ja”-Stimmen gibt, oder “unentschieden” bei gleich vielen Stimmen. Am Ende soll je nach Ergebnis eine grüne, rote oder gelbe LED angeschaltet werden.

Verwenden Sie zum systematischen Entwickeln des Algorithmus die Grundstrategie Aufzählen und Überprüfen und stellen Sie den Algorithmus als Struktogramm dar.

Hinweis: Hier müssen ggf. mehrere Bedingungen pro Element überprüft werden.

Praktische Übungen

Aufgabe 3: Primzahltest

Entwickeln Sie ein Scratch-Programm, das den Primzahltest mittels Aufzählen und Überprüfen implementiert, der durch das folgende Struktogramm beschrieben wird. Verwenden Sie dazu die Projektdatei Primzahltest.sb3 als Vorlage: Download

Diagram

Im Startskript wird die zu überprüfende Zahl mit einer “frage”-Anweisung eingegeben und kann anschließend im Block “Antwort” abgefragt werden. Die Überprüfung, ob diese Zahl eine Primzahl ist, soll dann genau wie im Struktogramm gezeigt ablaufen (die Variablen können Sie aber natürlich auch anders nennen).

Hinweis: Um zu ermitteln, ob eine Zahl a Teiler einer anderen Zahl b ist, kann der Teilungsrest von a durch b überprüft werden. In Scratch lässt sich der Teilungsrest mit dem Modulo-Operator berechnen (Rest = a modulo b):
Block

Aufgabe 4: Längstes Wort

Entwickeln Sie ein Scratch-Programm, das ermittelt, welches das längste Wort ist, das im Text von “Romeo und Julia” vorkommt. Laden Sie dazu die Projektdatei Längstes_Wort.sb3 als Vorlage herunter: Download

Das Projekt enthält bereits eine Liste namens “Wörter”, in der die Wörter des Textes als Elemente enthalten sind. Erstellen Sie ein Skript, das beim Programmstart ausgeführt wird: Gehen Sie darin die Liste elementweise durch, um das längste Wort zu finden. Dieses Wort soll in einer Variablen namens “längstes Wort” gespeichert werden, die auf der Bühne angezeigt wird.

Hinweis: Um die Länge eines Wortes zu ermitteln, können Sie den Werteblock “Länge von Zeichenkette” (unter Operatoren) verwenden:
Block

Aufgabe 5: Lineare Suche

In dieser Aufgabe soll die lineare Suche nach einem Wort in einer Liste verbessert werden. Laden Sie dazu die Projektdatei Wörter_suchen.sb3 herunter: Download

Im Skript finden Sie die folgende Sequenz, in der die Liste “Wörter” nach einem Wort durchsucht wird, das zu Beginn auf die “frage”-Anweisung als Antwort eingegeben wurde:

Script

  • Beobachten Sie die Werte der Variablen “Index” und “gefunden?”, wenn das Programm fertig durchgelaufen ist, jeweils für die Eingaben “Bananen”, “Orangen” und “Prolog”. Was fällt auf?
  • Verbessern Sie das Skript so, dass die Wiederholung beim ersten Treffer beendet wird. Verwenden Sie dazu nicht die Anweisungen “stoppe dieses Skript” oder “stoppe alles”, sondern passen Sie die Abbruchbedingung der Wiederholung geeignet an!

Aufgabe 6: Bedingter Mittelwert

Es soll das mittlere Alter aller erwachsenen Gäste einer Veranstaltung ermittelt werden, also nur derjenigen Gäste, die mindestens 18 Jahre alt sind. Die Altersangaben aller Gäste sind in der Textdatei Altersangaben.txt aufgelistet: Download

Entwickeln Sie ein Scratch-Programm, das den Mittelwert aller passenden Altersangaben berechnet und in einer Variablen namens “Mittelwert” speichert, die auf der Bühne angezeigt wird.