Skip to content

Commit b9264d4

Browse files
authored
Add files via upload
1 parent 90f788b commit b9264d4

File tree

1 file changed

+180
-0
lines changed

1 file changed

+180
-0
lines changed
Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
/*
2+
========================================================
3+
Krzysztof Matuszewski
4+
informatyka spec. sieci teleinformatyczne, rok I sem. II
5+
Podstawy programowania 2 - Laboratorium #2 - Zadanie 1
6+
========================================================
7+
*/
8+
9+
#include <iostream>
10+
#include <ctime>
11+
#include <cstdlib>
12+
#include <math.h>
13+
#include <iomanip>
14+
15+
using namespace std;
16+
17+
void losuj(float tablica[][8], int rozmiar);
18+
void wypisz(float tablica[][8], int rozmiar);
19+
float liczSrednia(float tablica[][8], int rozmiar);
20+
21+
int main() {
22+
// potrzebne do pseudolosowania
23+
srand(time(NULL));
24+
25+
26+
// p.0 deklarowanie tablic
27+
float A[8][8], B[5][8], C[8], D[5];
28+
29+
30+
// p.1 wylosowanie elementow tablic A i B
31+
losuj(A, 8);
32+
losuj(B, 5);
33+
34+
35+
// p.2 wypisanie elementow tablic A i B
36+
cout << "Tablica A:" << endl;
37+
wypisz(A, 8);
38+
cout << endl << "Tablica B:" << endl;
39+
wypisz(B, 5);
40+
41+
42+
// p.3 srednia arytmetyczna
43+
cout << endl << endl << "Srednia elementow tablicy A pod jej glowna przekatna: " << liczSrednia(A, 8) << endl;
44+
45+
46+
// p.4 jednowymiarowa tablica C, bedaca sumami kolumn tablicy B
47+
// wypelnienie tablicy C zerami
48+
for (int i = 0; i < 8; i++) {
49+
C[i] = 0;
50+
}
51+
52+
// wypelnienie tablicy C sumami
53+
for (int j = 0; j < 8; j++) {
54+
for (int i = 0; i < 5; i++) {
55+
C[j] += B[i][j];
56+
}
57+
}
58+
59+
// wypisanie tablicy C
60+
cout << endl << "Tablica C zawierajaca sumy kolumn tablicy B:" << endl;
61+
for (int i = 0; i < 8; i++) {
62+
cout << setw(6) << C[i] << " ";
63+
}
64+
cout << endl;
65+
66+
67+
// p.5 jednowymiarowa tablica D, bedaca elementami minimalnymi wierszy tablicy B
68+
// wypelnienie tablicy D zerami
69+
for (int i = 0; i < 5; i++) {
70+
D[i] = 0;
71+
}
72+
73+
// wypelnienie tablicy D najmniejszymi elementami wierszy z tablicy B
74+
for (int i = 0; i < 5; i++) {
75+
float najmniejszy = B[i][0];
76+
77+
for (int j = 0; j < 8; j++) {
78+
//cout << B[i][0] << " "; // wypisz wszystkie elementy z danej kolumny tablicy B
79+
if (B[i][j] < najmniejszy) {
80+
najmniejszy = B[i][j];
81+
}
82+
}
83+
//cout << najmniejszy; // wypisz najmniejszy element z danej kolumny tablicy B
84+
D[i] = najmniejszy;
85+
}
86+
87+
// wypisanie tablicy D
88+
cout << endl << "Tablica D zawierajaca minimalne elementy wierszow tablicy B:" << endl;
89+
for (int i = 0; i < 5; i++) {
90+
cout << setw(6) << D[i] << " ";
91+
}
92+
cout << endl;
93+
94+
95+
96+
// p.6 uporzadkowanie malejaco elementow na przekatnej w tablicy A, wypisanie tablicy A
97+
float tymczasowa[8]; // stworzenie tymczasowej tablicy do przechowywania elementow na przekatnej i operacji na nich
98+
99+
// wyciagniecie do tymczasowej tablicy liczb z przekatnej tablicy A
100+
for (int i = 0; i < 8; i++) {
101+
for (int j = 0; j < 8; j++) {
102+
if (i == j) {
103+
//cout << A[i][j] << " "; // wypisz liczby z przekatnej
104+
tymczasowa[i] = A[i][j];
105+
}
106+
}
107+
}
108+
109+
// sortowanie malejace tymczasowej tablicy
110+
for (int j = 0; j < 8; j++) { // oczywiscie niewydajne ale proste sortowanie babelkowe
111+
for (int i = 0; i < 8; i++) {
112+
if (tymczasowa[i + 1] > tymczasowa[i])
113+
{
114+
// zamiana miejscami
115+
float t = tymczasowa[i];
116+
tymczasowa[i] = tymczasowa[i + 1];
117+
tymczasowa[i + 1] = t;
118+
}
119+
}
120+
}
121+
122+
// wpisanie do tablicy A uszeregowanej przekatnej z tymczasowej tablicy
123+
for (int i = 0; i < 8; i++) {
124+
for (int j = 0; j < 8; j++) {
125+
if (i == j) {
126+
A[i][j] = tymczasowa[i];
127+
}
128+
}
129+
}
130+
cout << endl;
131+
cout << "Tablica A z uporzadkowanymi elementami na przekatnej malejaco:" << endl;
132+
wypisz(A, 8);
133+
134+
135+
136+
return 0;
137+
}
138+
// do pkt 1
139+
void losuj(float tablica[][8], int rozmiar) {
140+
141+
for (int i = 0; i < rozmiar; i++) {
142+
143+
for (int j = 0; j < 8; j++) {
144+
tablica[i][j] = round((rand() % 51)) / 10.0;
145+
//cout << tablica[i][j] << " ";
146+
}
147+
//cout << endl;
148+
}
149+
}
150+
151+
// do pkt 2
152+
void wypisz(float tablica[][8], int rozmiar) {
153+
154+
for (int i = 0; i < rozmiar; i++) {
155+
for (int j = 0; j < 8; j++) {
156+
cout << setw(6) << tablica[i][j] << " ";
157+
}
158+
cout << endl;
159+
}
160+
}
161+
162+
// do pkt 3
163+
float liczSrednia(float tablica[][8], int rozmiar) {
164+
float ilosc = 0; // ilosc elementow znajdujacych sie pod glowna przekatna
165+
float suma = 0; // suma ich wartosci
166+
float srednia = 0; // srednia arytmetyczn tych elementow
167+
168+
for (int i = 0; i < rozmiar; i++) {
169+
for (int j = 0; j < i; j++) {
170+
suma += tablica[i][j];
171+
172+
ilosc++;
173+
//cout << " (" << i << ',' << j << ") "; // do wypisywania wspolrzednych elementow pod przekatna(uwaga do pkt3)
174+
//cout << tablica[i][j] << ", "; // do wypisywania poszczegolnego elementu
175+
}
176+
}
177+
srednia = suma / ilosc;
178+
return srednia;
179+
}
180+

0 commit comments

Comments
 (0)