Zadanie w c++
Przesunąć cyklicznie n elementową tablicę o k miejsc w lewo w czasie
proporcjonalnym do n, przy wykorzystaniu zaledwie kilku dodatkowych słów pamięci.


Odpowiedź :

Odpowiedź

Kod źródłowy jest w pierwszym załączniku, a w drugim podałam wynik przykładowego uruchomienia.

Wyjaśnienie

Dev-C++ wprawdzie obsługuje polskie litery w komunikatach, ale na innych platformach ten sam efekt można osiągnąć dużo, dużo prościej. Tak więc więcej przykładowych wyników wygenerowałam na platformie replit. (Tam też jest banalnie prosto wygenerować kilka wyników obok siebie!) Efekt przedstawiłam w 4. załączniku.

Tam gdzie widzisz  time_t,  może być  unsigned int.  Potem wszędzie zmieniłam na  unsigned int  i wydrukowałam w schemacie kolorystycznym, który uważam, że podnosi czytelność kodu źródłowego. Ten ostateczny wydruk kodu źródłowego z 3. załącznika zawiera też alternatywną generację początkowych elementów tablicy.

Zwróć uwagę, że wprawdzie zamiast  unsigned int  możesz  napisać  int,  ale wszystkie zmienne zdefiniowane jako  unsigned int  (k,  n,  indeksy tablicy) na pewno nie przyjmują wartości ujemnych, tak więc  unsigned int  jest uzasadnione. A jeśli na lekcjach nie było o  time_t,  to na razie przyjmij, że  time_t  w ogóle nie widziałaś.

Zobacz obrazek 0AB
Zobacz obrazek 0AB
Zobacz obrazek 0AB
Zobacz obrazek 0AB