Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <fstream>
- #include<iomanip>
- using namespace std;
- int**create(ifstream &f, int n, int m)
- {
- int i, j;
- int**a = new int *[n];
- for (i = 0; i < m; i++)
- a[i] = new int[n];
- for (i = 0; i < n; i++)
- {
- for (j = 0; j < m; j++)
- f >> a[i][j];
- }
- return a;
- }
- void show(ofstream &f, int**x, int n, int m)
- {
- int i, j;
- for (i = 0; i < n; i++)
- {
- for (j = 0; j < m; j++)
- f << setw(5) << x[i][j];
- f << endl;
- }
- }
- void sum(int**x, int**y, int**z, int n, int m)
- {
- int i, j;
- for (i = 0; i < n; i++)
- for (j = 0; j < m; j++)
- z[i][j] = x[i][j] + y[i][j];
- }
- void difference(int**x, int**y, int**z, int n, int m)
- {
- int i, j;
- for (i = 0; i < n; i++)
- for (j = 0; j < m; j++)
- z[i][j] = x[i][j] + (-1)*y[i][j];
- }
- void mult(ofstream &f, int**x, int**y, int n, int m, int n1, int m1)
- {
- if (m != n1)
- cout << "Can't find mult!";
- else
- {
- int i, j, **z;
- z = new int*[n];
- for (i = 0; i < m1; i++)
- z[i] = new int[m1];
- for (i = 0; i < n; i++)
- {
- for (j = 0; j < m1; j++)
- {
- z[i][j] = 0;
- for (int k = 0; k < m; k++)
- z[i][j] += x[i][k] * y[k][j];
- f << z[i][j] << " ";
- }
- f << endl;
- }
- }
- }
- void kmult(ofstream &f, int**x, int n, int m)
- {
- int i, j, k;
- cout << "Vvedite k=";
- cin >> k;
- for (i = 0; i < n; i++)
- {
- for (j = 0; j < m; j++)
- {
- x[i][j] *= k;
- f << x[i][j] << " ";
- }
- f << endl;
- }
- }
- int main()
- {
- ifstream matr("matrica.txt");
- ofstream r("rezultat.txt");
- if (!matr)
- {
- cout << "Can't open matrica.txt";
- exit(-1);
- }
- int n, m, n1, m1;
- cout << "Vvedite n=";
- cin >> n;
- cout << "Vvedite m=";
- cin >> m;
- cout << "VVedite n1=";
- cin >> n1;
- cout << "Vvedite m1=";
- cin >> m1;
- int**a, **b, **c;
- a = create(matr, n, m);
- b = create(matr, n1, m1);
- c = new int*[n];
- int i;
- for (i = 0; i < m; i++)
- c[i] = new int[n];
- matr.close();
- r << "Mult a*b=" << endl;
- mult(r, a, b, n, m, n1, m1);
- r << "Kmult k*a=" << endl;
- kmult(r, a, n, m);
- r << "Kmult k*b=" << endl;
- kmult(r, b, n1, m1);
- r << endl;
- if (n == n1 && m == m1)
- {sum(a, b, c, n, m);
- r << "Summa a+b=" << endl;
- show(r, c, n, m);
- difference(a, b, c, n, m);
- r << "Difference a-b=" << endl;
- show(r, c, n, m);
- r.close();
- }
- else
- cout << "Can't find sum and difference";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement