AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Matrizen (Erstellen, Rechnen)

Ein Thema von mariusbenz · begonnen am 6. Mär 2015 · letzter Beitrag vom 11. Sep 2015
Antwort Antwort
Seite 1 von 2  1 2      
mariusbenz

Registriert seit: 6. Mär 2015
38 Beiträge
 
Delphi 10.3 Rio
 
#1

Matrizen (Erstellen, Rechnen)

  Alt 6. Mär 2015, 17:35
Hallo, bin neu hier und weiß nicht ob das hier überhaupt das richtige Forum für meine Frage ist, deshalb entschuldige ich mich schon mal im Voraus, falls es so sein sollte.

Folgendes, ich möchte ein Programm schreiben, bei dem einige Berechnungen mit Matrizen durchgeführt werden müssen(Inverse Matrix bilden, Multiplikation zweier Matrizen).
Diese Rechnungen sollen im Hintergrund ablaufen, der Benutzer soll auch keine Matrix als Matrix eingeben, ebenso muss die Matrix am Ende nicht als solche ausgegeben werden.
Er soll z.B. in eine Edit-Komponente 4 Ziffern eingeben, die dann für die Berechnung in eine 2x2-Matrix umgewandelt werden sollen.
Bsp.: Eingabe: 1 2 3 4

Matrix A:
1 2
3 4

In eine zweite Edit-Komponente gibt er beliebig viele Ziffern ein, z.B. 10, welche dann in eine 5x2-Matrix umgewandelt werden sollen.
Bsp.: Eingabe: 1 2 3 4 5 6 7 8 9 0

Matrix B:
1 2
3 4
5 6
7 8
9 0

Die zweite Matrix soll also immer 2 Spalten haben und AnzahlZeichen/2 Zeilen.


Mat B soll dann mit Mat A multipliziert werden
Mat B * Mat A =
7 10
15 22
23 34
31 46
9 18

Diese Matrix soll dann am Ende z.B. in einer Edit-Komponente so ausgegeben werden: 7 10 15 22 23 34 31 46 9 18

Hat jemand irgendeine Idee wie man das umsetzen kann?
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Matrizen (Erstellen, Rechnen)

  Alt 6. Mär 2015, 18:01
Ich würde zur Eingabe / Ausgabe ein StringGrid nehmen und zur Bearbeitung bieten sich Arrays an (TMatrix = array of array of double).
  Mit Zitat antworten Zitat
SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#3

AW: Matrizen (Erstellen, Rechnen)

  Alt 6. Mär 2015, 18:12
1. Herausfinden, wie viele Zahlen / "Wörter" im Edit-Feld stehen. Eventuell Warnhinweis oder Autokorrektur wenn zu viele oder zu wenige Zahlen.
2. Die Zahlen in einer Schleife auslesen, von String nach Single oder Double konvertieren (StrToFloat) und in einem Array ablegen.
3. Dasselbe mit dem zweiten Edit-Feld machen.
4. Matrixmultiplikation auf den Arrays durchführen.
5. Ergebnis nach String konvertieren (FloatToStr oder Format) und in Edit-Feld schreiben.

Je nachdem, welche Delphi-Version du hast, gibt es die Unit System.Math.Vectors, die 3x3 und 4x4 Matrizen implementiert (bietet aber keine Konversion von/zu String). Kannst du dir ja mal anschauen. Ein StringGrid zur Darstellung wie von Bjoerk vorgeschlagen halte ich auch für schöner als ein Edit-Feld.

Geändert von SMO ( 6. Mär 2015 um 18:14 Uhr)
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Matrizen (Erstellen, Rechnen)

  Alt 6. Mär 2015, 18:33
es gibt schon zahlreiche freie Lösungen zu diesem Thema in Delphi


z.B. http://www.torry.net/pages.php?id=308
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Matrizen (Erstellen, Rechnen)

  Alt 6. Mär 2015, 19:36
Da sich das nach einer Schulaufgabe anhört sind externe Libraries für ihn wahrscheinlich keine Option.

Sind es immer fest zwei Spalten oder soll Matrixmultiplikation für beliebige Matrizen gehen? Und immer interessant zu wissen: Über welche Delphi-Version sprechen wir?
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#6

AW: Matrizen (Erstellen, Rechnen)

  Alt 6. Mär 2015, 20:08
Er soll z.B. in eine Edit-Komponente 4 Ziffern eingeben...
In eine zweite Edit-Komponente gibt er beliebig viele Ziffern ein, z.B. 10...
Woher weißt Du, welche Dimensionen deine erste Matrix haben soll, wenn z.B. 16 Zahlen eingegeben werden? 4x4 oder 2x8 oder 8x2?
Oder soll die erste Matrix immer quadratisch sein?
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Matrizen (Erstellen, Rechnen)

  Alt 6. Mär 2015, 21:46
Ich würde es einfach genau so machen, wie du es in deinem Beitrag schon intuitiv gemacht hast: Einfach ein mehrzeiliges Textfeld (TMemo), mit Leerzeichen oder Tabs zwischen den einzelnen Spalten und Zeilenumbruch zwischen den Zeilen. Genauer gesagt habe ich sowas glaube ich schon mal genau so umgesetzt, wenn ich mich recht erinnere. Sieht vielleicht weniger schick aus, ist aber in der Praxis viel bequemer als mit irgendeinem Stringgrid herumzufummeln.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Matrizen (Erstellen, Rechnen)

  Alt 6. Mär 2015, 22:22
Warum sollte mit dem StringGrid da irgendwas fummelig sein?

Im Gegenteil, denn da habe ich auch schon die Dimensionen der Matrix als Information, ist doch super. Bei einem Memo müsste ich die Eingaben erst parsen, beim StringGrid nehme ich nur StrToFloat pro Zelle und der Drops ist gelutscht.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
mariusbenz

Registriert seit: 6. Mär 2015
38 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Matrizen (Erstellen, Rechnen)

  Alt 6. Mär 2015, 22:44
Danke schon mal für die vielen Antworten.

Vorweg, es handelt sich dabei nicht um eine Schulaufgabe, bin lediglich aus dem Matheunterricht darauf gekommen, dieses Programm zu entwickeln.

Zu der Frage warum die Eingabe über ein Edit Feld laufen soll ist: Die einzugebenen Zahlen stehen für ein Wort, wobei A=1,B=2,C=3,...,Z=26 bedeuten und das Wort "Hallo" kann
man ja schlecht in eine String Grid Komponente schreiben.
Die erste Matrix soll dabei die Codierungsmatrix sein, anfangs als 2x2 Matrix für ein 4-stelliges Passwort.
Die zweite Matrix stellt ein Wort dar, dass in einen Zahlencode umgewandelt wird.
Am Ende soll das Programm also quasi nen Text verschlüsseln und man kann ihn nur entschlüsseln und lesbar machen wenn man das Passwort, also die Codierungsmatrix kennt.
Ich wollte aber erst mal anfangen Zahlen zu verschlüsseln.

Zur Delphi Version kann ich nichts sagen, da ich das ganze über Lazarus mache(installiert vor 2 Jahren)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#10

AW: Matrizen (Erstellen, Rechnen)

  Alt 7. Mär 2015, 11:55
Ah, schön zu hören

Wo genau liegt denn konkret dein Problem? Dein Plan bis jetzt klingt doch relativ ausgereift.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz