mirror of
https://github.com/szymon-jozef/ZUT-notatki.git
synced 2026-09-07 20:20:39 +02:00
rzeczy
This commit is contained in:
10
uczelnia/2_semestr/programowanie/laby/lab5/zad1.cpp
Normal file
10
uczelnia/2_semestr/programowanie/laby/lab5/zad1.cpp
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
// Prześledź krok po kroku poniższy kod. Dla każdej linii zanotuj wartość ptr, *ptr
|
||||||
|
// (jeśli dostępna) oraz czy pamięć jest zaalokowana.
|
||||||
|
|
||||||
|
int *ptr = nullptr;
|
||||||
|
ptr = new int(5);
|
||||||
|
std::cout << *ptr << '\n';
|
||||||
|
*ptr = *ptr + 3;
|
||||||
|
std::cout << *ptr << '\n';
|
||||||
|
delete ptr;
|
||||||
|
ptr = nullptr;
|
||||||
2
uczelnia/2_semestr/programowanie/laby/lab5/zad10.cpp
Normal file
2
uczelnia/2_semestr/programowanie/laby/lab5/zad10.cpp
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
// Przepisz rozwiązanie zadania 9, używając std::unique_ptr<double[]> zamiast su
|
||||||
|
// rowego wskaźnika. Sprawdź, co musisz zmienić i co działa tak samo.
|
||||||
9
uczelnia/2_semestr/programowanie/laby/lab5/zad2.cpp
Normal file
9
uczelnia/2_semestr/programowanie/laby/lab5/zad2.cpp
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
// Poniższy kod zawiera kilka błędów. Wskaż każdy z nich i zaproponuj poprawkę
|
||||||
|
|
||||||
|
void funkcja() {
|
||||||
|
int *a = new int(10);
|
||||||
|
int *b = new int(20);
|
||||||
|
a = b; // (1)
|
||||||
|
delete a; // (2)
|
||||||
|
delete b; // (3)
|
||||||
|
}
|
||||||
3
uczelnia/2_semestr/programowanie/laby/lab5/zad3.cpp
Normal file
3
uczelnia/2_semestr/programowanie/laby/lab5/zad3.cpp
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
// Napisz program, który wczytuje od użytkownika liczbę n, alokuje tablicę n lic
|
||||||
|
// b całkowitych na stercie, wczytuje n wartości, oblicza i wypisuje ich
|
||||||
|
// sumę, a następnie poprawnie zwalnia pamięć.
|
||||||
7
uczelnia/2_semestr/programowanie/laby/lab5/zad4.cpp
Normal file
7
uczelnia/2_semestr/programowanie/laby/lab5/zad4.cpp
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
// Napisz funkcję o poniższej sygnaturze. Zaalokuj tablicę, wypełnij ją kole
|
||||||
|
// nymi wielokrotnościami
|
||||||
|
// wartości krok i zwróć wskaźnik. Pamiętaj, że wywołujący jest odpowiedzialny za del
|
||||||
|
// te[].
|
||||||
|
|
||||||
|
int *generujTableau(int n, int krok);
|
||||||
|
// Przykład: generujTableau(5, 3) zwraca {0, 3, 6, 9, 12}
|
||||||
11
uczelnia/2_semestr/programowanie/laby/lab5/zad5.cpp
Normal file
11
uczelnia/2_semestr/programowanie/laby/lab5/zad5.cpp
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Uzupełnij program i sprawdź zachowanie. Wyjaśnij, dlaczego wyniki mogą się różn
|
||||||
|
// ić.
|
||||||
|
|
||||||
|
void podwojWartoscia(int x) { x *= 2; }
|
||||||
|
void podwojWskaznikiem(int *p) { *p *= 2; }
|
||||||
|
int *q = new int(5);
|
||||||
|
podwojWartoscia(*q);
|
||||||
|
std::cout << *q << '\n'; // co zostanie wypisane?
|
||||||
|
podwojWskaznikiem(q);
|
||||||
|
std::cout << *q << '\n'; // co zostanie wypisane?
|
||||||
|
delete q;
|
||||||
9
uczelnia/2_semestr/programowanie/laby/lab5/zad6.cpp
Normal file
9
uczelnia/2_semestr/programowanie/laby/lab5/zad6.cpp
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
// Poniższy fragment ma błąd logiczny i błąd zarządzania pamięcią. Zidentyfikuj oba i n
|
||||||
|
// apisz poprawną wersję.
|
||||||
|
|
||||||
|
int *stworzTablice(int n) {
|
||||||
|
int tab[n]; // (1) — co jest nie tak?
|
||||||
|
for (int i = 0; i < n; i++)
|
||||||
|
tab[i] = i;
|
||||||
|
return tab; // (2) — co jest nie tak?
|
||||||
|
}
|
||||||
9
uczelnia/2_semestr/programowanie/laby/lab5/zad7.cpp
Normal file
9
uczelnia/2_semestr/programowanie/laby/lab5/zad7.cpp
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
// Przepisz poniższy kod, zastępując ręczną alokację obiektem unique_ptr.
|
||||||
|
// Upewnij się, że nie musisz pisać delete.
|
||||||
|
|
||||||
|
// Wersja z surowym wskaźnikiem:
|
||||||
|
double *wynik = new double(3.14);
|
||||||
|
std::cout << *wynik << '\n';
|
||||||
|
delete wynik;
|
||||||
|
// Twoja wersja z unique_ptr:
|
||||||
|
// ...
|
||||||
16
uczelnia/2_semestr/programowanie/laby/lab5/zad8.cpp
Normal file
16
uczelnia/2_semestr/programowanie/laby/lab5/zad8.cpp
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
// Prześledź poniższy kod. Przed każdym std::cout przewidź wartość use_count(), a nast
|
||||||
|
// pnie uruchom program i porównaj
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <memory>
|
||||||
|
int main() {
|
||||||
|
auto a = std::make_shared<int>(42);
|
||||||
|
std::cout << a.use_count() << '\n'; // ?
|
||||||
|
{
|
||||||
|
auto b = a;
|
||||||
|
std::cout << a.use_count() << '\n'; // ?
|
||||||
|
auto c = a;
|
||||||
|
std::cout << a.use_count() << '\n'; // ?
|
||||||
|
}
|
||||||
|
std::cout << a.use_count() << '\n'; // ?
|
||||||
|
}
|
||||||
9
uczelnia/2_semestr/programowanie/laby/lab5/zad9.cpp
Normal file
9
uczelnia/2_semestr/programowanie/laby/lab5/zad9.cpp
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
// Napisz program, który:
|
||||||
|
// • pyta użytkownika o liczbę ocen n
|
||||||
|
// • dynamicznie alokuje tablicę n liczb double
|
||||||
|
// • wczytuje oceny od użytkownika
|
||||||
|
// • oblicza i wypisuje średnią, ocenę minimalną i maksymalną
|
||||||
|
// • wypisuje informację, czy student zaliczył (średnia >= 3.0)
|
||||||
|
// • poprawnie zwalnia pamięć
|
||||||
|
// Użyj funkcji pomocniczych: obliczSrednia(double* tab, int n),
|
||||||
|
// znajdzMin(double* tab, int n), znajdzMax(double* tab, int n).
|
||||||
@@ -11,3 +11,5 @@ Postać standardowa funkcji boolowskiej może być sumacyjna lub iloczynowa, mog
|
|||||||
Nudy gówno tralalalalalal
|
Nudy gówno tralalalalalal
|
||||||
|
|
||||||
rlc sratata
|
rlc sratata
|
||||||
|
|
||||||
|
Czas propagacji na wykresie czasu to przesunięcie zielonej linii.
|
||||||
Reference in New Issue
Block a user