From 6270be58052031de47b98b07477509227f1f5e6c Mon Sep 17 00:00:00 2001 From: Szymon P Date: Tue, 5 May 2026 15:27:55 +0200 Subject: [PATCH] bla bla --- .../Prawdopodobieństwo.md | 39 ++++++++ .../matematyka_stosowana/laby/lab8.RData | Bin 0 -> 8821 bytes .../matematyka_stosowana/laby/lab_8.R | 84 ++++++++++++++++ .../programowanie/laby/lab9/zad1.cpp | 33 +++++++ .../programowanie/laby/lab9/zad10.cpp | 92 ++++++++++++++++++ .../programowanie/laby/lab9/zad2.cpp | 48 +++++++++ .../2_semestr/programowanie/laby/lab9/zad3.md | 7 ++ .../programowanie/laby/lab9/zad4.cpp | 39 ++++++++ .../programowanie/laby/lab9/zad5.cpp | 20 ++++ .../programowanie/laby/lab9/zad6.cpp | 27 +++++ .../programowanie/laby/lab9/zad7.cpp | 16 +++ .../programowanie/laby/lab9/zad8.cpp | 20 ++++ .../programowanie/laby/lab9/zad9.cpp | 69 +++++++++++++ 13 files changed, 494 insertions(+) create mode 100644 uczelnia/2_semestr/matematyka_stosowana/laby/lab8.RData create mode 100644 uczelnia/2_semestr/matematyka_stosowana/laby/lab_8.R create mode 100644 uczelnia/2_semestr/programowanie/laby/lab9/zad1.cpp create mode 100644 uczelnia/2_semestr/programowanie/laby/lab9/zad10.cpp create mode 100644 uczelnia/2_semestr/programowanie/laby/lab9/zad2.cpp create mode 100644 uczelnia/2_semestr/programowanie/laby/lab9/zad3.md create mode 100644 uczelnia/2_semestr/programowanie/laby/lab9/zad4.cpp create mode 100644 uczelnia/2_semestr/programowanie/laby/lab9/zad5.cpp create mode 100644 uczelnia/2_semestr/programowanie/laby/lab9/zad6.cpp create mode 100644 uczelnia/2_semestr/programowanie/laby/lab9/zad7.cpp create mode 100644 uczelnia/2_semestr/programowanie/laby/lab9/zad8.cpp create mode 100644 uczelnia/2_semestr/programowanie/laby/lab9/zad9.cpp diff --git a/uczelnia/2_semestr/matematyka_stosowana/Prawdopodobieństwo.md b/uczelnia/2_semestr/matematyka_stosowana/Prawdopodobieństwo.md index a90111b..3fb7294 100644 --- a/uczelnia/2_semestr/matematyka_stosowana/Prawdopodobieństwo.md +++ b/uczelnia/2_semestr/matematyka_stosowana/Prawdopodobieństwo.md @@ -250,3 +250,42 @@ Sprawdzenie efektywności umożliwia nierówność Rao-Cramera. # Istotna uwaga Przy interpretacji przedziału ufności nie należy stosować następującego sformułowania: „parametr z prawdopodobieństwem należy do przedziału w okolicach (...)”, ponieważ parametr nie zalezy od wyników próby losowej. Jest stałą. Zmienny jest natomiast przedział ufności, którego końce zależą od próby losowej. + +# Parametryczne testy istotności +Weryfikacja hipotezy dotyczącej wariancji +- Obszar krytyczny K – Lewo prawo, oba +Jakieś dziwne znaczki. +--- +Przykład: +$s = 1.5$ +$n = 10$ +$\alpha = 0.05$ +Teza: odchylenie standardowe pomiarów różni się od $1.0$ na poziomie istotności $0.05$ + +1) Hipotezy +$$ +\begin{align} +h_0 = \chi = 1 \\ +h_1 = \chi ≠ 1 +\end{align} +$$ + +2) stat testowa +$$ +\chi^2 = \frac{ns^2}{\sigma^2} = \frac{10 \times 1.5^2}{1^2} = 22.5 +$$ +3) Kwantyle +$$ +\begin{align} +\chi^2(\frac{\alpha}{2}, n - 1) = \chi&2(0.025, 9) = 2.700 \\ +\chi^2(1 -\frac{\alpha}{2}, n - 1) = \chi&2(0.0975, 9) = 19.023 +\end{align} +$$ +4) Obszar krytyczny +$$ +k = <0;2.700> u <10.023;∞> +$$ +5) Wniosek +$\chi^2-2.5 e K$, więc na poziomie istotności 0.05 odrzucamy $H_0$ + + diff --git a/uczelnia/2_semestr/matematyka_stosowana/laby/lab8.RData b/uczelnia/2_semestr/matematyka_stosowana/laby/lab8.RData new file mode 100644 index 0000000000000000000000000000000000000000..f9a09e486d5d2f1055bfd214c53b3a1322f252cc GIT binary patch literal 8821 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 literal 0 HcmV?d00001 diff --git a/uczelnia/2_semestr/matematyka_stosowana/laby/lab_8.R b/uczelnia/2_semestr/matematyka_stosowana/laby/lab_8.R new file mode 100644 index 0000000..b54eae6 --- /dev/null +++ b/uczelnia/2_semestr/matematyka_stosowana/laby/lab_8.R @@ -0,0 +1,84 @@ +# zadanie 1 + +p.opisowe = function(wektor) { + library(moments) + srednia = round(mean(wektor), 2) + mediana = round(median(wektor), 2) + kwartyl_dolny = round(quantile(wektor, 1/4), 2) + kwartyl_gorny = round(quantile(wektor, 3/4), 2) + minimum = round(min(wektor), 2) + maximum = round(max(wektor), 2) + odchylenie = round(sd(wektor), 2) + rozstep_empiryczny = round(max(wektor) - min(wektor), 2) + rozstep_kwartylowy = round(IQR(wektor), 2) + wspolczynnik_zmiennosci = round(sd(wektor)/mean(wektor) * 100, 2) + skosnosc = round(skewness(wektor), 2) + kurtoza = round(kurtosis(wektor), 2) + + rbind(srednia, mediana, kwartyl_dolny, kwartyl_gorny, minimum, maximum, odchylenie, rozstep_empiryczny, rozstep_kwartylowy, wspolczynnik_zmiennosci, skosnosc, kurtoza) +} + + + +# zadanie 2 +# współczynnik zmienności +# |V| <= 10% – słaba zmienność +# 10% < |V| <= 50% – umiarkowana zmienność +# |V| > 50% – duża zmienność + +# skośność (współczynnik asymetrii) +# |G| <= 0.5 – słaba +# 0.5 < |G| < 1 – umiarkowana +# |G| > 1 – duża silna asymetria + +# G < 0 – lewostronna +# G > 0 – prawostronna +# G = 0 – symetria (prawie się nie zdarza) + +# kurtoza (współczynnik skupienia/spłaczszczenia) +# K = 3 – rozkład normalny +# K < 3 – niższe skupienie niż w rozkładzie normalnym +# K > 3 – wyższe skupienie niż w rozkładzie normalnym + + +# a) +p.opisowe(Ankieta$Wzrost) +# kwartyl_dolny 174.00 – wzrost 25% mężczyzn nie przekroczył 174 +# odchylenie 7.16 – wzrost mężczyzn odchylał się od średniej wzrostu przeciętnie o około 7.16 +# wspolczynnik_zmiennosci 3.98 – udział odchylenia standardowego wzrostu w wartości średniej wynosi 3.98 co świadczy o tym, że mężczyźni są słabo zróżnicowani pod względem wzrostu +# skosnosc 0.20 – rozkład wzrostu mężczyzn charakteryzuje się słabą asymetrią prawostronną + +# b) +p.opisowe(Ankieta$Średnia) +# mediana 3.80 – średnia 50% studentów w badanej grupie nie przekroczyla 3.80 +# kwartyl_gorny 4.24 – średnia 75% studentów w badanej grupie nie przekroczyla 4.24 + +# c) +p.opisowe(Ankieta$L.godzin) +# srednia 7.07 czas spędzany przy komputerze w badanej grupie skupiał się wokół wartości 7.07 +# kurtoza 2.55 rozklad czasu spędzanego przy komputerze w badanej grupie charakteryzuje się niższym skupieniem wokół średniej wagi niż w rozkładzie normalnym. + +# zadanie 3 + +przedzial.odchylenie = function(x, uf) { + # 1 - a = uf + # a = 1 - uf + a = 1 - uf + n = length(x) + ss_z_daszkiem = var(x) + # s^2 = (n - 1)/n * ss_z_daszkiem + ss = (n - 1)/n * ss_z_daszkiem + + dolna = sqrt((n * ss) / qchisq(1 - (a / 2), n - 1)) + gorna = sqrt((n * ss) / qchisq(a / 2, n - 1)) + round(cbind(dolna, gorna), 4) +} + +przedzial.odchylenie(Ankieta.M$Wzrost, 0.95) + +# zadanie 4 +# a) +ggplot(data.frame(x=c(-4, 4)), aes(x))+ylab('Gęstość rozkładu studenta')+ stat_function(fun=dt, args=1, col='red', size=1) + stat_function(fun=dt, args=2, col='pink', size=1) + stat_function(fun=dt, args=10, col='green', size=1) + stat_function(fun=dt, args=50, col='blue', size=1) + +# b) +ggplot(data.frame(x=c(-1, 100)), aes(x))+ylab('Gęstość rozkładu chi kwadrat') + stat_function(fun=dchisq, args=5, col='red', size=1) + stat_function(fun=dchisq, args=10, col='blue', size=1) + stat_function(fun=dchisq, args=20, col='green', size=1) + stat_function(fun=dchisq, args=50, col='pink', size=1) diff --git a/uczelnia/2_semestr/programowanie/laby/lab9/zad1.cpp b/uczelnia/2_semestr/programowanie/laby/lab9/zad1.cpp new file mode 100644 index 0000000..d2b143d --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab9/zad1.cpp @@ -0,0 +1,33 @@ +#include +#include +#include + +class Adres { + std::string ulica; + std::string miasto; + std::string kodPocztowy; + +public: + Adres(std::string ulica, std::string miasto, std::string kodPocztowy) + : ulica(ulica), miasto(miasto), kodPocztowy(kodPocztowy) {} + friend std::ostream &operator<<(std::ostream &os, Adres adres) { + os << adres.ulica << '\n' << adres.miasto << '\n' << adres.kodPocztowy; + return os; + } +}; + +class Osoba { + Adres adres; + +public: + Osoba(Adres adres) : adres(adres) {} + friend std::ostream &operator<<(std::ostream &os, Osoba osoba) { + os << osoba.adres; + return os; + } +}; + +int main() { + Osoba osoba = Osoba(Adres("żołnierska", "szczecin", "23-123")); + std::cout << osoba; +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab9/zad10.cpp b/uczelnia/2_semestr/programowanie/laby/lab9/zad10.cpp new file mode 100644 index 0000000..7d372e8 --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab9/zad10.cpp @@ -0,0 +1,92 @@ +#include +#include +#include +#include + +class Autor { + +public: + std::string imie, nazwisko; + Autor(std::string imie, std::string nazwisko) + : imie(imie), nazwisko(nazwisko) {} + Autor() {} +}; + +class Ksiazka { +public: + std::string tytul, rok; + Autor autor; + Ksiazka(std::string tytul, std::string rok, Autor autor) + : tytul(tytul), rok(rok), autor(autor) {} + Ksiazka() {} + friend std::ostream &operator<<(std::ostream &os, Ksiazka k) { + os << "Tytuł: " << k.tytul << "\nRok wydania: " << k.rok + << "\nAutor: " << k.autor.imie << ' ' << k.autor.nazwisko; + return os; + } +}; + +class Biblioteka { + Ksiazka *ksiazki; + int aktualna_ksiazka = 0; + +public: + Biblioteka(size_t size) : ksiazki(new Ksiazka[size]) {} + + void dodajKsiazke(Ksiazka k) { ksiazki[aktualna_ksiazka++] = k; } + + Ksiazka *szukajPoTytule(std::string tytul) { + for (int i = 0; i < aktualna_ksiazka; i++) { + if (ksiazki[i].tytul == tytul) { + return &ksiazki[i]; + } + } + return nullptr; + } + + void wypiszWszystkie() { + for (int i = 0; i < aktualna_ksiazka; i++) { + std::cout << ksiazki[i]; + } + } +}; + +class Osoba { + std::string imie; + +public: + Osoba(std::string imie) : imie(imie) {} +}; + +class Czytelnik : Osoba { // dziedziczenie + Ksiazka *ksiazki; // agregacja + const int max_ilosc; + int aktualna_ilosc_ksiazek = 0; + +public: + Czytelnik(std::string imie, size_t max_ilosc) + : Osoba(imie), max_ilosc(max_ilosc), ksiazki(new Ksiazka[max_ilosc]) {} + void wypozycz(Ksiazka ksiazka) { + if (aktualna_ilosc_ksiazek < max_ilosc) { + ksiazki[aktualna_ilosc_ksiazek++] = ksiazka; + } + } + void wypiszWszystkie() { + for (int i = 0; i < aktualna_ilosc_ksiazek; i++) { + std::cout << ksiazki[i]; + } + } +}; + +int main() { + Biblioteka b = Biblioteka(12); + Ksiazka k1 = + Ksiazka("Ogniem i Mieczem", "1920", Autor("Henryk", "Sienkiewicz")); + b.dodajKsiazke(k1); + std::cout << "Książki biblioteki: "<< std::endl; + b.wypiszWszystkie(); + Czytelnik czytelnik = Czytelnik("Bogdan", 8); + std::cout << "Książki czytelnika: "<< std::endl; + czytelnik.wypozycz(k1); + czytelnik.wypiszWszystkie(); +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab9/zad2.cpp b/uczelnia/2_semestr/programowanie/laby/lab9/zad2.cpp new file mode 100644 index 0000000..0066c1f --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab9/zad2.cpp @@ -0,0 +1,48 @@ +#include +#include +#include + +struct Student { + std::string imie; + std::string numerIndexu; + Student(std::string imie, std::string numerIndexu) + : imie(imie), numerIndexu(numerIndexu) {} + Student() {} +}; + +class Kurs { + const int max_student = 30; + int current_student = 0; + Student *studenci; + +public: + Kurs() : studenci(new Student[max_student]) {} + void zapiszStudenta(Student student) { + if (current_student >= max_student) { + throw std::range_error("You can't add more students!"); + } + studenci[current_student++] = student; + } + + void wypiszStudentów() { + for (int i = 0; i < current_student; i++) { + std::cout << "=== Student ===\n"; + std::cout << "- Imię : " << studenci[i].imie << '\n'; + std::cout << "- Numer indeksu : " << studenci[i].numerIndexu << std::endl; + } + } +}; + +int main() { + Student bogdan = Student("Bogdan", "23894"); + Student stanislaw = Student("Stanisław", "238947"); + Kurs matematyka = Kurs(); + Kurs programowanie = Kurs(); + matematyka.zapiszStudenta(bogdan); + matematyka.zapiszStudenta(stanislaw); + programowanie.zapiszStudenta(bogdan); + std::cout << "\nKurs matematyki:\n" << std::endl; + matematyka.wypiszStudentów(); + std::cout << "\nKurs programowania:\n" << std::endl; + programowanie.wypiszStudentów(); +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab9/zad3.md b/uczelnia/2_semestr/programowanie/laby/lab9/zad3.md new file mode 100644 index 0000000..a0a5918 --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab9/zad3.md @@ -0,0 +1,7 @@ +|Para klas|Twoja odpowiedź| +|---|---| +|Książka – rodział|Kompozycja – nie da się mieć rozdziału w oderwaniu od książki| +|Biblioteka – książka|Agregacja – biblioteka posiada książkę, ale może ją komuś przekazać| +|Samochód – pojazd|Dziedziczenie – samochód to typ pojazdu| +|Uniwersytet – Profesor|Agregacja – Profesor może wykładać na wielu różnych uczelniach| +|Komputer – procesor|Kompozycja – komputer i procesor są ze sobą ściśle powiązane| diff --git a/uczelnia/2_semestr/programowanie/laby/lab9/zad4.cpp b/uczelnia/2_semestr/programowanie/laby/lab9/zad4.cpp new file mode 100644 index 0000000..c23e6e3 --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab9/zad4.cpp @@ -0,0 +1,39 @@ +#include +#include +#include + +class Ksztalt { +public: + std::string kolor = "czerwony"; + +public: + void opis() { std::cout << "Kolor tego kształtu to: " << kolor; } +}; + +class Kolo : public Ksztalt { + float r = 3; + float pole() { return M_PI * pow(r, 2); } + friend std::ostream &operator<<(std::ostream &os, Kolo kolo) { + os << "Koło o kolorze: " << kolo.kolor << " i promieniu " << kolo.r + << " oraz polu " << kolo.pole(); + return os; + } +}; + +class Prostokat : public Ksztalt { + float a = 2, b = 4; + float pole() { return a * b; } + friend std::ostream &operator<<(std::ostream &os, Prostokat prostokat) { + os << "Prostokąt o kolorze: " << prostokat.kolor + << " i bokach dlugości a = " << prostokat.a << ", b = " << prostokat.b + << " i polu " << prostokat.pole(); + return os; + } +}; + +int main() { + Prostokat p = Prostokat(); + std::cout << p << std::endl; + Kolo k = Kolo(); + std::cout << k << std::endl; +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab9/zad5.cpp b/uczelnia/2_semestr/programowanie/laby/lab9/zad5.cpp new file mode 100644 index 0000000..30a45a3 --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab9/zad5.cpp @@ -0,0 +1,20 @@ +#include + +class A { +public: + A() { std::cout << "A "; } + ~A() { std::cout << "~A "; } +}; + +class B : public A { +public: + B() { std::cout << "B "; } + ~B() { std::cout << "~B "; } +}; + +class C : public B { +public: + C() { std::cout << "C "; } + ~C() { std::cout << "~C "; } +}; +int main() { C obj; } // A B C ~C ~B ~A diff --git a/uczelnia/2_semestr/programowanie/laby/lab9/zad6.cpp b/uczelnia/2_semestr/programowanie/laby/lab9/zad6.cpp new file mode 100644 index 0000000..75b9a9b --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab9/zad6.cpp @@ -0,0 +1,27 @@ +#include +#include + +class Konto { + float saldo = 2000; + +protected: + std::string numerKonta; + float getSaldo() { return saldo; } +}; + +class KontoOszczednosciowe : public Konto { + int oprocentowanie = 12; + +public: + // float naliczOdsetki() { + // return oprocentowanie * saldo; // nie możemy tego wykonać, ponieważ + // saldo jest polem prywatnym + // } + + float naliczOdsetki() { return oprocentowanie * getSaldo(); } +}; + +int main() { + KontoOszczednosciowe k = KontoOszczednosciowe(); + std::cout << k.naliczOdsetki(); +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab9/zad7.cpp b/uczelnia/2_semestr/programowanie/laby/lab9/zad7.cpp new file mode 100644 index 0000000..f309765 --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab9/zad7.cpp @@ -0,0 +1,16 @@ +#include +class Wektor3d { + int x, y, z; + +public: + Wektor3d(int x, int y, int z) : x(x), y(y), z(z) {} + friend int iloczynSkalarny(const Wektor3d &w1, const Wektor3d &w2) { + return w1.x * w2.x + w1.y * w2.y + w1.z * w2.z; + } +}; + +int main() { + Wektor3d w1(1, 2, 3); + Wektor3d w2(3, 4, 5); + std::cout << iloczynSkalarny(w1, w2); +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab9/zad8.cpp b/uczelnia/2_semestr/programowanie/laby/lab9/zad8.cpp new file mode 100644 index 0000000..d491386 --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab9/zad8.cpp @@ -0,0 +1,20 @@ +#include + +class Bazowa { +protected: + int x; + +public: + Bazowa(int x) : x(x) {} +}; + +class Pochodna : public Bazowa { +public: + Pochodna(int val) : Bazowa(val) {} + void wypisz() { std::cout << x << std::endl; } +}; + +int main() { + Pochodna p = Pochodna(1); + p.wypisz(); +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab9/zad9.cpp b/uczelnia/2_semestr/programowanie/laby/lab9/zad9.cpp new file mode 100644 index 0000000..f1d4ff7 --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab9/zad9.cpp @@ -0,0 +1,69 @@ +#include +#include +#include +#include + +class Autor { + +public: + std::string imie, nazwisko; + Autor(std::string imie, std::string nazwisko) + : imie(imie), nazwisko(nazwisko) {} + Autor() {} +}; + +class Ksiazka { +public: + std::string tytul, rok; + Autor autor; + Ksiazka(std::string tytul, std::string rok, Autor autor) + : tytul(tytul), rok(rok), autor(autor) {} + Ksiazka() {} + friend std::ostream &operator<<(std::ostream &os, Ksiazka k) { + os << "Tytuł: " << k.tytul << "\nRok wydania: " << k.rok + << "\nAutor: " << k.autor.imie << ' ' << k.autor.nazwisko; + return os; + } +}; + +class Biblioteka { + Ksiazka *ksiazki; + int aktualna_ksiazka = 0; + +public: + Biblioteka(size_t size) : ksiazki(new Ksiazka[size]) {} + + void dodajKsiazke(Ksiazka k) { ksiazki[aktualna_ksiazka++] = k; } + + Ksiazka *szukajPoTytule(std::string tytul) { + for (int i = 0; i < aktualna_ksiazka; i++) { + if (ksiazki[i].tytul == tytul) { + return &ksiazki[i]; + } + } + return nullptr; + } + + void wypiszWszystkie() { + for (int i = 0; i < aktualna_ksiazka; i++) { + std::cout << ksiazki[i]; + } + } +}; + +int main() { + Biblioteka b = Biblioteka(10); + Ksiazka k1 = + Ksiazka("Miecz przeznaczenia", "1920", Autor("Andrzej", "Sapkowski")); + Ksiazka k2 = Ksiazka("Dziki gon", "1800", Autor("Andrzej", "Sapkowski")); + + b.dodajKsiazke(k1); + b.dodajKsiazke(k2); + Ksiazka *znalezionaKsiazka = b.szukajPoTytule("Miecz przeznaczenia"); + if (!znalezionaKsiazka) { + return 1; + } + std::cout << "Znaleziona książka to: " << *znalezionaKsiazka << std::endl; + std::cout << "=== Wszystkie książki ===" << std::endl; + b.wypiszWszystkie(); +}