Wartownik
Wykonałem ćwiczenie polegające na wyświetleniu tylko tych znaków z podanego zakresu. Czyli tak, mam indeks początkowy oraz przesunięcie czyli ile znaków licząc od indeksu początkowego chcę wyświetlić. No i mam taki przykład, wiadomo standardowo ciąg znaków: "Siała baba mak". No i dla tego ciągu znaków mam takie oto wyniki.
S, i, a, ł, a, , b, a, b, a, , m, a, k,
S, i,
i, a,
a, ł,
Czyli wpierw sobie wyświetliłem wszystkie znaki osobno. No i tak, pierwsza iteracja to "S,i,", ona ma argumenty [0, 2] czyli pierwszy argument to indeks początkowy, a drugi liczba znaków, druga iteracja to [1, 2], a trzecia to [2, 2]. Wynik jest jaki jest. Tak więc w taki sposób ustaliłem sobie mojego wartownika, bo wartownik to właśnie ten zakres. Jak zrealizowałem zakres? Mam dwie zmienne: min_index i max_index. Min_index to indeks początkowy, a max_index to indeks końcowy. Min_index = poczatek, max_index = min_index + przesuniecie. No i w pętli while ustaliłem sobie takie coś, w sensie przed nią mam index = min_index no i warunek pętli while jest taki że while ( index < max_index ). I wtedy sobie wyświetlam każdy element tablicy w tym zakresie.
To dawno jest sztuczna inteligencja. Może lepsza niż moja własna? Żartuję tylko. Dobra, to mam ustalony zakres wyświetlania. Ale jeszcze taka rzecz, ustaliłem sobie wartownika żeby mi nie wyszedł poza zakres tablicy. Jak przecież będę poza zakresem to program wyświetli mi błąd. Mogę sobie zrobić try - catch czyli kontrolę błędów no ale nie o to chodzi. Ja chcę zminimalizować ryzyko popełnienia błędu do zera. A żeby to zrobić muszę trzymać się ustalonego zakresu, a jest nim zakres tablicy. Czyli tablica ma swój indeks początkowy czyli 0 oraz indeks końcowy czyli jej rozmiar tak. To mam już ustalony zakres i poza niego nie mogę wyjść. Tak więc jak min_index czy max_index są poza zakresem to mają do niego same wrócić. index < 0 => index = 0, index > rozmiar => index = rozmiar. Index to tutaj min_index i max_index, jest to zapis dla instrukcji warunkowej if. No i jeszcze mam jeden zapis: min_index > max_index => min_index = max_index. To tak w razie "w". I coś tam program wyświetla.