Javakurs/Übungsaufgaben/Schleifen und Modulo: Unterschied zwischen den Versionen
(→Aufgabe) |
|||
Zeile 17: | Zeile 17: | ||
foo | foo | ||
bar | bar | ||
− | + | ... | |
=== Umsetzung === | === Umsetzung === |
Version vom 8. April 2008, 00:13 Uhr
Hinweise:
- Bevor du mit der Aufgabe beginnst, solltest du sie einmal komplett durchgelesen haben.
- Der Modulo Operator in Java ist "%". Der Modulo-Operator führt eine ganzzahlige Division durch und gibt den Rest zurück. System.out.println("6 % 4 = " + 6 % 4) ergibt also "6 % 4 = 2"
Aufgabe
Schreibe ein Programm, das die Zahlen 1 bis 100 (jeweils inklusive) auf einer eigenen Zeile ausgibt. Dabei soll jede durch 3 teilbare Zahl durch die Ausgabe "foo", jede durch 5 teilbare Zahl durch "bar" und jede durch 3 und 5 teilbare Zahl durch "foobar" ersetzt werden.
Die ersten Ausgaben des Programms sähen also so aus:
1 2 foo 4 bar foo 7 8 foo bar ...
Umsetzung
Erstelle eine neue Datei "LoopingFun.java" mit einer Klasse "LoopingFun" darin. Beispiel:
class LoopingFun { public static void main(String [] unused) { // Your code here ... } }
- Dein Code soll in die Main-Methode.
- Ergänze die
main
-Methode um eine Schleife, die von 1 bis 100 (inklusive) zählt. - Gib in der Schleife die aktuelle Zahl aus.
- Teste dein Programm.
- Ergänze dein Programm, sodass es anstatt der durch 3 teilbaren Zahlen "foo" ausgibt.
- Teste dein Programm.
- Ergänze dein Programm, sodass es anstatt der durch 5 teilbaren Zahlen "bar" ausgibt. (Ignoriere dabei den Fall, wo eine Zahl durch 3 und durch 5 teilbar ist)
- Teste dein Programm.
- Ergänze dein Programm, sodass es eine durch 3 und 5 teilbare Zahl korrekt ausgibt.
- Teste dein Programm.
Betrachte deine Lösung:
- Erklären die Namen der Variablen welchen Zweck sie haben?
- Enthält dein Programm Kommentare? Dokumentieren diese Kommentare was dein Programm tut (schlecht) oder warum du es tust (gut)?
- Wie stellt dein Programm fest, ob eine Zahl durch 3, 5 oder durch beide Zahlen teilbar ist?
- Wie hast du die Schleife implementiert? Mit einer For-Schleife oder mit einer while-Schleife? Verändere deine Implementierung, so dass die andere Schleifenart verwendet wird.
- Welche der Schleifenkonstrukte ist für dieses Problem besser geeignet? Ändere (falls nötig) dein Programm so, dass die besser geeignete Syntax verwendet wird.
- Einige dich mit deinen Nachbarn ob "for" oder "while" hier besser geeignet ist und teilt euer Ergebnis dem Tutor mit.
- Wie viele Fallunterscheidungen verwendet dein Programm? Drei, vier, fünf oder noch mehr? Wenn du mehr als drei Fallunterscheidungen hast, überlege wie Du mit drei Fallunterscheidungen auskommen könntest. Verändere dein Programm entsprechend. (Hinweis: System.out.println() fügt jeder Ausgabe einen Zeilenumbruch hinzu. System.out.print() tut das nicht.)
- Wie viele lokale Variablen verwendest du? Wenn es mehr als eine ist, überlege ob du dein Programm vereinfachen kannst, indem du nur noch eine Variable verwendest. (Hinweis: Auch ein Schleifenzähler ist eine lokale Variable)
- Vergleiche deine Lösung mit der eines anderen Kursteilnehmers und betrachtet die Unterschiede anhand der Fragen die hier aufgeführt sind.
Zum Abschluss: Führe dein Programm einem Tutor vor und programmiere seine Änderungsvorschläge.
Kommentare
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)