Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
schule:klassen:2019:10abc:kap2 [2019/10/10 09:08] – [4. Einseitige/zweiseitige Bedingungen] martin | schule:klassen:2019:10abc:kap2 [2021/12/29 10:40] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | === Übung: Passwortmanager === | ||
+ | Schreibe eine Klasse '' | ||
+ | |||
+ | ** Überlege: ** \\ | ||
+ | * Welche Funktionalität wird erwartet? | ||
+ | * Welche Attribute benötigt die Klasse? | ||
+ | * Welche Parameter sollten die Methoden haben? | ||
+ | |||
+ | <code java> | ||
+ | public class PasswortManager { | ||
+ | |||
+ | private String benutzername; | ||
+ | private String passwort; | ||
+ | |||
+ | public void setzeBenutzernameUndPasswort(String bn, String pw){ | ||
+ | benutzername = bn; | ||
+ | passwort = pw; | ||
+ | } | ||
+ | |||
+ | public boolean überprüfePasswort(String bn, String pw){ | ||
+ | if(bn.equals((benutzername))){ | ||
+ | if(pw.equals(passwort)){ | ||
+ | return true; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return false; | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ====== 6. Die einseitige/ | ||
+ | === Aufgabe 1 === | ||
+ | Der Eintrittspreis eines Kinos wird nach folgender Tabelle bestimmt: | ||
+ | ^Personenkreis ^Alter ^Eintrittspreis ^ | ||
+ | |Kinder |Jünger als 13 Jahre |7,00 € | | ||
+ | |Jugendliche |13 - 17 Jahre |9,00 € | | ||
+ | |Erwachsene |18 - 59 Jahre |12,00 € | | ||
+ | |Senioren |älter als 59 Jahre |10,00 € | | ||
+ | |||
+ | Schreibe eine Funktion '' | ||
+ | |||
+ | <code java> | ||
+ | public double kinopreis(int alter){ | ||
+ | if(alter < 13){ | ||
+ | return 7; | ||
+ | } else { | ||
+ | if(alter <= 17){ | ||
+ | return 9; | ||
+ | } else { | ||
+ | if(alter <= 59){ | ||
+ | return 12; | ||
+ | } else { | ||
+ | return 10; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Wichtig: | ||
+ | * '' | ||
+ | * '' | ||
+ | </ | ||
+ | |||
+ | ==== Der Modulo-Operator % ==== | ||
+ | '' | ||
+ | <code java> | ||
+ | |||
+ | 10 % 3 == 1 | ||
+ | 17 % 5 == 2 | ||
+ | 21 % 3 == 0 | ||
+ | |||
+ | usw. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====Aufgabe 2:==== | ||
+ | Erstelle eine Methode tageImMonat(int monat, int jahr) , die nach Eingabe der Monatszahl (1 == Jan, 2 == Feb, …) und der Jahreszahl die Anzahl der Tage des Monats berechnet. | ||
+ | |||
+ | === Lösung ohne Beachtung von Schaltjahren === | ||
+ | <code java> | ||
+ | public class DatumsRechner | ||
+ | { | ||
+ | |||
+ | public int tageImMonat(int monat, int jahr){ | ||
+ | | ||
+ | if(monat == 2){ | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | | ||
+ | if(monat <= 7){ | ||
+ | | ||
+ | // Ist der Wert von Monat ungerade? | ||
+ | if(monat % 2 == 1){ | ||
+ | return 31; | ||
+ | } else { | ||
+ | return 30; | ||
+ | } | ||
+ | | ||
+ | } else { | ||
+ | | ||
+ | if(monat % 2 == 1){ | ||
+ | return 30; | ||
+ | } else { | ||
+ | return 31; | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Berechnung der Tage eines Monats unter Berücksichtigung von Schaltjahren ==== | ||
+ | Im {{https:// | ||
+ | - „Die durch 4 ganzzahlig teilbaren Jahre sind Schaltjahre. […] | ||
+ | - Säkularjahre, | ||
+ | - Schließlich sind die durch 400 ganzzahlig teilbaren Säkularjahre doch Schaltjahre. Damit sind z.B. 1600, 2000 und 2400 jeweils wieder Schaltjahre. […]“ | ||
+ | <code java> | ||
+ | public class DatumsRechner | ||
+ | { | ||
+ | |||
+ | public int tageImMonat(int monat, int jahr){ | ||
+ | | ||
+ | if(monat == 2){ | ||
+ | | ||
+ | if(istSchaltjahr(jahr)){ | ||
+ | return 29; | ||
+ | } else { | ||
+ | return 28; | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | | ||
+ | if(monat <= 7){ | ||
+ | | ||
+ | if(monat % 2 == 1){ | ||
+ | return 31; | ||
+ | } else { | ||
+ | return 30; | ||
+ | } | ||
+ | | ||
+ | } else { | ||
+ | | ||
+ | if(monat % 2 == 1){ | ||
+ | return 30; | ||
+ | } else { | ||
+ | return 31; | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | private boolean istSchaltjahr(int jahr){ | ||
+ | | ||
+ | // Jahreszahl ist kein Vielfaches von 4 | ||
+ | if(jahr % 4 != 0){ | ||
+ | return false; | ||
+ | } | ||
+ | | ||
+ | // Jahreszahl ist ein Vielfaches von 400 | ||
+ | if(jahr % 400 == 0){ | ||
+ | return true; | ||
+ | } | ||
+ | | ||
+ | // Jahreszahl ist ein Vielfaches von 100 | ||
+ | if(jahr % 100 == 0){ | ||
+ | return false; | ||
+ | } | ||
+ | | ||
+ | return true; | ||
+ | | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Zur Deklaration der Methode '' | ||
+ | <WRAP center round important 60%> | ||
+ | * Das Schlüsselwort '' | ||
+ | * Variablen des Datentyps '' | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||