1.74 Zylinderkondensator mit verschiedenen Dielektrika (IV)
Für die folgenden Aufgaben werden jeweils 100 Werte, die bei den jeweiligen Aufgaben genauer definiert sind, in der Datei ui.txt abgespeichert worden sind. Mit Hilfe des mitgelieferten C-Rahmenprogramms read.c werden diese nun in den Hauptspeicher des PCs eingelesen und in den drei Feldern intval (Datentyp INTEGER, 2 oder 4 Bytes), data1 und data2 (jeweils Datentyp FLOAT, 4 Bytes) abgespeichert. Weiterhin werden durch das C-Rahmenprogramm zwei Felder results1 und results2 (jeweils Datentyp FLOAT, 4 Bytes) angelegt. Jedes dieser Felder besitzt entsprechend der Anzahl von Meßwerten 100 Elemente. Zur Berechnung verschiedener elektrischer Größen aus den Meßwertreihen wird vom C-Rahmenprogramm aus die Assembler-Routine calc aufgerufen, die folgendermaßen deklariert ist
void calc(int *intval, float *data1, float *data2, float *results1, float *results2)
Übergeben werden dabei 5 Zeiger auf die jeweiligen Datenfelder. Intval ist dabei ein Zeiger auf das INTEGER-Feld, die übrigen Parameter sind Zeiger auf die zuvor angelegten FLOAT-Felder.
Erstellen Sie sich zum Testen eine möglichst realitätsnahe Datei ui.txt.
Im Datenfeld intval befinde sich die Länge des Zylinderkondensators (Achtung: als ganzzahliger Wert abgespeichert!), im Feld data1 der Radius des inneren Zylindermantels r1 und in data2 der Radius des äußeren Zylindermantels r2. Die Kapazität des Zylinderkondensators berechnet sich mittels
C = (2pel) / ln(r2 / r1), e = e0er
Realisieren Sie die Assembler-Routine calc derart, dass sich nach dem Rücksprung ins C-Programm in results1 die Kapazitätswerte für Paraffin als Dielektrikum, und in results2 die Kapazitätswerte für Ölpapier als Dielektrikum befinden.
Jantho
Last modified: Mon Nov 04 16:24:35 Westeuropäische Normalzeit 2002