Programmiertechnik
Übungen zu Klassen & -methoden
Prof. Dr. Oliver Haase
Übung 1
Ein Verfahren, den größten gemeinsamen Teiler (ggT) zweier Zahlen a und b, a <= b, besteht darin, für alle Zahlen
zwischen 1 und a zu testen, ob sie sowohl a als auch b teilen, die größte solche Zahl ist der ggT von a und b.
Schreiben Sie eine Java-Methode, die den ggT zweier
positiver Zahlen nach der oben beschriebenen Brute-Force-
Methode berechnet.
Übung 2
Der Euklidische Algorithmus zur Berechnung des größten
gemeinsamen Teilers zweier Zahlen gründet sich auf die folgende Beobachtung:
ggT(a,b) = ggT(a %b, b) Desweiteren ist zu beachten, dass
ggT(a,0) = a und
ggT(a,b) = ggT(b,a)
Schreiben Sie basierend auf diesen Beobachtungen einen
rekursiven Algorithmus zur Berechnung des größten gemeinsamen
Teilers zweier beliebiger natürlicher Zahlen.
Übung 3
Bestimmen Sie die Ausgabe des folgenden Programms:
public class BooleanMethods {
public static boolean test1(int val) {
System.out.println("test1(" + val + ")");
System.out.println("result: " + (val < 1));
return val < 1;
}
public static boolean test2(int val) {
System.out.println("test2(" + val + ")");
System.out.println("result: " + (val < 2));
return val < 2;
}
public static boolean test3(int val) {
System.out.println("test3(" + val + ")");
System.out.println("result: " + (val < 3));
return val < 3;
}
public static void main(String args[]) {
Übung 4
public class Signatur {
public static void hoppla(long x, double y, double z) { System.out.println("ldd");
}
public static void hoppla(long x, long y, double z) { System.out.println("lld");
}
public static void hoppla(long x, long y, long z) { System.out.println("lll");
}
public static void hoppla(double x, long y, double z) { System.out.println("dld");
}
public static void main (String[] args) { long a = 333;
double b = 4.44;
hoppla(a,a,a); // Aufruf 1 hoppla(b,b,b); // Aufruf 2 hoppla(a,a,b); // Aufruf 3 hoppla(b,b,a); // Aufruf 4 hoppla(a,b,a); // Aufruf 5