mirror of
https://github.com/szymon-jozef/ZUT-notatki.git
synced 2026-09-07 12:10:40 +02:00
Merge branch 'master' of github.com:szymon-jozef/ZUT-notatki
This commit is contained in:
15
uczelnia/2_semestr/matematyka_dyskretna/rekurencja.md
Normal file
15
uczelnia/2_semestr/matematyka_dyskretna/rekurencja.md
Normal file
@@ -0,0 +1,15 @@
|
||||
Funkcje rekurencyjne są trudne i często nierozwiązywalne.
|
||||
|
||||
Równania liniowe jednorodne.
|
||||
|
||||
Funkcja afiniczna nie jest liniowa.
|
||||
|
||||
|
||||
|
||||
$$
|
||||
\begin{align}
|
||||
a_{n + 1} &= 4 \cdot a_n \\
|
||||
a_{a} &= 1 \\
|
||||
a_{i} &= 0 \\
|
||||
\end{align}
|
||||
$$
|
||||
128
uczelnia/2_semestr/matematyka_stosowana/laby/lab_12.R
Normal file
128
uczelnia/2_semestr/matematyka_stosowana/laby/lab_12.R
Normal file
@@ -0,0 +1,128 @@
|
||||
# zadanie 1
|
||||
# a)
|
||||
|
||||
# dwie zmienne mierzalne
|
||||
x = c(150, 300, 450, 600, 750, 900, 1200, 1500, 1800) # wysokość nad poziomem morza w metrach, zmienna niezależna
|
||||
y = c(27.2, 26.0, 24.2, 22.5, 21.7, 20.5, 19.0, 17.4, 16) # temperatura powietrza w stopniach celcjusza, zmienna zależna
|
||||
|
||||
plot(x, y) # wykres punktów empirycznych
|
||||
|
||||
lm(y ~ x) # oszacowanie liniowej funkcji regresji
|
||||
# 27.322424 -0.006719
|
||||
# oszacowana funkcja regresji ma: y = -0.006719x + 27.322424
|
||||
|
||||
# interpretacja współczynnika regresji: współczynnik regresji równy -0.007 oznacza, że ze wzrostem wysokości nad poziomem morza o jeden metr spada temperatura powietrza średnio o około 0.007 stopnia celcjusza.
|
||||
|
||||
abline(lm(y ~ x)) # wykres oszacowanej funkcji regresji
|
||||
|
||||
# b)
|
||||
# istotność współczynnika regresji
|
||||
# hipotezy:
|
||||
# h0: ϐ1 = 0
|
||||
# h1: ~h0
|
||||
|
||||
summary(lm(y ~ x))
|
||||
# Estimate Std. Error t value Pr(>|t|)
|
||||
# wyraz wolny: (Intercept) 27.3224242 0.4507429 60.62 8.73e-11 ***
|
||||
# dla x: x -0.0067192 0.0004513 -14.89 1.48e-06 ***
|
||||
|
||||
# t = -14.89
|
||||
# p-value = 1.48e-06
|
||||
# alpha = 0.03
|
||||
# odrzucamy h0
|
||||
# Wniosek: Współczynnik regresji między wysokością nad poziomem morza, a temperaturą jest istotnie różny od zera.
|
||||
|
||||
# (na kolokwium tylko współczynnik regresji, interpretacja, test)
|
||||
|
||||
# zadanie 2
|
||||
# dwie cechy mierzalne
|
||||
|
||||
#a) oszacować współczynnik koleracji i jego interpretacje
|
||||
|
||||
cor(Ankieta.K$Waga, Ankieta.K$Wzrost)
|
||||
# 0.6351466
|
||||
# Intepretacja współczynnika korelacji: Pomiędzy wagą i wzrostem studentek w badanej grupie istnieje umiarkowana korelacja dodatnia czyli im wyższa osoba tym średnio biorąc większa waga.
|
||||
|
||||
# umiarkowana, w tym samym kierunku
|
||||
|
||||
# r=0 brak korelacji
|
||||
# 0<|r|<0.2 bardzo słaba
|
||||
# 0.2<=|r|<0.4 słaba
|
||||
# 0.4<=|r|<0.7 umiarkowana
|
||||
# 0.7<=|r|<0.9 silna
|
||||
# 0.9<=|r|<1 bardzo silna
|
||||
# |r|=1 doskonała liniowa
|
||||
# r > 0 cechy zmieniają się w tym samym kierunku
|
||||
# r < 0 cechy zmieniają się w przeciwnych kierunkach
|
||||
|
||||
# b) przedział ufności dla współczynnika korelacji dla populacji ϱ
|
||||
|
||||
cor.test(Ankieta.K$Waga, Ankieta.K$Wzrost, conf.level = 0.95)
|
||||
# 0.009199008 0.903470512
|
||||
|
||||
# Przedział liczbowy od (0.009; 0.903) z prawdopodobieństwem 0.95 obejmuje nieznany współczynnik korelacji między wagą i wzrostem populacji studentek I roku WI ZUT w Szczecinie.
|
||||
|
||||
|
||||
# c) test istotności współczynnika korelacji
|
||||
# hioptezy:
|
||||
# h0: ϱ = 0
|
||||
# h1: ϱ > 0
|
||||
|
||||
|
||||
cor.test(Ankieta.K$Waga, Ankieta.K$Wzrost, alternative = 'g')
|
||||
# t = 2.3258, df = 8, p-value = 0.02424
|
||||
# alpha = 0.05
|
||||
|
||||
# Odrzucamy h0
|
||||
|
||||
# Wniosek: Przy poziomie istotności 0.05 odrzucamy h0, zatem współczynnik korelacji jest istotnie większy od 0.
|
||||
|
||||
|
||||
# Zadanie 3
|
||||
# dwie cechy niemierzalne
|
||||
# alpha = 0.01
|
||||
|
||||
# hipotezy:
|
||||
# h0: X, Y są niezależne | zawsze niezależność
|
||||
# h1: X, Y są zależne
|
||||
|
||||
|
||||
chisq.test(cbind(c(152, 52), c(8, 188)))
|
||||
# X-squared = 203.67, df = 1, p-value < 2.2e-16
|
||||
# odrzucamy h0 i przyjmujemy h1
|
||||
|
||||
# Wniosek: na poziomie istotności 0.01, zatem można potwierdzić przypuszczenie, że wielkość cebulki wpływa na pojawienie się pędu kwiatostanowego.
|
||||
|
||||
# zad 5 c i d | dwie zmienne mierzalne
|
||||
# wielkość produkcji niezależna
|
||||
# liczba braków zależna
|
||||
x = c(0.8, 1.2, 1.6, 1.8, 2.2, 1.6, 2.4, 2.0) # wielkość produkcji w tys. sztuk
|
||||
y = c(6, 10, 12, 15, 18, 15, 20, 16) # liczba braków
|
||||
|
||||
# c)
|
||||
plot(x, y)
|
||||
regresja = lm(y ~ x)
|
||||
# -0.3438 8.4375
|
||||
# y = 8.4375x - 0.3438
|
||||
abline(regresja)
|
||||
|
||||
# Interpretacja: współczynnik regresji równy 8.4375 oznacza, że wzrostem liczby wielkości produkcji o 1 tys. zwiększa się liczba braków o około 8 sztuk.
|
||||
|
||||
|
||||
# d)
|
||||
# istotność współczynnika regresji
|
||||
# hipotezy:
|
||||
# h0: beta1 = 0
|
||||
# h1: ~h0
|
||||
summary(regresja)
|
||||
# t = 12.425
|
||||
# p-value = 1.66e-05
|
||||
# alpha = 0.01
|
||||
|
||||
# alpha > p-value, odrzucamy h0
|
||||
|
||||
# Wniosek: Współczynnik korelacji między wielkością produkcji, a liczbą braków jest istotnie różny od 0.
|
||||
|
||||
|
||||
|
||||
|
||||
233
uczelnia/2_semestr/programowanie/laby/kolokwium3.cpp
Normal file
233
uczelnia/2_semestr/programowanie/laby/kolokwium3.cpp
Normal file
@@ -0,0 +1,233 @@
|
||||
#include <algorithm>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <ostream>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class Wydawnictwo {
|
||||
std::string nazwa, miasto;
|
||||
|
||||
public:
|
||||
Wydawnictwo(std::string nazwa, std::string miasto)
|
||||
: nazwa(nazwa), miasto(miasto) {}
|
||||
|
||||
friend std::ostream &operator<<(std::ostream &os, Wydawnictwo &p) {
|
||||
os << "Wydawnictwo o nazwie: " << p.nazwa << ", pochodzi z miasta "
|
||||
<< p.miasto;
|
||||
return os;
|
||||
}
|
||||
};
|
||||
|
||||
class Pozycja {
|
||||
protected:
|
||||
std::string tytul;
|
||||
double cena;
|
||||
int liczba_egzamplarzy;
|
||||
Wydawnictwo wydawnictwo;
|
||||
|
||||
public:
|
||||
Pozycja(std::string tytul, double cena, int liczba_egzamplarzy,
|
||||
Wydawnictwo wydawnictwo)
|
||||
: tytul(tytul), cena(cena), liczba_egzamplarzy(liczba_egzamplarzy),
|
||||
wydawnictwo(wydawnictwo) {}
|
||||
virtual ~Pozycja() = default;
|
||||
|
||||
double wartosc() { return liczba_egzamplarzy * cena; }
|
||||
void zmienCene(double nowaCena) { cena = nowaCena; }
|
||||
std::string getTytul() const { return tytul; }
|
||||
virtual std::string kategoria() = 0;
|
||||
virtual void wypisz() {
|
||||
std::cout << "Pozycja pt. " << tytul << " kosztuje" << cena
|
||||
<< "\nAktualnie jest " << liczba_egzamplarzy << " takich pozycji."
|
||||
<< "\nWydawnictwo to: " << wydawnictwo;
|
||||
}
|
||||
virtual double cenaKoncowa() const = 0;
|
||||
|
||||
friend std::ostream &operator<<(std::ostream &os, Pozycja &p) {
|
||||
os << "Tytuł: " << p.tytul << " kosztuje " << p.cenaKoncowa()
|
||||
<< " i jest kategorii " << p.kategoria() << '\n'
|
||||
<< "Aktualnie jest " << p.liczba_egzamplarzy << " tej pozycji";
|
||||
return os;
|
||||
}
|
||||
};
|
||||
|
||||
class Ksiazka : public Pozycja {
|
||||
int liczbaStron;
|
||||
|
||||
public:
|
||||
Ksiazka(std::string tytul, double cena, int liczba_egzamplarzy,
|
||||
Wydawnictwo wydawnictwo, int liczbaStron)
|
||||
: Pozycja(tytul, cena, liczba_egzamplarzy, wydawnictwo),
|
||||
liczbaStron(liczbaStron) {}
|
||||
~Ksiazka() {}
|
||||
|
||||
std::string kategoria() override { return "ksiazka"; }
|
||||
|
||||
double cenaKoncowa() const override {
|
||||
if (liczbaStron < 100) {
|
||||
return cena - cena * 0.1;
|
||||
}
|
||||
return cena;
|
||||
}
|
||||
|
||||
void wypisz() override {
|
||||
wypisz();
|
||||
std::cout << "\nLiczba stron wynosi" << liczbaStron << '\n';
|
||||
}
|
||||
|
||||
Ksiazka operator+(Ksiazka &p1) {
|
||||
Ksiazka nowa_pozycja =
|
||||
Ksiazka(tytul, cena, liczba_egzamplarzy + p1.liczba_egzamplarzy,
|
||||
wydawnictwo, liczbaStron);
|
||||
return nowa_pozycja;
|
||||
};
|
||||
};
|
||||
|
||||
class Czasopismo : public Pozycja {
|
||||
int numerWydania;
|
||||
|
||||
public:
|
||||
Czasopismo(std::string tytul, double cena, int liczba_egzamplarzy,
|
||||
Wydawnictwo wydawnictwo, int numerWydania)
|
||||
: Pozycja(tytul, cena, liczba_egzamplarzy, wydawnictwo),
|
||||
numerWydania(numerWydania) {}
|
||||
|
||||
~Czasopismo() {}
|
||||
|
||||
std::string kategoria() override { return "czasopismo"; }
|
||||
|
||||
double cenaKoncowa() const override {
|
||||
if (numerWydania < 12) {
|
||||
return cena - cena * 0.2;
|
||||
}
|
||||
return cena;
|
||||
}
|
||||
|
||||
void wypisz() override {
|
||||
wypisz();
|
||||
std::cout << "\nNumer wydania to: " << numerWydania << '\n';
|
||||
}
|
||||
|
||||
Czasopismo operator+(Czasopismo &p1) {
|
||||
Czasopismo nowa_pozycja =
|
||||
Czasopismo(tytul, cena, liczba_egzamplarzy + p1.liczba_egzamplarzy,
|
||||
wydawnictwo, numerWydania);
|
||||
return nowa_pozycja;
|
||||
};
|
||||
};
|
||||
|
||||
class Biblioteka {
|
||||
std::vector<std::unique_ptr<Pozycja>> pozycje;
|
||||
int size;
|
||||
static int biblioteka_ammount;
|
||||
|
||||
public:
|
||||
Biblioteka(int size) : size(size) {
|
||||
pozycje.reserve(size);
|
||||
biblioteka_ammount++;
|
||||
}
|
||||
~Biblioteka() {} // nie musimy ręcznie zwalniać pamięci ponieważ unique_ptr sam
|
||||
// się zwalnia, gdy jego właściciel umiera
|
||||
void dodajPozycje(std::unique_ptr<Pozycja> p) {
|
||||
pozycje.push_back(std::move(p));
|
||||
}
|
||||
|
||||
Pozycja *znajdzPozycje(const std::string &tytul) const {
|
||||
for (auto &p : pozycje) {
|
||||
if (p->getTytul() == tytul) {
|
||||
return p.get();
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Pozycja &operator[](int index) {
|
||||
if (index < 0 || index >> size) {
|
||||
throw std::out_of_range(
|
||||
"Index nie może być mniejszy niż zero lub większy niż rozmiar");
|
||||
}
|
||||
Pozycja *p = pozycje[index].get();
|
||||
return *p;
|
||||
}
|
||||
|
||||
void sortujWgCeny() { std::sort(pozycje.begin(), pozycje.end()); }
|
||||
|
||||
void wypiszWszystkie() const {
|
||||
for (auto &p : pozycje) {
|
||||
p->wypisz();
|
||||
}
|
||||
}
|
||||
|
||||
double obliczWartoscBiblioteki() const {
|
||||
double sum = 0;
|
||||
for (auto &p : pozycje) {
|
||||
sum += p->wartosc();
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
int ilePozycjiKategorii(const std::string &kat) {
|
||||
int sum = 0;
|
||||
for (auto &p : pozycje) {
|
||||
if (p->kategoria() == kat) {
|
||||
sum++;
|
||||
}
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
static int ileBibliotek() { return biblioteka_ammount; }
|
||||
};
|
||||
|
||||
int Biblioteka::biblioteka_ammount = 0;
|
||||
|
||||
int main() {
|
||||
Biblioteka biblioteka = Biblioteka(10);
|
||||
|
||||
Wydawnictwo w1 = Wydawnictwo("Nowa Era", "Szczecin");
|
||||
Wydawnictwo w2 = Wydawnictwo("Stara Era", "Warszawa");
|
||||
|
||||
biblioteka.dodajPozycje(
|
||||
std::make_unique<Ksiazka>("Ogniem i Mieczem", 12, 10, w1, 360));
|
||||
|
||||
biblioteka.dodajPozycje(
|
||||
std::make_unique<Czasopismo>("Telenowele", 2, 1, w2, 3));
|
||||
|
||||
Pozycja *znalezionaPozycja = biblioteka.znajdzPozycje("Ogniem i Mieczem");
|
||||
if (!znalezionaPozycja) {
|
||||
std::cout << "Nie znaleziono pozycji!!!\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
std::cout << "Przed zmianą ceny: " << *znalezionaPozycja << std::endl;
|
||||
znalezionaPozycja->zmienCene(123);
|
||||
std::cout << "Po zmianie ceny: " << *znalezionaPozycja << std::endl;
|
||||
|
||||
Pozycja *znalezionaPozycja2 = biblioteka.znajdzPozycje("Telenowele");
|
||||
if (!znalezionaPozycja) {
|
||||
std::cout << "Nie znaleziono pozycji 2!!!\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
Ksiazka k1 = Ksiazka("Trala", 23, 12, w1, 1);
|
||||
Ksiazka k2 = Ksiazka("Tra", 1, 1, w1, 1);
|
||||
std::cout << "\n=== Dodawanie ===\n";
|
||||
Ksiazka k3 = k1 + k2;
|
||||
std::cout << k1 << std::endl;
|
||||
std::cout << k2 << std::endl;
|
||||
std::cout << k3 << std::endl;
|
||||
std::cout << "\n=== Wyświetlanie ===\n";
|
||||
std::cout << "Zerowy element biblioteki: " << biblioteka[0] << std::endl;
|
||||
std::cout << "Biblioteka jest warta " << biblioteka.obliczWartoscBiblioteki()
|
||||
<< std::endl;
|
||||
std::cout << "Aktualnie jest " << biblioteka.ilePozycjiKategorii("ksiazka")
|
||||
<< " książek" << std::endl;
|
||||
std::cout << "Aktualnie jest " << biblioteka.ileBibliotek() << " bibliotek"
|
||||
<< std::endl;
|
||||
std::cout << "\n=== Sortowanie ===\n";
|
||||
// biblioteka.wypiszWszystkie();
|
||||
biblioteka.sortujWgCeny();
|
||||
// biblioteka.wypiszWszystkie();
|
||||
}
|
||||
110
uczelnia/2_semestr/programowanie/laby/kolokwium3_probne_2.cpp
Normal file
110
uczelnia/2_semestr/programowanie/laby/kolokwium3_probne_2.cpp
Normal file
@@ -0,0 +1,110 @@
|
||||
#include <exception>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <ostream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class Producent {
|
||||
std::string nazwa;
|
||||
std::string kraj;
|
||||
|
||||
public:
|
||||
Producent(std::string nazwa, std::string kraj) : nazwa(nazwa), kraj(kraj) {}
|
||||
|
||||
friend std::ostream &operator<<(std::ostream &os, const Producent p) {
|
||||
os << "Nazwa: " << p.nazwa << " pochodzi z kraju: " << p.kraj;
|
||||
return os;
|
||||
}
|
||||
};
|
||||
|
||||
class Towar {
|
||||
protected:
|
||||
std::string nazwa;
|
||||
double cena;
|
||||
int sztuki;
|
||||
Producent producent;
|
||||
|
||||
public:
|
||||
Towar(std::string nazwa, double cena, int sztuki, Producent producent)
|
||||
: nazwa(nazwa), cena(cena), sztuki(sztuki), producent(producent) {}
|
||||
virtual ~Towar() = default;
|
||||
|
||||
double wartosc() const { return cena * sztuki; }
|
||||
|
||||
void zmienCene(double nowaCena) { cena = nowaCena; }
|
||||
|
||||
virtual std::string kategoria() = 0;
|
||||
|
||||
virtual void wypisz() const {
|
||||
std::cout << "Nazwa: " << nazwa << " kosztuje " << cena
|
||||
<< ". Aktualnie jest " << sztuki << " sztuk. Producent to "
|
||||
<< producent << std::endl;
|
||||
}
|
||||
|
||||
virtual double cenaKoncowa() const = 0;
|
||||
|
||||
int operator+(Towar &t) { return sztuki + t.sztuki; }
|
||||
|
||||
friend std::ostream &operator<<(std::ostream &os, Towar &t) {
|
||||
os << "Nazwa: " << t.nazwa << " kosztuje " << t.cenaKoncowa()
|
||||
<< ". Aktualnie jest " << t.sztuki << " sztuk. Producent to "
|
||||
<< t.producent;
|
||||
return os;
|
||||
}
|
||||
};
|
||||
|
||||
class TowarSpozywczy : public Towar {
|
||||
std::string terminWaznosci;
|
||||
|
||||
public:
|
||||
TowarSpozywczy(std::string nazwa, double cena, int sztuki,
|
||||
Producent producent, std::string terminWaznosci)
|
||||
: Towar(nazwa, cena, sztuki, producent), terminWaznosci(terminWaznosci) {}
|
||||
|
||||
std::string kategoria() override { return "spozywczy"; }
|
||||
double cenaKoncowa() const override {
|
||||
int rabat = 5;
|
||||
return wartosc() - rabat;
|
||||
}
|
||||
|
||||
void wypisz() const override {
|
||||
wypisz();
|
||||
std::cout << "Termin ważności jest do " << terminWaznosci << std::endl;
|
||||
}
|
||||
};
|
||||
|
||||
class TowarElektroniczny : public Towar {
|
||||
int gwarancjaMiesiace;
|
||||
|
||||
public:
|
||||
TowarElektroniczny(std::string nazwa, double cena, int sztuki,
|
||||
Producent producent, int gwarancjaMiesiace)
|
||||
: Towar(nazwa, cena, sztuki, producent),
|
||||
gwarancjaMiesiace(gwarancjaMiesiace) {}
|
||||
|
||||
std::string kategoria() override { return "spozywczy"; }
|
||||
double cenaKoncowa() const override {
|
||||
int koszt_gwarancji = 10;
|
||||
return wartosc() + koszt_gwarancji;
|
||||
}
|
||||
|
||||
void wypisz() const override {
|
||||
wypisz();
|
||||
std::cout << "Gwarancja trwa" << gwarancjaMiesiace << " miesięcy."
|
||||
<< std::endl;
|
||||
}
|
||||
};
|
||||
|
||||
class Sklep {
|
||||
std::vector<std::unique_ptr<Towar>> towary;
|
||||
int max;
|
||||
int current;
|
||||
|
||||
static int liczba_sklepow;
|
||||
|
||||
public:
|
||||
Sklep(int max) : max(max), current(0) { towary.reserve(max); }
|
||||
};
|
||||
|
||||
int Sklep::liczba_sklepow = 0;
|
||||
@@ -3,7 +3,7 @@
|
||||
template <typename T> T potroj(T x) { return x * 3; }
|
||||
|
||||
int main() {
|
||||
std::cout << potroj(7) << '\n';
|
||||
std::cout << potroj(2.5) << '\n';
|
||||
std::cout << potroj('A') << '\n';
|
||||
std::cout << potroj(7) << '\n'; // 21
|
||||
std::cout << potroj(2.5) << '\n'; // 7.5
|
||||
std::cout << potroj('A') << '\n'; // dziwny znak
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ podwoj(2, 3); // funkcja przyjmuje jeden argument a jest wywołana z dwoma
|
||||
// Fragment B
|
||||
template <typename T> T iloczyn(T a, T b);
|
||||
// definicja w innym pliku .cpp - kod się nie linkuje
|
||||
// należy dodać #include "nazwa_pliku.cpp"
|
||||
|
||||
// Fragment C
|
||||
template <typename T> T wiekszy(T a, T b) { return a > b ? a : b; }
|
||||
|
||||
BIN
uczelnia/2_semestr/programowanie/laby/out/kolokwium3
Executable file
BIN
uczelnia/2_semestr/programowanie/laby/out/kolokwium3
Executable file
Binary file not shown.
Reference in New Issue
Block a user