diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/out/zad1 b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad1 new file mode 100755 index 0000000..171829f Binary files /dev/null and b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad1 differ diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/out/zad2 b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad2 new file mode 100755 index 0000000..522a9be Binary files /dev/null and b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad2 differ diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/out/zad3 b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad3 new file mode 100755 index 0000000..8da464f Binary files /dev/null and b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad3 differ diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/out/zad4 b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad4 new file mode 100755 index 0000000..8ae9e70 Binary files /dev/null and b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad4 differ diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/out/zad5 b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad5 new file mode 100755 index 0000000..57900ae Binary files /dev/null and b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad5 differ diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/out/zad6 b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad6 new file mode 100755 index 0000000..fd8af02 Binary files /dev/null and b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad6 differ diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/out/zad7 b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad7 new file mode 100755 index 0000000..6c4bd7d Binary files /dev/null and b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad7 differ diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/out/zad8 b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad8 new file mode 100755 index 0000000..6243aff Binary files /dev/null and b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad8 differ diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/out/zad9 b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad9 new file mode 100755 index 0000000..171d8c5 Binary files /dev/null and b/uczelnia/2_semestr/programowanie/laby/lab10/out/zad9 differ diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/zad1.cpp b/uczelnia/2_semestr/programowanie/laby/lab10/zad1.cpp new file mode 100644 index 0000000..9231e59 --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab10/zad1.cpp @@ -0,0 +1,40 @@ +#include + +class Zwierze { +public: + virtual void odglos() { std::cout << "..." << std::endl; } + virtual ~Zwierze() = default; +}; + +class Pies : public Zwierze { +public: + void odglos() override { std::cout << "Hau hau" << std::endl; } +}; + +class Kot : public Zwierze { +public: + void odglos() override { std::cout << "Miau miau" << std::endl; } +}; + +class Krowa : public Zwierze { +public: + void odglos() override { std::cout << "Muu muu" << std::endl; } +}; + +int main() { + const int SIZE = 3; + Zwierze *zwierzeta[SIZE]; + zwierzeta[0] = new Pies(); + zwierzeta[1] = new Kot(); + zwierzeta[2] = new Krowa(); + + for (int i = 0; i < SIZE; i++) { + zwierzeta[i]->odglos(); + } + + for (int i = 0; i < SIZE; i++) { + delete zwierzeta[i]; + } + + return 0; +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/zad10.cpp b/uczelnia/2_semestr/programowanie/laby/lab10/zad10.cpp new file mode 100644 index 0000000..e69de29 diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/zad2.cpp b/uczelnia/2_semestr/programowanie/laby/lab10/zad2.cpp new file mode 100644 index 0000000..9ff0670 --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab10/zad2.cpp @@ -0,0 +1,20 @@ +#include + +class Baza { +public: + void metoda() const { std::cout << "Baza" << std::endl; } +}; + +class Pochodna : public Baza { +public: + void metoda() const { std::cout << "Pochodna" << std::endl; } +}; + +int main() { + Pochodna p; + Baza &ref = p; + Baza *ptr = &p; + p.metoda(); // pochodna + ref.metoda(); // baza + ptr->metoda(); // baza +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/zad3.cpp b/uczelnia/2_semestr/programowanie/laby/lab10/zad3.cpp new file mode 100644 index 0000000..dd9f90f --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab10/zad3.cpp @@ -0,0 +1,17 @@ +#include + +class Baza { +public: + virtual void metoda() const { std::cout << "Baza" << std::endl; } +}; + +class Pochodna : public Baza { +public: + void metoda() const { std::cout << "Pochodna" << std::endl; } +}; + +int main() { + Pochodna p; + Baza b = p; + b.metoda(); // część pochodna została zgubiona +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/zad4.cpp b/uczelnia/2_semestr/programowanie/laby/lab10/zad4.cpp new file mode 100644 index 0000000..a86c97c --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab10/zad4.cpp @@ -0,0 +1,54 @@ +#include +#include +#include +#include + +class Figura { +public: + virtual float pole() const = 0; + virtual float obwod() const = 0; + virtual ~Figura() = default; +}; + +class Kolo : public Figura { + float r; + +public: + Kolo(float r) : r(r) {} + + float pole() const override { return M_PI * r * r; } + float obwod() const override { return M_PI * 2 * r; } +}; + +class Prostokat : public Figura { + float a, b; + +public: + Prostokat(float a, float b) : a(a), b(b) {} + + float pole() const override { return a * b; } + float obwod() const override { return 2 * a + 2 * b; } +}; + +class Trojkat : public Figura { + float a, b, c, h; + +public: + Trojkat(float a, float b, float c, float h) : a(a), b(b), c(c), h(h) {} + + float pole() const override { return (a * h) * 0.5; } + float obwod() const override { return a + b + c; } +}; + +int main() { + std::vector> figury; + figury.push_back(std::make_unique(2.0)); + figury.push_back(std::make_unique(2, 3)); + figury.push_back(std::make_unique(1, 2, 3, 4)); + + for (std::unique_ptr &element : figury) { + std::cout << "Obwod figury to: " << element->obwod() << std::endl; + std::cout << "Pole figury to: " << element->pole() << std::endl; + ; + } +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/zad5.cpp b/uczelnia/2_semestr/programowanie/laby/lab10/zad5.cpp new file mode 100644 index 0000000..7d830d5 --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab10/zad5.cpp @@ -0,0 +1,20 @@ +#include + +class Abstrakcyjna { +public: + virtual void f() = 0; + virtual ~Abstrakcyjna() = default; +}; + +class Konkretna : public Abstrakcyjna { +public: + void f() override { std::cout << "OK"; } +}; + +int main() { + // Abstrakcyjna a; // nie kompiluje się, ponieważ a jest k + // lasą abstrakcyjną. + Konkretna k; // kompiluje + Abstrakcyjna *ptr = new Konkretna(); // kompiluje + Abstrakcyjna &ref = k; // kompiluje +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/zad6.cpp b/uczelnia/2_semestr/programowanie/laby/lab10/zad6.cpp new file mode 100644 index 0000000..5de8eca --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab10/zad6.cpp @@ -0,0 +1,32 @@ +#include +#include + +class Zasob { + int *arr; + +public: + Zasob(size_t size) : arr(new int[size]) { std::cout << "Alokujemy arr\n"; } + + virtual ~Zasob() { // bez tego – wyciek pamięci + std::cout << "Destruktor virtualny\n"; + delete[] arr; + } +}; + +class DuzyZasob : public Zasob { + int *arr2; + +public: + DuzyZasob(size_t size1, size_t size2) : Zasob(size1), arr2(new int[size2]) { + std::cout << "Alokujemy arr2\n"; + } + ~DuzyZasob() override { + std::cout << "Domyślny Destruktor DużegoZasobu\n"; + delete[] arr2; + } +}; + +int main() { + Zasob *z = new DuzyZasob(2, 4); + delete z; +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/zad7.cpp b/uczelnia/2_semestr/programowanie/laby/lab10/zad7.cpp new file mode 100644 index 0000000..f6fa69f --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab10/zad7.cpp @@ -0,0 +1,22 @@ +#include + +class Ksztalt { +public: + virtual double pole() const = 0; + virtual ~Ksztalt() = default; +}; + +class Kolo : public Ksztalt { + double r; + +public: + Kolo(double promien) : r(promien) {} + double pole() const { return 3.14 * r * r; } +}; + +void wypisz(Ksztalt &k) { std::cout << k.pole(); } + +int main() { + Kolo k = Kolo(2); + wypisz(k); +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/zad8.cpp b/uczelnia/2_semestr/programowanie/laby/lab10/zad8.cpp new file mode 100644 index 0000000..a6177aa --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab10/zad8.cpp @@ -0,0 +1,31 @@ +#include +#include +#include + +class Pojazd { +public: + virtual std::string opis() = 0; + virtual ~Pojazd() = default; + + friend std::ostream &operator<<(std::ostream &os, Pojazd &p) { + os << p.opis(); + return os; + } +}; + +class Samochod : public Pojazd { +public: + std::string opis() override { return "To jest samochód"; } +}; + +class Rower : public Pojazd { +public: + std::string opis() override { return "To jest rower"; } +}; + +int main() { + Samochod s; + Rower r; + std::cout << s << std::endl; + std::cout << r << std::endl; +} diff --git a/uczelnia/2_semestr/programowanie/laby/lab10/zad9.cpp b/uczelnia/2_semestr/programowanie/laby/lab10/zad9.cpp new file mode 100644 index 0000000..b335108 --- /dev/null +++ b/uczelnia/2_semestr/programowanie/laby/lab10/zad9.cpp @@ -0,0 +1,95 @@ +#include +#include +#include +#include +#include +#include + +class Adres { + std::string ulica; + int nr_mieszkania; + +public: + Adres(std::string ulica, int nr_mieszkania) + : ulica(ulica), nr_mieszkania(nr_mieszkania) {} + + friend std::ostream &operator<<(std::ostream &os, Adres &adres) { + os << adres.ulica << " mieszkania " << adres.nr_mieszkania; + return os; + } +}; + +class Pracownik { +protected: + std::string imie; + float pensja; + Adres *adres; + +public: + virtual float obliczWyplate() = 0; + Pracownik(std::string imie, float pensja, Adres *adres) + : imie(imie), pensja(pensja), adres(adres) {} + virtual ~Pracownik() = default; + friend std::ostream &operator<<(std::ostream &os, Pracownik &p) { + os << p.imie << " zarabia " << p.obliczWyplate() << " i mieszka na " + << *(p.adres); + return os; + } +}; + +class PracownikEtatowy : public Pracownik { + +public: + PracownikEtatowy(std::string imie, float pensja, Adres *adres) + : Pracownik(imie, pensja, adres) {} + + float obliczWyplate() override { return pensja; } +}; + +class Zleceniobiorca : public Pracownik { + float godziny; + +public: + Zleceniobiorca(std::string imie, float pensja, Adres *adres, float godziny) + : Pracownik(imie, pensja, adres), godziny(godziny) {} + float obliczWyplate() override { return pensja * godziny; } +}; + +class Dzial { + std::vector> pracownicy; + +public: + Dzial() {}; + + void dodajPracownika(std::unique_ptr pracownik) { + pracownicy.push_back(std::move(pracownik)); + } + + float sumaWyplat() const { + float sum = 0; + for (auto &pracownik : pracownicy) { + sum += pracownik->obliczWyplate(); + } + return sum; + } + + void wypiszPracownikow() { + std::cout << "=== Wszyscy pracownicy ===\n"; + for (const auto &pracownik : pracownicy) { + std::cout << *pracownik << std::endl; + } + } +}; + +int main() { + Dzial dzial = Dzial(); + dzial.dodajPracownika(std::make_unique( + "Bożena", 2500, new Adres("Żołnierska", 18))); + + dzial.dodajPracownika(std::make_unique( + "Adam", 6700, new Adres("Wiejska", 1), 30)); + + dzial.wypiszPracownikow(); + std::cout << "Pracownicy sumarycznie zarabiają: " << dzial.sumaWyplat(); + return 0; +} diff --git a/uczelnia/2_semestr/python/cuda/flake.nix b/uczelnia/2_semestr/python/cuda/flake.nix new file mode 100644 index 0000000..ae5820d --- /dev/null +++ b/uczelnia/2_semestr/python/cuda/flake.nix @@ -0,0 +1,65 @@ +{ + description = "Środowisko dla ZED SDK (ZED 2i) + Python"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + }; + + outputs = + { self, nixpkgs }: + let + system = "x86_64-linux"; + pkgs = import nixpkgs { + inherit system; + config = { + allowUnfree = true; + }; + }; + in + { + devShells.${system}.default = + let + fhs = pkgs.buildFHSUserEnv { + name = "zed-env"; + targetPkgs = + pkgs: with pkgs; [ + glibc + gcc-unwrapped.lib + stdenv.cc.cc.lib + glib + zlib + binutils + pciutils + wget + libusb1 + + libGL + xorg.libX11 + xorg.libXext + + cudaPackages.cudatoolkit + cudaPackages.cudnn + + (python3.withPackages ( + ps: with ps; [ + pip + numpy + opencv4 + open3d + ] + )) + ]; + + profile = '' + export LD_LIBRARY_PATH=/run/opengl-driver/lib:/usr/lib:/usr/lib32:$LD_LIBRARY_PATH + export CUDA_PATH=${pkgs.cudaPackages.cudatoolkit} + + export PIP_PREFIX=$(pwd)/.local_pip + export PYTHONPATH=$(pwd)/.local_pip/lib/python3.11/site-packages:$PYTHONPATH + export PATH=$(pwd)/.local_pip/bin:$PATH + ''; + }; + in + fhs.env; + }; +}