From ee4a6ca5ca646fc952b051dec3222360d99393b3 Mon Sep 17 00:00:00 2001 From: VectorKappa Date: Wed, 21 Dec 2022 16:57:59 +0100 Subject: [PATCH] Dodano temat 10 --- Laboratorium/20221221155543/wskazniki.cpp | 81 +++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 Laboratorium/20221221155543/wskazniki.cpp diff --git a/Laboratorium/20221221155543/wskazniki.cpp b/Laboratorium/20221221155543/wskazniki.cpp new file mode 100644 index 0000000..0ce1a0c --- /dev/null +++ b/Laboratorium/20221221155543/wskazniki.cpp @@ -0,0 +1,81 @@ +#include +struct Punkt +{ + double x; // Współrzędna x punktu + double y; // Współrzędna y punktu +}; + +void my_swap_1(int* a, int* b) +{ + // Zamiana wartości zmiennych wskazywanych przez a i b + int tmp = *a; + *a = *b; + *b = tmp; +} +void movex(Punkt* a, double x) +{ + a->x += x; // Przesunięcie punktu wzdłuż osi x o zadaną wartość +} +void fill_random(double* arr, int rozmiar, double a, double b) +{ + // Inicjalizacja generatora liczb losowych + std::srand(time(nullptr)); + + // Wypełnienie tablicy losowymi wartościami z przedziału od A do B + for (double* p = arr; p < arr + rozmiar; ++p) + *p = a + (b - a) * std::rand() / RAND_MAX; +} +int main() +{ + // Definicja zmiennej typu int + int x = 5; + + // Definicja zmiennej wskaźnikowej typu int* + int* px = &x; + + // Definicja zmiennej referencyjnej typu int& + int& rx = x; + + // Modyfikacja wartości zmiennej x bezpośrednio + x = 10; + + // Wypisanie wartości zmiennej x + std::cout << "x = " << x << std::endl; + + // Modyfikacja wartości zmiennej x za pomocą wskaźnika + *px = 15; + + // Wypisanie wartości zmiennej x + std::cout << "x = " << x << std::endl; + + // Modyfikacja wartości zmiennej x za pomocą referencji + rx = 20; + + // Wypisanie wartości zmiennej x + std::cout << "x = " << x << std::endl; + + // Przykładowe użycie funkcji my_swap_1 + int a = 10; + int b = 20; + std::cout << "a = " << a << ", b = " << b << std::endl; + my_swap_1(&a, &b); + std::cout << "a = " << a << ", b = " << b << std::endl; + + Punkt p{3.0, 4.0}; // Inicjalizacja obiektu typu Punkt + + + std::cout << "Przed przesunięciem: p.x = " << p.x << ", p.y = " << p.y << std::endl; + movex(&p, 5.0); // Przesunięcie punktu wzdłuż osi x o 5.0 + std::cout << "Po przesunięciu: p.x = " << p.x << ", p.y = " << p.y << std::endl; + int rozmiar = 10; + double tab[rozmiar]; // Utworzenie tablicy o rozmiarze 10 + + // Wypełnienie tablicy losowymi wartościami z przedziału od 0.0 do 1.0 + fill_random(tab, rozmiar, 0.0, 1.0); + + // Wypisanie zawartości tablicy + for (double* p = tab; p < tab + rozmiar; ++p) + std::cout << *p << ' '; + std::cout << std::endl; + return 0; +}