Dlaczego komputery zaczynają liczenie od zera? – WebDocKids: karty pracy i questy dla dzieci 6–12 lat

Dlaczego komputery zaczynają liczenie od zera?

Cześć! Tu Piks. Wyobraź sobie, że stoisz w kolejce i pani mówi: „Pierwszy? Numer zero, proszę!”. Dziwne, prawda? A tak właśnie liczy prawie każdy komputer na świecie. 🖥️

Numer, który mówi „ile kroków dalej”

Komputer trzyma dane w pamięci ustawione jeden za drugim, jak szafki w szkolnej szatni stojące w długim rzędzie. Żeby coś znaleźć, musi wiedzieć, ile szafek przejść od początku rzędu.

I tu jest cały sekret. Do pierwszej szafki nie trzeba iść wcale — stoisz przy niej od razu, więc jej numer to 0. Do drugiej robisz jeden krok, czyli numer 1. Do trzeciej dwa kroki, czyli numer 2. Ten numer nazywa się indeks (czyli adres w rzędzie) i mówi nie „która z kolei”, tylko „jak daleko stąd”.

Dzięki temu komputer nie musi nic odejmować. Widzi numer 5 i od razu odlicza pięć kroków od początku. Gdyby liczył od jedynki, przy każdym szukaniu musiałby najpierw robić dodatkowe obliczenie — a robi to miliony razy na sekundę.

Czy wiesz, że przez to bywa bałagan?

Nie wszystkie języki programowania się dogadały. Python, C, Java czy JavaScript liczą od zera, ale na przykład Lua zaczyna od jedynki. Programista, który przesiada się z jednego na drugi, potrafi z tego powodu narobić sporo błędów. 😅

Największa niespodzianka czeka przy końcu. Jeśli w liście jest 10 elementów, ostatni ma numer 9 — bo zero też się liczy! Gdy programista sięgnie po numer 10, program często się zatnie albo pokaże błąd. To jedna z najczęstszych wpadek w całym programowaniu i ma nawet swoją nazwę: błąd o jeden.

Zadanie od Piksa

Ustaw w rzędzie 10 dowolnych rzeczy — klocki, kredki, skarpetki, co masz pod ręką. Zamiast normalnie policzyć, przypisz im numery po komputerowemu: pierwsza to 0, druga to 1, i tak dalej. Sprawdź, jaki numer ma ostatnia rzecz. Potem poproś kogoś z domu, żeby podał ci „rzecz numer 3” — i zobacz, czy poda tę samą, o której myślisz ty. 🧦

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *