Im Programmierteil musste ein Programm um eine Funktion zur Ausgabe einer Reihe von Wertensowie der Berechnung von Prozentwerten ergänzt werden. Ich bin erst nach ca. einer Stunde darauf gekommen, wie einfach die Lösung eigentlich ist, wenn man erst mal den Quellcode des Programms verstanden hat. Was natürlich nicht heisst, dass meine Lösung auch richtig ist.
Ich habe mal versucht, meine Lösung aus dem Gedächtnis nachzuprogrammieren, und so richtig funktioniert es noch nicht:
#include <stdio.h>
#define MAX_FAK 4
void printStatistics(int fakultaeten[]);
int main()
{
// Hier stand in der Klausur natürlich viel mehr drin...
int fakultaeten[MAX_FAK];
fakultaeten[1] = 1;
fakultaeten[3] = 1;
fakultaeten[4] = 2;
printStatistics(fakultaeten);
return 0;
}
void printStatistics(int fakultaeten[])
{
// Diese Funktion musste erstellt werden
int c;
int summe=0;
float prozent;
for(c=1; c<=MAX_FAK; c++)
{
summe+=fakultaeten[c];
}
printf("Fakultät\tAnzahl\tProzent\n");
for(c=1; c<=MAX_FAK; c++)
{
prozent=fakultaeten[c]/summe*100;
printf("%d\t%d\t%f\n", c, fakultaeten[c], prozent);
}
}
Notiz an mich selbst:
Ich glaube, dass mein Lösungsansatz stimmt, aber noch nicht ganz fehlerfrei ist. Weder wird der Prozentwert richtig berechnet, noch berücksichtige ich die Tatsache, dass manche Fakultäten (z.B. die Nummer 2) gar nicht existieren. Aber ok, ein paar Punkte sollte ich dafür trotzdem bekommen.
Der Rest der Klausur bestand aus den üblichen Prototyp- und Struct-Deklarationen sowie einigen Multiplechoice-Fragen, bei denen ich auffällig häufig "Keine Antwort ist richtig" angekreuz habe. Wenn das mal richtig ist...
Keine Kommentare:
Kommentar veröffentlichen