Bereit für die Prüfung?
Dieses Lernportal deckt alle 8 Prüfungsthemen der Fachinformatiker-Abschlussprüfung ab. Arbeite die Module a–h systematisch durch.
📋 Alle Prüfungsthemen
a) Ausdrücke, Operatoren, Datentypen
b) Struktogramm aus Programm erzeugen
c) Welche Ausgabe erscheint?
d) OOP-Begriffe erläutern
e) UML-Diagramm Begriffe kennen
f) UML aus Text erstellen / Fehler finden
g) Klassendiagramm → Code ergänzen
h) Struktogramm → Code ergänzen
💡 Empfohlene Reihenfolge
1. a) Ausdrücke – Basis für alles
2. d+e) OOP & UML – Begriffe lernen
3. b) Struktogramme – Diagramme verstehen
4. c) Code-Tracing – Ausgaben üben
5. f) UML Aufgaben – Fehler finden
6. g+h) Code ergänzen – alles zusammen
Ausdrücke & Grundlagen
Datentypen, Operatoren, Typumwandlung und Ausdruck-Auswertung – die Basis für alle anderen Themen.
Primitive Datentypen (Java)
| Typ | Größe | Wertebereich | Standardwert | Beispiel |
|---|---|---|---|---|
byte | 8 Bit | −128 … 127 | 0 | byte b = 10; |
short | 16 Bit | −32 768 … 32 767 | 0 | short s = 1000; |
int | 32 Bit | −2 147 483 648 … 2 147 483 647 | 0 | int x = 42; |
long | 64 Bit | ±9.2 × 10¹⁸ | 0L | long l = 99L; |
float | 32 Bit | ±3.4 × 10³⁸ | 0.0f | float f = 3.14f; |
double | 64 Bit | ±1.8 × 10³⁰⁸ | 0.0 | double d = 3.14; |
boolean | 1 Bit | true / false | false | boolean ok = true; |
char | 16 Bit | ' ' … '' | ' ' | char c = 'A'; |
String | Objekt | beliebige Zeichenkette | null | String s = "Hi"; |
Operatoren & Priorität
++/-- (unär) → * / % → + - → < > <= >= → == != → && → || → ?: → = += -=
| Arithmetik | Bedeutung | Beispiel |
|---|---|---|
+, -, *, / | Grundrechenarten | 10 / 3 → 3 |
% | Modulo (Rest) | 10 % 3 → 1 |
++x | Prä-Inkrement (erst erhöhen) | x=5; y=++x → x=6,y=6 |
x++ | Post-Inkrement (erst nutzen) | x=5; y=x++ → x=6,y=5 |
+=, -=, *= | Kombinierte Zuweisung | x += 3 = x = x+3 |
| Vergleich / Logik | Bedeutung | Ergebnis |
|---|---|---|
==, != | Gleich / Ungleich | boolean |
<, >, <=, >= | Vergleichsoperatoren | boolean |
&& | Logisch UND (Kurzschluss) | false, wenn 1. false |
|| | Logisch ODER (Kurzschluss) | true, wenn 1. true |
! | Logische Negation | !true → false |
Typumwandlung (Casting)
Implizite Konvertierung (automatisch)
Expliziter Cast (erzwungen)
Kontrollstrukturen
if / else if / else
switch-Anweisung
for / for-each
while / do-while
String-Methoden (häufig in Prüfungen)
| Methode | Bedeutung | Beispiel |
|---|---|---|
s.length() | Anzahl Zeichen | "Hallo".length() → 5 |
s.charAt(i) | Zeichen an Index i | "Hallo".charAt(1) → 'a' |
s.substring(a,b) | Teilstring von a bis b (exkl.) | "Hallo".substring(1,3) → "al" |
s.toUpperCase() | Großbuchstaben | "hi".toUpperCase() → "HI" |
s.equals(t) | Inhalt vergleichen (nicht ==!) | "a".equals("a") → true |
s.contains("x") | Enthält Teilstring? | "Hallo".contains("al") → true |
s + t | Konkatenation (auch mit Zahlen) | "x=" + 5 → "x=5" |
🧩 Übungen: Ausdrücke auswerten
System.out.println(a / b);
System.out.println(a % b);
int y = x++;
int z = ++x;
System.out.println(y + " " + z + " " + x);
int i = (int) d;
System.out.println(i);
System.out.println("Summe: " + a + b);
System.out.println("Summe: " + (a + b));
boolean r = (x > 2) && (x % 2 == 0);
System.out.println(r);
String s = (n != 0) ? "nicht null" : "null";
System.out.println(s);
Struktogramme
Nassi-Shneiderman-Diagramme – visuelle Darstellung von Algorithmen. Lerne alle Grundelemente und übe Code → Struktogramm.
Grundelemente im Überblick
① Sequenz (Folge)
Anweisungen werden von oben nach unten ausgeführt.
② Bedingte Anweisung (if/else)
Trapezform zeigt die Bedingung. Links = WAHR, Rechts = FALSCH.
③ Zählschleife (for)
Linker Balken = Schleifentyp. Bedingung oben im Körper.
④ While-Schleife (kopfgesteuert)
n = n + 1
Bedingung wird VOR jedem Durchlauf geprüft. Kann 0× laufen.
⑤ Do-While-Schleife (fußgesteuert)
Bedingung steht UNTEN. Körper wird mindestens 1× ausgeführt.
⑥ Fallunterscheidung (switch)
Jede Spalte = ein case. Die letzte Spalte = default.
⑦ Vollständiges Beispiel: Summe gerader Zahlen 1–10
Berechnet 2+4+6+8+10 = 30. Zeigt Schachtelung: Schleife enthält Bedingung.
🧩 Übung: Code → Struktogramm-Lücken ausfüllen
Code-Tracing – Welche Ausgabe erscheint?
Analysiere den Code Zeile für Zeile und trage die exakte Konsolenausgabe ein. Groß-/Kleinschreibung und Leerzeichen zählen!
💡 Tracing-Strategie
1. Variablen-Tabelle anlegen: Name | Typ | aktueller Wert
2. Zeile für Zeile durchgehen – bei jeder Zuweisung den Wert aktualisieren
3. Schleifen: Zähler mitführen, Bedingung vor jedem Durchlauf prüfen
4. Integer-Division: 7/2 = 3 (kein Rest), Modulo: 7%2 = 1
5. print = kein Zeilenumbruch, println = mit Zeilenumbruch
OOP Begriffe
Klicke auf eine Karte, um sie umzudrehen. Lerne alle 18 Grundbegriffe der objektorientierten Programmierung.
class Auto implements Fahrbar { ... }
void print(String s) {}
void print(int x, int y) {}
Auto.getAnzahl(); // kein new nötig
public void zeige() {} // alle
public void setName(String n) { this.name = n; }
// Person existiert auch ohne Team
// Raum ohne Haus sinnlos
UML Begriffe
Unified Modeling Language – Notation, Beziehungstypen, Multiplizitäten und Klassendiagramm-Aufbau.
Aufbau eines UML-Klassendiagramms
Beziehungstypen im Überblick
extendsimplementsMultiplizitäten (Kardinalitäten)
| Notation | Bedeutung | Beispiel |
|---|---|---|
1 | Genau eine Instanz | Jeder Auftrag hat genau 1 Kunden |
0..1 | Null oder eine Instanz | Person hat 0 oder 1 Führerschein |
* oder 0..* | Beliebig viele (auch keine) | Kunde hat 0..* Bestellungen |
1..* | Mindestens eine | Team hat mindestens 1 Mitglied |
2..5 | Feste Spanne | Auto hat 2 bis 5 Türen |
Vollständiges Beispiel-Diagramm (Vererbung + Interface)
(- -▷)
(──▷)
Schnellreferenz-Glossar
UML Aufgaben
Aus einem Text ein UML-Diagramm ableiten und Fehler in vorhandenen Diagrammen erkennen.
Teil 1: Fehler im UML-Diagramm finden
Das folgende Diagramm beschreibt: „Hund erbt von Tier". Finde den Fehler:
← Fehler hier?
Finde zwei Fehler in diesem Klassendiagramm:
Text: „Ein Haus besteht aus Räumen. Ein Raum kann ohne ein Haus nicht existieren. Die Multiplizität ist: 1 Haus hat 1 bis viele Räume."
Was ist am folgenden Diagramm falsch?
Teil 2: Aus Text ein UML-Diagramm ableiten
Tier mit dem privaten Attribut name (String) und der öffentlichen Methode essen() (kein Rückgabewert). Die Klasse Hund erbt von Tier und hat zusätzlich die Methode bellen()."
Frage: Welche UML-Notation ist für das Attribut name in der Klasse Tier korrekt?
Bibliothek verwaltet Bücher. Ein Buch gehört immer zu genau einer Bibliothek und kann nicht ohne sie existieren. Eine Bibliothek kann beliebig viele Bücher haben."
Welche Beziehung und Multiplizität ist korrekt?
Druckbar hat die Methode drucken(). Die Klasse Dokument implementiert dieses Interface und hat zusätzlich das private Attribut inhalt (String) sowie die öffentliche Methode speichern(): boolean."
Welche Aussage über das korrekte UML-Diagramm ist falsch?
Klassendiagramm → Code ergänzen
Ein Klassendiagramm ist vorgegeben. Ergänze die fehlenden Zeilen im Java-Quelltext.
Struktogramm → Code ergänzen
Ein Struktogramm ist vorgegeben. Ergänze den fehlenden Java-Quelltext.
Lückentext-Training
Ergänze die fehlenden Code-Stellen. Auf „Prüfen" klicken, um deine Antworten zu überprüfen.
Ergänze den Code für eine Klasse Form mit Unterklassen Kreis und Rechteck:
Diese Methode soll die Summe aller geraden Zahlen von 1 bis n berechnen. Ergänze die fehlenden Teile:
Ergänze die Klasse Person mit Konstruktor und Getter: