Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
faecher:informatik:oberstufe:java:algorithmen:uebungen01:start [13.09.2021 15:18] – [A13 - Pi nach Leibnitz] sbel | faecher:informatik:oberstufe:java:algorithmen:uebungen01:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ~~NOTOC~~ | ||
- | ====== Übungsaufgaben Java 1 ====== | ||
- | |||
- | BlueJ Szenario: https:// | ||
- | |||
- | Bearbeite die folgenden " | ||
- | |||
- | * Teste deine Methoden mit mehreren Beispieleingaben (wo möglich): | ||
- | * Überlege dir bei den Beispielen vor allem, solche, an denen du " | ||
- | * Überlege erst, welche Ausgabe du für eine bestimmte Eingabe erwartest und teste dann. | ||
- | * Halte deine Testfälle im Kommentarbereich deiner Methode fest. | ||
- | * Mache dir bewusst, was man bei der Lösung beachten muss, vor allem wenn es nicht gleich klappt. Halte diese Erkenntnisse schriftlich fest. | ||
- | ===== A01 - Modulo selbst gemacht ===== | ||
- | |||
- | Eine praktische Rechenoperation ist " | ||
- | |||
- | < | ||
- | 7 mod 5 = 2 // 7 = 1 * 5 + 2 (5 geht einmal ganz in 7, dann bleibt ein Rest von 2 | ||
- | 167 mod 10 = 7 // 167 = 16 * 10 + 7 (" | ||
- | </ | ||
- | |||
- | Java hat dafür den Modulo Operator '' | ||
- | |||
- | ++++ Tipp | | ||
- | Wenn zwei ganze Zahlen (int) in Java geteilt werden, dann wird auch eine ganze Zahl (int) als Ergebnis dargestellt. '' | ||
- | ++++ | ||
- | |||
- | |||
- | ===== A02 - Dreieckstausch ===== | ||
- | |||
- | Manchmal möchte man die Werte zweier Variablen **vertauschen**, | ||
- | |||
- | Erstelle eine Methode, mit der zwei Zahlen vertauscht werden können. Die Parameter der Methode sollen die beiden Zahlen sein, die Ausgabe der Methode soll z.B. sein | ||
- | |||
- | < | ||
- | a=7 b=16 | ||
- | a=16 b=7 | ||
- | </ | ||
- | |||
- | |||
- | ++++ Tipp | | ||
- | |||
- | * Zunächst wird einer Hilfsvariablen der Wert von a zugewiesen. | ||
- | * Danach kann a mit dem Wert von b überschrieben werden, da die Hilfsvariable ihren vorherigen Wert (von a) speichert. | ||
- | * Danach bekommt b den Wert der Hilfsvariablen zugewiesen. | ||
- | |||
- | Der Tausch findet also "im Dreieck" | ||
- | ++++ | ||
- | |||
- | |||
- | Zusatz: Findest du eine Möglichkeit, | ||
- | |||
- | ===== A03 - Pyramidenvolumen ===== | ||
- | |||
- | Schreibe eine Methode, um das Volumen einer Pyramide mit qudratischem Boden zu berechnen (V = 1/3 * Grundfläche * Höhe). Welche Parameter benötigt deine Methode? | ||
- | |||
- | ++++ Tipp | | ||
- | Wenn immer '' | ||
- | ++++ | ||
- | // | ||
- | Recherche mit Notiz:// Welche [[https:// | ||
- | |||
- | |||
- | ===== A04 - Alterstest ===== | ||
- | |||
- | Entscheidungen: | ||
- | |||
- | Erstelle eine Methode, welche überprüft, | ||
- | |||
- | ++++ Tipp | | ||
- | |||
- | Verwende die Funktion '' | ||
- | |||
- | ++++ | ||
- | |||
- | ===== A05 - Gerade oder ungerade? ===== | ||
- | |||
- | Erstelle eine Methode, die prüft, ob eine eingegebene ganze Zahl gerade oder ungerade ist. Die Methode erzeugt unten stehende Bildschirmausgabe. | ||
- | |||
- | < | ||
- | Die Zahl 51 ist ungerade | ||
- | Die Zahl 200199212 ist gerade | ||
- | </ | ||
- | |||
- | |||
- | ++++ Tipp | | ||
- | Verwende den Modulo Operator '' | ||
- | ++++ | ||
- | |||
- | ===== A06 - Schulnoten ===== | ||
- | |||
- | Sehr viele Entscheidungen führen mitunter zu unübersichtlich verschachtelten " | ||
- | |||
- | Erstelle eine Methode, die eine Kommazahl als Parameter erhält und dann entsprechende der Rundungsregeln über die verbale Note entscheidet. | ||
- | |||
- | Z.B. ergibt die Note 2,5 die verbale Note: befriedigend. Ungültige Noten, also Noten außerhalb des Notenspektrums zwischen 1 und 6 haben die Bildschirmausgabe: | ||
- | |||
- | **Hinweis: | ||
- | |||
- | ===== A07 - Wertetabelle ===== | ||
- | |||
- | Schleifen sind wichtige Sprachemlemente zur Wiederholung von Anweisungen. Wenn man zuvor schon weiß, wie oft eine Anweisung ausgeführt werden wird, kann eine Zählschleife (for) zum Einsatz kommen. | ||
- | |||
- | Erstelle eine Wertetabelle für die Funktion '' | ||
- | |||
- | Was fällt dir dabei auf? | ||
- | ===== A08 - Schaltjahr ===== | ||
- | |||
- | |||
- | Überprüfe (ohne die Verwendung von Bilbliotheksfunktionen) ob ein gegebenes Jahr ein Schaltjahr ist. | ||
- | |||
- | ++++ Tipp | Schaltjahre können anhand der folgenden Regeln bestimmt werden: | ||
- | |||
- | * Regel 1: Alle 4 Jahre ist ein Schaltjahr (das bedeutet: es gibt einen 29. Februar) | ||
- | * Regel 2: Alle 100 Jahre tritt Regel 1 außer Kraft. | ||
- | * Regel 3: Regel 2 tritt alle 400 Jahre außer Kraft | ||
- | ++++ | ||
- | |||
- | |||
- | ===== A09 - Stellenzähler ===== | ||
- | |||
- | Wenn man im Voraus nicht weiß, wie oft eine Anweisung wiederholt werden muss, bieten sich eine while-Schleife an. | ||
- | |||
- | Schreibe eine Methode, die die Stellen einer eingegebenen Ganzzahl größer als Null zählt: | ||
- | |||
- | < | ||
- | Deine Eingabe: 21355746 | ||
- | Die Zahl hat 8 Stellen. | ||
- | </ | ||
- | |||
- | ++++ Tipp | | ||
- | |||
- | Bei der Division zweier Ganzzahlen gibt Java nur den ganzzahligen Anteil zurück, das kannst du dir hier zu Nutze machen: | ||
- | |||
- | '' | ||
- | '' | ||
- | |||
- | ++++ | ||
- | ===== A10 - Quersumme ===== | ||
- | |||
- | Berechne die Quersumme einer eingegebenen Ganzzahl. | ||
- | |||
- | ++++ Tipp 1 | | ||
- | Hier kannst du den Stellenzähler einfach erweitern. Wie kannst du die letzte Ziffer der Zahl herausfinden? | ||
- | ++++ | ||
- | |||
- | |||
- | ++++ Tipp 2 | | ||
- | '' | ||
- | '' | ||
- | '' | ||
- | ++++ | ||
- | |||
- | ===== A11 - Dualzahl in Dezimalzahl umrechnen ===== | ||
- | |||
- | Erstelle eine Methode, die als Parameter eine Dualzahl entgegen nimmt und die zugehörige Dezimalzahl berechnet. Z.B. | ||
- | |||
- | < | ||
- | Die Dualzahl 110101101 hat den Dezimalwert: | ||
- | </ | ||
- | |||
- | ++++ Tipp | | ||
- | Du kannst wieder den Code der vorigen Aufgaben " | ||
- | ++++ | ||
- | |||
- | Welche Probleme erkennst du bei dieser Aufgabenstellung - was sollte man sinnvollerweise implementieren, | ||
- | ===== A12 - Zahlendreher ===== | ||
- | |||
- | |||
- | Schreibe eine Methode, die die Ziffernreihenfolge einer Ganzzahl umdreht. Z.B: | ||
- | |||
- | < | ||
- | Du hast die Zahl 153536758 eingegeben! | ||
- | Die umgedrehte Zahl lautet: 857635351 | ||
- | </ | ||
- | |||
- | ++++ Tipp 1| | ||
- | Wenn du Aufgabe 09-11 verstanden hast und geschickt kombinierst, | ||
- | ++++ | ||
- | |||
- | ++++ Tipp 2| | ||
- | Wie kannst du herausfinden, | ||
- | ++++ | ||
- | ===== A13 - Pi nach Leibnitz ===== | ||
- | |||
- | Erstelle eine Methode, die mit der Formel: '' | ||
- | |||
- | ++++ Tipp | | ||
- | Verwende eine Zählschleife. | ||
- | |||
- | * Was passiert mit dem Nenner des Bruchs bei jedem Schleifendurchlauf? | ||
- | * Wie kannst du aus dem aktuellen Wert der Schleifenvariablen ableiten, ob du addieren oder subtrahieren musst? Implementiere eine entsprechende Entscheidung. | ||
- | |||
- | ++++ | ||
- | ===== X-Block ===== | ||
- | |||
- | |||
- | Erstelle eine Methode, die mit zwei verschachtelten Schleifen folgende Bildschirmausgabe erzeugt: | ||
- | < | ||
- | x x x x x x x x x x | ||
- | x x x x x x x x x x | ||
- | x x x x x x x x x x | ||
- | x x x x x x x x x x | ||
- | x x x x x x x x x x | ||
- | x x x x x x x x x x | ||
- | x x x x x x x x x x | ||
- | x x x x x x x x x x | ||
- | x x x x x x x x x x | ||
- | x x x x x x x x x x | ||
- | </ | ||
- | |||
- | |||
- | ===== Dreieck ===== | ||
- | |||
- | Erstelle eine Methode, die mit zwei verschachtelten Schleifen folgende Bildschirmausgabe erzeugt: | ||
- | |||
- | < | ||
- | X | ||
- | XX | ||
- | XXX | ||
- | XXXX | ||
- | XXXXX | ||
- | XXXXXX | ||
- | </ | ||
- | |||
- | ===== Lottozahlen ===== | ||
- | |||
- | |||
- | Erstelle eine Methode, die 6 unterschiedliche Lottozahlen zwischen 1 und 49 zufällig erzeugt und gibt diese auf dem Bildschirm ausgibt, z.B.: | ||
- | |||
- | < | ||
- | 22 16 45 29 3 37 | ||
- | </ | ||
- | |||
- | Verwende zur Speicherung der Lottozahlen ein Array, um dir zu merken, welche Zahlen bereits gezogen wurden | ||
- | |||
- | ---- | ||
- | |||
- | [[.loesungsvorschläge|Lösungsvorschläge ->]] |