Aufgabenblatt 3: Datentypen und Operatoren

Aufgabe 3.1: Unterschiedliche Datentypen

Deklarieren Sie Variablen für folgende Verwendungszwecke. Welche Typen sind sinnvoll?

  1. Alter eines Menschen in Jahren
  2. Gewicht in Kilogramm mit mindestens 2 Nachkommastellen Genauigkeit
  3. Jahresgehalt in ganzen Euro-Beträgen - es sollen auch die Gehälter von Fußballspielern und Formel-1-Rennfahrern gespeichert werden können
  4. Geschlecht einer Person
  5. Anrede für eine Person (Herr, Frau, ...)
  6. Die Eulersche Zahl e mit 14 Nachkommastellen
  7. Tagestemperatur in Grad Celsius
  8. Das Satzzeichen, das einen Satz beendet (z.B. Punkt, Fragezeichen, ...)

Diese Aufgabe können Sie auf Papier lösen.

Aufgabe 3.2: Berechnung Kreisausschnitt

Kreisausschnitt

Schreiben Sie ein Programm Kreissektor, das für einen Kreissektor die Länge L und die Fläche A berechnet. Der Radius r und der Winkel θ (in Grad) sollen über die Konsole nach Programmstart vom Benutzer abgefragt werden.

Die Formeln dazu lauten:

Länge: Länge Kreisausschnitt

Fläche: Fläche Kreisausschnitt

Testen Sie Ihr Programm mit unterschiedlichen Eingaben!

Hinweise:

  • Der Operator für die Multiplikation lautet *, für die Division /.
  • Eine double-Zahl können Sie mit Hilfe des Scanners folgendermaßen einlesen: double x = scan.nextDouble();

Aufgabe 3.3: Kennzahlen des Körpers

Schreiben Sie ein Programm KoerperKennzahlen, das für einen Menschen dessen Körperoberfläche schätzen und den Body-Mass-Index (BMI)1 berechnen kann.

Das Gewicht mk (in kg) und die Körpergröße lk (in m) sollen über die Konsole nach Programmstart vom Benutzer abgefragt werden.

Die Formeln für die Kennzahlen lauten:

Body-Mass-Index I: BMI

Körperoberfläche A: Körperoberfläche

Testen Sie Ihr Programm mit unterschiedlichen Eingaben!

Hinweise:

  • Der Operator für die Multiplikation lautet *, für die Division /.
  • Eine double-Zahl können Sie mit Hilfe des Scanners folgendermaßen einlesen: double x = scan.nextDouble();
  • Die allgemeine Funktion x hoch y berechnen Sie in Java mit Math.pow(x,y).

Aufgabe 3.4: Berechnen von Ausdrücken

Analysieren Sie den folgenden Programmausschnitt. Welche Werte liefern die Ausdrücke rechts der =-Zeichen?

int a = 3;
int b = 5;
int c = 6;
double x = 1.5;
double y = 2.3;
int int_ergebnis;
double double_ergebnis;

int_ergebnis = a * b + c;
int_ergebnis = c + a * b;
int_ergebnis = c - a / 3;
int_ergebnis = c / a;
int_ergebnis = c / b;
int_ergebnis = a + b / c;
double_ergebnis = c / b;
double_ergebnis = c + a / b;
double_ergebnis = x + y * b;
double_ergebnis = (x + y) * b;
double_ergebnis = y - x * b;
  1. Lösen Sie die Aufgabe zunächst auf dem Papier.
  2. Überprüfen Sie Ihre Lösung durch Eingabe als Programm. Dazu müssen Sie noch die Klassendeklaration, die main()-Methode und entsprechende Ausgaben (System.out.println()) hinzufügen.
  3. Entfernen Sie die println-Anweisungen und versuchen Sie den Programmablauf nachzuverfolgen, indem die den in Eclipse integrierten Debugger nutzen!

Aufgabe 3.5: Variablentausch

  • Geben Sie eine Folge von Wertzuweisungen an, die den Inhalt von vier Variablen x1, x2, x3 und x4 zyklisch vertauscht, d.h. x1 soll danach den ursprünglichen Inhalt von x2, x2 den von x3, x3 den von x4 und x4 den von x1 haben.

    Wie viele Hilfsvariablen werden dazu benötigt?

  • Implementieren Sie den Algorithmus in Java. Ihr Programm sollte folgende Schritte beinhalten:

    1. Einlesen der Variablen x1, x2, x3 und x4 von der Tastatur.
    2. Zyklisches Vertauschen der Variablen nach Ihrem Algorithmus.
    3. Ausgabe der Variablenwerte x1, x2, x3 und x4 auf die Konsole.

    Testen Sie Ihr Programm mit unterschiedlichen Eingabewerten!

Aufgabe 3.6: Meilen, Yards & Co

Im angelsächsischen Raum ist unser metrisches Längensystem nicht verbreitet. Für Längenangaben wird in den Einheiten Meilen (mi), Yards (yd), Feet (ft) und Inch (in) gemessen.

Es gilt dabei:

Einheit Deutsch Abk. Größe metr. Größe
inch Zoll in 0.0254m
foot Fuß ft 12 in 0.3048m
yard Schritt yd 3 ft 0.9144m
mile Meile mi, m 1760 yd ≈ 1.61km
  • Erstellen Sie ein Programm BerechneMeter, das Längenangaben aus dem angelsächsischen System in das metrische System umrechnet.

    Das Programm soll die Länge in Meilen, Yards, Feet und Inch einlesen und dann die kombinierte Gesamtlänge in Metern ausgeben, z.B.:

Meilen: 3
Yards: 4.1
Feet: 10
Inch: 5.3

Gesamtlaenge: 4834.963659999999m
  • Testen Sie das Programm an verschiedenen (mind. 5) Eingaben und dokumentieren Sie die Ergebnisse. Prüfen Sie auch Sonderfälle (z.B. 0 1 0 0, 0 0 0 0 )!

  • Erstellen Sie ein Programm InchUmrechnen, das aus einer Längenangabe in Inch eine angelsächsische Längenangabe erstellt, die immer die größtmögliche Einheit einsetzt. Beispiel:

Eingabe Inch: 120342
120342 Inch entsprechen 1 Meilen, 1582 Yard, 2 Feet, 6 Inch

Hinweise:

  • a / b berechnet das Ergebnis der Division von a durch b. a % b berechnet den Rest der Division.
  • Ihr Ergebnis kann sich von der Beispielausgabe leicht unterscheiden, je nachdem welche Umrechnungsfaktoren Sie verwenden.

Aufgabe 3.7: Lösungen quadratischer Gleichungen

Parabeln

Für eine quadratische Gleichung Quadratische Gleichung soll bestimmt werden, ob die Gleichung eine, zwei oder keine Lösung besitzt. Dazu muss die Diskriminante D nach der Formel Diskriminante berechnet werden.

Es können folgende Fälle auftreten:

  • D > 0: Zwei Lösungen
  • D = 0: Eine Lösung
  • D < 0: Keine Lösung

Schreiben Sie ein Programm, das die Koeffizienten a, b und c von der Tastatur einliest und die Anzahl der Lösungen der quadratischen Gleichung ausgibt.

Hinweis:

  • Nutzen Sie zur Lösung der Aufgabe den Bedingungsoperator:
String s = <Bedingung> ? <Text wenn true> : <Text wenn false>;
  • Die Werte des Bedingungsoperators müssen nicht als Literale formuliert werden, sondern können auch aus Variablen gelesen werden. Denkbar ist z.B. auch...
String s = "Text2";
s = <Bedingung> ? "Text" : s; 

Zusatzaufgabe

Aufgabe 3.8: Wochentage nach Christoph Zeller

Der Geistliche Christoph Zeller hat 1885 eine Formel aufgestellt, die für ein gegebenes Kalenderdatum den Wochentag liefert. Sie lautet:

Zeller

Dabei sind:

  • q der Tag in Monat
  • m der Monat (wobei März bis Dezember wie üblich die Nummern 3–12 haben, Januar und Februar den Monaten 13 und 14 des Vorjahres entsprechen)
  • J die Jahrhundertzahl (das sind die ersten beiden Stellen der vierstelligen Jahreszahl)
  • K die letzten beiden Stellen der vierstelligen Jahreszahl (für Januar und Februar entsprechend die Zahl des Vorjahres)
  • h der zu ermittelnde Wochentag (beginnend mit 0 = Samstag, 1 = Sonntag…)

Alle Divisionen sind ganzzahlig.

Schreiben Sie ein Programm Zeller, das drei Zahlen für Tag, Monat und Jahr von der Kommandozeile einliest, und mit der beschriebenen Umrechnung den Index des entsprechenden Wochentages ausgibt.

Beispiele:

Tag: 23
Monat: 8
Jahr: 1959

Wochentag: 1 
Tag: 26
Monat: 11
Jahr: 2019

Wochentag: 3 

.


  1. Der Body-Mass-Index bewertet das Körpergewicht eines Menschen in Relation zu seiner Körpergröße. Detaillierte Informationen finden Sie unter https://de.wikipedia.org/wiki/Body-Mass-Index