Entwickler-Ecke

Sonstiges (Delphi) - Matrizen Multiplikation????


huy_beo - Mi 10.10.07 19:09
Titel: Matrizen Multiplikation????
hallo freunde.....
ich lerne gerade im Info über Datenstruktur,genau gesagt über Felder!!
und soll ne Programm schreiben, könnt ihr mir das helfen!!
Aufgabe :
Informiere Dich über die Matrizenmultiplikation
Erstelle ein Struktogramm für die Matrizenmultiplikation
Schreibe ein strukturiertes Programm welches 2 Matrizen gleicher Struktur multipliziert. Die Dimension der Matrizen sei maximal 8,8.

ich soll diese Programm mit array [....] of integer machen!!kann jemand mir helfen?

danke


Christian S. - Mi 10.10.07 19:14

Hallo und :welcome:!

Vorweg: Deine Hausaufgaben wir Dir hier niemand machen. Aber: Wir helfen Dir gerne dabei, sie selber zu machen.

Wie sehen denn Deine Ansätze bisher aus und wo kommst Du nicht weiter?

Grüße
Christian


huy_beo - Mi 10.10.07 19:28

der lehrer hat gesagt man soll es mit for schleifen machen!aba ich weißt nicht wie....
ich habe so gemacht..und es läuft aba auch...aber ich weißt nicht ob das mit array oder nicht?

Quelle:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, //Variants,
  Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type

  Paul=array[1..8,1..8of integer;

  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    StringGrid3: TStringGrid;
    Label1: TLabel;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Eingabe(var x,y,c:integer);
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Eingabe(var x,y,c:integer);
var
 i1, i2, i3, iErgebnis: integer;
begin
  for i1 := 0 to 7 do
  for i2 := 0 to 7 do
  begin
    iErgebnis := 0;
    for i3 := 0 to 7 do
    begin
      iErgebnis := iErgebnis +
        strtoint(stringgrid1.cells[i1,i3])*strtoint(stringgrid2.cells[i3,i2]);
    end;
    stringgrid3.cells[i1, i2]:=inttostr(iErgebnis);
  end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  stringgrid3.visible:=false;
end;


procedure TForm1.FormShow(Sender: TObject);

var
 i1, i2: integer;
begin
  for i1 := 0 to 7 do
  for i2 := 0 to 7 do
  begin
    stringgrid1.cells[i1, i2]:='1';
    stringgrid2.cells[i1, i2]:='1';
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);

var
 i1, i2, i3, iErgebnis: integer;
begin
  for i1 := 0 to 7 do
  for i2 := 0 to 7 do
  begin
    iErgebnis := 0;
    for i3 := 0 to 7 do
    begin
      try
        iErgebnis := iErgebnis +
         StrToInt(stringgrid1.cells[i1,i3])*StrToInt(stringgrid2.cells[i3,i2]);
      except
        begin

          MessageDlg('In alle Zeilen von Grid1 und Grid2 sollen Zahlen sein.',
            mtError, [mbOk], 0);
          stringgrid3.Visible := false;
          exit;
        end;
      end;
    end;
    stringgrid3.cells[i1, i2]:=inttostr(iErgebnis);
  end;
  stringgrid3.Visible:=true;
end;


end.


Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


Christian S. - Mi 10.10.07 19:31

Hallo!

Du kannst Dein Array (vom Typ "Paul" :lol:) praktisch so benutzen, wie Du StringGrid.Cells benutzt. Du musst vorher nur noch eine Varibale diesen Typs deklarieren. Siehe auch hier: http://www.christian-stelzmann.de/artikel/CrashkursReloaded/#_Toc166831058

Grüße
Christian

//edit: Ach ja, Unterschied ist: die Indizes laufen nciht von 0 bis 7, sondern von 1 bis 8 (weil Paul so deklariert ist). Und Du kannst Dir das IntToStr / StrToInt sparen, weil ja alle Elemente Integer sind.


huy_beo - Mi 10.10.07 19:36

danke ich werde das mal versuchen!!!wenn nicht klapp dann muss du mir aba helfen! :) :) :) :) :) :) :) :) :D :D :D :D :D :D :D


huy_beo - Mi 10.10.07 19:47

kannst du das mit den typ array da vorzeigen?ich verstehe das nicht so ganz! :D :D :D :D :D :D :D


Christian S. - Mi 10.10.07 19:56

Was soll ich zeigen? :gruebel:


huy_beo - Mi 10.10.07 20:00

wie man array hier benutzt und was ich noch deklarieren muss! :D :D :D :D


Christian S. - Mi 10.10.07 20:02

Wie man ein Array deklariert steht in dem Link, den ich gepostet habe. Ein bisschen mehr Eigeninitiative bitte! :mahn:


huy_beo - Mi 10.10.07 20:11

ich weißt,dass man Eigeninitiative braucht...aber ich setze schon tage lang mit den ding hier schon...und habe bald kein geduld mehr!außerdem ich muss noch vieles lernen!huhuhuuhuhuhuhu


Christian S. - Mi 10.10.07 20:15

Und was an alle dem hindert Dich daran, auf den Link zu klicken und zu lesen :gruebel:


huy_beo - Mi 10.10.07 20:18

ich lerne grad Geschichte...morgen schreibe ich klausur auf Abiniveau!!!300 min lang!!!!!!da kann ich nicht auf den text da konzentrieren!


Christian S. - Mi 10.10.07 20:24

Dann kann ich Dir auch nicht helfen. Ich mache Dir nicht Deine Hausaufgaben.


huy_beo - Mi 10.10.07 20:25

ja ist egal...trotzdem danke


Delete - Fr 12.10.07 19:28

mal hausaufgaben mach ... (da keine programmiersprache angegeben, wird fortran angenommen)

A = M1 * M2 strukturgramm ist genauso simple. wobei A = gesuchte matrix, M1 = 1 Matrix und M2 = zweite Matrix