mirror of
https://github.com/szymon-jozef/ZUT-notatki.git
synced 2026-09-07 12:10:40 +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).
|
||||
@@ -10,4 +10,6 @@ Postać standardowa funkcji boolowskiej może być sumacyjna lub iloczynowa, mog
|
||||
|
||||
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