MINT lernen

Übung — AFB I (Reproduzieren)

Zehn Grundaufgaben zum ganzen Kapitel: Algorithmen im Kopf ausführen, Werte ablesen, mit / und mod rechnen — jeweils eine Zahl als Antwort.

Dein Fortschritt:
0 / 0 Aufgaben
1

Aufgabenblock — AFB I

Zehn Grundaufgaben quer durch das Kapitel „Algorithmen“ — von Grundbausteinen und Struktogrammen über Tracetabellen und Operationen bis zu mod, Zeichenketten und ASCII. Jede Aufgabe verlangt genau eine Zahl: Du führst einen kurzen Algorithmus im Kopf aus und liest ein Ergebnis ab. Das sind die sicheren Punkte in jeder Klausur. Bei Bedarf hilft die Regel-Erinnerung, die Lösung kannst du aufklappen.

A1
Sequenz und Verzweigung — Ausgabe bestimmen
AFB I

Führe den Algorithmus im Kopf aus. Welche Zahl wird ausgegeben?

Pseudocode
x ← 9
y ← 4
wenn x − y > 3 dann
  y ← y · 3
sonst
  x ← x · 3
ende wenn
Ausgabe: x + y
Sequenz: Die Zeilen laufen der Reihe nach ab. Verzweigung: Erst die Bedingung ausrechnen — ist sie wahr, läuft nur der dann-Zweig, sonst nur der sonst-Zweig.
Lösung anzeigen
Nach den ersten beiden Zeilen gilt x = 9, y = 4. Bedingung: 9 − 4 = 5 > 3 ist wahr → dann-Zweig: y ← 4 · 3 = 12; x bleibt 9. Ausgabe: 9 + 12 = 21
A2
Struktogramm — fußgesteuerte Schleife
AFB I

Das Struktogramm rechts enthält eine fußgesteuerte Schleife: Der Rumpf steht oben, die Bedingung unten. Welcher Wert wird am Ende ausgegeben?

Fußgesteuert: Erst läuft der Rumpf, danach wird die Bedingung geprüft. Ist sie noch wahr, geht es wieder nach oben. Notiere k nach jedem Durchlauf.
Lösung anzeigen
k nach jedem Durchlauf: 38, 26, 14, 2, −10. Nach dem 5. Durchlauf ist k = −10, die Bedingung k > 0 ist falsch, die Schleife endet. n zählt die Durchläufe: n = 5
n ← 0k ← 50k ← k − 12n ← n + 1solange k > 0Ausgabe: n
Struktogramm mit fußgesteuerter Schleife
A3
Algorithmus in Worten — ausführen
AFB I

Ein Algorithmus ist verbal beschrieben. Führe ihn aus; „halbiere“ bedeutet ganzzahlig halbieren (Nachkommastellen fallen weg).

  1. Setze p auf 200.
  2. Setze t auf 0.
  3. Solange p größer als 20 ist:
    1. halbiere p,
    2. erhöhe t um 1.
  4. Gib t aus.
„Solange …“: Vor jedem Durchlauf wird geprüft. Die Unterschritte a) und b) gehören zum Rumpf und laufen jedes Mal beide.
Lösung anzeigen
p: 200 → 100 → 50 → 25 → 12. Bei p = 12 ist „p > 20“ falsch. Es gab 4 Durchläufe, also t = 4
A4
Schleifendurchläufe zählen
AFB I

Wie oft wird der Schleifenrumpf ausgeführt?

Pseudocode
i ← 2
solange i ≤ 30 wiederhole
  i ← i + 4
ende solange
Durchläufe
Durchläufe: Liste die Werte der Schleifenvariable auf, für die die Bedingung wahr ist. Achtung: ≤ schließt den Endwert ein.
Lösung anzeigen
Die Bedingung ist wahr für i = 2, 6, 10, 14, 18, 22, 26, 30 — das sind 8 Werte (Rechnung: (30 − 2) / 4 + 1 = 8). Nach dem letzten Durchlauf ist i = 34. Anzahl = 8 Durchläufe
A5
Zuweisungen — Wert einer Variablen
AFB I

Welchen Wert hat die Variable a nach diesen Java-Anweisungen?

Java
int a = 6;
int b = a + 4;
a = b * 2;
b = a - b;
a = a + b;
Zuweisung: Erst wird die rechte Seite mit den aktuellen Werten ausgerechnet, dann links gespeichert. Der alte Wert ist danach überschrieben.
Lösung anzeigen
a = 6 → b = 10 → a = 20 → b = 20 − 10 = 10 → a = 20 + 10 = 30
A6
Tracetabelle — Endwert
AFB I

Erstelle eine Tracetabelle für die Variablen a, b und c. Welcher Wert wird ausgegeben?

Pseudocode
a ← 1
b ← 1
für i von 1 bis 5 wiederhole
  c ← a + b
  a ← b
  b ← c
ende für
Ausgabe: b
Tracetabelle: eine Spalte je Variable (i, c, a, b), eine Zeile je Durchlauf. Innerhalb des Durchlaufs der Reihe nach rechnen: c zuerst, dann a, dann b.
Lösung anzeigen
Jede Zeile zeigt die Werte am Ende eines Durchlaufs:
icab
––11
1212
2323
3535
4858
513813
Ausgabe: b = 13 (die Werte bilden die Fibonacci-Folge 1, 1, 2, 3, 5, 8, 13).
A7
Rückgabewert eines geschachtelten Aufrufs
AFB I

Gegeben ist die Operation g. Welchen Wert liefert der Aufruf g(g(4, 9), 3)?

Pseudocode
Operation g(x, y)
  wenn x > 2 · y dann
    zurück x − y
  sonst
    zurück x + y
  ende wenn
Geschachtelter Aufruf: Von innen nach außen. Der Rückgabewert des inneren Aufrufs wird zum ersten Argument des äußeren. Argumente gehen der Reihe nach in die Parameter x, y.
Lösung anzeigen
Innen: g(4, 9): x = 4, y = 9; 4 > 18 ist falsch → zurück 4 + 9 = 13. Außen: g(13, 3): 13 > 6 ist wahr → zurück 13 − 3 = 10
A8
Lokal oder global — Ausgabe bestimmen
AFB I

Welche Zahl gibt das Python-Programm aus?

Python
z = 5

def f(z):
    z = z + 10
    return z * 2

y = f(3)
print(y + z)
Gültigkeitsbereich: Der Parameter z ist eine lokale Variable von f und verdeckt dort die globale z. Was in f passiert, ändert die globale Variable nicht.
Lösung anzeigen
Im Aufruf f(3) ist das lokale z = 3, dann 13; zurück kommt 13 · 2 = 26. Die globale Variable z ist weiterhin 5. Ausgabe: 26 + 5 = 31
A9
Ganzzahldivision und Rest
AFB I

Im Pseudocode ist / bei ganzen Zahlen die Ganzzahldivision. Welche Zahl wird ausgegeben?

Pseudocode
a ← 158 / 7
b ← 158 mod 7
Ausgabe: a − b
/ und mod: a / b gibt an, wie oft b ganz in a passt; a mod b ist der Rest dabei, also a − (a / b) · b.
Lösung anzeigen
7 passt 22-mal in 158 (22 · 7 = 154), Rest 158 − 154 = 4. Also a = 22, b = 4, Ausgabe: 22 − 4 = 18
A10
Zeichen an einer Position — ASCII-Wert
AFB I

Welchen Wert hat w nach diesen Java-Anweisungen?

Java
String s = "Quelltext";
int w = (int) s.charAt(3);
Index und ASCII: Positionen beginnen bei 0. Kleinbuchstaben: 'a' = 97, 'b' = 98, … — der Abstand zu 'a' zählt weiter.
Lösung anzeigen
Q hat Position 0, u 1, e 2, l 3 → charAt(3) = 'l'. 'l' ist der 12. Buchstabe, also 97 + 11 = 108