Hilfe zur Klausuraufgabe Lösungsvorschlag Klausur SoSe 2017

2. Hochschulabschluss
Bachelor of Science
Studiengang
B.Sc. Wirtschaftsinformatik
ECTS Credit Points
180 von 180
2. Studiengang
M.Sc. Wirtschaftsinformatik
ECTS Credit Points
120 von 120
Aufgabe 1)
Eine abstrakte Operation wird in ihrer Klasse nur durch eine Signatur vereinbart. Abstrakte Operationen werden im UML durch {abstract} dargestellt und ergeben nur Sinn wenn dieses vererbt und in der abgeleiteten Klasse ergänzt wird.
Enthält eine Klasse eine abstrakte Operation so kann von dieser Klasse kein Objekt erzeugt werden. Eine Klasse die keine Objekte besitzen kann, wird als abstrakte Klasse bezeichnet.
Können von einer Klasse Objekte erzeugt werden, so handelt es sich um eine konkrete Klasse.
Aufgabe 1b)
F , F , R , F , R , R , R , R , F , F
Aufgabe 2a)
Postordnung
C P Q F E D B H K J I G A
Präordnung
A B C D E Q P F G H I J K
Symmetrische Ordnung
C B Q P E F D A H G J K I
 
Aufgabe 2a2)
Kommt noch als Bild.
Aufgabe 2b)
Das FIFO-Prinzip steht für First In – First out. Wenn bei einer verketteten Liste Knoten am Ende der Liste eingeführt und am anderen Ende der Liste wieder ausgeführt werden, verlassen die Knoten diese Liste in der Reihenfolge wie sie eingeführt wurden. Ergo nach dem FIFO Prinzip. Anwendung findet es beispielsweise wenn Bestellungen der Reihe nach gespeichert und abgearbeitet werden.
Eine Alternative zum FIFO ist das LIFO-Prinzip. Hier wird das zuerst bearbeitet was zuerst eingefügt wird. Es findet Verwendung als Stapel beispielsweise bei der Zerlegung von Binärbäumen.
Aufgabe 2c)
Dispose bewirkt die Freigabes belegten von Speicherplatzes, das von referenzierten Objekte belegt wird.
 
Aufgabe 2d1)

BEGIN
IF (entries = n) THEN
full := TRUE;
ELSE
IF (entries = 0) THEN
front := 1;
rear := 0;
ENDIF
full:= FALSE;
IF (rear = n) THEN
length := rear – front + 1;
FOR i=1 TO length DO
Qqueue:= Qqueue[front +i – 1];
ENDFOR
front:= 1;
rear := length;
ENDIF
rear:=rear +1;
entries:= entries + 1;
Qqueue[rear]=newelement;
ENDIF
END append
 

BEGIN
IF (entries = 0) THEN
empty := TRUE;
ELSE
empty := FALSE;
frontelement := qqueue[front];
front:= front + 1;
entries:= entries – 1;
ENDIF;
END remove;

Aufgabe 2d3)

BEGIN
IF (entries = 0 ) THEN
Empty:= TRUE;
ELSE
Empty:= FALSE;
Frontelement:= qqueue[front];
ENDIF
Aufgabe 3)
?? Keine Ahnung wie das geht ??

Aufgabe 3b)
20
2000
20.00
123.47
2.000000e+001
101

Aufgabe 3c)
Schmitz
A
7
82765
0
101
 
Aufgabe 3 d)
#include <stdio.h>
int n; int k;
int binominal (int n, int k)
{
int tempA, tempB;
if (k > n)
{
return 0;
}
else
if (( k == 0 ) || (n == 0))
{
return 1;
}
/* rek */
else
{
tempA = binominal (n - 1, k);
tempB = binominal (n - 1, k - 1);
return tempA + tempB; }
}
/* main */
int main (void)
{
printf("\nBerechnung des Binomialkoeffizienten n ueber k");
do
{
printf("\nBitte Wert fuer n eingeben (n >= 0) ");
scanf("%d",&n);
} while (n < 0);
do
{
printf("\nBitte Wert fuer k eingeben (k >= 0 und k <= n) ");
scanf("%d",&k);
} while (k < 0 || n < k);
printf("\nDer Binomialkoeffizient n ueber k ist >> %d << !\n", binominal (n, k));
return 0;
}
 
Zurück
Oben