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)