MINT üben

Datentypen und printf

Dreißig Übungen zu Datentypen und printf — von int und double über die Ganzzahldivision bis zur Feldbreite.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Dreißig Übungen in gemischter Reihenfolge — du klickst, ziehst, ordnest, rechnest und knobelst. Jede Übung gibt dir sofort eine Rückmeldung, und zu jeder Aufgabe gibt es zwei gestufte Tipps: Der erste zeigt die Richtung, der zweite den entscheidenden Schritt. Die Chips zeigen das Anforderungsniveau: AFB I heißt wiedergeben und direkt anwenden, AFB II selbst entscheiden und verknüpfen, AFB III begründen, beurteilen oder eine Falle durchschauen. Aufgaben mit dem Chip Mix verbinden Wissen aus früheren Unterkapiteln, bei Trick steckt eine Falle drin. Fährst du über ein unterstrichenes Arbeitswort, siehst du, was es genau von dir verlangt.

A1
Ausdrücke einordnen
AFB II

Ordne jeden Ausdruck in das Feld ein, das zu seinem Ergebnistyp und seinem Wert passt. Es gilt int a = 11, b = 4;.

Ziehe jedes Kärtchen in das passende Feld — oder klicke es an und dann das Feld. Mit der Tastatur: Enter wählt ein Kärtchen, die Pfeiltasten schieben es von Feld zu Feld, Esc legt es zurück. Nach dem Prüfen heißt ↔: waagerecht falsch, ↕: senkrecht falsch.
Ganzzahlig sind a / b = 2, a % b = 3, b / a = 0 und a * b = 44. Kommazahlen sind a / 2.0 = 5.5, 2 * 1.5 = 3.0, (double) a / b = 2.75, b / (double) a ≈ 0.36 und b / 2.0 = 2.0.
Ansatz: Bestimme zuerst für jeden Ausdruck den Typ: Steckt ein double oder ein cast darin?
Weiter: Rechne danach den Wert aus; bei zwei ganzen Zahlen wird abgeschnitten.
A2
Wirkung von Änderungen
AFB II

Deute die Wirkung jeder Änderung und trage ein, ob die beiden Größen im Vergleich zum Ausgangsprogramm steigen, sinken oder gleich bleiben.

C · mittel.c (Ausschnitt)
int summe = 18, anzahl = 5;
double m = (double) summe / anzahl;
printf("%.2f\n", m);
Setze in jede Zelle einen Pfeil: ↑ steigt, ↓ sinkt, → bleibt gleich. Ein Klick dreht den Pfeil weiter; mit der Tastatur Tab zur Zelle, dann ↑, ↓ oder →. Unter der Tabelle steht deine Wahl als Satz.
Größe (Ausgang: m = 3.6, Ausgabe 3.60)ohne cast%.1fsumme = 27
Wert von m
Zeichen der Ausgabe

Ohne cast rechnet C 18 / 5 als Ganzzahldivision: m wird 3.0, die Ausgabe 3.00 hat gleich viele Zeichen wie 3.60. Mit %.1f ändert sich nur die Ausgabe (3.6), nicht der gespeicherte Wert. Bei summe = 27 wächst m auf 5.4, die Ausgabe 5.40 bleibt vierstellig.
Ansatz: Rechne den Ausgang durch: 18 geteilt durch 5 ergibt 3.6, die Ausgabe zeigt zwei Nachkommastellen.
Weiter: printf verändert nur die Anzeige, nie den gespeicherten Wert.
A3
Reste im Kreis
AFB I

Skizziere den Verlauf von i % 4 für i = 6, 7, 8, 9 und so weiter: Lege die Reste im Uhrzeigersinn auf den Kreis. Die erste Karte liegt schon fest. Eine Karte passt nicht.

Lege jede Karte auf einen Platz im Kreis: Ziehen — oder erst die Karte und dann den Platz antippen (ein belegter Platz tauscht). Tastatur: Karte mit Tab wählen und die Ziffer des Platzes drücken; auf einem Platz wandern ←/→ im Kreis, Entf legt die Karte zurück. Nicht jede Karte gehört in den Kreis.
6 % 4 = 2, 7 % 4 = 3, 8 % 4 = 0, 9 % 4 = 1 – danach folgt 10 % 4 = 2, der Kreis schließt sich. Der Rest 4 kommt nie vor, weil der Rest immer kleiner als der Teiler ist.
Ansatz: Rechne die Reste für i = 6, 7, 8, 9 einzeln aus.
Weiter: Nach dem größten Rest beginnt die Folge wieder bei 0, deshalb schließt sich der Kreis.