Name:
Matrikelnummer: Punkte:
Die Übungen sind grundsätzlich allein zu machen. Gruppenarbeit ist nicht erlaubt. Abzugeben sind jeweils das sinnvoll dokumentierte Programmlisting mit Original-inputs und Original-outputs, falls angebracht für mehrere Testläufe mit unterschiedlichen Eingabedaten. Das Abgabeformat ist DIN A4. Heften Sie alle Unterlagen gemeinsam mit dem Übungsblatt zusammen !
Genereller Hinweis: Die Funktion pow wird in dieser Übung nicht benötigt und darf auch nicht benutzt werden.
- (8 P)
Aus den Vektoren
: = 

und
: =
sin


soll der Vektor
=
zi
nach der Vorschrift
berechnet werden. Die Berechnungen der skalaren Größen
zi
: =
.
+
und
zi
: =
+
.
: =
und
: =
enthalten inneres Produkt

,
: =
ui . wi
und Euklidische Norm
||
|| : =
.
Der benötigte Speicherplatz ist dynamisch anzufordern
(und zum Programmende explizit freizugeben).
Greifen Sie auf die Komponenten von
in der Pointernotation zu.
Gestalten Sie die Berechnungen nach der Datengenerierung so, daß möglichst wenige
Zählzyklen nötig sind. Geben Sie, neben
und
,
für n
20 alle Komponenten von
aus
und ansonsten die ersten und die letzten beiden Komponenten von
.
Eingabedaten (n): (4), (20), (31553) - (8 P)
Es sind n Richtungsvektoren einzulesen, wobei deren jeweilige Komponenten
(xi, yi, zi)
(
i = 0,..., n) gemeinsam gespeichert werden sollen. Der Speicherplatz für das Feld
soll dynamisch angefordert werden (freigeben nicht vergessen!).
Bestimmen Sie den maximalen Winkel zwischen all diesen Richtungsvektoren (
0) über
cosund geben Sie diesen im Gradmaß (
(
,
) : =
mit ||
|| : =
und 
,
: = axbx + ayby + azbz
[0, 180o]) zusammen mit den entsprechenden beiden
Richtungsvektoren aus.
Vermeiden Sie redundante Berechnungen!
Die Richtungsvektoren sind in den Files input.4B_1.txt und input.4B_2.txt als
n,(x, y, z)0,(x, y, z)1,...,(x, y, z)n-1
gespeichert.
- (8 P)
Deklarieren Sie eine Struktur, welche
bei Kontoumsätzen die Bankleitzahl, die Kontonummer, den Zweck und den
geldmäßigen Umsatz (Zahlungsverpflichtung ist eine negative Zahl)
speichert. Der Zweck ist eine Zeichenkette, welche dynamisch allokiert werden soll.
Diese Kontoumsätze sollen wiederum in einem dynamischen Feld zusammengefaßt werden.
Allokieren Sie den dynamischen Speicher entsprechend der gegebenen Datensätze und deallokieren Sie diesen zum Schluß explizit. Bestimmen Sie den Kontoumsatz (einer reicht) mit der kleinsten Zahlungsverpflichtung und geben Sie diesen Datensatz aus. Geben Sie ebenfalls alle Datensätze aus, in denen die Zeichenkette ,,USI`` vorkommt. Hierzu können Sie die Funktion
strstr(s,s_usi)aus strings.h nutzen, welche eine Nullpointer liefert falls der 2.String nicht im ersten enthalten ist.
Die Eingabedaten sind in den beiden Files input.4C_1.txt, input.4C_2.txt zu finden
(Aufruf: ./a.out < input.4C_1.txt ).
Die Anordnung der Daten ist:
(Anzahl Umsätze, BLZ0, Konto0, Zweck0, Umsatz0, ..., BLZn-1, ..., Umsatzn-1)
Gundolf Haase : Wed Dec 3 14:49:45 CET 2003

