Temat: Algorytmy tekstowe
w języku Python
Algorytmy tekstowe są
przydatne do przetwarzania oraz przeszukiwania danych tekstowych.
Algorytmów tekstowych używamy,
korzystając z edytora tekstu czy klienta e‑mail.
Znajdują również zastosowanie w grach.
Możemy je wykorzystać,
projektując implementację popularnej gry w wisielca
Twoje cele
·
Zaimplementujesz algorytmy tekstowe
w języku Python.
·
Przećwiczysz operacje na tekstach.
·
Połączysz wiedzę o algorytmach
z praktyką programistyczną.
Problem 1
Napisz program symulujący grę w wisielca.
Specyfikacja problemu:
Założenia:
·
program
nie rysuje szubienicy – liczbę szans przechowuje w zmiennej;
·
komputer losuje słowo
z wcześniej przygotowanej tablicy;
·
gracz zgaduje słowo poprzez
wprowadzanie kolejnych liter; jeżeli litera znajduje się w słowie,
powinien pojawić się komunikat informujący, że dana litera wystąpiła
w słowie; jeśli nie, pojawia się stosowny komunikat i informacja na
temat tego, ile szans pozostało graczowi;
·
gra kończy się, gdy gracz zgadnie
słowo w całości lub zabraknie mu szans.
Dane:
·
slowa – tablica łańcuchów znaków
Wynik:
Program
wyświetla komunikat na temat wygranej (Gratulacje! Wygrałeś),
jeśli użytkownik odgadnie słowo, lub porażki (Próbuj dalej.
Przegrałeś) w przeciwnym wypadku.
·
https://zpe.gov.pl/a/film-samouczek/D18ll0MB4
Podstawa programowa:
Cele kształcenia – wymagania ogólne
I. Rozumienie, analizowanie i rozwiązywanie problemów na bazie logicznego i abstrakcyjnego myślenia, myślenia algorytmicznego i sposobów reprezentowania informacji.
II.
II. Programowanie i rozwiązywanie problemów
z wykorzystaniem komputera oraz innych urządzeń cyfrowych: układanie
i programowanie algorytmów, organizowanie, wyszukiwanie
i udostępnianie informacji, posługiwanie się aplikacjami komputerowymi.
III.
Treści nauczania – wymagania szczegółowe
IV.
I. Rozumienie, analizowanie i rozwiązywanie
problemów.
V.
Zakres
podstawowy.
VI.
Uczeń:
VII.
2) stosuje przy rozwiązywaniu problemów
z różnych dziedzin algorytmy poznane w szkole podstawowej oraz
algorytmy:
VIII.
b) na
tekstach: porównywania tekstów, wyszukiwania wzorca w tekście metodą
naiwną, szyfrowania tekstu metodą Cezara i przestawieniową,
IX.
. Uczeń spełnia wymagania określone dla zakresu
podstawowego, a ponadto:
X.
2) do realizacji rozwiązania problemu dobiera
odpowiednią metodę lub technikę algorytmiczną i struktury danych;
XI.
II.
Programowanie i rozwiązywanie problemów z wykorzystaniem komputera
i innych urządzeń cyfrowych.
XII.
2) stosuje zasady programowania strukturalnego
i obiektowego w rozwiązywaniu problemów;
XIII.
3)
sprawnie posługuje się zintegrowanym środowiskiem programistycznym przy
pisaniu, uruchamianiu i testowaniu programów;
Kształtowane kompetencje kluczowe:
kompetencje cyfrowe;
· kompetencje osobiste, społeczne i w zakresie umiejętności uczenia się;
· kompetencje matematyczne oraz kompetencje w zakresie nauk przyrodniczych, technologii i inżynierii.
Cele operacyjne ( językiem ucznia):
· Zaimplementujesz algorytmy tekstowe w języku Python.
· Przećwiczysz operacje na tekstach.
· Połączysz
wiedzę o algorytmach z praktyką programistyczną.
Strategie nauczania:
· konstruktywizm;
· konektywizm.
Metody i techniki nauczania:
· dyskusja; rozmowa nauczająca z wykorzystaniem multimedium i ćwiczeń interaktywnych; ćwiczenia praktyczne.
Formy pracy:
· praca indywidualna; praca w parach; praca w grupach; praca całego zespołu klasowego.
Środki dydaktyczne:
· komputery
z głośnikami, słuchawkami i dostępem do internetu; zasoby
multimedialne zawarte w e‐materiale; tablica interaktywna/tablica,
pisak/kreda;
Przebieg lekcji Przed lekcją:
Faza wstępna:
1. Nauczyciel wyświetla uczniom temat, wskazuje cele zajęć oraz ustala z uczestnikami zajęć kryteria sukcesu.
2. Rozpoznanie wiedzy uczniów. Uczniowie tworzą pytania dotyczące tematu zajęć, na które odpowiedzą w trakcie lekcji.
Faza realizacyjna:
1. Praca z multimedium. Nauczyciel wyświetla zawartość sekcji „Film samouczek”. Na forum klasy uczniowie analizują przedstawioną w niej implementację gry w wisielca w języku Python
2. Praca z tekstem. Nauczyciel wyświetla zawartość sekcji „Przeczytaj”. Uczniowie zapoznają się z tekstem. Uczniowie implementują i testują omówiony program na swoich komputerach. Nauczyciel odpowiada na ewentualne pytania.
3. Ćwiczenie umiejętności. Uczniowie wykonują indywidualnie ćwiczenie nr 1, a następnie porównują swoje odpowiedzi z kolegą lub koleżanką
. Faza podsumowująca: 1. Na koniec zajęć z programowania w Pythonie nauczyciel prosi uczniów o rozwinięcie zdania: „Na dzisiejszych zajęciach nauczyłam/łem się jak…”.
Praca domowa: 1. Uczniowie wykonują ćwiczenie 3 z sekcji „Sprawdź się”.
Materiały pomocnicze: Oficjalna dokumentacja techniczna dla języka Python 3 (lub nowszej wersji). Oficjalna dokumentacja techniczna dla oprogramowania PyCharm lub IDLE.
Wskazówki metodyczne: Uczniowie mogą wykorzystać treści w sekcjach: „Film samouczek”, „Przeczytaj”, „Sprawdź się” jako materiał do lekcji powtórkowej.



ZadaneiDomowe
Możemy wprowadzić
element nieprzewidywalności i stworzyć grę, w której wyrazy do
odgadnięcia będą dobierane losowo. Spróbujmy zdefiniować dodatkową funkcję,
która wybierze słowo, a następnie uruchomi funkcję wisielec() z nim jako argumentem.
def
losuj_wisielca():
from random import randint
lista_slow = ["tajemnica",
"skrzyżowanie", "klawiatura", "algorytm"]
losowany = randint(0, len(lista_slow) - 1)
return lista_slow[losowany]
def
wisielec(slowo):
zycia = len(slowo)
odgadniete = 0
zgadniete_litery = []
nakońcu
slowo =
losuj_wisielca()
wisielec(slowo)

