C++ Matrizenmultiplikation mit Variablen statt Zahlen

OP #5737849
Lesenswert?
• ▲
▼
Hallo, ich bin ein C-Neuling und habe gerade mit Visual Studio 17 ein 
Programm geschrieben, welches eine 2x2- mit einer 2x3-Matrix 
multipliziert, mit Falk.

Beispiel:
1    3
2    4
und
0    2    4
1    3    0
wird
3    11   4
4    16   8
das kommt auch raus.

Der Benutzer gibt die Dimensionen der Matrices vorher ein und dann die 
Werte. Die Werte sind (natürlich) vom Typ double. Es wird ebenso 
geprüft, ob die Spaltenanzahl von Mat1 == Zeilenanzahl von Mat2 ist. 
Soweit ist alles klar.

Gibt es eine Möglichkeit zu coden, um unbekannte Variablen einzugeben, 
sodass
1    3
2    4
*
0    2    4
1    3    z
=
3    11   3*z+4
4    16   4*z+8  in der Konsole steht?



Nur so aus Interesse.

Danke
#5737938
Lesenswert?
• ▲
▼
Denkanstoß: du könntest als Typ std::string nehmen statt double, dann 
statt multiplizieren immer die strings mit * zwischendrin 
aneinanderhängen, und am Schluss (oder zwischendrin) alles evaluieren 
was geht. Das geht natürlich eleganter, aber im Grunde genommen wird es 
auf irgendetwas ähnliches hinauslaufen.
Gast #5738263
Lesenswert?
• ▲
▼
Mathlab als Lösung? In diesem Fall wäre das Open-Source Programm Maxima 
passender.

Einfach mal anschauen, mit welchen Strategien Maxima das Thema anpackt. 
Isaak Newton sagte: Wir haben weiter gesehen, weil wir auf den Schultern 
von Giganten standen.
Gast #5739357
Lesenswert?
• ▲
▼
Arno schrieb:
> nichts, was man mal
> eben programmiert.

Eigentlich schon.

Genau sowas war Früher™ im Informatik-Grundstudium, Vorlesung 
"Compilerbau I" eine der früheren Übungsaufgaben.... Noch vor 
flex/bison/yacc, gleich als zweite praktische Anwendung eines 
handgeklöppelten Top-Down-Parsers.

Man muss sich halt erst Gedanken zur Grammatik machen, diese 
niederschreiben, und dann kann man ohne groß Nachzudenken den Quelltext 
raustippen. Und wem das stupide Tippen zuviel ist, der nimmt einen 
Code-Generator dafür.


Schwierig wird's später, wenn du die Formeln lösen willst, nach X 
auflösen, umformen...

Das wurde dann in den Compilerbau-Vorlesungen nur noch oberflächlich 
angekratzt.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.