Witam, mam ogromną prośbę. Jestem amatorem w programowaniu w c++ i nie za bardzo wiem jak się zabrać za program. Jeżeli ktoś byłby tak miły i pomógł mi zacząć pisać ten program, bo nawet nie wiem jak. A program to "iloczyn macierzy kwadratowych" Program ma być zrobiony na tablicach i trzeba zablkować możliwość wprowadzenia innych elementów niż liczby
0
0
50zł. Zainteresowany? Zapraszam na priv.
Bo za darmo to zacząć musisz sam...
0
Ok, oto początek kodu:
int main() {
// tu robisz obliczenia.
return 0;
}
0
Podaj jakieś parametry tego programu, czy znasz rozmiar macierzy, czy ma być podany przez użytkownika itp.
0
#include <iostream>
void WprowadzMacierz(double ** tab, int n);
int WprowadzRozmiar();
double ** IloczynMacierzy(double ** tab1, double ** tab2, int n);
void WyswietlMacierz(double ** tab, int n);
int main()
{
using namespace std;
cout << "Podaj rozmiar tablicy: ";
int rozm = WprowadzRozmiar();
double ** tablica1 = new double * [rozm];
double ** tablica2 = new double * [rozm];
for (int i = 0; i < rozm; i++)
{
tablica1[i] = new double [rozm];
tablica2[i] = new double [rozm];
}
WprowadzMacierz(tablica1, rozm);
WprowadzMacierz(tablica2, rozm);
double ** wynik = IloczynMacierzy(tablica1, tablica2, rozm);
WyswietlMacierz(wynik, rozm);
for (int i = 0; i < rozm; i++)
{
delete [] tablica1[i];
delete [] tablica2[i];
delete [] wynik[i];
}
delete [] tablica1;
delete [] tablica2;
delete [] wynik;
return 0;
}
void WprowadzMacierz(double ** tab, int n)
{
using namespace std;
double wartosc;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
{
cout << "Podaj element [" << i << "][" << j << "]: ";
cin >> wartosc;
if (cin)
tab[i][j] = wartosc;
while (!cin)
{
cin.clear();
while (cin.get() != '\n')
continue;
j--;
}
}
}
int WprowadzRozmiar()
{
using namespace std;
int rozmiar;
while (!(cin >> rozmiar))
{
cin.clear();
while (cin.get() != '\n');
}
return rozmiar;
}
double ** IloczynMacierzy(double ** tab1, double ** tab2, int n)
{
double ** wynik = new double * [n];
for (int i = 0; i < n; i++)
wynik[i] = new double [n];
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
wynik[i][j] = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
for (int k = 0; k < n; k++)
wynik[i][j] += tab1[i][k] * tab2[k][j];
return wynik;
}
void WyswietlMacierz(double ** tab, int n)
{
using namespace std;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
cout << tab[i][j] << "\t";
cout << endl;
}
}