• Nie Znaleziono Wyników

Zadanie Zadanie Zadanie Zadanie 7 - taśmociągi 240. Zadanie 8 - dźwignie 243. Zadanie Moduł X - Afryka 248

N/A
N/A
Protected

Academic year: 2022

Share "Zadanie Zadanie Zadanie Zadanie 7 - taśmociągi 240. Zadanie 8 - dźwignie 243. Zadanie Moduł X - Afryka 248"

Copied!
28
0
0

Pełen tekst

(1)

Spis treści

Moduł IX - Ameryka Północna 2

... ― 212

Zadanie 4 ― 233

Zadanie 5 ― 235

Zadanie 6 ― 238

Zadanie 7 - taśmociągi ― 240

Zadanie 8 - dźwignie ― 243

Zadanie 9 ― 246

Moduł X - Afryka ― 248

Wprowadzenie do modułu - funcje ― 249

Zadanie 1 - Pierwsza funkcja, WZNIESIENIA ― 253

Zadanie 2 ― 257

Zadanie 3 ― 259

Zadanie 4 - RYSOWANIE ― 261

Zadanie 5 ― 264

Zadanie 6 - Wielokrotne Używanie jednego klocka ― 266

Zadanie 7 ― 269

Zadanie 8 - Zarządzanie funkcjami ― 271

(2)

Moduł X

Afryka

Definiowanie funkcji.

Scottie chce szybko ukończyć remont swojego statku kosmicznego i zakończyć obiecane zwierzęcym

przyjaciołom prace. Przeprowadź teraz porządki w parku,

(3)

WPROWADZENIE DO MODUŁU 1/4:

Funkcje

Zwykle jest tak, że pisząc jeden program wielokrotnie wywołujemy w nim te same instrukcje.

Oczywiście, zwykle wtedy zdajemy sobie sprawę, że ponowne ich tworzenie to strata czasu, a szybciej będzie zastosować analogiczne rozwiązanie jak w przypadku zmiennych - umieśćmy kilka instrukcji programu w specjalnych pojemnikach, które wywołamy gdy będą potrzebne. Wtedy program stanie się prostszy, krótszy i bardziej przejrzysty.

Do tego celu wykorzystukemy się funkcje (podprogramy), a w celu ich stworzenia musisz wykorzystać następujące klocki, które zapisujesz jako pierwsze w aplikacji.

Aby stworzyć funkcję musimy wybrać dla niej nazwę A, B, lub C (w grze możemy stworzyć jednocześnie do trzech funkcji), którą zestawimy z klockiem DEFINIUJ FUNKCJĘ:

oraz będziemy potrzebować klocka KONIEC FUNKCJI.

Pomiędzy klockami DEFINIUJ FUNKCJĘ oraz KONIEC FUNKCJI wstawimy instrukcje, których w programie chcielibyśmy używać wielokrotnie, np:

Raz zeskanowanej funkcji możemy użyć w programie używając klocka WYWOŁAJ FUNKCJĘ w zestawieniu z nazwą funkcji którą chcemy wywołać. W tym przypadku:

KONIEC FUNKCJI

KONIEC FUNKCJI

OBRÓT W PRAWO SKOCZ

Z PRZODU

(4)

WPROWADZENIE DO MODUŁU 2/4:

Funkcje

Przylad:

W poniższym zadaniu Scottie ma za zadanie zebrać i posadzić roślinki w miejscach, gdzie ziemia została odpowiednio przygotowana. Jak widzisz czynność tę musi wykonać dwukrotnie.

Przećwiczmy tworzenie i używanie funkcji na przykładzie takiej sytuacji.

1. Na początku układamy instrukcje wykonujące operację zebrania roślinki i posadzenia w wyznaczonym miejscu.

2. Następnie ze zbioru tych instrukcji definiujemy funkcję. Nadajemy jej nazwę A lub B, C.

3. Układamy program, w którym wywołujemy naszą funkcję w odpowiednich miejscach wykorzystując do tego jej nazwę.

KROK KROK

PODNIEŚ

UMIEŚĆ OBRÓT W LEWO

OBRÓT W PRAWO

Z PRAWEJ

KROK DEFINIUJ FUNKCJĘ

KROK

KONIEC FUNKCJI

PODNIEŚ

UMIEŚĆ OBRÓT W LEWO

OBRÓT W PRAWO

Z PRAWEJ

(5)

WPROWADZENIE DO MODUŁU 3/4:

Funkcje [materiał dodatkowy]

Wewnątrz definicji funkcji mogą znaleźć się inne funkcje.

Korzystając z funkcji możemy budować bardzo złożone programy w których:

1. Po pierwsze - i oczywiste - zużyjemy o wiele mniej klocków (dzięki funkcjom programy mają mniej linijek),

2. po drugie będzie nam łatwiej myśleć o zadaniach które stawiamy przed Scottiem.

Pracując na funkcjach podnosimy tu tak zwany poziom abstrakcji, co zresztą robimy na codzień ucząc się czynności takich jak wiązanie butów. Proces nauki wiązania butów polega przecież na tym by myśleć o „wiązaniu butów” jako pojedyńczej instrukcji, nawet jeżeli składa się na nią trudny do opisania werbalnie process splątywnania sznurówek w określonej kolejności.

Na przykład jaką ścieżkę przejdzie Scottie jeżeli:

KROK KROK DEFINIUJ FUNKCJĘ

KONIEC FUNKCJI

Wywołamy funkcję A?

OBRÓT W PRAWO

WYWOŁAJ FUNKCJĘ POWTÓRZ

KONIEC PĘTLI LUB WARUNKU DEFINIUJ FUNKCJĘ

KONIEC FUNKCJI

A jeśli wywołamy B?

DEFINIUJ FUNKCJĘ

KONIEC FUNKCJI

WYWOŁAJ FUNKCJĘ KONIEC PĘTLI LUB WARUNKU KROK KROK

OBRÓT W PRAWO POWTÓRZ

A jeśli wywołamy C?

(6)

WPROWADZENIE DO MODUŁU 4/4:

Funkcje [materiał dodatkowy]

Funkcja może wywołać samą siebię!

Taką funkcję nazywamy funkcją rekurencyjną. Używa się ich między innymi w algorymach sortujących, czyli układających zestaw wartości według kolejności, rozmiaru, czy klucza (np.

porzadkując książki po tytule). Na przykładzie ustawiania uczniów w szeregu według wzrostu:

lub graficznie:

Kluczowym w funkcjach rekurencyjnych będzie warunek, który przerwie funkcję jeżeli. Bez takiego warunku funkcja nigdy nie zostanie przerwana i wygeneruje błąd (albo zablokuje działanie komputera dopóki nie zabraknie pamięci do jej obsługi; W tym celu używamy klocka

PRZERWIJ FUNKCJĘ.

Możemy skonstruować własną pętlę warunkową używając funkcji rekurencyjnej:

Wyłońmy najwyższego

z uczniów

KONIEC SORTOWANIA

SORTUJ (POZOSTALI UCZNIOWIE)

SORTUJ (POZOSTALI UCZNIOWIE) SORTUJ UCZNIOWIE)

Niech stanie na (np. prawym)

końcu szeregu

Najwyższy uczeń Czy po lewej od tego ucznia są jeszcze inni uczniowie?

TAK

TAK

NIE

PRZERWIJ FUNKCJĘ

KROK POWTÓRZ

DOPÓKI Z PRZODU PUSTOPUSTO DEFINIUJ FUNKCJĘ

JEŻELI Z PRZODU PUSTOPUSTO

(7)

WPROWADZENIE:

Pierwsza funkcja, WZNIESIENIA (1/2)

Wywołaj w zadaniu dwa lub cztery razy własną funkcję A za pomocą klocków WYWOŁAJ FUNKCJĘ złożonego z klockiem A (nazwa funkcji),

jednak na początku ją zdefiniuj umieszczając instrukcje, które mają zostać wykonane gdy wywołamy między klockami DEFINIUJ FUNKCJĘ złożonego z klockiem A (nazwa funkcji), |

oraz klocka KONIEC FUNKCJI.

Na przykład: W zapisie tekstowym:

PAMIĘTAJ!!

Krok 1 - ZAPISZ DEFINICJĘ FUNKCJI (maksymalnie trzy funkcje A, B, C) Krok 2 - ZESKANUJ DEFINICJĘ (maksymalnie trzy funkcje A, B, C) Krok 3 - NAPISZ PROGRAM Z DEFINCJĄ FUNKCJI

Krok 4 - ZESKANUJ I URUCHOM PROGRAM

Przeczytaj więcej o funkcjach we Wprowadzeniu do modułu X.

KONIEC FUNKCJI DEFINIUJ FUNKCJĘ WYWOŁAJ FUNKCJĘ

DEFINIUJ FUNKCJĘ A { KROK (2)

}

KROK DEFINIUJ FUNKCJĘ

KONIEC FUNKCJI

(8)

WPROWADZENIE:

Pierwsza funkcja, WZNIESIENIA (2/2)

W niektórych z kolejnych zadań być może, by stworzyć najkrótszy algorytm, będziesz musiał wskoczyć Scottiem na wzniesienia.

Użycie klocka SKOCZ to jedyny sposób aby wejść na wzniesienie, ale możesz zejść z niego używając zarówno klocka SKOCZ jak i KROK.

Możesz też odnieść się do wzniesień w twoich instrukcjach warunkowych używając klocka WZNIESIENIE.

SKOCZ

(9)

Wyzwanie (Zbuduj i wywołaj własną funkcję, umieść sadzonki na polach akcji):

Przykładowe rozwiązanie:

Przykładowe rozwiązanie:

DEFINIUJ FUNKCJĘ

OBRÓT W PRAWO SKOCZ

UMIEŚĆ Z PRZODU

KROK

OBRÓT W LEWO KONIEC FUNKCJI

START

KONIEC KROK

KROK WYWOŁAJ FUNKCJĘ

WYWOŁAJ FUNKCJĘ

(10)

Przykładowe rozwiązanie (format tekstowy):

DEFINIUJ FUNKCJĘ A { OBRÓT W PRAWO SKOCZ

UMIEŚĆ (Z PRZODU) KROK (-1)

OBRÓT W LEWO }

START

KROK (2)

WYWOŁAJ FUNKCJĘ A KROK (3)

WYWOŁAJ FUNKCJĘ A KONIEC

Wyzwanie (Zbuduj i wywołaj własną funkcję, umieść sadzonki na polach akcji):

(11)

Przykładowe rozwiązanie:

Wyzwanie

(W tym zadaniu wywołaj cztery razy własną funkcję, ale z zastosowaniem pętli potwórz):

DEFINIUJ FUNKCJĘ OBRÓT W PRAWO SKOCZ

UMIEŚĆ Z PRZODU

KROK

OBRÓT W LEWO KONIEC FUNKCJI

START

KONIEC KROK

WYWOŁAJ FUNKCJĘ POWTÓRZ

KONIEC PĘTLI LUB WARUNKU

(12)

Przykładowe rozwiązanie (format tekstowy):

DEFINIUJ FUNKCJĘ A { OBRÓT W PRAWO SKOCZ

UMIEŚĆ (Z PRZODU) KROK (-1)

OBRÓT W LEWO }

START

POWTÓRZ (4) { KROK (2)

WYWOŁAJ FUNKCJĘ A }

Wyzwanie

(W tym zadaniu wywołaj cztery razy funkcję własną ale z zastosowaniem pętli potwórz):

(13)

Przykładowe rozwiązanie:

Wyzwanie:

DEFINIUJ FUNKCJĘ

OBRÓT W PRAWO SKOCZ

UMIEŚĆ Z PRZODU

KROK

OBRÓT W LEWO

KONIEC FUNKCJI

WYWOŁAJ FUNKCJĘ START

KONIEC KROK

WYWOŁAJ FUNKCJĘ POWTÓRZ

KONIEC PĘTLI LUB WARUNKU

KROK POWTÓRZ

KONIEC PĘTLI LUB WARUNKU OBRÓT W LEWO OBRÓT W LEWO

(14)

Przykładowe rozwiązanie (format tekstowy):

DEFINIUJ FUNKCJĘ A { OBRÓT W PRAWO SKOCZ

UMIEŚĆ (Z PRZODU) KROK (-1)

OBRÓT W LEWO }

Wyzwanie:

START

POWTÓRZ (3) { KROK (2)

WYWOŁAJ FUNKCJĘ A }

OBRÓT W LEWO OBRÓT W LEWO POWTÓRZ (3) {

WYWOŁAJ FUNKCJĘ A KROK (2)

}

KONIEC

(15)

WPROWADZENIE:

RYSOWANIE

Scottie ma za zadanie rozrysować gdzie powstaną w parku ścieżki.

W tym celu wykorzystamy klocek RYSUJ. Ten sam klocek na zmianę włącza i wyłącza tryb rysowania. W trybie rysowania z każdym krokiem Scottie rysuje na każdym polu na które wchodzi.

Rysowanie na polach bez kropek będzie traktowane jako błąd.

START

KONIEC RYSUJ RYSUJ

KROK

KROK

START

KONIEC RYSUJ

KROK

(16)

Przykładowe rozwiązanie:

Wyzwanie (Rysowanie ścieżki umieść w własnej funkcji A):

DEFINIUJ FUNKCJĘ

OBRÓT W PRAWO OBRÓT W LEWO KROK

KROK

KONIEC FUNKCJI

RYSUJ

RYSUJ

START

KONIEC KROK

WYWOŁAJ FUNKCJĘ POWTÓRZ

KONIEC PĘTLI LUB WARUNKU

(17)

Przykładowe rozwiązanie (format tekstowy):

DEFINIUJ FUNKCĘ A { RYSUJ

OBRÓT W LEWO KROK (3)

RYSUJ KROK (-3)

OBRÓT W PRAWO }

START

POWTÓRZ (4) {

WYWOŁAJ FUNKCJĘ A KROK (2)

} KONIEC

Wyzwanie (Rysowanie ścieżki umieść w własnej funkcji A):

(18)

Przykładowe rozwiązanie:

Wyzwanie

(W kolejnym zadaniu stwórz już dwie funkcje A i B, a następnie użyj ich w Twoim programie):

DEFINIUJ FUNKCJĘ OBRÓT W PRAWO SKOCZ

UMIEŚĆ Z PRZODU

KROK

OBRÓT W LEWO KONIEC FUNKCJI

DEFINIUJ FUNKCJĘ OBRÓT W PRAWO RYSUJ

START

KONIEC KROK

WYWOŁAJ FUNKCJĘ KROK

WYWOŁAJ FUNKCJĘ POWTÓRZ

KONIEC PĘTLI LUB WARUNKU

(19)

Przykładowe rozwiązanie (format tekstowy):

DEFINIUJ FUNKCJĘ A { OBRÓT W PRAWO SKOCZ

UMIEŚĆ (Z PRZODU) KROK (-1)

OBRÓT W LEWO }

DEFINIUJ FUNKCJĘ B { OBRÓT W PRAWO RYSUJ

KROK (4) RYSUJ

KROK (-4)

OBRÓT W LEWO }

Wyzwanie

(W kolejnym zadaniu stwórz już dwie funkcje A i B, a następnie użyj ich w Twoim programie):

START

POWTÓRZ (2) { KROK (2)

WYWOŁAJ FUNKCJĘ A KROK (1)

WYWOŁAJ FUNKCJĘ B }

KONIEC

(20)

WPROWADZENIE

Wielokrotne używanie jednego klocka

Ilość klocków w pudełku jest ograniczona, ale możesz użyć tych samych klocków w definicjach funkcji i w programie, który układasz dla Scottiego - i.e. przekładać klocki między poszczególnymi definicjami i skanowanym programem.

START

KONIEC KROK

KROK

KROK

KROK

KROK

KROK DEFINIUJ FUNKCJĘ

KONIEC FUNKCJI

KROK

KROK

KROK DEFINIUJ FUNKCJĘ

KONIEC FUNKCJI

(21)

Przykładowe rozwiązanie:

Wyzwanie

(W tym programie użyj pętli POWTORZ DOPÓKI oraz instrukcji warunkowej JEŻELI):

UMIEŚĆ Z LEWEJ

KROK DEFINIUJ FUNKCJĘ OBRÓT W PRAWO

KONIEC FUNKCJI

PODNIEŚ

OBRÓT W LEWO KROK

START

KONIEC KONIEC PĘTLI LUB WARUNKU

KONIEC PĘTLI LUB WARUNKU KROK

Z PRZODU PUSTOPUSTO

JEŻELI

WYWOŁAJ FUNKCJĘ

Z LEWEJ POWTÓRZ

DOPÓKI

(22)

Przykładowe rozwiązanie (format tekstowy):

DEFINIUJ FUNKCJĘ A { OBRÓT W PRAWO KROK (1)

PODNIEŚ KROK (-1)

OBRÓT W LEWO UMIEŚĆ (Z LEWEJ) }

START

POWTÓRZ DOPÓKI (Z PRZODU < PUSTO) { JEŻELI (Z LEWEJ < POLE AKCJI) {

FUNKCJA A

Wyzwanie

(W tym programie użyj pętli POWTORZ DOPÓKI oraz instrukcji warunkowej JEŻELI):

(23)

Wyzwanie:

Przykładowe rozwiązanie:

KROK DEFINIUJ FUNKCJĘ OBRÓT W PRAWO

OBRÓT W LEWO KROK

KONIEC FUNKCJI

PODNIEŚ

UMIEŚĆ Z LEWEJ

DEFINIUJ FUNKCJĘ OBRÓT W PRAWO

KROK

KROK RYSUJ RYSUJ

W PRZECIWNYM RAZE JEŻELI

KROK WYWOŁAJ FUNKCJĘ KONIEC PĘTLI LUB WARUNKU

Z PRAWEJ START

WYWOŁAJ FUNKCJĘ

Z PRZODU PUSTOPUSTO

KONIEC KROK

KONIEC PĘTLI LUB WARUNKU

JEŻELI Z LEWEJ

POWTÓRZ DOPÓKI

(24)

Wyzwanie:

Przykładowe rozwiązanie (format tekstowy):

DEFINIUJ FUNKCJĘ A { OBRÓT W PRAWO KROK (1)

PODNIEŚ KROK (-1)

OBRÓT W LEWO UMIEŚĆ (Z LEWEJ) }

DEFINIUJ FUNKCJĘ B { OBRÓT W PRAWO RYSUJ

KROK (4) RYSUJ

KROK (-4)

START

POWTÓRZ DOPÓKI (Z PRZODU < PUSTO) { JEŻELI (Z LEWEJ < PRZESZKODA) {

WYWOŁAJ FUNKCJĘ B

} W PRZECIWNYM RAZIE JEŻELI (Z PRAWEJ < OBIEKT DO ZEBRANIA) {

WYWOŁAJ FUNKCJĘ A }

KROK (1) }

KONIEC

(25)

WPROWADZENIE:

Zarządzanie funkcjami

W Scottie Go! możemy zdefiniować na raz do trzech funkcji (A, B, C). Zeskanowanie definicji funkcji powoduje pojawianie się ikonek funkcji polewej stronie ekranu.

Niezajęte nazwy funkcji będą przezroczyste. Kliknięcie na nazwę zdefiniowanej funkcji wyświetli zapisaną definicję.

W każdej chwili możemy usunąć zdefiniowaną funkcję z pamięci urządzenia. Ponowne

skanowanie definicji funkcji no danej nazwie (np. A) nadpisuje wcześniej zapisaną definicję tej funkcji.

(26)

Wyzwanie:

Przykładowe rozwiązanie:

KROK DEFINIUJ FUNKCJĘ OBRÓT W PRAWO

OBRÓT W LEWO KROK

KONIEC FUNKCJI

PODNIEŚ

UMIEŚĆ Z LEWEJ

KROK DEFINIUJ FUNKCJĘ

KROK

KONIEC FUNKCJI

PODNIEŚ

UMIEŚĆ OBRÓT W LEWO

OBRÓT W PRAWO

Z PRAWEJ KROK

KROK DEFINIUJ FUNKCJĘ OBRÓT W PRAWO

RYSUJ

OBRÓT W LEWO KONIEC FUNKCJI RYSUJ

W PRZECIWNYM RAZE JEŻELI START

Z PRZODU PUSTOPUSTO

JEŻELI WYWOŁAJ FUNKCJĘ

Z LEWEJ POWTÓRZ

DOPÓKI

WYWOŁAJ FUNKCJĘ

Z PRAWEJ

(27)

Wyzwanie:

Przykładowe rozwiązanie (format tekstowy):

DEFINIUJ FUNKCJĘ A { OBRÓT W PRAWO KROK (1)

PODNIEŚ KROK (-1)

OBRÓT W LEWO UMIEŚĆ (Z LEWEJ) }

DEFINIUJ FUNKCJĘ B { OBRÓT W PRAWO RYSUJ

KROK (4) RYSUJ

KROK (-4)

OBRÓT W LEWO }

DEFINUJ FUNKCJĘ C { OBRÓT W LEWO KROK (1)

PODNIEŚ KROK (-1)

OBRÓT W PRAWO UMIEŚĆ (Z PRAWEJ) }

START

POWTÓRZ DOPÓKI (Z PRZODU < PUSTO) { JEŻELI (Z LEWEJ < PRZESZKODA ) {

WYWOŁAJ FUNKCJĘ B } W PRZECIWNYM RAZIE JEŻELI (Z PRAWEJ < OBIEKT DO ZEBRANIA) {

WYWOŁAJ FUNKCJĘ A } W PRZECIWNYM RAZIE JEŻELI (Z PRAWEJ < POLE AKCJI) {

WYWOŁAJ FUNKCJĘ C }

KROK (1)

(28)

DZIĘKUJEMY I ŻYCZYMY DALSZEJ DOBREJ ZABAWY ZE SCOTTIE GO!

Wśród przedstawionych rozwiązań jest kilka, które jeszcze vmożna skrócić.

To początek zabawy z zestawem, a wszystkie funkcjonalności, instrukcje dla Scottiego, czy funkcje możemy zastosować

w każdym z modułów.

Jeżeli masz uwagi, pytania, wskazówki czy komentarze do przewodnika nauczyciela napisz do contact@scottiego.com

ze słowami PRZEWODNIK NAUCZYCIELA w tytule.

Cytaty

Powiązane dokumenty

Ciśnienie p 1 jest mniejsze niż ciśnienie p 2 , ponieważ przesuwanie tłoczka do góry zwiększa objętość powietrza zamkniętego pod tłoczkiem co powoduje zmniejszenie się

Z graniastosłupa prawidłowego czworokątnego o krawędzi podstawy 12 cm i krawędzi bocznej 15 cm wycięto ostrosłup prawidłowy czworokątny, którego wysokość jest równa 8 cm

class diagram) przedstawiający strukturę dowolnej uczelni z wyszczególnieniem klas obrazujących wydziały, pracowników akademickich, studentów itd.. Do edycji

Ilość Polaków posiadających kartę kredytową zmienną losową o rozkładzie

Rozwiązują je wszyscy zapisując obliczenia przy zadaniu, na ocenę wpływ będzie miała estetyka wykonania diagramu.. Karta pracy

Prawidłowa

Licząc brylanty z górnego lub każdego z dwóch bocznych końców krzyżyka do jego podstawy, zawsze otrzymywała 9 kamieni.. Pewnego dnia krzyżyk trzeba było oddać

W puste kratki kwadratu wpisz brakujące liczby naturalne od 1 do 16 tak, aby dany kwadrat był magiczny, tzn. sumy liczb w wierszach, kolumnach i po obu przekątnych