Aufgabenstellung

1.76 Kugelkondensator mit verschiedenen Dielektrika (I)

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 data1 befinde sich der Abstand der beiden Kugelmittelpunkte a, im Feld data2 der Radius jeder der beiden Kugeln r. Die Kapazität des Kugelkondensators berechnet sich mittels

BILD

Realisieren Sie die Assembler-Routine calc derart, dass sich nach dem Rücksprung ins C-Rahmenprogramm in results1 die Kapazitätswerte für Luft als Dielektrikum, und in resluts2 die Kapazitätswerte für Öl als Dielektrikum befinden.

Schreibe einen Kommentar