Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Karol.cpp : main project file.
- #include "stdafx.h"
- #include <iostream>
- #include <conio.h>
- #include <math.h>
- using namespace std;
- #define N 20
- /*
- int a = 5;
- int * wsk = &a;
- a = 7;
- *wsk = 7;
- */
- struct Z
- {
- float re;
- float im;
- };
- void wypisz_z_1(Z z); //przez wartość
- void wypisz_z_2(const Z * z); //przez wskaźnik
- void wypisz_z_3(const Z & z); //przez referencję
- Z wpisz_z_1(); //przez return
- void wpisz_z_2(Z * z); //przez wskaźnik
- void wpisz_z_3(Z & z); //przez referencję
- void wpisz_macierz(Z M[][N], int w, int k);
- void wyswietl_macierz(Z M[][N], int w, int k);
- int f1(Z M[][N], int w, int k, int *licz_2, Z & suma);
- Z f2(Z M[][N], int w, int k); //wylicza średnią elementów naprzekątnej \
- int main()
- {
- /*
- Z z1, z2, z3;
- z1 = wpisz_z_1();
- wpisz_z_2(&z2);
- wpisz_z_3(z3);
- wypisz_z_1(z1);
- cout << endl;
- wypisz_z_2(&z2);
- cout << endl;
- wypisz_z_3(z3);
- */
- Z M[N][N];
- int w, k;
- do {
- cout << "Podaj wymiar macierzy M(w,k)." << endl;
- cout << "w = ";
- cin >> w;
- cout << "k = ";
- cin >> k;
- } while (!(w > 0 && k > 0 && w <= N && k <= N));
- wpisz_macierz(M, w, k);
- cout << endl;
- wyswietl_macierz(M, w, k);
- _getch();
- return 0;
- }
- void wypisz_z_1(Z z)
- {
- if (z.im < 0) cout << z.re << " - " << -z.im << "j";
- else cout << z.re << " + " << z.im << "j";
- }
- void wypisz_z_2(const Z * z)
- {
- if ((*z).im < 0) cout << (*z).re << " - " << -(*z).im << "j";
- else cout << (*z).re << " + " << (*z).im << "j";
- }
- void wypisz_z_3(const Z & z)
- {
- if (z.im < 0) cout << z.re << " - " << -z.im << "j";
- else cout << z.re << " + " << z.im << "j";
- }
- Z wpisz_z_1()
- {
- Z temp;
- cin >> temp.re;
- cin >> temp.im;
- return temp;
- }
- void wpisz_z_2(Z * z)
- {
- cin >> (*z).re;
- cin >> (*z).im;
- }
- void wpisz_z_3(Z & z)
- {
- cin >> z.re;
- cin >> z.im;
- }
- void wpisz_macierz(Z M[][N], int w, int k)
- {
- for (int i = 0; i < w; ++i)
- {
- for (int j = 0; j < k; ++j)
- {
- cout << "M(" << i + 1 << "," << j + 1 << ") = ";
- wpisz_z_3(M[i][j]);
- }
- }
- }
- void wyswietl_macierz(Z M[][N], int w, int k)
- {
- for (int i = 0; i < w; ++i)
- {
- for (int j = 0; j < k; ++j)
- {
- wypisz_z_3(M[i][j]);
- cout << "\t";
- }
- cout << endl;
- }
- }
- int f1(Z M[][N], int w, int k, int *licz_2, Z & suma)
- {
- int licz_1 = 0;
- *licz_2 = 0;
- suma.re = 0;
- suma.im = 0;
- for (int i = 0; i < w; ++i)
- {
- for (int j = 0; j < k; ++j)
- {
- if (M[i][j].re > 0)++licz_1; //zlicza liczby zepolone, których część re jest większa od 0
- if (M[i][j].im < 0)++*licz_2; //zlicza liczby zepolone, których część im jest mniejsza od 0
- if (M[i][j].re == 0 || M[i][j].im == 0) //sumuje liczby zespolone, których jedna z części jest równa 0
- {
- suma.re += M[i][j].re;
- suma.im += M[i][j].im;
- }
- }
- }
- return licz_1;
- }
- Z f2(Z M[][N], int w, int k)
- {
- Z suma, srednia;
- int il=0;
- suma.re = 0;
- suma.im = 0;
- if (w == k)
- {
- for (int i = 0; i < w; ++i)
- {
- suma.re += M[i][i].re;
- suma.im += M[i][i].im;
- ++il;
- }
- if (il > 0)
- {
- srednia.re = suma.re / il;
- srednia.im = suma.im / il;
- }
- else
- {
- srednia.im = 0;
- srednia.re = 0;
- }
- }
- else
- {
- srednia.im = 0;
- srednia.re = 0;
- }
- return srednia;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement