Rückblick
Variablen und Datentypen sind die Bausteine, mit denen alles Weitere gebaut wird. Die Fehler, die hier entstehen, sind besonders zäh: Sie erzeugen keine Fehlermeldung, sondern falsche Werte.
Das kann ich jetzt
- Ich kann Deklaration und Wertzuweisung unterscheiden und weiß, dass
=von rechts nach links gelesen wird. (2.1) - Ich benutze sprechende Bezeichner in
camelCase. (2.1) - Ich kann die vier elementaren Datentypen nennen und den passenden auswählen. (2.2)
- Ich kann erklären, was bei einer Typumwandlung in beide Richtungen passiert. (2.2)
- Ich kann eine Eingabe einlesen und in eine Zahl umwandeln. (2.3)
- Ich kann mit Zeichenketten arbeiten und vergleiche sie immer mit
equals. (2.4)
Gemischte Aufgaben
Aufgabe 1: Werte verfolgen
Führ eine Tabelle auf Papier: eine Spalte je Variable, eine Zeile je Anweisung. Trag nach jeder Zeile ein, was in den Variablen steht.
void main() {
int a = 4;
int b = 10;
a = a + b;
b = a - b;
a = a - b;
IO.println("a = " + a + ", b = " + b);
int c = 7;
c += 3;
c *= 2;
c--;
c /= 4;
IO.println("c = " + c);
}
a) Was steht am Ende in a und b? Was hat der erste Block bewirkt?
b) Was steht in c? Rechne jeden Schritt einzeln.
c) Der zweite Block endet mit c /= 4. Erkläre, warum das Ergebnis keine Kommazahl ist.
Tipp zu a)
Rechne stur von rechts nach links: Erst wird die rechte Seite ausgewertet, dann steht das Ergebnis links. Nach der ersten Zeile hat a schon einen neuen Wert – und mit diesem wird in Zeile 2 weitergerechnet.
Aufgabe 2: Welcher Typ passt?
Nenne für jede Angabe den passenden Datentyp und begründe kurz.
a) die Anzahl der Schülerinnen in einem Kurs
b) der Durchschnitt einer Klassenarbeit
c) die Antwort auf die Frage, ob eine Aufgabe gelöst wurde
d) der Buchstabe, mit dem ein Wort beginnt
e) eine Postleitzahl
f) ein Kaufpreis in Euro und Cent
Zu e) und f) gehört jeweils eine Überlegung, bei der die naheliegende Antwort nicht die beste ist.
Tipp zu e)
Rechnest du je mit einer Postleitzahl? Und was passiert mit der Postleitzahl 01067, wenn du sie als Zahl speicherst?
Aufgabe 3: Ein Namensschild
Schreib ein Programm, das einen Namen einliest und daraus ein Namensschild baut.
Aus der Eingabe Amira soll werden:
Hallo AMIRA!
Dein Name hat 5 Buchstaben.
Anfangsbuchstabe: A
Kürzel: Am.
a) Lies den Namen mit IO.readln ein.
b) Erzeuge die vier Ausgabezeilen. Das Kürzel besteht aus den ersten beiden Buchstaben und einem Punkt.
c) Ergänze eine Ausgabe, die prüft, ob der eingegebene Name Amira lautet, und stimmt oder stimmt nicht ausgibt. Benutze dafür nicht ==.
d) Probier c) auch mit der Eingabe amira aus. Was passiert, und warum?
Tipp 1: Welche Methoden brauche ich?
| Verlangt | Methode |
|---|---|
| Anzahl der Buchstaben | length() |
| ein einzelnes Zeichen | charAt(0) |
| die ersten beiden Zeichen | substring(0, 2) |
| alles groß | toUpperCase() |
Denk daran, dass gezählt wird ab 0.
Tipp 2: zu c)
Zeichenketten vergleicht man mit equals:
if (name.equals("Amira")) {
IO.println("stimmt");
} else {
IO.println("stimmt nicht");
}
Verzweigungen kommen erst im nächsten Kapitel – hier darfst du das Muster einfach übernehmen.