Übungsaufgaben 20.September 2013

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

==  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; } }

== 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?