Kurs 20022 objektorientiertes Programmieren

Einsendeaufgaben zu Lerneinheit 2


Programmieraufgabe mit BlueJ: (14 Punkte)

Ergänzen Sie mit Hilfe des Werkzeugs BlueJ ein Programm zur Berechnung von Mietpreisen. Gehen Sie hierzu bitte wie folgt vor:

  • Laden und entpacken Sie das Projekt account.zip auf Ihrem Rechner
  • In diesem Projekt sind bereits einige Methoden gegeben, die Sie benutzen können. Die Methode void main() soll an den Stellen, an denen Kommentare stehen, um eine entsprechende Funktionalität ergänzt werden. Dabei werden Eingabedaten auf ihre Richtigkeit überprüft und im Falle einer Fehleingabe eine entsprechende Meldung generiert und die Eingabedaten erneut gelesen. Die eingegebenen Mietdaten werden darauf überprüft, ob der Endtag tatsächlich zeitlich hinter dem Anfangstag liegt.
  • Benutzen Sie zur Berechnung der Anzahl der Tage im Monat die switch-Anweisung. Dabei kann die selbe Anweisung bei verschiedenen Konstanten (hinter dem case) ausgeführt werden. Abgeschlossen werden die Anweisungen für jede Markierung mit dem Kommando break.

Beispiel:

switch (a)
{
  case 1:
   case 2:
      b=3;
      c=4;
      break;
   case 3:
      b=1;
}
  • Es werden nur Abrechnungszeiträume innerhalb eines Jahres berücksichtigt. Der Februar habe 28 Tage. Der Start- und Endtag zählt immer mit (falls identisch, nur einmal), d. h., vom 01.03. bis zum 03.03. sind es beispielsweise drei Tage.

Hinweis: Beachten Sie die unterschiedliche Anzahl von Tagen für die verschiedenen Monate!

Semantiküberprüfung: (5 Punkte)

Überprüfen Sie den folgenden Programmcode auf Fehler und geben Sie die notwendigen Korrekturen an!

Hinweis: Es sind 5 Fehler eingebaut!


bool c=false;
byte i;
char ch="a";

for (i==0;i<200;i++){

if(c = 200%i > 10){
System.out.println(ch);
ch++;
}
}

 

Verständnisfragen: (6 Punkte)

1.

Gegeben seien:

int a=2, int b=3;

Welche Werte weisen die Variablen a und b nach Ausführung der folgenden Anweisungen auf?

a *= b++;

b += 19/--a;

2.

Seien

int a=3;

int b=7;

Was ist das Ergebnis der Auswertung des folgenden Ausdrucks?

a==4==b==7;

Hinweis: Beachten Sie die Priorität, Bindung und Auswertung von Operatoren!

3.

Für welche Zuweisung steht die Kurzschreibweise: a *= 3/2 ?