C++ - wskaźniki
Omawiane zagadnienia.
- wskaźniki i referencje
- arytmetyka wskaźników
- dynamiczny przydział pamięci
- debugowanie i narzędzia typu valgrind
Napisz następujące programy przy użyciu arytmetyki wskaźników - nie jest dozwolone indeksowanie tablic.
- wypisanie elementów tablicy na standardowe wyjście
- wyszukiwanie największej liczby w tablicy
- wyszukiwanie pewnej liczby w posortowanej tablicy
- odwracanie kolejności elementów tablicy
- przesunięcie cykliczne elementów tablicy w lewo o jeden. Po wykonaniu algorytmu tablica ma mieć wartości
t[i] = t[i+1], dla i<N-1
t[N-1]=t[0]
gdzie N jest długością tablicy.
- przesunięcie cykliczne elementów tablicy w lewo o 'k' miejsc.
- scalanie dwóch posortowanych tablic w trzecią (również posortowaną)
Rozwiązania zadań z tej grupy mogą wykorzystywać indeksowanie tablic.
- Systemy pozycyjne: Napisz program, króry dla zadanej przez użytkownika liczby całkowitej n utworzy tablicę zawierającą kolejne cyfry liczby n zapisanej w systemie trójkowym.
- Wielomiany: tablicę liczb możemy traktować jako współczynniki wielomianu. Napisz program, który:
- wygeneruje dwa losowe wielomiany o stopniach podanych przez użytkownika programu. Współczynniki powinny być dowolnymi liczbami typu int
- utworzy w pamięci komputera tablicę zawierająca współczynniki iloczynu tych wielomianów
Spróbuj napisać ten program beż użycia indeksowania tablic, wykorzystując jedynie arytmetykę wskaźników.
- Filtr: Napisz program, który:
- wygeneruje tablicę (nazwijmy ją T) o długości podanej przez użytkownika programu oraz uzupełni ją losowymi liczbami całkowitymi z zakresu [0,10]
- wypisze elementy tablicy T na standardowe wyjście
- Utworzy w pamięci komputera nową tablicę o minimalnym rozmiarze, zawierającą kolejne elementy tablicy T z wyłączeniem wszytkich wystąpień podanej przez użytkownika liczby n.
Zadana jest liczba naturalna N ≥ 0. Napisz program, który utworzy w pamięci komputera strukturę podwójnie indeksowaną taką, że
t[n][k] = symbol Newtona "n po k"
przy czym
- N ≥ n ≥ k ≥ 0
- Dla ustalonego n, obiekt t[n] jest tablicą długości dokładnie n+1
Zadbaj o zwolnienie przydzielonych zasobów (pamięci) przed zakończeniem działania programu.
W dwóch poprzednich zadaniach przetestuj poprawność alokacji i zwalniania pamięci.
Materiały przeznaczone wyłącznie dla studentów
Instytutu Informatyki i Matematyki Komputerowej UJ