mirror of
https://github.com/szymon-jozef/ZUT-notatki.git
synced 2026-10-27 19:20:39 +01:00
bla bla
This commit is contained in:
@@ -250,3 +250,42 @@ Sprawdzenie efektywności umożliwia nierówność Rao-Cramera.
|
|||||||
|
|
||||||
# Istotna uwaga
|
# 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.
|
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$
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
uczelnia/2_semestr/matematyka_stosowana/laby/lab8.RData
Normal file
BIN
uczelnia/2_semestr/matematyka_stosowana/laby/lab8.RData
Normal file
Binary file not shown.
84
uczelnia/2_semestr/matematyka_stosowana/laby/lab_8.R
Normal file
84
uczelnia/2_semestr/matematyka_stosowana/laby/lab_8.R
Normal file
@@ -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)
|
||||||
33
uczelnia/2_semestr/programowanie/laby/lab9/zad1.cpp
Normal file
33
uczelnia/2_semestr/programowanie/laby/lab9/zad1.cpp
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <ostream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
92
uczelnia/2_semestr/programowanie/laby/lab9/zad10.cpp
Normal file
92
uczelnia/2_semestr/programowanie/laby/lab9/zad10.cpp
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
#include <cstddef>
|
||||||
|
#include <iostream>
|
||||||
|
#include <ostream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
48
uczelnia/2_semestr/programowanie/laby/lab9/zad2.cpp
Normal file
48
uczelnia/2_semestr/programowanie/laby/lab9/zad2.cpp
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <stdexcept>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
7
uczelnia/2_semestr/programowanie/laby/lab9/zad3.md
Normal file
7
uczelnia/2_semestr/programowanie/laby/lab9/zad3.md
Normal file
@@ -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|
|
||||||
39
uczelnia/2_semestr/programowanie/laby/lab9/zad4.cpp
Normal file
39
uczelnia/2_semestr/programowanie/laby/lab9/zad4.cpp
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
#include <cmath>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
20
uczelnia/2_semestr/programowanie/laby/lab9/zad5.cpp
Normal file
20
uczelnia/2_semestr/programowanie/laby/lab9/zad5.cpp
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
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
|
||||||
27
uczelnia/2_semestr/programowanie/laby/lab9/zad6.cpp
Normal file
27
uczelnia/2_semestr/programowanie/laby/lab9/zad6.cpp
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
16
uczelnia/2_semestr/programowanie/laby/lab9/zad7.cpp
Normal file
16
uczelnia/2_semestr/programowanie/laby/lab9/zad7.cpp
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#include <iostream>
|
||||||
|
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);
|
||||||
|
}
|
||||||
20
uczelnia/2_semestr/programowanie/laby/lab9/zad8.cpp
Normal file
20
uczelnia/2_semestr/programowanie/laby/lab9/zad8.cpp
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
69
uczelnia/2_semestr/programowanie/laby/lab9/zad9.cpp
Normal file
69
uczelnia/2_semestr/programowanie/laby/lab9/zad9.cpp
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
#include <cstddef>
|
||||||
|
#include <iostream>
|
||||||
|
#include <ostream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user