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
So was gibt's schon. z.B. https://www.mathworks.com/help/symbolic/mtimes.html Eigentlich nicht üblich, wenn man schon gelöste Probleme noch mal löst.
J. W. schrieb: > Eigentlich nicht üblich, wenn man schon gelöste Probleme noch mal löst. Echt jetzt?
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.
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.
Heiko L. schrieb: > J. W. schrieb: >> Eigentlich nicht üblich, wenn man schon gelöste Probleme noch mal löst. > > Echt jetzt? Nö. Dinge nochmal zu lösen, die schon mal gelöst worden sind, ist das Grundprinzip der freien Marktwirtschaft.
Für Python gibts SymPy. Ich könnte mir vorstellen daß es mehr Spaß macht mit solchen Sachen in ner dymamischen Sprache wie Python rumzuspielen als mit dem störrischen und spröden C++ auf so einem Terrain rumzuackern. Nur so ein Bauchgefühl.
Möglich ist es, aber - wie schon hier anklingt - nichts, was man mal eben programmiert. Zum Glück haben das schon verschiedene Leute getan und du kannst auf deren Arbeit aufbauen :) Vor Jahren habe ich mal in C++ mit GinaC symbolisch gerechnet: https://ginac.de/ MfG, Arno
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.
Dankeschön soweit! Ich werde die verschiedenen Vorschläge umsetzen und mich melden. Heute Nacht, wenn ich von der Arbeit zurück bin, werde ich als Erstes das mit den std::string (Sven B.s Vorschlag) machen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.