Temat

Od problemu do algorytmu

Etap edukacyjny

Drugi

Podstawa programowa

Klasy IV–VI

I. Rozumienie, analizowanie i rozwiązywanie problemów. Uczeń:

2) formułuje i zapisuje w postaci algorytmów polecenia składające się na:

a) rozwiązanie problemów z życia codziennego i z różnych przedmiotów.

Czas

45 minut

Cel ogólny

Poznanie podstawowych zasad tworzenia algorytmów.

Cele szczegółowe

1. Potrafi zdefiniować problem do rozwiązania.

2. Nabycie umiejętności określenia kolejnych kroków rozwiązania prostego problemu.

Efekty uczenia

Uczeń:

- potrafi podać przepis na rozwiązanie prostego problemu,

- potrafi tworzyć proste algorytmy.

Metody kształcenia

1. Dyskusja.

2. Odwrócona klasa.

Formy pracy

1. Praca własna ucznia.

2. Praca w grupie.

Etapy lekcji

Wprowadzenie do lekcji

Odpowiedz na pytania wprowadzające:

1. Co to jest algorytm?
2. Podaj przepis postępowania przy gotowaniu wody w czajniku elektrycznym?
3. Czy przepis na gotowanie wody w czajniku na kuchence będzie wyglądał tak samo?
4. Zaproponuj przepis na zagotowanie wody opisujący oba przypadki.

Przedyskutujcie odpowiedzi na forum klasy.

Realizacja lekcji

Na pewno juz zorientowaliście się, że urządzenia elektroniczne, w tym komputery, tablety, czy smartfony działają ściśle według „przepisów” opracowanych przez ludzi. Zanim jednak programista wprowadzi do pamięci takiej maszyny kod, na podstawie którego będzie ona wykonywała zadane jej czynności, należy starannie przeanalizować co takie urządzenie ma wykonać i w jakiej sytuacji. Na pozór wydaje sie to być proste, jednak gdy zaczniemy sami tworzyć taki przepis, który fachowo nazywa sie algorytmem, okazuje się, że jest to skomplikowane i należy przewidzieć bardzo wiele sytuacji.

Spróbujmy stworzyć algorytm dla ... windy - urządzenia, z którego często korzystamy.

Wyobraź sobie, że winda kursuje wyłącznie pomiędzy dwiema kondygnacjami:

- poziom parteru,
- poziom piętra.

Nasz algorytm w najprostszym układzie będzie oparty na poleceniach:

- jedź do góry,
- jedź do dołu,
- zatrzymaj windę,
- otwórz drzwi,
- zamknij drzwi.

Oraz informacjach:

- naciśnięto przycisk na parterze,
- naciśnięto przycisk na piętrze,
- naciśnięto w windzie przycisk „na parter”,
- naciśnięto w windzie przycisk „na piętro”.

Oraz zmiennej „kondygnacja”, która będzie przyjmowała wartość 'parter' jeśli winda będzie się znajdowała na parterze lub 'piętro' gdy będzie na piętrze.

Najprostszy algorytm który spowodowałby, że pasażer który podchodzi do windy na parterze mógłby nią wjechać na górę, wyglądałby tak:

- jeżeli „naciśnięto przycisk na parterze” – otwórz drzwi,
- jeżeli naciśnięto w windzie przycisk „na piętro” – zamknij drzwi,
- jedź do góry,
- jeżeli kondygnacja = „piętro” - zatrzymaj windę,
- otwórz drzwi.

Algorytm bardzo prosty, ale tak naprawdę założyliśmy, że winda stoi na dole i czeka na pasażera, a to wcale nie musi być prawda.

Czas więc na Ciebie.

Polecenie 1

Przerób algorytm tak, aby winda działała tak jak poprzednio, ale dodatkowo:

A: najpierw zjechała po pasażera na dół, gdyby była pozostawiona na górze.
B: obsługiwała zarówno pasażerów wjeżdżających na górę jak i zjeżdżających na dół.
C: obsługiwała jeszcze trzecią kondygnację (piwnicę).

Gdy uporasz się z powyższymi zadaniami, to pomyśl, że prawdziwa winda jeszcze:

- reaguje na przycisk awaryjny „stop”,
- zabiera po drodze pasażerów z innych pięter jeśli przycisnęli przycisk zgodny z kierunkiem w którym w danej chwili porusza się winda („na górę lub „na dół”),
- nie zatrzyma się „po drodze”, jeżeli w windzie jest już maksymalna ilość pasażerów.

Zapisane przez Ciebie polecenia w algorytmach zapisuje się przy użyciu symboli graficznych pokazanych na rysunku interaktywnym.

[Grafika interaktywna]

Podsumowanie lekcji

Algorytm to przepis postępowania, które w efekcie doprowadza do uzyskania określonego efektu. Algorytm powinien być poprawny, skończony, jednoznaczny, efektywny oraz uniwersalny. Oznacza, że powinien obejmować swoim działaniem wszystkie możliwe przypadki opisujące daną sytuację. W wyniku końcowym powinien zawsze dać poprawny wynik po wykonaniu skończonej liczby czynności.