200 likes | 329 Views
Informatik II Grundlagen der Programmierung Programmieren in C Probeklausur. Hochschule Fulda – FB ET Sommersemester 2010 http://www.rz.hs-fulda.de/et Peter Klingebiel, HS Fulda, DVZ. Aufgabe 1a - 1.
E N D
Informatik IIGrundlagen der ProgrammierungProgrammieren in CProbeklausur Hochschule Fulda – FB ET Sommersemester 2010 http://www.rz.hs-fulda.de/et Peter Klingebiel, HS Fulda, DVZ
Aufgabe 1a - 1 • In einem Programm finden Sie die folgende Schleifefor(i = start; i < ende; i++) { ... machwas(i); ... } • Formulieren Sie die for-Schleife als while-Schleife. Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 1a - 2 for-Schleife als while-Schleife Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 1b - 1 • In einem Programm finden Sie die folgende Berechnungint i; double d;for(i = 10; i < 100; i += 10) { d = i / 100.0; printf("%3d %.2lf\n", i, d); } • Geben Sie die Ausgaben an und kommentieren Sie die Ergebnisse. Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 1b - 2 • Ausgabe der Berechnung / Gründe Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 1b - 3 • Was kommt hier raus?int i;double d;for(i = 10; i < 100; i += 10) { d = 1.0 + i / 100; printf("%3d %.2lf\n", i, d);} • Warum? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 1b - 4 • Und hier?int i;double d;for(i = 10; i < 100; i += 10) { d = (1.0 + i) / 100; printf("%3d %.2lf\n", i, d);} • Warum? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 1c - 1 • Gegeben: unsortiertes Feld von 65000 Strings • Wie gehen Sie vor, wenn Sie in diesem Feld nach einem String suchen? • Wieviele Suchoperationen sind im ungünstigsten Fall notwendig? • Welches Verfahren gibt es, um die Suchzeit deutlich zu beschleunigen? • Geben Sie auch für dieses Verfahren an, wieviele Suchschritte im ungünstigsten Fall notwendig sind. Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 1c - 2 Suche? Schritte? Verfahren? Schritte? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 1d - 1 • Welche Lebensdauer haben in einer Funktion automatische und statische Variablen? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 1d - 2 Lebensdauer automatische/statische Variablen Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 2 - 1 • Schreiben Sie eine Funktion, die ein Feld von N double-Variablen umkehrt: • 1. Element <-> letztes Element • 2. Element <-> vorletztes Element • usw. Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 2 - 2 void dblreverse() Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 3 1 • In einem Programm finden Sie die folgende Funktion, die einen String dynamisch duplizieren soll char *stringdup(char *str) { char *new; int len, i; len = strlen(str); new = (char *) malloc(len); for(i = 0; i < len; i++) new[i] = str[i]; return(new);} Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 3 - 2 • Ist die Funktion korrekt implementiert? • Wenn nein, wo ist der Fehler? • Welche Konsequenzen hätte der Fehler? • Welche Korrektur ist ggfs. notwendig? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 3 3 Korrekt? Fehler? Folgen? Korrektur? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 3 - 4 strdup() korrekt Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 4 - 1 • Ein "intelligenter" Stromzähler (Smartmeter) misst an einem Stromkreis jede Sekunde die aktuelle Leistung und speichert diese in einem Structstruct _sms { unsigned num; /* Lfd. Nummer */ time_t tim; /* Messzeit */ unsigned val; /* Messwert in W */ struct _sms *nxt; /* Nächstes El. */ } *smsroot; Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 4 - 2 • Die Messdaten werden in einer einfach verketteten Liste dynamisch gespeichert. Nach 15 Minuten werden alle Messdaten an einen Server verschickt. Schreiben Sie eine C-Funktion, die vor dem Versenden der Daten den Stromverbrauch in Ws und KWh sowie das Minimum und das Maximum des Messzyklus ermittelt und auf stdout ausgibt. • Die Schnittstelle der C-Funktion: void ausgabe(struct _sms *s) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Aufgabe 4 3 void ausgabe(struct _sms *s) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ