mirror of
https://github.com/szymon-jozef/ZUT-notatki.git
synced 2026-09-07 12:10:40 +02:00
Compare commits
3 Commits
1a8ba1c2bf
...
a3bd6af48a
| Author | SHA1 | Date | |
|---|---|---|---|
| a3bd6af48a | |||
| 0d5d9dc969 | |||
| 6270be5805 |
@@ -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$
|
||||
|
||||
|
||||
|
||||
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)
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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;
|
||||
}
|
||||
108
uczelnia/2_semestr/programowanie/laby/lab9/zad10.cpp
Normal file
108
uczelnia/2_semestr/programowanie/laby/lab9/zad10.cpp
Normal file
@@ -0,0 +1,108 @@
|
||||
#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]) {}
|
||||
~Biblioteka() {
|
||||
delete[] ksiazki;
|
||||
ksiazki = nullptr;
|
||||
}
|
||||
|
||||
void dodajKsiazke(Ksiazka k) { ksiazki[aktualna_ksiazka++] = k; }
|
||||
|
||||
Ksiazka *szukajPoTytule(std::string tytul) const {
|
||||
for (int i = 0; i < aktualna_ksiazka; i++) {
|
||||
if (ksiazki[i].tytul == tytul) {
|
||||
return &ksiazki[i];
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void wypiszWszystkie() const {
|
||||
for (int i = 0; i < aktualna_ksiazka; i++) {
|
||||
std::cout << ksiazki[i] << '\n';
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
class Osoba {
|
||||
std::string imie;
|
||||
|
||||
public:
|
||||
Osoba(std::string imie) : imie(imie) {}
|
||||
};
|
||||
|
||||
class Czytelnik : public 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]) {}
|
||||
~Czytelnik() {
|
||||
delete[] ksiazki;
|
||||
ksiazki = nullptr;
|
||||
}
|
||||
|
||||
void wypozycz(Biblioteka &biblioteka, std::string tytul) {
|
||||
Ksiazka *ksiazka = biblioteka.szukajPoTytule(tytul);
|
||||
if (!ksiazka) {
|
||||
std::cout << "Nie znaleziono książki pt." << tytul << " w bibliotece!"
|
||||
<< std::endl;
|
||||
return;
|
||||
}
|
||||
ksiazki[aktualna_ilosc_ksiazek++] = *ksiazka;
|
||||
}
|
||||
void wypiszWszystkie() const {
|
||||
for (int i = 0; i < aktualna_ilosc_ksiazek; i++) {
|
||||
std::cout << ksiazki[i];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
int main() {
|
||||
Biblioteka b = Biblioteka(12);
|
||||
std::string tytul = "Ogniem i mieczem";
|
||||
Ksiazka k1 = Ksiazka(tytul, "1920", Autor("Henryk", "Sienkiewicz"));
|
||||
b.dodajKsiazke(k1);
|
||||
std::cout << "===\n";
|
||||
std::cout << "Książki biblioteki: " << std::endl;
|
||||
b.wypiszWszystkie();
|
||||
Czytelnik czytelnik = Czytelnik("Bogdan", 8);
|
||||
std::cout << "===\n";
|
||||
std::cout << "Książki czytelnika: " << std::endl;
|
||||
czytelnik.wypozycz(b, tytul);
|
||||
czytelnik.wypozycz(b, "Hobbit");
|
||||
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() const { std::cout << x << std::endl; }
|
||||
};
|
||||
|
||||
int main() {
|
||||
Pochodna p = Pochodna(1);
|
||||
p.wypisz();
|
||||
}
|
||||
78
uczelnia/2_semestr/programowanie/laby/lab9/zad9.cpp
Normal file
78
uczelnia/2_semestr/programowanie/laby/lab9/zad9.cpp
Normal file
@@ -0,0 +1,78 @@
|
||||
#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;
|
||||
int const max_Ksiazki;
|
||||
|
||||
public:
|
||||
Biblioteka(size_t size) : ksiazki(new Ksiazka[size]), max_Ksiazki(size) {}
|
||||
~Biblioteka() {
|
||||
delete[] ksiazki;
|
||||
ksiazki = nullptr;
|
||||
}
|
||||
|
||||
void dodajKsiazke(Ksiazka k) {
|
||||
if (aktualna_ksiazka < max_Ksiazki) {
|
||||
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] << '\n';
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
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