Aufgabenblock — AFB I
Zehn Grundaufgaben quer durch das Kapitel „Weitere Programmiersprachen“ — vom Zeitstrahl über Compiler und Interpreter bis zu Typen, SQL-Abfragen und kurzen Programmstücken in Python, JavaScript, PHP, Go und C#. Jede Aufgabe verlangt genau eine Zahl. Das sind die sicheren Punkte in jeder Klassenarbeit. Bei Bedarf hilft dir die Regel-Erinnerung, die Lösung kannst du aufklappen.
FORTRAN gilt als eine der ersten Hochsprachen. Viel später erschien die erste stabile Version von Rust (Rust 1.0). Wie viele Jahre liegen zwischen diesen beiden Ereignissen?
Lösung anzeigen
Ein Programm besteht aus 4 Anweisungen. Anweisung 1 und Anweisung 4 werden je einmal ausgeführt, die Anweisungen 2 und 3 stehen in einer Schleife mit 6 Durchläufen. Ein einfacher Interpreter übersetzt eine Anweisung jedes Mal neu, wenn er sie ausführt. Wie viele Übersetzungsschritte braucht er für einen Programmlauf?
Lösung anzeigen
Welche Zahl gibt diese JavaScript-Zeile aus?
console.log("6" * 2 + 3);
* wandelt Text in eine Zahl um. Der Operator + verkettet, sobald einer der beiden Werte Text ist, sonst addiert er. Gerechnet wird Punkt vor Strich, gleichrangige Operatoren von links.Lösung anzeigen
"6" * 2: Das * macht aus dem Text "6" die Zahl 6, also 12 (eine Zahl). Danach 12 + 3: beide Werte sind Zahlen, also wird addiert = 15Welche Zahl schickt dieses PHP-Skript an den Browser?
<?php $a = "5"; $b = 3; echo $a + $b * 2; ?>
+ immer: Ein Text wie "5" wird dabei zur Zahl. Verkettet wird in PHP mit dem Punkt .. Auch hier gilt Punkt vor Strich.Lösung anzeigen
$b * 2 = 6. Dann "5" + 6: PHP wandelt "5" in die Zahl 5 um und addiert = 11 (JavaScript würde hier „56“ ausgeben.)Welche Zahl gibt Python aus? Schreibe Kommazahlen mit Komma.
print(7 / 2 + 7 // 2)
/ immer eine Kommazahl, // teilt ganzzahlig (die Nachkommastellen fallen weg).Lösung anzeigen
7 / 2 = 3.5 und 7 // 2 = 3. Zusammen: 3.5 + 3 = 6,5 Python schreibt die Ausgabe als 6.5.Welche Zahl gibt dieses Go-Programmstück aus?
x := 7 y := 2 fmt.Println(x/y + x%y)
:= legt eine neue Variable an, ihr Typ (hier int) wird aus dem Wert abgeleitet. Teilt man zwei int-Werte mit /, fallen die Nachkommastellen weg; % liefert den Rest.Lösung anzeigen
x/y = 7 / 2 = 3 (ganzzahlig), x%y = 7 % 2 = 1 (Rest). Summe: 3 + 1 = 4Eine Schulbibliothek speichert ihre Bücher in der Tabelle buecher:
| titel | autor | jahr | seiten | genre |
|---|---|---|---|---|
| Der Hobbit | Tolkien | 1937 | 310 | Fantasy |
| Momo | Ende | 1973 | 304 | Fantasy |
| Tintenherz | Funke | 2003 | 576 | Fantasy |
| Emil und die Detektive | Kästner | 1929 | 176 | Krimi |
| Tschick | Herrndorf | 2010 | 256 | Roman |
| Die unendliche Geschichte | Ende | 1979 | 480 | Fantasy |
| Rico, Oskar und die Tieferschatten | Steinhöfel | 2008 | 224 | Krimi |
Welche Zahl liefert diese Abfrage?
SELECT COUNT(*) FROM buecher WHERE genre = 'Fantasy' AND seiten > 300;
WHERE behält nur die Zeilen, für die die Bedingung wahr ist. Bei AND müssen beide Teilbedingungen gelten. COUNT(*) zählt die übrig gebliebenen Zeilen.Lösung anzeigen
COUNT(*) = 4Die Klasse 9b hat Spiele bewertet (0 bis 10 Punkte) und in der Tabelle spiele gespeichert:
| name | genre | jahr | bewertung |
|---|---|---|---|
| Minecraft | Sandbox | 2011 | 9 |
| Tetris 99 | Puzzle | 2019 | 7 |
| Celeste | Jump'n'Run | 2018 | 9 |
| Stardew Valley | Simulation | 2016 | 8 |
| Among Us | Party | 2018 | 7 |
| Portal 2 | Puzzle | 2011 | 10 |
| Mario Kart 8 Deluxe | Rennspiel | 2017 | 8 |
Wie viele Zeilen hat die Ergebnistabelle dieser Abfrage?
SELECT name FROM spiele WHERE jahr >= 2018 OR bewertung > 8;
OR reicht es, wenn eine der beiden Teilbedingungen wahr ist. Jede Zeile kommt höchstens einmal in das Ergebnis, auch wenn beide Bedingungen gelten.Lösung anzeigen
Welche Zahl gibt dieses JavaScript-Programmstück aus?
let werte = [5, 1, 4, 2, 6]; let ergebnis = werte .filter(x => x > 3) .map(x => x * 2) .reduce((a, b) => a + b, 0); console.log(ergebnis);
filter behält die Elemente, für die die Bedingung wahr ist. map wendet eine Funktion auf jedes Element an. reduce fasst alle Elemente zu einem Wert zusammen — hier eine Summe mit Startwert 0.Lösung anzeigen
filter(x => x > 3) → [5, 4, 6]. map(x => x * 2) → [10, 8, 12]. reduce addiert: 10 + 8 + 12 = 30Welche Zahl gibt dieses C#-Programmstück aus?
int a = 7; int b = 2; Console.WriteLine(a / b * 2.0);
int / int ist eine Ganzzahldivision. Erst wenn eine Kommazahl wie 2.0 beteiligt ist, wird mit Kommazahlen gerechnet. Gerechnet wird von links nach rechts.Lösung anzeigen
a / b = 7 / 2 = 3 (beide int, der Rest fällt weg). Dann 3 · 2.0 = 6.0 — C# gibt = 6 aus. Wer 7 statt 6 erwartet, hat 3,5 · 2 gerechnet.