Eiskaltes Händchen
Grünschnabel
Hallo erstmal.
Ich habe ein Problem und zwar soll ich ein Programm zur Multiplikation von Matritzen schreiben. Allerdings ist meine Begabung in dieser Hinsicht, sagen wir mal, nicht so ausgeprägt.
Angefangen habe ich auch schon, jedoch will das Programm nur symetrische Matritzen miteinander multiplizieren.
Die Aufgabenstellung lautete, alle Matritzen, bis zur große 10 x 10 miteinander multiplizieren zu können, unter der Regel
A (m,n) * B (n,p) = C
Ich bin für jede Antwort dankbar!
Danke schon mal im Vorraus
Ich habe ein Problem und zwar soll ich ein Programm zur Multiplikation von Matritzen schreiben. Allerdings ist meine Begabung in dieser Hinsicht, sagen wir mal, nicht so ausgeprägt.
Angefangen habe ich auch schon, jedoch will das Programm nur symetrische Matritzen miteinander multiplizieren.
Die Aufgabenstellung lautete, alle Matritzen, bis zur große 10 x 10 miteinander multiplizieren zu können, unter der Regel
A (m,n) * B (n,p) = C
Ich bin für jede Antwort dankbar!
Danke schon mal im Vorraus
Code:
#include <iostream.h>
void main()
{
int i=0,k,j=0,m=0,n=0,a=0;
int breite1,hoehe1,breite2,hoehe2;
long int matrix1[9][9];
long int matrix2[9][9];
long int matrix3[9][9];
for (i=0; i<9; i++)
{
for (k=0; k<9; k++)
{
matrix1[i][k]=1;
}
}
cout<<"\n\n\nIhre erste Matrix :"<<endl<<endl;
for (i=0; i<9; i++)
{
for (k=0; k<9; k++)
{
cout<<matrix1[i][k]<<" ";
}
cout<<endl;
}
for (i=0; i<9; i++)
{
for (k=0; k<9; k++)
{
matrix2[i][k]=1;
}
}
cout<<"\n\n\nIhre zweite Matrix :"<<endl<<endl;
for (i=0; i<9; i++)
{
for (k=0; k<9; k++)
{
cout<<matrix2[i][k]<<" ";
}
cout<<endl;
}
for (i=0; i<9; i++)
{
for (k=0; k<9; k++)
{
matrix3[i][k]=1;
}
}
cout<<"\n\n\nIhre dritte Matrix :"<<endl<<endl;
for (i=0; i<9; i++)
{
for (k=0; k<9; k++)
{
cout<<matrix3[i][k]<<" ";
}
cout<<endl;
}
do
{
cout<<"Bitte geben Sie die Breite der ersten Matrix ein:";
cin>>breite1;
cout<<"Bitte geben Sie die H"<<char(148)<<"he der ersten Matrix ein:";
cin>>hoehe1;
cout<<endl<<"Bitte geben Sie die Breite der zweiten Matrix ein:";
cin>>breite2;
cout<<"Bitte geben Sie die H"<<char(148)<<"he der zweiten Matrix ein:";
cin>>hoehe2;
if ((hoehe1==breite2)||(hoehe2==breite1))
{
i=1;
}
else
{
i=0;
cout<<"Fehler!"<<endl;
}
} while (i==0); //Schleife, um eine multiplizierbare Matrix einzulesen
cout<<"Bitte geben Sie die Werte f"<<char(129)<<"r die erste Matrix ein :"<<endl;
for (i=0; i<breite1; i++) //Erste Matrix wird eingelesen
{
for (k=0; k<hoehe1; k++)
{
cin>>matrix1[i][k];
}
}
cout<<"Bitte geben Sie die Werte f"<<char(129)<<"r die zweite Matrix ein :"<<endl;
for (i=0; i<breite2; i++)
{
for (k=0; k<hoehe2; k++)
{
cin>>matrix2[i][k];
}
}
cout<<"\n\n\nIhre erste Matrix :"<<endl<<endl;
for (i=0; i<breite1; i++)
{
for (k=0; k<hoehe1; k++)
{
cout<<matrix1[i][k]<<" ";
}
cout<<endl;
}
cout<<"\n\n\nIhre zweite Matrix :"<<endl<<endl;
for (i=0; i<breite2; i++)
{
for (k=0; k<hoehe2; k++)
{
cout<<matrix2[i][k]<<" ";
}
cout<<endl;
}
for(i=0;i<breite1;i++)
{
for(n=0;n<breite2;n++)
{
for(m=0,j=0;m<hoehe2,j<hoehe1;m++,j++)
{
a=matrix1[j][i]*matrix2[m][n];
a=a+a;
}
matrix3[m][j]=a;
cout<<matrix3[m][j]<<" ";
}
cout<<endl<<endl;
}
}