} }
}
Ubungsklausur fur Programmierung A/B
Aufgabe 1)
Erstellen sie eine Klasse welche eine Methode Gruss besitzt der ein Name im Format String ubergeben wird und den String Hallo, (ubergebener Name)! ausgibt.
Fuhren sie die Methode anschlieend beispielhaft in der Main Methode aus!
Die Ausgabe der Methode soll auf der Konsole ausgegeben werden!
public class A1 {
public static void gruss(String Name) {
System.out.print(Hallo, + Name + !); }
public static void main(String[] args) {
gruss(Tim); }
}
Aufgabe 2)
Schreiben sie den Methodenrumpf der Methode teilbar(int A,int b), es soll true zuruck gegeben werden falls die Zahl A durch die Zahl B restlos teilbar ist, ansonsten soll die Ruckgabe false sein.
Public class A2{
public boolean teilbar(int A, int B){
if( A % B == 0) {
return true;
} else {
return false;
Secret Invader 1/19
Aufgabe 3)
Geben sie i nach Durchlauf des switch an
int i = 1; switch (i) {
case 2: i++;
break; case 1:
i++; case 3:
i = i * i; }
i++=2;
i=i*i=2*2=4;
Aufgabe 4)
Schreiben sie den Methodenrumpf der Methode Quesumme(int Zahl), welche die Summe aller Einzelzahlen einer groeren Zahl bildet.
Als Beispiel 1234 = 1+2+3+4= 10
public int Quersumme (int Zahl){
int Sum=0;
while (Zahl>0) {
Sum += Zahl%10;
Zahl = Zahl/10;
} return Sum;
}
Secret Invader 2/19
Aufgabe 5)
In der Methode QuersummeArray(int[] Array) wird ihnen ein Array mit int-Werten ubergeben, Ziel ist es ein zweidimensionales Array zu erstellen bei dem in der ersten Spalte die Zahlen aus dem ubergebenen Array enthalten sind und die andere Spalte die entsprechende Quersumme.
Zur einfachen Losung durfen sie davon ausgehen das die Methode aus Aufgabe 3 richtig gelost ist.
Beispiel
ubergebenes Array [123]
[1234]
[12345]
Ruckgabe-Array der Methode [123] [6]
[1234] [10]
[12345] [15]
Public int [][] QuersummeArray(int[] Array){
// [Anzahl Zeilen][Anzahl Spalten pro Zeile] int[][] Qarray = new int[Array.length][2];
for(int i=0;i
public static void main(String[] args) { Liste Firma = new Liste(); Firma.insert(Alfred, 2);
Firma.insert(Alex, 1); Firma.insert(Lisa, 3); Firma.insert(Laura, 4); Firma.insert(null, 5); Firma.insert(Christian, 6); Firma.insert(, 7);
} }
Quellcode Container(Buero) public class Buero {
private Angestellter a;
public Buero(String Name, int Abteilung) {
a = new Angestellter(Name, Abteilung);
}
public Angestellter getAngestellter() { return a;
} }
} }
} else { return;
} }
}
now.setNext(b.getAngestellter());
now = now.getNext();
b.getAngestellter().setNext(now.getNext());
Secret Invader 5/19
Quellcode Listenelement
public class Angestellter { private String Name;
private int Abteilung; private Angestellter next;
public Angestellter(String Name, int Abteilung) { this.Name=Name;
this.Abteilung=Abteilung; public void setNext(Angestellter next) {
this.next=next;
public getNext() {
;
public void setName(String Name) {
} }
} }
} }
Angestellter
return
next
} }
this.Name=Name; public String getName() {
return Name;
public void setAbteilung(int Abteilung) {
this.Abteilung=Abteilung; public int getAbteilung() {
return Abteilung;
Beispiel fur die ersten beiden inserts
2
1
NULL
Secret Invader 6/19
Aufgabe 7)
i) Zeichnen sie wie im Beispiel die entstehende Liste nach vollstandigem Durchlauf der Main- Methode.
null
ii) Wie wurde sich die insert Methode verandern, wenn der durch Beginn Aufgabe ii) und Ende Aufgabe ii) Code nicht enthalten ware.
Durch den Wegfall des Codes Wurden auch leere Strings eingefugt werden.
iii) Schreiben sie eine Methode welche alle Elemente mit dem ubergebenem Namen aus der Liste herausloscht.
public void delete( String Name) {
while (first.getName().equals(Name) && first!=null) {
first=first.getNext();
}
Angestellter now= first; while(now.getNext()!=null) {
if(now.getNext().getName().equals(Name)) { now.setNext(now.getNext().getNext());
} else { now=now.getNext();
} }
}
1
3
6
2
4
Secret Invader 7/19
Aufgabe 8)
Schreiben sie einen Methodenrumpf welcher von der ubergebenen Zahl Start ausgehend die Fakultat bis zur Zahl Stop berechnet, alle Zahlen die kleiner oder gleich Stop sind sollen nicht mehr in die Rechnung einflieen.
Gehen sie davon aus das Start groer Stop ubergeben wird!
Es wird ausschlielich eine rekursive Losung akzeptiert!
public int Fkt(int Start, int Stop){
if(Start-1== Stop){
return Start ;
} else {
retrun Start * Fkt(Start-1,Stop);
} }
Secret Invader 8/19
Aufgabe 9)
public class Produkt {
public void punkt(int a, int b) {
System.out.print(a*b);
} }
public class Quotient extends Produkt{
public void rest(int a, int b) {
System.out.print(a/b);
} }
public class Summe {
public void strich(int a, int b) {
System.out.print(a+b);
} }
public class Differenz extends Summe{
public void strich(int a, int b) {
System.out.print(a-b);
} }
i)
Geben sie die Ausgaben fur folgende Aufrufe aus:
Differenz.strich(5,3) = 2 Produkt.punkt(4,3) = 12 Summe.strich(4,8) = 12 Quotient.punkt(4,2) = 8
ii)
Schreiben sie eine Klasse Modulo welche von Quotient erbt, dabei soll die Methode rest(int a, int b) uberschrieben werden und den Restwert von a modulo b zuruck geben.
public class Modulo extends Quotient { public void rest(int a, int b) {
} }
System.out.print(a%b);
Secret Invader 9/19
Quellcode Baum:
public class baum {
private Knoten Wurzel;
public void einsetzen(int Zahl) {
if(Wurzel == null){
Wurzel = new Knoten(Zahl);
} else {
einsetzen(Zahl, Wurzel);
} }
private void einsetzen(int Zahl, Knoten knoten) {
if(knoten.getLinks() == null) {
knoten.setLinks(new Knoten(Zahl));
} else if (knoten.getRechts()== null) {
knoten.setRechts(new Knoten(Zahl));
} else {
if (gewicht(knoten.getLinks())
public List
List
for( E vor : Vornamen) {
if(Nachnamen.contains(vor)) {
gleich.add(vor);
} }
return gleich;
}
}
i) Was macht die dargestellte Methode wasMachIch?
Die Methode uberpruft die beiden Listen Vornamen und Nachnamen ob es Eintrage gibt die in beiden Listen existieren, wird dieser Eintrag in die neu erstellte Liste gleich des selben Typs wie Vornamen und Nachnamen eingefugt.
ii)Nennen sie sowohl ein Vorteil, wie auch ein Nachteil von Generics in Java und erlautern sie diese.
Secret Invader 17/19
Aufgabe 14)
public class Klausur {
String Klausurname;
int AnzahlStudenten;
}
i) Erstellen sie eine Exception AnmeldeException, die Exception soll einen Konstruktor besitzen dem der Klausurname ubergeben wird und eine void Methode Fehlertext (String Klausurname) welche die Konsolenausgabe zu viele Anmeldungen fur die Klausur: (Klausurname) besitzt.
Public class AnmeldeException extends Exception {
public AnmeldeExceptions ( String Klausurname ) { super(Klausurname);
}
public void Fehlertext( String Klausurname) {
System.out.print(zu viele Anmeldungen fur die Klausur: + Klausurname);
} }
ii) Wir befinden uns nun in der Klasse Klausur, erstellen sie die void Methode Anmeldung(), welche sofern noch keine 100 Studenten fur die Klausur angemeldet sind die AnzahlStudenten um 1 erhoht, will sich aber 1 Person mehr als das Maximum von 100 Teilnehmern anmelden werfen sie die AnmeldeException!
public void Anmeldung() throws AnmedleException{ if(AnzahlStudenten < 100) {AnzahlStudenten ++; } else {throw new AnmeldeException (Klausurname); }}Secret Invader18/19 iii) Schreiben sie ein Codestuck bei dem die AnmeldeException garantiert geworfen wird.For( int i=0; i<101; i++) { Anmeldungen();}iv) Schreiben sie nun ein Codestuck welches die AnmeldeException abfangen wurde und stattdessen die Methode Fehlertext (String Klausurname) der AnmeledeException ausfuhrt.Try {Anmeldungen();}catch (AnmeldeException AE) {return AE.Fehlertext(Klausurname); }Viel Gluck euch allen!Secret Invader19/19 Powered by TCPDF (www.tcpdf.org)
Reviews
There are no reviews yet.