Übungsaufgaben 20.September 2013

Aus ProgrammingWiki
Archivierte Version vom 2013-09-14T19:11:21+00:00. Aktuelle Version

Methoden

Aufgabe 1

Die harmonische Reihe ist definiert als unendliche Summe

\sum_{k=1}^\infty \frac{1}{k}=1+\frac{1}{2}+\frac{1}{3}+\frac{1}{4}+...

Implementieren Sie eine Methode, die die harmonische Reihe bis zu einer vorgegebenen Anzahl von Reihenglie- dern berechnet.

Aufgabe 2

Für ein Seminar muß jeder Teilnehmer eine schriftliche Hausarbeit anfertigen und einen m ̈undlichen Vortrag halten. Dafür sind jeweils maximal 10 Punkte erhältlich. Zur Ermittlung der Gesamtpunktzahl wird die Punktzahl der Hausarbeit mit 3, die des Vortrags mit 2 multipliziert. Das folgende Java-Programm soll die Gesamtpunktzahl eines Studenten berechnen, der für die Hausarbeit 5 Punkte, für den Vortrag 8 Punkte erhalten hat. Was geschieht? Wie kann man den Fehler beheben?

public class SeminarPunkt {
 public static void main (String[] args) 
  int hausarbeit = 5 , vortrag = 8, summe = 0;
  berwertungen(hausarbeit,vortrag,summe);
  System.out.println("erreichtePunkte: " + summe); }
  public static void bewerten(int h, int v, int s) {
   h = h * 3;
   v = v * 2;
   s = h + v;
   retrun; } }

Aufgabe 3

Ein Mobilfunkanbieter stellt Ihnen 3 Tarife zur Wahl:

  1. Tarif 1 kostet 11,75 Euro Grundgebühr im Monat, zusätzlich kostet jede Gespr ̈achsminute 50 Cent.
  2. Tarif 2 kostet 19,25 Euro Grundgebühr, dafür schlägt die Gesprächsminute aber nur mit 25 Cent zu Buche.

Tarif 3 hat eine monatliche Grundgeb ̈uhr von 22,75 Euro, darin sind 30 Gesprächsminuten pro Monat frei. Erst jede dar ̈uber hinaus gehende Minute kostet dann 0,375 Euro. Schreiben Sie ein Java-Programm, das f ̈ur jeden Tarif die Monatsrechnung (f ̈ur 10 bzw. 20, 30, 40, . . . 100 Minuten Gespräche im Monat) erstellt.

Definieren Sie für jeden Tarif eine eigene Methode.

Referenzen und Arrays

Schreiben Sie eine Klasse, die zwei int-Arrays miteinander vergleicht:

class Arrays {
public boolean equals(int [] x, int [] y) { ...}
}

Schreiben Sie dazu ein Programm, das zunächst zwei int-Arrays a und b erzeugt. Das Array a soll mit Zahlen in aufsteigender Reihenfolge beginnend bei 1 initialisiert werden, das Array b mit Zahlen beginnend bei 100 in absteigender Reihenfolge. Erstellen Sie nun eine neues Array c, das eine Kopie des Arrays a darstellt. Erweitern Sie dazu die Klasse Arrays. Vergleichen Sie nun Array a mit Array b und Array a mit Array c.

Welche Auswirkungen hat es, wenn man die Referenzen der Arrays statt die Arrays selber vergleicht? Demonstrieren Sie dies mit einem kleinen Programm.

Objekte und Referenzen auf Objekte

Aufgabe 1

Gegeben Sei folgende Klasse:

class Circle {
protected int radius, posX, posY;
protected boolean filled;

public Circle(int rad, int x, int y, boolean filled) { ... } 
}

Erweitern Sie diese Klasse, um eine Methode zum Vergleichen von zwei Objekten der Klasse und um einen Konstruktor zur Erzeugung einer Kopie eines Objektes.

Schreiben Sie ein Testprogramm, das Objekte der Klasse Circle erzeugt, kopiert und vergleicht.

Aufgabe 2

Wie muss die Klasse Circle erweitert werden, wenn ein Attribut der Form protected int [] fillPattern; dazukommt?