Aufgabe 1: Zahlen auf der Diagonale rot

Erweitere das Programm oben so, dass alle Zahlen auf der Diagonale (1, 4, 9, …) in der Farbe Color.red ausgegeben werden!

Hier geht's zur Lösung!

Beispiel: Anzahl der Tage im Monat

Erstelle ein Programm, das den Benutzer um Eingabe eines Monats als Zahl bittet (1 == Jan, 2 == Feb, …) und die Anzahl der Tage in diesem Monat ausgibt (noch ohne Schaltjahre).

Aufgabe 2: Schaltjahre!

Erweitere das Programm oben so, dass es den Benutzer zusätzlich zur Eingabe der Jahreszahl auffordert und bei der Antwort berücksichtigt, ob es sich um ein Schaltjahr handelt.
Vorsicht: Wenn Du denkst, jedes 4. Jahr sei ein Schaltjahr, muss ich Dich enttäuschen. Die Schaltjahresregel ist etwas umfangreicher.

Hier geht's zur Lösung!

Beispiel: Zahlenraten

Programmidee:
Der Computer soll sich eine zufällige ganze Zahl zwischen 1 und 100 ausdenken und der Benutzer soll versuchen, sie zu erraten. Dazu hat er beliebig viele Versuche. Nach jedem Rateversuch informiert der Computer ihn darüber, ob die eingegebene Zahl zu groß, zu klein oder genau richtig war.

Probiere das Programm erst einmal aus und versuche, die Anweisungen zu verstehen. Eine Erklärung der Anweisung in Zeile 1 folgt unten.

Erzeugen von Zufallszahlen

Die Funktion Math.random() erzeugt bei jedem Aufruf eine neue Zufallszahl im Intervall [0;1[. (Die eckigen Klammern bedeute: inklusive 0 und exklusive 1).
Durch Multiplikation mit 100 erhalten wir eine zufällige Zahl im Intervall [0;100[, die durch die Funktion Math.floor() abgerundet wird. Es entsteht eine zufällige ganze Zahl aus der Menge {0; 1; 2; ... 99}. Zu dieser zählen wir 1 dazu, so dass wir insgesamt eine zufällige Zahl aus der Menge {1; 2; 3; ... 100} bekommen.
Insgesamt: int zahl = Math.floor(Math.random() * 100) + 1;

Aufgabe 3: Rateversuche zählen

Erweitere das Programm oben so, dass es am Ende ausgibt, wie viele Versuche der Benutzer gebraucht hat.

Bemerkung: Zur Lösung dieser Aufgabe braucht man natürlich keine if-Anweisung.

Hier geht's zur Lösung!

Aufgabe 4: Primzahlentscheider

Schreibe ein Programm, das den Benutzer auffordert, eine Zahl einzugeben. Das Programm prüft dann, ob es sich um eine Primzahl handelt, indem es prüft, ob die Zahl durch eine der Zahlen 2, 3, …, Zahl – 1 teilbar ist. Am Ende teilt schreibt das Programm „Die eingegebene Zahl ist eine Primzahl.“ oder „Die eingegebene Zahl ist keine Primzahl.“

Für die Schnellen unter Euch: Es würde reichen, die Teilbarkeit durch deutlich weniger Zahlen zu prüfen. Optimiere das Programm, so dass es schneller läuft!

* Schreibe die Eingabe des Benutzers in eine Variable: int zahl = Input.readInt('Geben Sie eine Zahl ein:'); 
* Instanziere dann eine zweite Variable d und gib ihr den Startwert 2.
 * Zähle sie anschließend mit einer while-loop hoch, solange der Wert von zahl noch nicht durch d teilbar ist. * Der Computer kann **nach** Abarbeitung der while-loop anhand des Wertes von d entscheiden, ob zahl eine Primzahl war. Denk' kurz darüber nach, warum das so ist!

Hier geht's zur Lösung!

Aufgabe 5: Lass' den Computer raten!

Der Benutzer denkt sich eine ganze Zahl zwischen 1 und 100. Der Computer rät und gibt seinen Tipp am Bildschirm aus. Dann fragt er den Benutzer, ob er richtig geraten hat. Ist die Zahl des Computers zu klein, so gibt der Benutzer 1 ein. Ist sie zu groß, so gibt er 2 ein. Stimmt sie, so gibt er 3 ein. Es folgen weitere Rateversuche des Computers und Antworten des Benutzers, bis der Computer die Zahl erraten hat.

Überlege Dir eine möglichst gute Ratestrategie für den Computer und programmiere sie dann!

* Der Computer muss sich das Intervall merken, in dem sich die vom Benutzer geheimgehaltene Zahl noch befinden kann. Dazu brauchst Du zwei Variablen, wir nennen sie int von = 1; und int bis = 100;. Anfangs weiß der Computer nur, dass sich die Zahl im Intervall von 1 bis 100 befindet. 
* Deklariere eine weitere Variable int tipp
* Die Eingabe des Benutzers speicherst Du in einer vierten Variablen int eingabe = 0
* Beginne jetzt eine while-loop, die wiederholt, solange eingabe != 3 ist. 
* In der while-loop berechnest Du zuerst aus von und bis den nächsten Tipp und gibst ihn aus.
* Dann liest Du die Eingabe des Benutzers ein und speicherst sie in der Variablen eingabe
* Abhängig von der Eingabe und den Werten von von und bis berechnest Du jetzt den nächsten Wert der Variable tipp sowie die neuen Werte von von und bis.

Hier geht's zur Lösung!