Übungsaufgaben
Dreißig Übungen in gemischter Reihenfolge — Sie klicken, ziehen, ordnen, rechnen und knobeln. Jede Übung gibt Ihnen 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. Fahren Sie über ein unterstrichenes Arbeitswort, sehen Sie, was es genau von Ihnen verlangt.
Ein Drehkreuz im Schwimmbad wird als DEA modelliert: Das Zeichen m (Münze einwerfen) entsperrt es, s (Schieben) sperrt es nach dem Durchgang wieder. Ein Wort gilt als angenommen, wenn das Drehkreuz am Ende gesperrt ist. Die Methode akzeptiert setzt zustand = 0;, ruft für jedes Zeichen uebergang(c) auf und liefert am Ende zustand == 0. Der Rumpf von uebergang lautet:
// 0 = z0 gesperrt, 1 = z1 frei // 2 = zF switch (zustand) { case 0: if (c == 'm') { zustand = 1; } else { zustand = 2; } break; case 1: if (c == 's') { zustand = 0; } else { zustand = 2; } break; default: zustand = 2; }
Beschreiben Sie, wie akzeptiert("msm") abläuft: Spielen Sie den Ablauf Zeichen für Zeichen durch.
Ein DEA soll Dezimalzahlen erkennen: mindestens eine Ziffer, danach optional ein Komma, auf das mindestens eine Ziffer folgt (12, 3,14 ja; ,5, 1,, 1,2,3 nein). Zustände: z0 Start, z1 „nur Ziffern“ (Endzustand), z2 „Komma gelesen“, z3 „Nachkommaziffern“ (Endzustand), zF = 4. Zeilen 1–7 bilden uebergang(char c), Zeilen 8–10 den Rumpf von akzeptiert. Überprüfen Sie den Code — drei Zeilen sind fehlerhaft.
<= führt zum Absturz, das fehlende break macht nur Wörter mit Komma kaputt, die falsche Rückgabe nur Wörter ohne Komma. Wer nur mit 3,14 testet, findet höchstens einen davon. Zeile 7 ohne break ist dagegen korrekt: Der letzte Fall braucht keins.1,5 und 12 im Kopf Zeichen für Zeichen durch den Code.break, auf die Schleifengrenze und darauf, welche Zustände Endzustände sind.Der Automat eines Kennzeichen-Prüfers soll in uebergang erkennen, ob das Zeichen c (Typ char) ein Großbuchstabe von A bis Z ist. Untersuchen Sie jede der sechs Bedingungen für die if-Abfrage und bewerten Sie sie mit einer Ampelfarbe.
- Rot: Fehlerhaft
- Gelb: Richtig, aber umständlich
- Grün: Richtig und gut
-
c >= 'A' && c <= 'Z' -
c >= 65 && c <= 90 -
c > 'A' && c < 'Z' -
c >= "A" && c <= "Z" -
c >= 'A' || c <= 'Z' -
c - 'A' >= 0 && c - 'A' < 26
