Dzisiaj nauczysz się
Na tej lekcji poznasz algorytm porządkowania liczb metodą przez zliczanie. Dowiesz się, kiedy taka metoda jest przydatna i dlaczego przed rozpoczęciem porządkowania trzeba znać najmniejszą i największą wartość w zbiorze.
Będziesz pracować z przykładem z podręcznika oraz wykonasz ćwiczenia i zadania związane ze zliczaniem wystąpień liczb.
1. Wprowadzenie
Otwórz podręcznik na temacie:
„Porządkowanie elementów zbioru metodą przez zliczanie”


Przeczytaj krótki opis znajdujący się w ramce:
„Porządkowanie metodą przez zliczanie polega na zliczaniu wystąpień poszczególnych wartości w zbiorze…”
Zwróć uwagę, że ta metoda działa szczególnie dobrze wtedy, gdy znamy zakres możliwych wartości, np. od 2 do 6 albo od 1 do 200.
2. Przykład z podręcznika
Przeanalizuj przykład dla zbioru:
{5, 6, 5, 2, 3, 5, 3}
W podręczniku pokazano, że liczby są z zakresu od 2 do 6, dlatego przygotowujemy liczniki dla liczb:
2, 3, 4, 5, 6
Następnie przeglądamy kolejne elementy zbioru i zwiększamy odpowiedni licznik.

Zauważ, że liczba 4 nie występuje w zbiorze, ale licznik czwórek i tak jest przygotowany. Jego wartość pozostaje równa 0.
3. Najważniejsza zasada
Aby zastosować metodę przez zliczanie, trzeba znać:
najmniejszą wartość w zbiorze
oraz
największą wartość w zbiorze.
Dzięki temu wiadomo, ile liczników trzeba przygotować.
Przykład:
Jeżeli liczby są z zakresu od 2 do 6, przygotowujesz liczniki dla wartości:
2, 3, 4, 5, 6
Jeżeli liczby są z zakresu od 1 do 200, przygotowanie liczników ręcznie byłoby niewygodne, ale komputer może zrobić to automatycznie.
4. Ćwiczenie
Wykonaj teraz ćwiczenie z książki.
Ćwiczenie 16
Temat: porządkowanie liczb od najmniejszej do największej metodą przez zliczanie.

W tym ćwiczeniu pracujesz na zbiorze:
{−2, 5, 2, 0, 4, −2, 4, −1, −2, 5}
Twoim zadaniem jest uporządkować liczby od najmniejszej do największej metodą przez zliczanie.
Pracuj zgodnie ze wskazówkami z podręcznika:
- przygotuj liczniki dla wszystkich liczb całkowitych z zakresu od najmniejszej do największej,
- przeglądaj zbiór od pierwszego elementu,
- zwiększaj odpowiednie liczniki,
- na końcu wypisz liczby w odpowiedniej kolejności.
5. Odwrócenie kolejności
Przeczytaj krótką informację w ramce pod ćwiczeniem 16.
„Aby zbiór liczb był uporządkowany od największej do najmniejszej…”
Zwróć uwagę, że aby uporządkować liczby malejąco, wystarczy odczytać liczniki w odwrotnej kolejności — od prawej strony do lewej.
6. Warto zapamiętać
Przeczytaj sekcję „Warto zapamiętać”.
Najważniejsze informacje z tej części:
- element w zbiorze nieuporządkowanym można znaleźć algorytmem przeszukiwania liniowego,
- zbiór można uporządkować algorytmem porządkowania, np. przez wybieranie lub przez zliczanie,
- w metodzie przez wybieranie wykorzystuje się wyszukiwanie najmniejszego albo największego elementu.
7. Pytania i polecenia
Wykonaj wybrane pytania z podręcznika.
Do wykonania:
Pytanie 11
Dlaczego w porządkowaniu metodą przez zliczanie należy przygotować liczniki dla wszystkich liczb z danego zakresu, nawet jeśli niektóre liczniki pozostaną zerowe? Uzasadnij odpowiedź.
Pytanie 12
Wskaż przynajmniej dwie różnice między porządkowaniem metodą przez wybieranie a metodą przez zliczanie.
Odpowiedzi zapisz w zeszycie lub w dokumencie tekstowym.
8. Zadanie programistyczne
Przejdź do zadań na następnej stronie.
To jest powiększone zdjęcie z zadaniem 11 i przykładami wyników w C++ oraz Pythonie.
Wykonaj:
Zadanie 11
Napisz program w języku Python, który będzie:
- generował losowo dziesięć liczb z zakresu od 1 do 200,
- wyświetlał liczby w trakcie generowania,
- zliczał oddzielnie liczby większe od 100 i mniejsze od 100,
- na końcu wyświetlał odpowiednie komunikaty i wyniki,
- używał zmiennych: liczba, licznik1, licznik2,
- był zapisany w pliku pod nazwą Losowe.
9. Przykładowy program w Pythonie
Możesz napisać program według poniższego wzoru:
import randomlicznik1 = 0licznik2 = 0for i in range(10): liczba = random.randint(1, 200) print(liczba, end=" ") if liczba > 100: licznik1 = licznik1 + 1 if liczba < 100: licznik2 = licznik2 + 1print()print("Liczb większych od 100 jest:", licznik1)print("Liczb mniejszych od 100 jest:", licznik2)
Zwróć uwagę, że liczba równa 100 nie jest ani większa od 100, ani mniejsza od 100. Dlatego w tym programie nie zostanie doliczona do żadnego z liczników.
10. Sprawdź działanie programu
Uruchom program kilka razy.
Za każdym razem wylosowane liczby mogą być inne, ponieważ program korzysta z losowania.
Porównaj swój wynik z przykładem z książki.

11. Zadanie dodatkowe dla chętnych
Zmodyfikuj program tak, aby zliczał również liczby równe 100.
Możesz dodać trzeci licznik:
licznik3 = 0
i sprawdzić warunek:
if liczba == 100: licznik3 = licznik3 + 1
Na końcu wyświetl również komunikat:
print("Liczb równych 100 jest:", licznik3)

12. Podsumowanie lekcji
Po tej lekcji powinieneś umieć:
- wyjaśnić, na czym polega porządkowanie metodą przez zliczanie,
- wskazać, dlaczego trzeba znać najmniejszą i największą wartość w zbiorze,
- przygotować liczniki dla wartości z danego zakresu,
- uporządkować prosty zbiór liczb metodą przez zliczanie,
- napisać prosty program w Pythonie z losowaniem liczb i zliczaniem wyników.
