? CEL Zapoznanie uczniów z pojęciem funkcji i pętli CZAS TRWANIA 90 minut LEKCJA 3 Ułatwiaj sobie życie: funkcje i pętle MATERIAŁY - ipady z aplikacją Swift Playgrounds - Kartki papieru, długopisy NOWE POJĘCIA - Funkcja - Pętla
Ćwiczenie wprowadzające 10-15 minut - Nauczyciel prosi dzieci, aby wymyśliły sobie jakąś czynność. Może być to ulubiona czynność lub taka, którą dzieci wykonują codziennie. Na przykład: chodzenie, tańczenie, śpiewanie lub granie na telefonie. - Następnie prosi, aby każdy uczeń zastanowił się nad tym, z jakich mniejszych czynności składa się wybrana czynność i zapisał je na kartce. Na przykład chodzenie - to stawianie kroków. A każdy z kroków składa się z kilku mniejszych części. - Podsumowanie nauczyciela: Każda czynność jaką wykonujemy - taka jak pisanie, czytanie czy chodzenie - składa się z mniejszych elementów, ruchów. One w sumie tworzą tę czynność i gdy nadamy im wspólną nazwę - będą funkcją. Jeśli natomiast będziemy ją powtarzać określoną ilość razy - stworzymy pętlę. - Przykład: 1 krok jest funkcją, a 15 kroków jest pętlą wykonującą funkcję krok() piętnaście razy. Funkcja zbiór komend nazwanych wspólną nazwą; ten zbiór może być wykonany w dowolnym momencie poprzez samą nazwę funkcji Pętla powtarza daną część kodu określoną ilość razy
Funkcje - grupowanie zadań Każdego dnia wykonujesz szereg czynności automatycznie, nie myśląc o tym co robisz. Jednak nawet proste czynności - jak wiązanie buta - zajęły trochę czasu, żeby je zautomatyzować. Najpierw nauczyłeś się sekwencji kroków. Aby zawiązać buta musisz wykonać 3 kroki: pętelkę, przełożyć przez dziurkę i pociągnąć. W programowaniu funkcja pozwala nazwać grupę czynności, które potem możesz wykonywać kiedy tylko chcesz. func tiemyshoe() { loop() swoop() pull() } Aby zdefiniować funkcję użyj func, nadaj jej nazwę i użyj okrągłych nawiasów (). Poszczególne kroki umieść między nawiasami klamrowymi {}. Aby uruchomić funkcję, należy ją wywołać. tiemyshoe() loop swoop pull zawiazbuta() pętla przełożenie pociągnięcie
Składanie nowego zachowania Cel: Użyj złożenia aby skręcić w prawo Czy zauważyłeś, że nie udostępniliśmy komendy turnright()? Jeśli Bajt potrzebuje skręcić w prawo, aby zebrać kamień - jak ma to zrobić? Czasami musisz rozwiązać problem korzystając z istniejących komend, aby stworzyć nowe zachowanie. Ten proces to złożenie. 1) Wymyśl jak skręcić w prawo, korzystając tylko z komend używanych do tej pory. 2) Wykorzystaj złożenie, aby skręcić w prawo kiedy trzeba. 3) Wprowadź komendy, aby zebrać kamień. turnright() composition skrecwprawo() złożenie
Tworzenie nowej funkcji Cel: Zdefiniuj i użyj swojej funkcji do skrętu w prawo W poprzedniej łamigłówce skręciłeś w prawo tylko raz, więc wykorzystanie trzech skrętów w lewo nie było problemem. Ale co jeśli musiałbyś często skręcać w prawo? Wydajniej byłoby złożyć te trzy skręty w lewo w komendę turnrigth(). Takie komendy to właśnie funkcje, wykonujące szereg czynności. Już wcześniej używałeś funkcji - każda komenda, którą używałeś do tej pory była funkcją, którą przygotowaliśmy. Aby zdefiniować funkcję, umieść zestaw komend między { }. 1) Dotknij wnętrze funkcji pomiędzy nawiasami { }. 2) Wprowadź trzykrotnie komendę turnleft(). 3) Pod funkcją używaj jej oraz dotychczasowych komend, aby wcisnąć przełącznik. turnright() turnleft() skrecwprawo() skrecwlewo()
Zbierz, wciśnij, powtórz Wyzwanie: Zdefiniuj funkcję dla wzorca zachowań W tym wyzwaniu znajdziesz kilka kamieni, a każdy z nich jest obok przełącznika. Zamiast powtarzać te same zestawy komend, stwórz nową funkcję, która składa się z komend używanych do zebrania kamienia i wciśnięcia przełącznika. Możesz nazwać swoją funkcję jak tylko chcesz. Po zdefiniowaniu i nazwaniu funkcji, możesz ją wywołać wpisując jej nazwę - jak funkcje, których używałeś do tej pory. call wywołanie
Cała plansza kamieni Wyzwanie: Wskaż powtarzający się wzorzec i zdefiniuj funkcję W tym wyzwaniu masz do zebrania całą planszę kamieni - jest ich tak dużo, że jest kilka sposobów na rozwiązanie tej łamigłówki. Wybierz ściężkę, która powtarza wzorzec i użyj tego wzorca w swojej funkcji. Jeśli nie uda się od razu, próbuj dalej - trening czyni mistrza! (Ale jak zawsze, możesz pójść dalej kiedy tylko będziesz chciał.) pattern wzorzec
Zagnieżdżanie wzorców Cel: Wywołaj funkcję wewnątrz innej funkcji Do tej pory zdefiniowane funkcje używały komend, które już istniały, np. moveforward() i collectgem(). Ale nie musi tak być! Funkcja turnaround() rozkazuje Bajtowi obrócić się i iść w przeciwnym kierunku. Tę funkcję możesz umieścić wewnątrz innej funkcji, solvestair() i wywołać funkcję solvestair() w kodzie aby rozwiązywać większe części łamigłówki. Proces rozbijania problemu na mniejsze części to dekompozycja. 1) Zdefiniuj funkcję solvestair() wywołując w niej turnaround(). 2) Wywołaj solvestair() wraz z pozostałymi funkcjami, których potrzebujesz. 3) Rozwiąż łamigłówkę zbierając wszystkie cztery kamienie. moveforward() collectgem() turnaround() solvestair() idzdoprzodu() zbierzkamien() obrocsie() pokonajschody()
Szczelinowe schody Cel: Rozłóż rozwiązanie na wiele funkcji Definiowanie funkcji wykonującej małą czynność, a następnie wywoływanie jej w innej funkcji aby wykonać większą czynność jest dość przydatne. Ta praktyka pozwala na pisanie czytelnego kodu, ponieważ każda funkcja otrzymuje swoją nazwę zgodną ze swoim celem. Upraszcza także pisanie kodu, bo po stworzeniu większej funkcji nie musisz skupiać się na jej szczegółach. 1) Wykonaj kod, aby sprawdzić co powoduje solverow(). 2) Dostosuj kod wewnątrz solverow() tak, aby rozwiązywał większą cześć łamigłówki. 3) Wywołaj solverow() wraz z innymi funkcjami, aby rozwiązać łamigłówkę. solverow() rozwiążrząd()
Poszukiwanie skarbów Wyzwanie: Rozłóż wzorce i definiuj funkcje W tym ostatnim wyzwaniu zacznij od znalezienia małych wzorców komend i zadeklarowaniu funkcji, która je wywoła. Użyj tej funkcji, aby rozpocząć rozwiązywanie części łamigłówki. W miarę jak poznajesz większe części łamigłówki, zdefiniuj nową funkcję, która ponownie wykorzysta to co było w pierwszej funkcji. Wywołaj drugą funkcję aby rozwiązać nowopoznane części łamigłówki.
Pętle - powtarzanie się Wyobraź sobie, że pomagasz komuś sadzić rośliny w ogrodzie. Ten ktoś może powiedzieć Ci - dla każdego z tych 4 nasion wykop dziurę, włóż nasionko, a następnie przesuń się 10 cm do przodu. Aby napisać pętlę for użyj for i określ ile razy ma się wykonać. for eachseed in 1 4 { wykopdziure() wrzucnasionko() przesundoprzodu() } Powyższy zestaw komend wykona się czterokrotnie. for (each) dla (każdego)
Używanie pętli Cel: Użyj pętlę for, aby powtórzyć sekwencję komend Aby rozbić zadania programistyczne używałeś funkcji dla powtarzających się wzorców. Teraz będziesz wywoływał tę samą funkcję wielokrotnie używając pętli. Wykorzystując pętlę, wystarczy że napiszesz kod raz i określisz ilość jego powtórzeń. W tej łamigłówce kamień znajduje się na tej samej pozycji w każdym rzędzie. Zbierzesz je powtarzając to samo zachowanie kilkukrotnie. To idealna sytuacja do użycia pętli! 1) Wprowadź rozwiązanie dla jednego rzędu wewnątrz okrągłych nawiasów ( ). 2) Określ, ile razy pętla ma się wykonać. 3) Dotknij pola number, aby określić ilość powtórzeń. loop number pętla liczba, ilość
Zapętlanie wszystkich stron Cel: Użyj pętlę for, aby powtórzyć sekwencję komend W tej łamigłówce musisz zebrać 4 kamienie zlokalizowane w tym samym miejscu każdego boku kwadratowej planszy. Stworzysz pętlę, która powtarza poniższy kod dla każdego z boków aby rozwiązać całą łamigłówkę. 1) Przeciągnij pętlę for z biblioteki kodu i upuść ją nad istniejącą częścią kodu. 2) Dotknij dolnych nawiasów klamrowych { }, aby zaznaczyć pętlę. 3) Dotknij i przytrzymaj te nawiasy, a następnie przeciągnij w dół, aby wciągnąć poniższy kod do pętli.
Do krawędzi i z powrotem Wyzwanie: Użyj pętlę for, aby powtórzyć obracanie W tym wyzwaniu potrenujesz znajdowanie powtarzających się wzorców. Musisz wcisnąć cztery przełączniki, docierając do każdego z nich z centralnego punktu planszy. Rozbij łamigłówkę na mniejsze części określając sekwencję komend potrzebną do wciśnięcia pierwszego przełącznika i powrót do punktu centralnego. Tę sekwencję będziesz powtarzał, więc umieść ją pomiędzy nawiasami klamrowymi { }. Czy potrafisz określić dodatkową komendę, która sprawi, że powtarzanie wzorca pozwoli aktywować wszystkie przełączniki? loop number pętla liczba, ilość
Pętlowy skoczek Wyzwanie: Wskaż powtarzający się wzorzec z wykorzystaniem portali W tym wyzwaniu prosty wzorzec działa dla każdego z kamieni. Wymyśl jak zebrać pierwszy kamień, a potem zobacz czy ten sam wzorzec zadziała dla wszystkich kamieni.
Podsumowanie 5 minut - Nauczyciel pyta czym jest funkcja. - Czy zdaniem dzieci jest ona przydatna w życiu codziennym? Dlaczego? - Prosi o podanie przykładów pętli, z jakimi spotykają się na co dzień. LEKCJA 3 Funkcje i pętle