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.