Was denn hier los?

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

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.

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.

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.

1d) Wenn die Methode nur innerhalb der Klasse aufgerufen wird.

1e) mit dem Schlüsselwort final vor der Deklaration.

2a) Die Funktion function bildet das Produkt aus den Parametern a und b, indem es den Wert b a.mal addiert.

2b) c = function(7,9):

3a) d, h, ??, d

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.

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.

if (c < 'a' || c > 'z' || offset < -25 || offset > 25)
{
result = c;
}
else

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.

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

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.

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

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

if (Treffer == SuchWort.length)
{
TrefferReturn = true;
}
}
}
}
return TrefferReturn;
}

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


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



for (SuchZaehler=0; SuchZaehler < SuchWort.length &&
a [WortZaehler] [ZeichenZaehler + SuchZaehler] == SuchWort
[SuchZaehler]; SuchZaehler++)
 
5a)
public double pow (double x, int y)
{
if (y <= 1)
{
return x;
} else
{
return x * pow (x,y - 1);
}
}
5b)
public double ln (double x, int n)
{
double result = 0;
for (int i = 1; i < n; i++)
{
result += (pow((x - 1) / (x + 1), (i * 2 - 1)) / (i *
2 - 1));
}
return 2 * result;
}

5c)
public double ln (double x, int n)
{
if (x < 0 || n < 1)
{
System.out.println(“not defined”);
return -1;
}
else
{
double t1 = 0;
for (int i = 1; i < n; i++)
{
t1 += (pow((x - 1) / (x + 1), (i * 2 - 1)) / (i *
2 - 1));
}
return 2 * t1;
}
}
 
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
 
Oben