Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Temat: Mnozenie macierzy
- Autor: Radoslaw i Skorzewski
- Data utworzenia: 01.03.2017
- Data poprawki/edycja: 03.03.2017
- */
- #include <iostream>
- #include <fstream>
- #include <cstdlib>
- int m1_liczba_wierszy = 0;
- int m1_liczba_kolumn = 0;
- int m2_liczba_wierszy = 0;
- int m2_liczba_kolumn = 0;
- double **PobierzMacierzZPliku(char nazwa[255]);
- double **IloczynMacierzy(double **tab1, double **tab2);
- using namespace std;
- int main()
- {
- double** Macierz1;
- double** Macierz2;
- double** Macierz3;
- Macierz1 = PobierzMacierzZPliku("Macierz2.txt");
- Macierz2 = PobierzMacierzZPliku("Macierz3.txt");
- Macierz3 = IloczynMacierzy(Macierz1, Macierz2);
- for (int i = 0; i < m1_liczba_wierszy; i++)
- {
- for (int j = 0; j < m1_liczba_kolumn; j++)
- {
- cout << Macierz1[i][j] << " ";
- }
- cout << endl;
- }
- for (int i = 0; i < m2_liczba_wierszy; i++)
- {
- for (int j = 0; j < m2_liczba_kolumn; j++)
- {
- cout << Macierz2[i][j] << " ";
- }
- cout << endl;
- }
- cout << endl;
- for (int i = 0; i < m1_liczba_wierszy; i++)
- {
- for (int j = 0; j < m2_liczba_kolumn; j++)
- {
- cout << Macierz3[i][j] << " ";
- }
- cout << endl;
- }
- //system("pause");
- return 0;
- }
- double **PobierzMacierzZPliku(char nazwa[255]){
- int m, n;
- fstream plik;
- plik.open(nazwa, ios::in);
- double **tab;
- if(plik.good()){
- plik >> m;
- plik >> n;
- if(m1_liczba_wierszy != 0 && m1_liczba_kolumn != 0){
- m2_liczba_wierszy = m;
- m2_liczba_kolumn = n;
- }else{
- m1_liczba_wierszy = m;
- m1_liczba_kolumn = m;
- }
- tab = new double*[m];
- for(int i = 0; i < m; i++){
- tab[i] = new double[n];
- }
- for(int i = 0; i < m; i++){
- for(int j = 0; j < n; j++){
- plik >> tab[i][j];
- }
- }
- }
- plik.close();
- return tab;
- }
- double **IloczynMacierzy(double **tab1, double **tab2){
- double **tab = new double*[m1_liczba_wierszy];
- for(int i = 0; i < m1_liczba_wierszy; i++){
- tab[i] = new double[m2_liczba_kolumn];
- }
- for(int i = 0; i < m1_liczba_wierszy; i++){
- for(int j = 0; j < m2_liczba_kolumn; j++){
- for(int k = 0; k < m2_liczba_kolumn; k++){
- tab[i][j] += tab1[i][k] * tab2[k][j];
- }
- }
- }
- return tab;
- }
Advertisement
Add Comment
Please, Sign In to add comment