mirror of
https://github.com/szymon-jozef/ZUT-notatki.git
synced 2026-09-07 12:10:40 +02:00
Compare commits
5 Commits
81ece7137a
...
d38af389b6
| Author | SHA1 | Date | |
|---|---|---|---|
| d38af389b6 | |||
| fc780b0220 | |||
| 59d771de82 | |||
| 3a5efebd4b | |||
| c9945fb1d3 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -3,6 +3,6 @@
|
||||
.trash
|
||||
.idea
|
||||
*.out
|
||||
*/out
|
||||
.Rhistory
|
||||
main
|
||||
|
||||
|
||||
@@ -1,3 +1,76 @@
|
||||
# Spis tematów
|
||||
Oto uporządkowana lista tematów, które pojawiają się w przesłanych przez Ciebie notatkach. Zostały one pogrupowane w logiczne kategorie:
|
||||
|
||||
**1. Podstawy rachunku prawdopodobieństwa i zdarzenia losowe**
|
||||
|
||||
- Przestrzeń zdarzeń elementarnych (Ω) i pojedyncze zdarzenia elementarne (ω)
|
||||
|
||||
- Zbiory przeliczalne
|
||||
|
||||
- Działania na zbiorach i zdarzeniach (dopełnienie, suma, przekrój)
|
||||
|
||||
- Zdarzenie niemożliwe i zdarzenia wykluczające się
|
||||
|
||||
- Przestrzenie mierzalne i zbiory borelowskie
|
||||
|
||||
|
||||
**2. Definicje i miary prawdopodobieństwa**
|
||||
|
||||
- Klasyczna definicja prawdopodobieństwa (Laplace'a) dla przestrzeni skończonych
|
||||
|
||||
- Miara Lebesgue'a (odnosząca się do długości, pola i objętości)
|
||||
|
||||
- Prawdopodobieństwo geometryczne i pojęcie miary bezatomowej
|
||||
|
||||
|
||||
**3. Zmienna losowa i statystyka opisowa (charakterystyki zmiennej)**
|
||||
|
||||
- Definicja zmiennej losowej jako funkcji
|
||||
|
||||
- Dystrybuanta i jej własności (ciągłość, granice w nieskończoności)
|
||||
|
||||
- Miary rozproszenia: Wariancja, odchylenie standardowe (σ) i współczynnik zmienności
|
||||
|
||||
- Miary położenia: Kwantyle, mediana, kwartyle, centyle (oraz ich praktyczne zastosowanie, np. do mierzenia długości dziecka)
|
||||
|
||||
- Miary asymetrii rozkładu (np. wydłużony ogon, na przykładzie rozkładu płac)
|
||||
|
||||
- Wartości skrajne (konieczność ich odrzucania przy pomiarach)
|
||||
|
||||
- Dominanta (moda)
|
||||
|
||||
|
||||
**4. Rozkłady prawdopodobieństwa**
|
||||
|
||||
- **Rozkłady dyskretne (skokowe):**
|
||||
|
||||
- Rozkład zero-jedynkowy (0-1)
|
||||
|
||||
- Rozkład dwumianowy (wzmianka o trójkącie Pascala)
|
||||
|
||||
- Rozkład geometryczny (ciąg geometryczny z parametrami _p_ i _q_)
|
||||
|
||||
- Rozkład Poissona
|
||||
|
||||
- **Zmienne i rozkłady typu ciągłego:**
|
||||
|
||||
- Związek dystrybuanty z całką (pole pod wykresem)
|
||||
|
||||
- Rozkład wykładniczy
|
||||
|
||||
- Rozkład normalny (funkcja Gaussa)
|
||||
|
||||
|
||||
**5. Wektory losowe i zagadnienia zaawansowane**
|
||||
|
||||
- Niezależność zmiennych losowych
|
||||
|
||||
- Wektory losowe (w tym wektory typu skokowego) i ich dystrybuanty
|
||||
|
||||
- Charakterystyki wektora losowego
|
||||
|
||||
- Twierdzenia graniczne (jako temat zamykający)
|
||||
|
||||
# Zdarzenia losowe
|
||||
## Jak wygląda przestrzeń zdarzeń elementarnych?
|
||||
zdarzenie – $\omega$
|
||||
@@ -122,3 +195,27 @@ Dystrybuanta wektora losowego
|
||||
|
||||
Wektor losowy typu skokowego
|
||||
|
||||
# Charakterystyki wektora losowego centralne, twierdzenia graniczne i elementy statystyki opisowej
|
||||
Ostatni temat z prawdopodobieństwa.
|
||||
|
||||
Zmienne dwuwymiarowe.
|
||||
|
||||
Kowariancja jest symetryczna
|
||||
|
||||
Kowariancja to miara określające siłę oraz zależność dwóch zmiennych losowych.
|
||||
|
||||
Suma zmiennych to suma wariancji +- suma kowariancji
|
||||
|
||||
Jeżeli zmienne X i Y są niezależne to kowariancja jest 0. Tego twierdzenia nie można odwrócić.
|
||||
|
||||
Współczynnik korelacji liniowej Pearsona.
|
||||
|
||||
Macierz kowariancji (momentów)
|
||||
|
||||
Nie rozumiem co tu się dzieje.
|
||||
|
||||
Centralne twierdzenie graniczne — jeśli ciąg zmiennych losowych $Y_{n\space n \in N}$ jest zbieżny według rozkładu do zmiennej losowej Y o rozkładzie $N(0,1)$
|
||||
|
||||
Twierdzenie Lindberga - Levy'ego i Moivre'a - Laplace'a
|
||||
|
||||
Elementy statystyki opisowej
|
||||
|
||||
60
uczelnia/2_semestr/matematyka_stosowana/laby/lab_5.R
Normal file
60
uczelnia/2_semestr/matematyka_stosowana/laby/lab_5.R
Normal file
@@ -0,0 +1,60 @@
|
||||
# Zadanie 1
|
||||
A = matrix(c(1, 1, qnorm(0.3), qnorm(0.75)), 2, 2)
|
||||
B = c(5281.21, 9090.9)
|
||||
wynik = solve(A, B)
|
||||
m = wynik[1]
|
||||
sigma = wynik[2]
|
||||
print(m)
|
||||
print(sigma)
|
||||
|
||||
# a)
|
||||
# P(x > 7800)
|
||||
pnorm(7800, m, sigma, F) * 100 # 39.42534
|
||||
|
||||
# b)
|
||||
round(qnorm(15/100, m, sigma),2) # 3654.13
|
||||
|
||||
# zadanie 2
|
||||
A = matrix(c(1, 1, qnorm(0.8), qnorm(0.44)), 2, 2)
|
||||
B = c(120, 90)
|
||||
wynik = solve(A, B)
|
||||
|
||||
m = wynik[1]
|
||||
sigma = wynik[2]
|
||||
|
||||
# a)
|
||||
# P(X < 45)
|
||||
pnorm(45, m, sigma) # 0.05051767
|
||||
|
||||
# b)
|
||||
qnorm(0.13, m, sigma, F) # 128.6069
|
||||
|
||||
# zadanie 3
|
||||
m = 165.5
|
||||
sig = (155 - m)/qnorm((1 - 0.93)/2)
|
||||
round(pnorm(170, m, sig, F) * 500)
|
||||
|
||||
# zadanie 4
|
||||
A = matrix(c(1, 1, qnorm(11/12), qnorm(2/12)), 2, 2)
|
||||
B = c(0.9, 0.5)
|
||||
wynik = solve(A, B)
|
||||
m = wynik[1]
|
||||
sigma = wynik[2]
|
||||
|
||||
qnorm(0.1, m, sig, F)
|
||||
|
||||
# zadanie 5
|
||||
m = 4001.50
|
||||
sig = (3503 - m)/qnorm((1 - 0.15)/2)
|
||||
qnorm(0.25, m, sig, F)
|
||||
|
||||
# zadanie 6
|
||||
# 45 < X < 55
|
||||
|
||||
A = matrix(c(1, 1, qnorm(2/524), qnorm(517/524)), 2, 2)
|
||||
B = c(17, 70)
|
||||
wynik = solve(A,B)
|
||||
m = wynik[1]
|
||||
sig = wynik[2]
|
||||
|
||||
pnorm(55, m, sig) - pnorm(45, m, sig)
|
||||
BIN
uczelnia/2_semestr/programowanie/laby/kol1
Executable file
BIN
uczelnia/2_semestr/programowanie/laby/kol1
Executable file
Binary file not shown.
29
uczelnia/2_semestr/programowanie/laby/kolokwium1.cpp
Normal file
29
uczelnia/2_semestr/programowanie/laby/kolokwium1.cpp
Normal file
@@ -0,0 +1,29 @@
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
class Pole_Szymon_Prusiewicz {
|
||||
public:
|
||||
int x, y;
|
||||
Pole_Szymon_Prusiewicz(int x, int y) : x(x), y(y) {
|
||||
cout << x << ' ' << y << endl;
|
||||
}
|
||||
~Pole_Szymon_Prusiewicz() { cout << "koniec zycia" << endl; }
|
||||
void oblicz_pole() { cout << "Pole wynosi: " << x * y << endl; }
|
||||
|
||||
Pole_Szymon_Prusiewicz &operator=(const Pole_Szymon_Prusiewicz &inne_pole) {
|
||||
cout << "Przypisanie" << endl;
|
||||
if (this != &inne_pole) {
|
||||
x = inne_pole.x;
|
||||
y = inne_pole.y;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
int main() {
|
||||
Pole_Szymon_Prusiewicz p1(1, 2);
|
||||
Pole_Szymon_Prusiewicz p2 = p1;
|
||||
p1.oblicz_pole();
|
||||
return 0;
|
||||
}
|
||||
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/1
Executable file
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/1
Executable file
Binary file not shown.
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/10
Executable file
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/10
Executable file
Binary file not shown.
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/3
Executable file
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/3
Executable file
Binary file not shown.
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/4
Executable file
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/4
Executable file
Binary file not shown.
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/5
Executable file
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/5
Executable file
Binary file not shown.
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/6
Executable file
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/6
Executable file
Binary file not shown.
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/7
Executable file
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/7
Executable file
Binary file not shown.
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/8
Executable file
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/8
Executable file
Binary file not shown.
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/9
Executable file
BIN
uczelnia/2_semestr/programowanie/laby/lab5/out/9
Executable file
Binary file not shown.
15
uczelnia/2_semestr/programowanie/laby/lab5/zad1.cpp
Normal file
15
uczelnia/2_semestr/programowanie/laby/lab5/zad1.cpp
Normal file
@@ -0,0 +1,15 @@
|
||||
// Prześledź krok po kroku poniższy kod. Dla każdej linii zanotuj wartość ptr, *ptr
|
||||
// (jeśli dostępna) oraz czy pamięć jest zaalokowana.
|
||||
|
||||
#include <iostream>
|
||||
|
||||
int main() {
|
||||
int *ptr = nullptr; // deklarujemy wskaźnik wskazujący na nic
|
||||
ptr = new int(5); // wskaźnik wskazuje teraz na wartość 5. jest ona za
|
||||
// alokowana na stercie
|
||||
std::cout << *ptr << '\n'; // wyświetla 5
|
||||
*ptr = *ptr + 3; // zwiększamy wartość o 3
|
||||
std::cout << *ptr << '\n'; // wyświetla 8
|
||||
delete ptr; // usuwa liczbę na którą wskazuje wskaźnik
|
||||
ptr = nullptr; // wskaźnik teraz na nic nie wskazuje
|
||||
}
|
||||
59
uczelnia/2_semestr/programowanie/laby/lab5/zad10.cpp
Normal file
59
uczelnia/2_semestr/programowanie/laby/lab5/zad10.cpp
Normal file
@@ -0,0 +1,59 @@
|
||||
// Przepisz rozwiązanie zadania 9, używając std::unique_ptr<double[]> zamiast su
|
||||
// rowego wskaźnika. Sprawdź, co musisz zmienić i co działa tak samo.
|
||||
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
|
||||
double obliczSrednia(std::unique_ptr<double[]> &tab, int n) {
|
||||
double sum = 0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
sum += tab[i];
|
||||
}
|
||||
return sum / n;
|
||||
}
|
||||
|
||||
double znajdzMin(std::unique_ptr<double[]> &tab, int n) {
|
||||
double min = 6, x;
|
||||
for (int i = 0; i < n; i++) {
|
||||
x = tab[i];
|
||||
min = x < min ? x : min;
|
||||
}
|
||||
return min;
|
||||
}
|
||||
|
||||
double znajdzMax(std::unique_ptr<double[]> &tab, int n) {
|
||||
double max = 0, x;
|
||||
for (int i = 0; i < n; i++) {
|
||||
x = tab[i];
|
||||
max = x > max ? x : max;
|
||||
}
|
||||
return max;
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::cout << "Ile chcesz podać ocen: " << std::endl;
|
||||
int n;
|
||||
std::cin >> n;
|
||||
|
||||
std::unique_ptr<double[]> arr = std::make_unique<double[]>(n);
|
||||
|
||||
// wypełniamy tablicę
|
||||
for (int i = 0; i < n; i++) {
|
||||
std::cout << "Podaj ocenę numer " << i + 1 << ' ';
|
||||
std::cin >> arr[i];
|
||||
}
|
||||
double max = znajdzMax(arr, n);
|
||||
double min = znajdzMin(arr, n);
|
||||
double avg = obliczSrednia(arr, n);
|
||||
std::string comment = avg > 3.5 ? "Uczeń zaliczył :D" : "Uczeń oblał D:";
|
||||
std::cout << "=== Oceny ===" << std::endl;
|
||||
for (int i = 0; i < n; i++) {
|
||||
std::cout << arr[i] << ' ';
|
||||
}
|
||||
std::cout << std::endl;
|
||||
|
||||
std::cout << "=== Informacje ===" << std::endl;
|
||||
std::cout << "Największa ocena: " << max << '\n' << "Najmniejsza ocena: " << min << '\n' << "Średnia: " << avg << '\n' << comment << std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
21
uczelnia/2_semestr/programowanie/laby/lab5/zad2.cpp
Normal file
21
uczelnia/2_semestr/programowanie/laby/lab5/zad2.cpp
Normal file
@@ -0,0 +1,21 @@
|
||||
// Poniższy kod zawiera kilka błędów. Wskaż każdy z nich i zaproponuj poprawkę
|
||||
|
||||
void funkcja() {
|
||||
int *a = new int(
|
||||
10); // do wskaźnika a przypisujemy wartość 10 zaalokowaną na stercie
|
||||
int *b = new int(
|
||||
20); // do wskaźnika b przypisujemy wartość 20 zaalokowaną na stercie
|
||||
// a = b; // (1) // do wskaźnika a przypisujemy adres wskaźnika b
|
||||
// teraz oba wskaźniki wskazują na 20.
|
||||
|
||||
// delete a; // (2) // usuwa wartość 20 ze sterty
|
||||
// delete b; // (3) // usuwa wartość 20 ze sterty
|
||||
|
||||
// poprawa: zamiast przypisywać adresy przypiszmy wartości na które wskazują!
|
||||
*a = *b;
|
||||
delete a;
|
||||
delete b;
|
||||
// dodatkowo pokażmy że nie wskazują teraz na nic
|
||||
a = nullptr;
|
||||
b = nullptr;
|
||||
}
|
||||
29
uczelnia/2_semestr/programowanie/laby/lab5/zad3.cpp
Normal file
29
uczelnia/2_semestr/programowanie/laby/lab5/zad3.cpp
Normal file
@@ -0,0 +1,29 @@
|
||||
// Napisz program, który wczytuje od użytkownika liczbę n, alokuje tablicę n lic
|
||||
// b całkowitych na stercie, wczytuje n wartości, oblicza i wypisuje ich
|
||||
// sumę, a następnie poprawnie zwalnia pamięć.
|
||||
|
||||
#include <iostream>
|
||||
|
||||
int sumuj(int *arr, int n) {
|
||||
int sum = 0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
sum += *(arr + i);
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
std::cout << "Podaj rozmiar tablicy: ";
|
||||
int *arr = new int[n];
|
||||
std::cin >> n;
|
||||
for (int i = 0; i < n; i++) {
|
||||
std::cout << "Podaj wartość numer: " << i + 1 << ": ";
|
||||
std::cin >> *(arr + i);
|
||||
}
|
||||
|
||||
std::cout << "Suma tych liczb to: " << sumuj(arr, n);
|
||||
delete[] arr;
|
||||
arr = nullptr;
|
||||
return 0;
|
||||
}
|
||||
28
uczelnia/2_semestr/programowanie/laby/lab5/zad4.cpp
Normal file
28
uczelnia/2_semestr/programowanie/laby/lab5/zad4.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
// Napisz funkcję o poniższej sygnaturze. Zaalokuj tablicę, wypełnij ją kole
|
||||
// nymi wielokrotnościami
|
||||
// wartości krok i zwróć wskaźnik. Pamiętaj, że wywołujący jest odpowiedzialny za del
|
||||
// te[].
|
||||
|
||||
#include <iostream>
|
||||
|
||||
int *generujTableau(int n, int krok) {
|
||||
int *arr = new int[n];
|
||||
for (int i = 0; i < n; i++) {
|
||||
*(arr + i) = krok * i;
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
||||
void pokazTableau(int *arr, int n) {
|
||||
for (int i = 0; i < n; i++) {
|
||||
std::cout << *(arr + i) << ' ';
|
||||
}
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int *arr = generujTableau(5, 3);
|
||||
pokazTableau(arr, 5);
|
||||
}
|
||||
|
||||
// Przykład: generujTableau(5, 3) zwraca {0, 3, 6, 9, 12}
|
||||
17
uczelnia/2_semestr/programowanie/laby/lab5/zad5.cpp
Normal file
17
uczelnia/2_semestr/programowanie/laby/lab5/zad5.cpp
Normal file
@@ -0,0 +1,17 @@
|
||||
// Uzupełnij program i sprawdź zachowanie. Wyjaśnij, dlaczego wyniki mogą się różn
|
||||
// ić.
|
||||
|
||||
#include <iostream>
|
||||
|
||||
void podwojWartoscia(int x) { x *= 2; }
|
||||
void podwojWskaznikiem(int *p) { *p *= 2; }
|
||||
|
||||
int main() {
|
||||
int *q = new int(5);
|
||||
podwojWartoscia(*q);
|
||||
std::cout << *q << '\n'; // co zostanie wypisane? // 5
|
||||
podwojWskaznikiem(q);
|
||||
std::cout << *q << '\n'; // co zostanie wypisane? // 10
|
||||
delete q;
|
||||
// wyniki różnią się, bowiem w podwojeniu wartością mnożymy lokalną kopię argumentu razy 2, a w podwojeniu wskaźnikiem mnożymy wartość przetrzymywaną w miejscu, na które wskazuje wskaźnik
|
||||
}
|
||||
14
uczelnia/2_semestr/programowanie/laby/lab5/zad6.cpp
Normal file
14
uczelnia/2_semestr/programowanie/laby/lab5/zad6.cpp
Normal file
@@ -0,0 +1,14 @@
|
||||
// Poniższy fragment ma błąd logiczny i błąd zarządzania pamięcią. Zidentyfikuj oba i n
|
||||
// apisz poprawną wersję.
|
||||
|
||||
int *stworzTablice(int n) {
|
||||
// int tab[n]; // (1) — co jest nie tak? // alokuje na stosie - błąd
|
||||
int *tab = new int[n]; // alokujemy na stercie
|
||||
for (int i = 0; i < n; i++)
|
||||
tab[i] = i;
|
||||
return tab; // (2) — co jest nie tak? // poprzednio zwracaliśmy adres lokalnej zm
|
||||
// ennej, teraz zwracamy adres danych zaalokowanych na stercie
|
||||
// i jest super
|
||||
}
|
||||
|
||||
int main() { return 0; }
|
||||
17
uczelnia/2_semestr/programowanie/laby/lab5/zad7.cpp
Normal file
17
uczelnia/2_semestr/programowanie/laby/lab5/zad7.cpp
Normal file
@@ -0,0 +1,17 @@
|
||||
// Przepisz poniższy kod, zastępując ręczną alokację obiektem unique_ptr.
|
||||
// Upewnij się, że nie musisz pisać delete.
|
||||
|
||||
// Wersja z surowym wskaźnikiem:
|
||||
// double *wynik = new double(3.14);
|
||||
// std::cout << *wynik << '\n';
|
||||
// delete wynik;
|
||||
// Twoja wersja z unique_ptr:
|
||||
// ...
|
||||
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
|
||||
int main() {
|
||||
std::unique_ptr<double> wynik = std::make_unique<double>(3.14);
|
||||
std::cout << *wynik << '\n';
|
||||
}
|
||||
17
uczelnia/2_semestr/programowanie/laby/lab5/zad8.cpp
Normal file
17
uczelnia/2_semestr/programowanie/laby/lab5/zad8.cpp
Normal file
@@ -0,0 +1,17 @@
|
||||
// Prześledź poniższy kod. Przed każdym std::cout przewidź wartość use_count(), a nast
|
||||
// pnie uruchom program i porównaj
|
||||
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
|
||||
int main() {
|
||||
auto a = std::make_shared<int>(42);
|
||||
std::cout << a.use_count() << '\n'; // 1
|
||||
{
|
||||
auto b = a;
|
||||
std::cout << a.use_count() << '\n'; // 2
|
||||
auto c = a;
|
||||
std::cout << a.use_count() << '\n'; // 3
|
||||
}
|
||||
std::cout << a.use_count() << '\n'; // 1
|
||||
}
|
||||
67
uczelnia/2_semestr/programowanie/laby/lab5/zad9.cpp
Normal file
67
uczelnia/2_semestr/programowanie/laby/lab5/zad9.cpp
Normal file
@@ -0,0 +1,67 @@
|
||||
// Napisz program, który:
|
||||
// • pyta użytkownika o liczbę ocen n
|
||||
// • dynamicznie alokuje tablicę n liczb double
|
||||
// • wczytuje oceny od użytkownika
|
||||
// • oblicza i wypisuje średnią, ocenę minimalną i maksymalną
|
||||
// • wypisuje informację, czy student zaliczył (średnia >= 3.0)
|
||||
// • poprawnie zwalnia pamięć
|
||||
// Użyj funkcji pomocniczych: obliczSrednia(double* tab, int n),
|
||||
// znajdzMin(double* tab, int n), znajdzMax(double* tab, int n).
|
||||
|
||||
#include <iostream>
|
||||
|
||||
double obliczSrednia(double *tab, int n) {
|
||||
double sum = 0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
sum += *(tab + i);
|
||||
}
|
||||
return sum / n;
|
||||
}
|
||||
|
||||
double znajdzMin(double *tab, int n) {
|
||||
double min = 6, x;
|
||||
for (int i = 0; i < n; i++) {
|
||||
x = *(tab + i);
|
||||
min = x < min ? x : min;
|
||||
}
|
||||
return min;
|
||||
}
|
||||
|
||||
double znajdzMax(double *tab, int n) {
|
||||
double max = 0, x;
|
||||
for (int i = 0; i < n; i++) {
|
||||
x = *(tab + i);
|
||||
max = x > max ? x : max;
|
||||
}
|
||||
return max;
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::cout << "Ile chcesz podać ocen: " << std::endl;
|
||||
int n;
|
||||
std::cin >> n;
|
||||
|
||||
double *arr = new double[n];
|
||||
|
||||
// wypełniamy tablicę
|
||||
for (int i = 0; i < n; i++) {
|
||||
std::cout << "Podaj ocenę numer " << i + 1 << ' ';
|
||||
std::cin >> *(arr + i);
|
||||
}
|
||||
double max = znajdzMax(arr, n);
|
||||
double min = znajdzMin(arr, n);
|
||||
double avg = obliczSrednia(arr, n);
|
||||
std::string comment = avg > 3.5 ? "Uczeń zaliczył :D" : "Uczeń oblał D:";
|
||||
std::cout << "=== Oceny ===" << std::endl;
|
||||
for (int i = 0; i < n; i++) {
|
||||
std::cout << *(arr + i) << ' ';
|
||||
}
|
||||
std::cout << std::endl;
|
||||
|
||||
std::cout << "=== Informacje ===" << std::endl;
|
||||
std::cout << "Największa ocena: " << max << '\n' << "Najmniejsza ocena: " << min << '\n' << "Średnia: " << avg << '\n' << comment << std::endl;
|
||||
delete[] arr;
|
||||
arr = nullptr;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -10,4 +10,6 @@ Postać standardowa funkcji boolowskiej może być sumacyjna lub iloczynowa, mog
|
||||
|
||||
Nudy gówno tralalalalalal
|
||||
|
||||
rlc sratata
|
||||
rlc sratata
|
||||
|
||||
Czas propagacji na wykresie czasu to przesunięcie zielonej linii.
|
||||
Reference in New Issue
Block a user