Skip to content
xenforo

Was denn hier los?

Content

Comments

na dann los!

Hi,

ja ganz schön ruhig.
aber ich denke das Fach machen derzeit nur eine Hand voll Leute.

ich mach nicht mehr all zu viel bis zur Klausur, nachdem ich mich durch die Probeklausur gearbeitet habe.
Die war ja ziemlich easy. Das einzige was ein wenig unklar für mich war, ist Aufgabe 4. Wenn man wirklich mit Strings arbeitet ist Teilaufgabe b und c ziemlich müßig. Ich habe daher einmal Arrays und einmal mit String gelöst.
Leider war ich im Urlaub und hatte keinen Internetzugang und keine Adresse wohin ich meine Lösung schicken sollte. So komme ich nicht in den Genuss der Korrektur.
Hat einer von Euch das Teil abgeschickt? Wenn ja, hängt doch bitte die Korrektur hier rein!

Wenn es jemanden interessiert, hier meine Lösung zur Klausur. Vielleicht können wir auch andere hier diskutieren!

Gruß,
Johannes

[FONT=Courier New]1a) In der OOP gibt es Klassen, die Methoden und Eigenschaften haben. Bildet man Unterklassen, so übernehmen diese die Methoden und Eigenschaften der Klasse zu den Methoden und Eigenschaften der Unterklasse. Dies nennt man Vererbung.

[FONT=Courier New]1b) Vektoren bieten den Vorteil, dass die Anzahl der Elemente eines Feldes nicht bei der Definition schon festgelegt werden müssen. Das spart Speicherplatz und erlaubt flexibleres Programmieren. Die Strategie der Felderweiterung kann vom Programmierer einfach benutzt werden und muss nicht eigens implementiert werden.

[FONT=Courier New]1c) bei der Definition von Klassen bestimmt das Schlüsselwort abstract, dass diese Klasse eine so genannte abstrakte Klasse ist. Dies bedeutet, dass von dieser Klasse keine Objekte gebildet werden können, sondern, dass diese Klasse nur von Unterklassen verwendet werden kann.

[FONT=Courier New]1d) Wenn die Methode nur innerhalb der Klasse aufgerufen wird.

[FONT=Courier New]1e) mit dem Schlüsselwort final vor der Deklaration.

[FONT=Courier New]2a) Die Funktion function bildet das Produkt aus den Parametern a und b, indem es den Wert b a.mal addiert.

[FONT=Courier New]2b) c = function(7,9):

[FONT=Courier New]3a) d, h, ??, d

[FONT=Courier New]3b) Die Funktion hat zwei Übergabeparameter, ein Zeichen und einen Ganzzahlwert. Der Rückgabeparameter ist ein Zeichen. Die Funktion soll einen kleinen Buchstaben in einen anderen kleinen Buchstaben umwandeln, indem es um beliebige Stellen im Alphabet aufrückt. Ist das Zeichen jenseits von z, wird wieder von a aus vorgerückt. Sinn der Funktion könnte sein, Buchstaben zu verschlüsseln.

[FONT=Courier New]3c) Wenn man die Umwandlung auf kleine Buchstaben beschränken will, sollte man überprüfen, dass man nur kleine Zeichen als Übergabeparameter erlaubt. Ein Offset kleiner -25 oder größer 25 ist der Umwandlung auch nicht zuträglich, da sonst in Zeichen umgewandelt wird, die keine Kleinbuchstaben sind. Als Rückgabe könnte man einfach das übergebene Zeichen ausgeben. Damit kann der aufrufende Teil eine Fehlerbehandlung durchführen.

[FONT=Courier New]if (c < 'a' || c > 'z' || offset < -25 || offset > 25)
[FONT=Courier New]{
[FONT=Courier New]result = c;
[FONT=Courier New]}
[FONT=Courier New]else

[FONT=Courier New]4a) Die Aufgabe ist mir nicht ganz klar. Wenn ich die Vorgabe erfülle, dann könnte man die Aufgabe wie folgt lösen. Dann macht aber 4b und 4c keinen großen Sinn.

[FONT=Courier New]public boolean contains(String s)
[FONT=Courier New]{
[FONT=Courier New]boolean Treffer = false;
[FONT=Courier New]for (int i = 0; i < aa.length; i++)
[FONT=Courier New]{
[FONT=Courier New]if (aa[i].indexOf(s) != -1)
[FONT=Courier New]{
[FONT=Courier New]Treffer = true;
[FONT=Courier New]}
[FONT=Courier New]}
[FONT=Courier New]return Treffer;
[FONT=Courier New]}

[FONT=Courier New]Ich könnte mir nur noch vorstellen das ganze mit char Arrays zu machen, aber dann sieht der Aufruf nicht so aus, wie in der Aufgabenbeschreibung.

[FONT=Courier New]public boolean contains(char SuchWort [])
[FONT=Courier New]{
[FONT=Courier New]int WortZaehler;
[FONT=Courier New]int ZeichenZaehler;
[FONT=Courier New]int SuchZaehler;
[FONT=Courier New]int Treffer;
[FONT=Courier New]boolean TrefferReturn = false;

[FONT=Courier New]for (WortZaehler=0; WortZaehler < a.length; WortZaehler++)
[FONT=Courier New]{
[FONT=Courier New]if (a [WortZaehler].length > 0 && SuchWort.length > 0)
[FONT=Courier New]{
[FONT=Courier New]for (ZeichenZaehler=0; ZeichenZaehler <=
[FONT=Courier New]a[WortZaehler].length - SuchWort.length;
[FONT=Courier New]ZeichenZaehler++)
[FONT=Courier New]{
[FONT=Courier New]Treffer = 0;
[FONT=Courier New]for (SuchZaehler=0; SuchZaehler <
[FONT=Courier New]SuchWort.length; SuchZaehler++)
[FONT=Courier New]{
[FONT=Courier New]if (a [WortZaehler] [ZeichenZaehler +
[FONT=Courier New]SuchZaehler] == SuchWort [SuchZaehler])
[FONT=Courier New]{
[FONT=Courier New]Treffer++;
[FONT=Courier New]}
[FONT=Courier New]}

[FONT=Courier New]if (Treffer == SuchWort.length)
[FONT=Courier New]{
[FONT=Courier New]TrefferReturn = true;
[FONT=Courier New]}
[FONT=Courier New]}
[FONT=Courier New]}
[FONT=Courier New]}
[FONT=Courier New]return TrefferReturn;
[FONT=Courier New]}

[FONT=Courier New]4b)
[FONT=Courier New]Man sollte überprüfen, ob in dem Array in dem gesucht wird leer Einträge sind oder ob der Suchstring selbst leer ist:
[FONT=Courier New]if (a [WortZaehler].length > 0 && SuchWort.length > 0)


[FONT=Courier New]4c)
[FONT=Courier New]Wenn man die For Schleife auf die folgende Weise ändert, wird nur bis zum ersten Treffer gesucht und der Rückgabewert auf true gesetzt.



[FONT=Courier New]for (SuchZaehler=0; SuchZaehler < SuchWort.length &&
[FONT=Courier New]a [WortZaehler] [ZeichenZaehler + SuchZaehler] == SuchWort
[FONT=Courier New][SuchZaehler]; SuchZaehler++)

[FONT=Courier New]5a)
[FONT=Courier New]public double pow (double x, int y)
[FONT=Courier New]{
[FONT=Courier New]if (y <= 1)
[FONT=Courier New]{
[FONT=Courier New]return x;
[FONT=Courier New]} else
[FONT=Courier New]{
[FONT=Courier New]return x * pow (x,y - 1);
[FONT=Courier New]}
[FONT=Courier New]}
[FONT=Courier New]5b)
[FONT=Courier New]public double ln (double x, int n)
[FONT=Courier New]{
[FONT=Courier New]double result = 0;
[FONT=Courier New]for (int i = 1; i < n; i++)
[FONT=Courier New]{
[FONT=Courier New]result += (pow((x - 1) / (x + 1), (i * 2 - 1)) / (i *
[FONT=Courier New]2 - 1));
[FONT=Courier New]}
[FONT=Courier New]return 2 * result;
[FONT=Courier New]}

[FONT=Courier New]5c)
[FONT=Courier New]public double ln (double x, int n)
[FONT=Courier New]{
[FONT=Courier New]if (x < 0 || n < 1)
[FONT=Courier New]{
[FONT=Courier New]System.out.println(“not defined”);
[FONT=Courier New]return -1;
[FONT=Courier New]}
[FONT=Courier New]else
[FONT=Courier New]{
[FONT=Courier New]double t1 = 0;
[FONT=Courier New]for (int i = 1; i < n; i++)
[FONT=Courier New]{
[FONT=Courier New]t1 += (pow((x - 1) / (x + 1), (i * 2 - 1)) / (i *
[FONT=Courier New]2 - 1));
[FONT=Courier New]}
[FONT=Courier New]return 2 * t1;
[FONT=Courier New]}
[FONT=Courier New]}

ihr beiden,

tja, es sind wohl tatsächlich nicht sehr viele in diesem Kurs.

Also mir fiel die Übungsklausur ziemlich schwer. Ich bin seit vorgestern dabei, alle Skripte noch mal durchzuarbeiten.
Ich arbeite seit gut 14 Jahren in der IT und hatte selten einen so schweren Einstieg.
Drücken wir uns alle mal die Daumen, das die Klausur nicht so arg schwer wird.
Gibts außer mir eigentlich noch jemanden, der in HH schreibt?

Viele Grüße,
Christian

Ich...dann sind wir zu zweit ;) muss mir noch mein DIN A4 Blatt schreiben ...

Na dann bis nachher :)
Und schon mal viel Glück für heute an alle beteiligten!!

Gruß,
Christian