Hilfe zur Klausuraufgabe Klausur SS 2016 (Sep 2016)

Kiomi

Tutorin und Forenadmin
Ort
Rhein-Main-Gebiet
Hochschulabschluss
Bachelor of Science
2. Hochschulabschluss
Master of Science
Studiengang
M.Sc. Wirtschaftswissenschaft
ECTS Credit Points
60 von 120
Hat jemand Lust die Klausuren zu diskutieren? Ich stelle mal meine Ergebnisse ein, ohne Gewähr.

Aufgabe 1a)
Framework: spezielle Klassenbibliothek, die die grundlegende Architektur einer Anwendung festlegt. Zwischen den Klassen des Frameworks bestehen gewisse vordefinierte Kooperationsbeziehungen.
Vorteile: Wiedervendbarkeit, Reduzierung des Entwicklungsaufwands, Erhöhung der Qualität, bessere Wartbarkeit durch Einsatz erprobter Komponenten
Nachteil: höherer Einarbeitungsaufwand

Aufgabe 1b)
Polymorphismus: Grundlage sind Operationen mit gleichem Namen oder vollständig übereinstimmender Signatur, Methoden sind verschiedenen bzw. verschieden implementiert
statischer Polymorphismus: zur Übersetzungszeit festgelegt, welche Methode ausgeführt
dynamischer Polymorphismus: erst zur Laufzeit entschieden, welche Methode ausgeführt

Aufgabe 1c)
F (KE1, S. 21), R (KE1, S. 8), R (KE1, S. 16), R, (KE1, S. 9), R (KE1, S. 143)
F (KE1, S. 22), R (KE1, S. 47), R (KE1, S. 10), F (KE1, S. 60), F (KE1, S19)

Aufgabe 2a)
Code:
PROCEDURE fakul (VARIABLE n:INTEGER; VARIABLE f:INTEGER);
BEGIN
   IF (n>0) THEN
      CALL fakul(n-1,f);
      f:=n*f;
   ELSE
      f:=1;
   ENDIF;
END fakul;
Aufgabe 2b)
Aufgabe 2a)
Code:
PROCEDURE fakuliter (VARIABLE n:INTEGER; VARIABLE f:INTEGER);
DATA
   VARIABLE i:INTEGER;
BEGIN
   i:=0;
   f:=1;
   WHILE (i<n) DO
      i:=i+1;;
      f:=*f;
   ENDWHILE;
END fakuliter;
Aufgabe 2c)
Rekursion: Aktion oder Definition durch Rückgrif auf sich selbst ausgedrückt
Iteration: wiederholte Ausführung einer Anweisung
Bedingung für rekursiven Aufruf: Terminationsbedingung oder Termination durch Verminderung der Parameterwerte

Aufgabe 2d)
18
8, 17
1, 7, 14, 16
6, 13, 15
5, 9, 12
4, 11
2, 3, 10

Aufgabe 2e)
1) U3Z1TEQA729 - LWR
2) A3U1ZTQF279 - WLR
3) UZEQT13792A - LRW

Aufgabe 2f)
1) Bubblesort, Sortieren durch Austauschen - Aktuell größtes Element wandert als Blase an die freie Position
2)
Code:
PROCEDURE sortalogrithmus(VARIABLE feld:FELD)
DATA
   VARIABLE i, j:INDEX;
                    element:INTEGER;
BEGIN
   FOR i:=1 TO m DO
      FOR J:=2 TO n+1-i DO
         IF (feld[i]>feld[j]) THEN
            element:=feld[i];
            feld[i]:=feld[j];
            feld[j]:=element;
         ENDIF;
      ENDFOR;
   ENDFOR;
END sortalgorithmus;
Aufgabe 3a)
Code:
int quadsum(int n)
{
   if (n>0)
      printf("%d\n", n*n+quadsum(n-1));
   return (n*n);
}
Aufgabe 3b)
Verkettete Datenstrukturen vorteilhaft, wenn flexible Anzahl von Datenobjekten zu verwalten, da nur Speicher allokiert, der auch verwendet wird. Einfügen und Ersetzen sind bei großer Anzahl von Datenobjekten effizienter, da Umspeichern entfällt.
Statische Datenstruktur sinnvoll, wenn Anzahl der Datenobjekte bekannt und nicht relativ klein, da dann die Verwaltung durch Zeiger entfällt.

Aufgabe 3c)
Code:
typedef struct Buch
{
   int invnr;
   char titel[23];
   float preis;
   float mwst;
   int anz;
} BUCH;

int main(void)
{
   BUCH buecher[100];
   float mwstinput;
   int i;
   printf("\nMwst eingeben: ");
   scanf("%f, &mwstinput);
   for (i=0; i<100; i++)
   {
      buecher[i].invnr = i;
      printf("\nBuchtitel %d. Buch: ", i);
      scanf("%s"; &buecher[i].titel);
      printf("\nBuchpreis EUR: ");
      scanf("%f"; &buecher[i].preis);
      printf("\nStueckzahl: ");
      scanf("%d", &buecher[i].anz;
      buecher[i].mwst = mwstinput;
   }
}
 
Ort
Berlin
Hochschulabschluss
Bachelor of Science
Studiengang
M.Sc. Wirtschaftsinformatik
boah, reg ich mich grad auf... :wall: Du hast natürlich vollkommen Recht mit deiner Lösung (KE3 S. 30).
Ich war doch echt davon ausgegangen, dass man da selbstständig was produzieren soll. Da kommt man aber ganz schön in Schwierigkeiten, da ja laut Aufgabenstellung nur die zwei Indizes i und j bereitgestellt werden. Das m fällt da ja quasi einfach vom Himmel und wer die Prozedur nicht auswendig wiedergeben kann hat ver...

Ich stelle mit zunehmender Fassungslosigkeit und Frustration fest, dass leider gerade in den neueren Klausuren (WS15/16 und SS16) immer weniger das Verständnis (Code lesen und Fehler erkennen) als vielmehr schwachsinniges Auswendiglernen und wiederkäuen abgefragt wird. Schön, dann weiß ich ja womit ich die kommende Woche verbringen darf :motz:
 

Kiomi

Tutorin und Forenadmin
Ort
Rhein-Main-Gebiet
Hochschulabschluss
Bachelor of Science
2. Hochschulabschluss
Master of Science
Studiengang
M.Sc. Wirtschaftswissenschaft
ECTS Credit Points
60 von 120
Ich stelle mit zunehmender Fassungslosigkeit und Frustration fest, dass leider gerade in den neueren Klausuren (WS15/16 und SS16) immer weniger das Verständnis (Code lesen und Fehler erkennen) als vielmehr schwachsinniges Auswendiglernen und wiederkäuen abgefragt wird. Schön, dann weiß ich ja womit ich die kommende Woche verbringen darf :motz:
In der Tat, das ist mir auch schon aufgefallen. Trotzdem scheinen die meisten damit zurecht zukommen, wenn man den Klausurstatistiken Glauben schenken darf. Ich will es nur noch hinter mir haben.
 
Hochschulabschluss
Bachelor of Science
Studiengang
M.Sc. Wirtschaftsinformatik
ECTS Credit Points
0 von 120
Aufgabe 3a)
Code:
int quadsum(int n)
{
   if (n>0)
      printf("%d\n", n*n+quadsum(n-1));
   return (n*n);
}
Hi Kiomi, erst mal vielen Dank für deine Aufarbeitung der Klausuren. Wirklich top und hilfreich. Allerdings denke ich der o.g. Code trifft nicht die Aufgabenstellung. Dieser gibt immer die Summen der einzelnen Zwischenschritte aus, nicht die Quadratzahlen insgesamt. Ich hab nun ein wenig rumprobiert (oder eher recht ausgiebig ;)) und komme mit folgendem Code auf die lt. Aufgabenstellung korrekte Ausgabe:

#include <stdio.h>
int quadsum(int n)
{
int sum=0;
if (n>0)
sum=sum+n*n+quadsum(n-1);
printf("%d\n", n*n);
return sum;
}
int main(void)
{
int n;
printf("Bitte eine Zahl eingeben: ");
scanf("%d", &n);
printf("%d\n", quadsum(n));
return 0;
}
as gibt dann als Ausgabe zuerst die Quadratzahlen und zum Schluss die Summe dieser. estimmt geht der Code besser, aber "C" und ich stehen noch immer auf Kriegsfuß ;)

Viele Grüße
 
Oben