169
06.01.2004, 20:38 Uhr
Lumina
|
hier ist die Angabe zu dem ganzen Kram: Aufgabe 4: Schreiben Sie ein Programm, das alternativ eine Matrix invertiert, die Determinante einer Matrix berechnet oder die Lösung eines linearen Gleichungssystems berechnet. Die Matrixelemente beziehungsweise die Koeffizienten des Gleichungssystems seien dabei reelle Zahlen. Beim Aufruf des Programms soll dem Benutzer ein Auswahlmenü angeboten werden, in dem er durch Eingabe eines Zeichens (bspw. 1, 2, 3, oder 4) zwischen den Alternativen
I.„Matrixinvertierung“ II.„Determinantenberechnung“ III.„Lösung eines linearen Gleichungssystems“ und IV.„Abbruch“
wählen kann.
Danach (falls nicht Alternative IV gewählt wurde) wird er aufgefordert, die Dimension der Matrix/des Gleichungssystems anzugeben (für 3x3-Matrix bspw. Eingabe von 3). die Matrixelemente und Koeffizienten sind abschließend einzugeben, bevor die Berechnung beginnt und die Ergebnisse angezeigt werden. Dann wird das Menü erneut angeboten, bis der Benutzer die Alternative IV wählt.
Achten sie bei der Realisierung ihres Programms auf eine gute Strukturierung durch Einführung von Funktionen zur Lösung von Teilaufgaben. So sollten zumindest die angebotenen drei Alternativen in einzelnen Funktionen abgebildet werden. Besser ist eine weitere Unterteilung in Funktionen zur eigentlichen Berechnung und Funktionen mit Benutzerinteraktion.
Hinweise: Sie können im Programm von einer maximal zu behandelnden Matrixdimension ausgehen. Der Benutzer ist bei Eingabe größerer Werte zu informieren. Vektoren/Matrizen können Sie in C durch Angabe von eckigen Klammern mit den Einzeldimensionen hinter dem Variablenbezeichner definieren. Die Indizierung – ebenfalls über eckige Klammern – beginnt in C mit 0. Ein Vektor der Dimension 3 und eine 3x3-Matrix mit double-Werten kann in C bspw. Folgendermaßen definiert und zugegriffen werden:
double vek[3]; double mat[3][3];
vek[1]=4.1; /* Zweites Vektorelement bechrieben */ mat[2][0]=8.7 /* Matrix dritte Zeile, erste Spalte */
Funktionsparameter können Sie analog angeben (Übergabe von Vekoren/Matrizen per Referenz!).
Beachten Sie, dass die Invertierung einer Matrix bzw. die eindeutige Lösung eines linearen Gleichungssystems nicht immer möglich ist und zeigen Sie es dem Benutzer an, falls ein solcher Fall auftritt.
Beachten Sie, dass der Vergleich zweier reeller Zahlen in einem Rechnersystem im Allgemeinen nicht exakt durchgeführt werden kann, da die Repräsentation einer reellen Zahl im Allgemeinen nicht exakt möglich ist.
**************** Da lässt sich doch so vereinfachen, dass man nur eine Lösung ausgibt, wenn diese eindeutig ist und keine Vektoren sind... -- ******************************************* Willst du glücklich sein im Leben, trage bei zu and'rer Glück, denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück! ******************************************* Dieser Post wurde am 06.01.2004 um 20:40 Uhr von Lumina editiert. |