Projektowanie automatu biletowego w programie Scratch
Scenariusz projektu
Twoim zadaniem będzie zaprojektowanie automatu sprzedającego bilety, np. komunikacji miejskiej. Zwykle takie automaty umożliwiają wybór rodzaju biletu, liczbę kupowanych biletów, formę zapłaty (kartą płatniczą lub gotówką), a w przypadku płacenia gotówką wydają resztę. Podczas kupna biletu automat przeprowadza kupującego przez kolejne kroki, od wyboru biletów po płatność.
1
Polecenie 1
Odwiedź stronę internetową przedsiębiorstwa komunikacji miejskiej twojego miasta lub (jeśli mieszkasz w mniejszej miejscowości) najbliższego większego miasta z taką komunikacją. Zapoznaj się z obowiązującym systemem biletowym. Wybierz co najmniej dwa rodzaje biletów, które wykorzystasz w swojej aplikacji. Jeśli są na stronie zdjęcia – wzorce biletów, pobierz je.
Na poniższych obrazkach znajdziesz wzorce kilku przykładowych biletów komunikacji miejskiej w Warszawie pobrane ze strony Warszawskiego Transportu Publicznego według stanu na początek 2023 roku.
https://www.wtp.waw.pl/ceny-i-rodzaje-biletow
R1WBZT31q28Eu
Fotografia przedstawia bilet dwudziestominutowy normalny do stref pierwszej i drugiej, kosztujący trzy złote i czterdzieści groszy.
Fotografia przedstawiająca bilet 20‑minutowy normalny w Warszawie
Źródło: ZTM Warszawa, domena publiczna.
R1bmuyLQ9mT7q
Fotografia przedstawia bilet siedemdziesięciopięciominutowy jednorazowy przesiadkowy normalny do strefy pierwszej, kosztujący cztery złote i czterdzieści groszy.
Fotografia przedstawiająca bilet 75‑minutowy normalny w Warszawie
Źródło: ZTM Warszawa, domena publiczna.
RGpiSmxBEFVVH
Fotografia przedstawia bilet dziewięćdziesięciominutowy jednorazowy przesiadkowy normalny do stref pierwszej i drugiej, kosztujący siedem złotych.
Fotografia przedstawiająca bilet 90‑minutowy normalny w Warszawie
Źródło: ZTM Warszawa, domena publiczna.
R9RZBl8U7RVGy
Fotografia przedstawia bilet dwudziestominutowy ulgowy do stref pierwszej i drugiej, kosztujący jeden złoty i siedemdziesiąt groszy.
Fotografia przedstawiająca bilet 20‑minutowy ulgowy w Warszawie
Źródło: ZTM Warszawa, domena publiczna.
R16QPMd61NDaw
Fotografia przedstawia bilet siedemdziesięciopięciominutowy jednorazowy przesiadkowy ulgowy do strefy pierwszej, kosztujący dwa złote i dwadzieścia groszy.
Fotografia przedstawiająca bilet 75‑minutowy ulgowy w Warszawie
Źródło: ZTM Warszawa, domena publiczna.
R1HbTO8onS8Jc
Fotografia przedstawia bilet dziewięćdziesięciominutowy jednorazowy przesiadkowy ulgowy do stref pierwszej i drugiej, kosztujący trzy złote i pięćdziesiąt groszy.
Fotografia przedstawiająca bilet 90‑minutowy ulgowy w Warszawie
Źródło: ZTM Warszawa, domena publiczna.
W poniższym polu tekstowym możesz zapisywać swoje notatki związane z ćwiczeniami poniżej.
RvsY66NglpvYZ
Dzienniczek – miejsce, w którym uczeń może sporządzać swoje notatki
Dzienniczek – miejsce, w którym uczeń może sporządzać swoje notatki
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
1
Ćwiczenie 1
Zaplanuj działania, które będą wykonywane na kolejnych ekranach automatu (np. wybór rodzaju biletu – spośród przykładowych biletów można wybierać ze względu na strefę lub pomiędzy biletami normalnymi i ulgowymi, wybór liczby kupowanych biletów itd.). Załóż, że płatność będzie dokonywana tylko gotówką i automat będzie wydawał resztę.
Możesz się zasugerować automatami biletowymi, które znajdują się w twoim lub innym pobliskim mieście. Zazwyczaj najpierw określasz, czy jesteś uprawniony do zniżek, potem ustalasz rodzaj biletu, liczbę biletów oraz sposób zapłaty.
Przykładowy opis działań na kolejnych ekranach:
Wybór biletu pomiędzy ulgowym i normalnym.
Wybór rodzaju biletu (przykładowych biletów są trzy rodzaje: 20‑minutowy, 75‑minutowy i 90‑minutowy).
Wybór liczby biletów.
Prośba o zapłatę z podaniem kwoty oraz oczekiwanie na zapłatę.
Ewentualne wydanie reszty i zakończenie zakupu.
1
Ćwiczenie 2
Zaprojektuj wygląd kolejnych ekranów automatu.
Zastanów się, które elementy będą duszkami, a które – tylko rysunkami kolejnych teł.
Elementy, które będzie można kliknąć i będą powodowały określony wybór, powinny być duszkami. Pozostałe elementy graficzne mogą być narysowane jako tło kolejnych ekranów automatu biletowego. Poniżej przykładowy wygląd kolejnych ekranów, zaprojektowany zgodnie z odpowiedzią do ćwiczenia 1. Najlepiej, jak zaprojektujesz własne ekrany zgodnie z twoją propozycją rozwiązania ćwiczenia 1. Ekran 1: Wybór pomiędzy biletem ulgowym i normalnym. Przyciski Ulgowy i Normalny będą duszkami.
RZTtXTJ0OWDvG
Ilustracja przedstawia ekran z napisem: jaki bilet chcesz kupić. Dwie opcje do wyboru: ulgowy i normalny.
Ilustracja przedstawiająca ekran: jaki bilet chcesz kupić?
Źródło: Janusz Wierzbicki, Maciej Borowiecki, licencja: CC BY 3.0.
Ekran 2: Wybór rodzaju biletu spośród ulgowych lub normalnych (zgodnie z wcześniejszym wyborem). Przykładowy ekran po wyborze biletu ulgowego. Obrazki biletów będą duszkami.
R1KnGRS53q1uf
Ilustracja przedstawia ekran z napisem: wybierz rodzaj biletu. Do wyboru są bilety: dwudziestominutowy ulgowy, jednorazowy przesiadkowy ulgowy siedemdziesięciopięciominutowy i jednorazowy przesiadkowy ulgowy dziewięćdziesięciominutowy.
Ilustracja przedstawiająca ekran: wybierz rodzaj biletu
Źródło: ZTM Warszawa, tylko do użytku edukacyjnego na zpe.gov.pl.
Ekran 3: Wybór liczby biletów. Przykładowy ekran po wyborze biletu ulgowego 20‑minutowego. Przycisk Kupuję oraz przyciski strzałek do zmiany liczby biletów powinny być duszkami. Obrazka biletu nie można już klikać, więc może to być element tła – np. przystemplowany wizerunek duszka. Ponieważ będzie można zmieniać liczbę kupowanych biletów, wygodnie będzie, żeby ich liczba była duszkiem.
R186N4XpNV3lt
Ilustracja przedstawia ekran z napisem: wybierz liczbę biletów. Obok biletu dwudziestominutowego ulgowego znajdują się strzałki w górę i dół oraz cyfra jeden. Na samym dole znajduje się przycisk kupuję.
Ilustracja przedstawiająca ekran: wybierz liczbę biletów
Źródło: ZTM Warszawa, tylko do użytku edukacyjnego na zpe.gov.pl.
Ekran 4: Obliczenie kwoty do zapłaty oraz oczekiwanie na zapłatę. Przykładowy ekran po wybraniu 3 biletów ulgowych 20‑minutowych.
RASFt4Z29QWwc
Ilustracja przedstawia ekran z duszkiem. Na samym dole znajduje się okno, w którym wpisuje się kwotę. Duszek w dymku daje komunikat: do zapłaty pięć złotych i dziesięć groszy. Wprowadź kwotę, mogę wydać resztę. W oknie wprowadzania podana jest cyfra sześć.
Ilustracja przedstawiająca ekran z duszkiem i oknem do wpisania kwoty
Źródło: Janusz Wierzbicki, Maciej Borowiecki, licencja: CC BY 3.0.
Ekran 5: Ewentualne wydanie reszty. Przykładowy ekran po wprowadzeniu kwoty 6 zł (przy zakupie 3 biletów ulgowych 20‑minutowych). Zostanie wydane 90 gr reszty, np. moneta 50 gr i dwie monety 20 gr. Obrazy monet wygodnie będzie przedstawić jako duszki, można je znaleźć na stronie Narodowego Banku Polskiego.
http://www.nbp.pl
Re2GXHx5Fpp3O
Ilustracja przedstawia ekran z duszkami monety. Ukazano dwie monety o nominale dwadzieścia groszy i jedną monetę o nominale pięćdziesiąt groszy.
Ilustracja przedstawiająca ekran z duszkami monety
Źródło: NBP, licencja: CC BY 3.0.
1
Ćwiczenie 2
Zaproponuj wygląd automatu do biletów, z którego będzie można w łatwy i intuicyjny sposób skorzystać.
W przykładowej aplikacji można maksymalnie wybrać 9 biletów, reszta wydawana jest zawsze monetami. Jej działanie można obejrzeć na poniższym filmie.
RKs7YFPWC3PbS
Film przedstawia demonstrację działania programu.
Film przedstawia demonstrację działania programu.
Film z demonstracją działania programu
Źródło: NBP, ZTM Warszawa, Janusz Wierzbicki, Maciej Borowiecki, licencja: CC BY 3.0.
Źródło: NBP, ZTM Warszawa, Janusz Wierzbicki, Maciej Borowiecki, licencja: CC BY 3.0.
Film przedstawia demonstrację działania programu.
Dalszych kilka podrozdziałów opisuje kolejne kroki tworzenia i oprogramowania interfejsu przykładowej aplikacji według przedstawionego powyżej scenariusza. Pamiętaj, że tworzysz aplikację podobną, ale według własnego scenariusza, więc twoje skrypty sterujące duszkami i ekranami automatu będą prawdopodobnie różnić się od przykładowych.
Zwróć szczególną uwagę na kilka ostatnich podrozdziałów, w których duszka – kota (lub inną postać zaproponowaną przez ciebie) czeka ważne zadanie. Oblicza należność do zapłaty oraz kwotę reszty. W tym celu musi wyznaczyć liczbę monet poszczególnych nominałów jako resztę, którą należy wydać. Algorytm wyznaczenia reszty w twojej aplikacji będzie prawdopodobnie analogiczny jak w przykładowej.
iwePopYOpl_d5e409
Przygotowujemy tła i duszki
1
Ćwiczenie 3
Przygotuj wszystkie potrzebne duszki oraz tła do twojego projektu. Część duszków znajdziesz w galerii Scratcha, inne pobierz z internetu (pamiętaj o przestrzeganiu praw autorskichPHAguK9Zupamiętaj o przestrzeganiu praw autorskich) lub zaprojektuj samodzielnie w edytorze graficznym. Pamiętaj, że duszek może mieć kilka kostiumów, które mogą być wykorzystywane nie tylko do animacji.
W przykładowej aplikacji występują następujące duszki:
Przyciski. Łącznie są trzy duszki‑przyciski: Ulgowy, Normalny i Kupuję. Zostały zaprojektowane w edytorze graficznym.
Bilety. Łącznie jest sześć biletów. Ponieważ równocześnie są wyświetlane maksymalnie trzy bilety (same ulgowe lub same normalne), reprezentowane są przez trzy duszki, a każdy z nich posiada dwa kostiumy (normalny i ulgowy). Wzorce biletów zostały pobrane ze strony Zarządu Transportu Miejskiego w Warszawie.
http://www.ztm.waw.pl
Strzałki do wyboru liczby kupowanych biletów. Dwa duszki z galerii Scratcha.
Cyfry podające liczbę kupowanych biletów. Duszek z dziewięcioma kostiumami z galerii Scratcha kolejno reprezentującymi cyfry od 1 do 9.
Standardowy duszek kotek podający kwotę do zapłaty i oczekujący na zapłatę.
Monety. Jeden duszek z kolejnymi kostiumami reprezentującymi monety 5 zł, 2 zł, 1 zł, 50 gr, 20 gr, 10 gr. Wzorce monet zostały pobrane ze strony Narodowego Banku Polskiego.
http://www.nbp.pl
Łącznie więc w przykładowym projekcie jest 11 duszków. Poniżej możesz pobrać duszki (przyciski, bilety, monety) z przykładowej aplikacji.
R1LYxmBbXI4Lu
Załącznik zawiera gotowy plik o rozszerzeniu ZIP, ze wszystkimi potrzebnymi duszkami do wykonania poniższych zadań.
Gotowy plik .zip ze wszystkimi potrzebnymi duszkami do wykonania poniższych zadań
Źródło: GroMar, licencja: CC BY 3.0.
Plik ZIP o rozmiarze 240.00 KB w języku polskim
R13Y0S6pNEx3o
Ilustracja przedstawia duszki wykorzystane w tworzeniu programu automatu biletowego. Ukazano okno programu Scratch. Widoczne są następujące duszki, które można kliknąć: kot, bilet dwudziestominutowy, bilet siedemdziesięciopięciominutowy, bilet dziewięćdziesięciominutowy, przycisk kupuję, przycisk normalny, przycisk ulgowy, moneta o nominale dwa złote, strzałka więcej, strzałka mniej oraz cyfry. Po naciśnięciu wybranego duszka ukazują się jego współrzędne, rozmiar oraz kierunek. Podświetlony jest duszek przedstawiający cyfry.
Ilustracja przedstawiająca duszki wykorzystane w tworzeniu programu automatu biletowego
Źródło: GroMar Sp. z o.o., NBP, ZTM Warszawa, licencja: CC BY 3.0.
RGsh7RSDGnq5L
Ilustracja przedstawia kostiumy duszka biletów dwudziestominutowych: normalnego i ulgowego. Są one ustawione obok siebie. Pod nimi wyświetlają się ich nazwy oraz wymiary. Podświetlony został bilet dwudziestominutowy normalny.
Źródło: Janusz Wierzbicki, Maciej Borowiecki, licencja: CC BY 3.0.
R1A1eyP6m4O36
Ilustracja przedstawia kostiumy duszka: cyfry. Są to cyfry od zera do dziewięciu, ustawione w trzech kolumnach. Pod każdą z nich wyświetlają się nazwa obiektu oraz wymiary. Podświetlono na niebiesko cyfrę dziewięć.
Ilustracja przedstawiająca kostiumy duszka: cyfry
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
RadAUEP0usfSP
Ilustracja przedstawia kostiumy duszka: monety. W dwóch rzędach obok siebie ukazano do wyboru sześć monet o nominałach: jeden złoty, dwa złote, pięć złotych, dziesięć groszy, dwadzieścia groszy i pięćdziesiąt groszy. Pod każdą z monet znajduje się jej nazwa oraz wymiary. Na niebiesko podświetlono monetę jednozłotową.
Tła sceny są bardzo proste. Trzy tła z napisami „Jaki bilet chcesz kupić?”, „Wybierz rodzaj biletu:”, „Wybierz liczbę biletów:” oraz czwarte puste tło, na którym duszek pobiera opłatę oraz wydaje resztę.
R7cR3geryGVJr
Ilustracja przedstawia wszystkie trzy tła sceny. Są to trzy kolumny o żółtym tle, oddzielone cienkimi, białymi prostokątami. Na górze w każdej kolumnie znajduje się odpowiednio napis: jaki bilet chcesz kupić, wybierz rodzaj biletu, wybierz liczbę biletów.
Ilustracja przedstawiająca wszystkie trzy tła sceny
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
2
Ćwiczenie 4
Załaduj do projektu Scratcha przygotowane duszki oraz tła. Ustaw, że domyślnie duszki są niewidoczne. Dla każdego z nich przygotuj także skrypt, uruchamiany po kliknięciu zielonej flagi, ukrywający duszka. Nawet jeśli domyślnie wszystkie duszki są ukryte, to niektóre mogą być widoczne po poprzednim wykonaniu aplikacji (reszta w postaci monet, niektóre duszki po przerwaniu działania aplikacji przyciskiem stop).
W celu załadowania duszków do projektu skorzystaj z opcji: Wczytaj duszka.
R2gf4dvq6tkKS
Ilustracja przedstawia zrzut ekranu z zaznaczoną opcją odpowiedzialną za wczytywanie duszków z plików znajdujących się na komputerze. W okienku znajduje się kafelek z podświetlonym na niebiesko duszkiem pierwszym. W prawym dolnym rogu widoczne są dwa przyciski, oznaczone jako twarz kota z plusem oraz zdjęcie z plusem. Kliknięto ikonę kota z plusem, wtedy rozwinęła się lista z opcjami: wyszukaj, edytuj oraz wczytaj duszka. Podświetlono opcję wczytaj duszka.
Zrzut ekranu z zaznaczoną opcją odpowiedzialną za wczytywanie duszków z plików znajdujących się na komputerze
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Poprawnie załadowane 11 duszków:
RKrxDj7XYxzK4
Ilustracja przedstawia zrzut ekranu ze wszystkimi załadowanymi duszkami. Ukazano okno programu Scratch. Widoczne są następujące duszki, które można kliknąć: kot, bilet dwudziestominutowy, bilet siedemdziesięciopięciominutowy, bilet dziewięćdziesięciominutowy, przycisk kupuję, przycisk normalny, przycisk ulgowy, moneta o nominale dwa złote, strzałka więcej, strzałka mniej oraz cyfry. Po naciśnięciu wybranego duszka ukazują się jego współrzędne, rozmiar oraz kierunek. Podświetlony jest duszek przedstawiający cyfry.
Zrzut ekranu ze wszystkimi załadowanymi duszkami
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Przykładowy skrypt, którego kopia znajduje się w każdym duszku:
Rsd3cMCo2GQpt
Ilustracja przedstawia zrzut ekranu z podstawowym skryptem, który powinien znajdować się w każdym duszku. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Za napisem widoczna jest zielona flaga. Na drugim bloku widoczny jest napis: ukryj. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis ten skrypt znajduje się w rozwijalnym polu wyboru.
Zrzut ekranu z podstawowym skryptem, który powinien znajdować się w każdym duszku
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Wybieramy rodzaj biletu
Pierwszy ekran przykładowej aplikacji dokonuje tylko wyboru pomiędzy biletem ulgowym a normalnym. Na scenie widoczne są dwa duszki – przyciski Ulgowy i Normalny. Po kliknięciu jednego z tych przycisków następuje przejście do następnego ekranu – wyboru rodzaju biletu spośród ulgowych lub normalnych. Powinien w związku z tym zostać nadany komunikat informujący pozostałe duszki o wyborze biletu ulgowego lub normalnego, aby mogły być podjęte następne działania. Jeśli jeszcze nie umiesz korzystać z komunikatów, kliknij tutajnadawanie_i_odbieranie_komunikatówtutaj.
2
Ćwiczenie 5
Przygotuj odpowiedni skrypt dla sceny wybierający pierwsze tło i czyszczący scenę.
Po uruchomieniu aplikacji zieloną flagą powinien być widoczny pierwszy ekran automatu biletowego.
Przykładowy skrypt:
R1DBum11H3ChH
Na ilustracji przedstawiono zrzut ekranu z przykładowym skryptem, który czyści ekran i ustawia pierwszą scenę. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Za napisem widoczna jest zielona flaga. Na drugim bloku widoczny jest napis: zmień tło na: tło jeden. Słowo: tło jeden znajduje się w polu wyboru. Na trzecim bloku widoczny jest rysunek długopisu. Za rysunkiem znajduje się napis: wyczyść wszystko. Na czwartym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Zrzut ekranu z przykładowym skryptem, który czyści ekran i ustawia pierwszą scenę
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
2
Ćwiczenie 6
Zaplanuj i utwórz skrypty dla przycisku Ulgowy. Ten duszek jest widoczny tylko na pierwszym ekranie, więc może mieć stałą pozycję na scenie. Pamiętaj, że ma zostać ukryty nie tylko po jego kliknięciu, ale także przy wyborze przycisku Normalny.
Przycisk ten znajduje się na pierwszym ekranie (tle), w związku z tym po uruchomieniu aplikacji – kliknięciu zielonej flagi – powinien zostać pokazany (popraw w związku z tym skrypt uruchamiany po kliknięciu zielonej flagi). Po kliknięciu duszka tło zmienia się na następne i zostaje nadany komunikat o wyborze biletu ulgowego. Ponieważ duszek ma być ukryty także po kliknięciu drugiego przycisku, najlepiej ukryć go, gdy nastąpi zdarzenie zmiany tła.
Przykładowe skrypty:
R11w3GJ0aMyrq
Ilustracja przedstawia zrzut ekranu z trzema skryptami dla duszka, który odpowiada za przycisk: ulgowy. Pierwszy skrypt. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Za napisem widoczna jest zielona flaga. Na drugim bloku widoczny jest napis: pokaż. Na trzecim bloku widać napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Drugi skrypt. Na pierwszym bloku znajduje się napis: kiedy ten duszek kliknięty. Na drugim bloku widoczny jest napis: zmień tło na: tło dwa. Napis: tło dwa znajduje się w polu wyboru. Na trzecim bloku widać napis: nadaj komunikat ulgowy. Słowo ulgowy jest w polu wyboru. Na czwartym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Trzeci skrypt. Na pierwszym bloku znajduje się napis: kiedy tło zmieni się na tło dwa. Napis: tło dwa znajduje się w polu wyboru. Na drugim bloku widać napis: ukryj. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Zrzut ekranu ze skryptami dla duszka, który odpowiada za przycisk „Ulgowy”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
2
Ćwiczenie 7
Utwórz skrypty dla przycisku Normalny. Będą one analogiczne, jak dla poprzedniego przycisku.
Pamiętaj o nadaniu innego komunikatu, np. normalny.
Przykładowe skrypty:
R3FAm6aHC86sN
Ilustracja przedstawia zrzut ekranu z trzema skryptami dla duszka, który odpowiada za przycisk: normalny. Pierwszy skrypt. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Za napisem widoczna jest zielona flaga. Na drugim bloku widoczny jest napis: pokaż. Na trzecim bloku widać napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Drugi skrypt. Na pierwszym bloku znajduje się napis: kiedy ten duszek kliknięty. Na drugim bloku widoczny jest napis: zmień tło na: tło dwa. Napis: tło dwa znajduje się w polu wyboru. Na trzecim bloku widać napis: nadaj komunikat normalny. Słowo normalny jest w polu wyboru. Na czwartym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Trzeci skrypt. Na pierwszym bloku znajduje się napis: kiedy tło zmieni się na tło dwa. Napis: tło dwa znajduje się w polu wyboru. Na drugim bloku widać napis: ukryj. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Zrzut ekranu ze skryptami dla duszka, który odpowiada za przycisk „Normalny”.
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Na kolejnym ekranie (po otrzymaniu komunikatu normalny lub ulgowy) jest wyświetlana grupa trzech biletów do wyboru. Każdy z nich ma dwa kostiumy, wybór kostiumu zależy od odebranego komunikatu (normalny lub ulgowy). Wybrany bilet zmienia swoją pozycję na następnym ekranie, więc należy programowo ustawiać jego pozycję. Aby zapamiętać, jaki bilet został wybrany, posłużymy się zmienną. Będzie ona przyjmowała wartości od 1 do 6, a każda z tych wartości będzie oznaczała inny rodzaj biletu (np. wartość 1 – bilet normalny 20‑minutowy, wartość 2 – bilet normalny 75‑minutowy).
2
Polecenie 2
Utwórz zmienną do pamiętania wybranego biletu, dostępną dla wszystkich duszków. Nazwij ją np. rodzaj. Niech wartości od 1 do 3 określają bilety normalne, a wartości od 4 do 6 – odpowiadające im bilety ulgowe.
blok_stempluj_dymek
Blok Stempluj znajduje się w kategorii Pisak. Jeżeli kategoria Pisak nie pokazuje Ci się domyślnie po lewej stronie aplikacji Scratch, musisz dodać ją, wchodząc w opcję Dodaj rozszerzenie. Przycisk znajduje się w lewym dolnym rogu programu Scratch.
R8GQJBtgHFRai
Ilustracja ukazuje zrzut ekranu przedstawiający umiejscowienie opcji odpowiedzialnej za dodawanie rozszerzenia do programu Scratch. Przycisk znajduje się w górnym rzędzie, pośrodku.
Zrzut ekranu przedstawiający umiejscowienie opcji odpowiedzialnej za dodawanie rozszerzenia do programu Scratch
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Użycie bloku Stempluj powoduje odbicie podobizny duszka na scenie. Utworzony w ten sposób obraz nie może być w żaden sposób kontrolowany innymi skryptami. Odbity zostanie aktualnie wybrany kostium duszka. Stempel nie rysuje po duszkach, które aktualnie znajdują się na scenie.
R6eAuT8R0zjmp
Ilustracja ukazuje zrzut ekranu przedstawiający blok: stempluj. Na początku widoczny jest rysunek długopisu. Za rysunkiem znajduje się napis: stempluj.
Zrzut ekranu przedstawiający blok „Stempluj”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Do usunięcia wszystkich stemplowanych obrazów wykorzystaj blok Wyczyść wszystko.
R1amiyLFVErAe
Ilustracja ukazuje zrzut ekranu przedstawiający blok: wyczyść wszystko. Na początku widoczny jest rysunek długopisu. Za rysunkiem znajduje się napis: wyczyść wszystko.
Poniżej znajduje się przykładowy skrypt z wykorzystaniem bloku Stempluj. Duszek przesuwa się o 100 kroków, następnie wykorzystywany jest blok Stempluj, który tworzy graficzną kopię aktualnego kostiumu duszka. Te dwie czynności powtarzane są trzy razy.
R1KYuT9TsYcDI
Ilustracja ukazuje zrzut ekranu przedstawiający przykładowy skrypt wykorzystujący blok: stempluj. Po lewej stronie grafiki znajduje się skrypt. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Za napisem widoczna jest zielona flaga. Na drugim bloku widoczny jest napis: powtórz trzy razy. Liczbę powtórzeń można wpisać w białym polu. W tym bloku znajdują się dwa podbloki: przesuń o sto kroków, gdzie liczbę kroków można wpisać w białym polu, oraz stempluj, pokazany jako rysunek długopisu, za którym znajduje się napis: stempluj. Na trzecim bloku widać napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Po prawej stronie grafiki ukazano trzy duszki koty, umieszczone jeden za drugim.
Wykorzystaj w swoich skryptach blok Stemplujblok_stempluj_dymekStempluj. Umożliwi Ci on duplikowanie wizerunku duszka na scenie.
2
Ćwiczenie 8
Zaplanuj czynności, które należy przewidzieć dla duszka – biletu. Staraj się tak je zaplanować, aby były uniwersalne niezależnie od rodzaju biletu.
Następnie przygotuj skrypty na podstawie zaplanowanych czynności.
Czynności inicjalizujące:
pokazanie duszka,
ustawienie pozycji,
wybranie kostiumu.
Pokazanie i wybranie kostiumu powinno nastąpić w momencie odebrania komunikatu normalny lub ulgowy. Ustawienie pozycji może nastąpić po kliknięciu zielonej flagi.
po otrzymaniu komunikatu o wyborze biletu ukrycie duszka.
Duszka, którego kliknięto, można ukryć bezpośrednio przed nadaniem komunikatu o wyborze biletu w poprzednim punkcie. Biletów mamy jednak więcej, one także powinny zostać ukryte.
Przykładowe skrypty biletu 20‑minutowego. Dla innych biletów mogą się różnić pozycją na scenie, wyborem kostiumu i wartością zmiennej rodzaj.
Skrypty inicjalizujące:
R1SQdBX6V9dtD
Ilustracja ukazuje przykładowe trzy skrypty inicjalizujące dla duszka – biletu. Pierwszy skrypt. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Za napisem widoczna jest zielona flaga. Na drugim bloku widoczny jest napis: ukryj. Na trzecim bloku znajduje się napis: idź do X: zero, Y: trzydzieści. Wartości współrzędnych X i Y można wpisać w białych polach. Na czwartym bloku widać napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Drugi skrypt. Na pierwszym bloku znajduje się napis: kiedy otrzymam ulgowy. Słowo: ulgowy znajduje się w rozwijalnym polu wyboru. Na drugim bloku widoczny jest napis: zmień kostium na dwudziestominutowy ulgowy. Nazwa dwudziestominutowy ulgowy znajduje się w rozwijalnym polu wyboru. Na trzecim bloku znajduje się napis: pokaż. Na czwartym bloku widać napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Trzeci skrypt. Na pierwszym bloku znajduje się napis: kiedy otrzymam normalny. Słowo: normalny znajduje się w rozwijalnym polu wyboru. Na drugim bloku widoczny jest napis: zmień kostium na dwudziestominutowy normalny. Nazwa dwudziestominutowy normalny znajduje się w rozwijalnym polu wyboru. Na trzecim bloku znajduje się napis: pokaż. Na czwartym bloku widać napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Przykładowe skrypty inicjalizujące dla duszka – biletu
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Skrypt – wybór biletu:
R1dnYYY8RPkVn
Ilustracja ukazuje skrypt realizujący wybór biletu. Na pierwszym bloku znajduje się napis: kiedy ten duszek kliknięty. Na drugim bloku widoczne są napisy: jeżeli, to, w przeciwnym razie. Pomiędzy jeżeli a to umieszczono blok z napisami kostium liczba równa się jeden. Napis liczba znajduje się w rozwijalnym polu wyboru. Liczbę po znaku równości można wpisać w białym polu. Pod tymi napisami znajduje się podblok: ustaw rodzaj na jeden. Napis: rodzaj znajduje się w rozwijalnym polu wyboru. Liczbę można wpisać w białym polu. Pod napisem w przeciwnym razie umieszczono podblok: ustaw rodzaj na cztery. Napis: rodzaj znajduje się w rozwijalnym polu wyboru. Liczbę można wpisać w białym polu. Na trzecim bloku znajduje się napis: zmień tło na: tło trzy. Napis: tło trzy znajduje się w rozwijalnym polu wyboru. Na czwartym bloku znajduje się napis: idź do X: minus siedemdziesiąt, Y: zero. Wartości współrzędnych X i Y można wpisać w białych polach. Na piątym bloku widać rysunek długopisu. Za tym rysunkiem znajduje się napis: stempluj. Na szóstym bloku znajduje się napis: nadaj komunikat: wybrano bilet. Napis: wybrano bilet znajduje się w rozwijalnym polu wyboru. Na siódmym bloku znajduje się napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Skrypt realizujący wybór biletu
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Skrypt kończący po wyborze rodzaju biletu:
RIqabPgyIDOcv
Ilustracja ukazuje skrypt kończący po wyborze rodzaju biletu. Na pierwszym bloku znajduje się napis: kiedy otrzymam: wybrano bilet. Napis: wybrano bilet znajduje się w rozwijalnym polu wyboru. Na drugim bloku znajduje się napis: ukryj. Na trzecim bloku znajduje się napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Skrypt kończący po wyborze rodzaju biletu
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
2
Ćwiczenie 8
Zaplanuj czynności, które należy przewidzieć dla skryptu odpowiedzialnego za wybór biletu. Staraj się tak je zaplanować, aby były uniwersalne niezależnie od rodzaju biletu.
2
Polecenie 3
Skopiuj skrypty dla pozostałych biletów i dokonaj niezbędnych poprawek: przypisania odpowiedniej wartości zmiennej rodzaj, położenia na scenie oraz wyboru kostiumu.
nadawanie_i_odbieranie_komunikatów
Nadawanie i odbieranie komunikatów umożliwia porozumiewanie się pomiędzy duszkami, a także sceną. W ten sposób jeden duszek może uruchomić skrypty innych duszków lub sceny. Trzy klocki związane z nadawaniem i odbieraniem komunikatów znajdują się w grupie Zdarzenia. Nowy komunikat można zdefiniować i nadać przy pomocy jednego z dwóch bloczków:
R1KhnmEvYpM10
Ilustracja przedstawia blok: Nadaj komunikat z kategorii Zdarzenia. Zawiera on napis: nadaj komunikat: wiadomość jeden. Napis: wiadomość jeden znajduje się w rozwijalnym polu wyboru.
Blok „Nadaj komunikat…” z kategorii „Zdarzenia”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
RxPHtwjBwBckY
Ilustracja przedstawia blok: Nadaj komunikat i czekaj z kategorii Zdarzenia. Zawiera on napis: nadaj komunikat: wiadomość jeden i czekaj. Napis: wiadomość jeden znajduje się w rozwijalnym polu wyboru.
Blok „Nadaj komunikat… i czekaj” z kategorii „Zdarzenia”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Nazwę nadawanego komunikatu można wybrać z listy rozwijalnej lub zdefiniować nowy komunikat przy pomocy opcji nowy komunikat…, dostępnej po rozwinięciu listy.
R1cgsXstZ2MbV
Ilustracja przedstawia blok: Nadaj komunikat z kategorii Zdarzenia. Zawiera on napis: nadaj komunikat: wiadomość dwa. Napis: wiadomość dwa znajduje się w rozwijalnym polu wyboru. Po kliknięciu rozwijanego pola wyświetlają się napisy: wiadomość jeden i wiadomość dwa, jedną z tych opcji można wybrać.
Blok „Nadaj komunikat” z kategorii „Zdarzenia”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Wyświetlone będzie wówczas okno dialogowe, w którym należy podać nazwę nowego komunikatu.
Po nadaniu komunikatu (wykonaniu bloczka nadaj lub nadaj i czekaj) uruchamiane są automatycznie skrypty zaczynające się od bloczka Kiedy otrzymam z taką samą nazwą komunikatu.
RtUjVm25RA6n6
Ilustracja przedstawia blok: Kiedy otrzymam z kategorii Zdarzenia. Zawiera on napis: kiedy otrzymam: wiadomość jeden. Napis: wiadomość jeden znajduje się w rozwijalnym polu wyboru.
Blok „Kiedy otrzymam…” z kategorii „Zdarzenia”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Działanie skryptu, który nadał komunikat, jest kontynuowane równolegle (klocek nadaj) lub wstrzymane do czasu zakończenia działania wszystkich skryptów odbierających ten komunikat (nadaj i czekaj). Przykład:
R1pypL5ERHeS5
Ilustracja ukazuje dwa przykładowe skrypty zawierające bloki: Nadaj komunikat oraz Kiedy otrzymam. Skrypt pierwszy. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Po napisie znajduje się zielona flaga. Na drugim bloku znajduje się napis: powiedz: idę łapać myszy. Napis: idę łapać myszy można wpisać w białe pole. Na trzecim bloku widoczny jest napis: nadaj komunikat: idę łapać myszy. Napis: idę łapać myszy znajduje się w rozwijalnym polu wyboru. Na czwartym bloku znajduje się napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Skrypt drugi. Na pierwszym bloku znajduje się napis: kiedy otrzymam: idę łapać myszy. Napis: idę łapać myszy znajduje się w rozwijalnym polu wyboru. Na drugim bloku znajduje się napis: powiedz: a ja ucieknę. Napis: a ja ucieknę można wpisać w białe pole. Na trzecim bloku znajduje się napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Przykładowe skrypty zawierające bloki „Nadaj
komunikat…” oraz „Kiedy otrzymam…”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
R183iRHgQB9lE
Ilustracja przedstawia efekt działania przykładowego skryptu. Po lewej stronie znajduje się duszek kot. Odchodzi od niego dymek dialogowy z napisem: idę łapać myszy. Po prawej stronie umieszczono szarą mysz. Odchodzi od niej dymek dialogowy z napisem: a ja ucieknę.
Efekt działania przykładowego skryptu
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Wybieramy liczbę biletów
Na kolejnym ekranie (po otrzymaniu komunikatu wybrano bilet) określamy liczbę biletów. Na scenie dostępne są duszki – strzałki do zmiany liczby kupowanych biletów, duszek reprezentujący wybraną liczbę biletów oraz przycisk Kupuję.
2
Ćwiczenie 9
Przygotuj skrypty dla duszków – strzałek. W podpowiedzi znajdziesz algorytmy, według których należy je przygotować.
Po otrzymaniu komunikatu wybrano bilet należy pokazać duszka.
Po kliknięciu duszka należy nadać komunikat więcej lub mniej w zależności od strzałki, aby duszek pokazujący liczbę wybranych biletów mógł zmienić kostium.
Po otrzymaniu komunikatu generowanego przez przycisk Kupuję należy ukryć duszka.
Przykładowe skrypty dla strzałki do góry. Dla strzałki do dołu różni się tylko skrypt reagujący na kliknięcie duszka – należy nadać komunikat mniej.
RRctr5v70etdR
Ilustracja przedstawia przykładowe trzy skrypty dla strzałki do góry. Skrypt pierwszy. Na pierwszym bloku znajduje się napis: kiedy otrzymam: wybrano bilet. Napis: wybrano bilet znajduje się w rozwijalnym polu wyboru. Na drugim bloku znajduje się napis: pokaż. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Skrypt drugi. Na pierwszym bloku znajduje się napis: kiedy ten duszek kliknięty. Na drugim bloku znajduje się napis: nadaj komunikat: więcej. Napis: więcej znajduje się w rozwijalnym polu wyboru. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Skrypt trzeci. Na pierwszym bloku znajduje się napis: kiedy otrzymam: kupuję. Napis: kupuję znajduje się w rozwijalnym polu wyboru. Na drugim bloku znajduje się napis: ukryj. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Przykładowe skrypty dla strzałki do góry
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
2
Ćwiczenie 10
Przygotuj skrypty dla duszka reprezentującego liczbę kupowanych biletów. W podpowiedzi znajdziesz algorytmy, według których należy je przygotować.
Po otrzymaniu komunikatu wybrano bilet należy pokazać duszka oraz ustawić pierwszy kostium z cyfrą 1.
Po otrzymaniu komunikatu mniej należy ustawić poprzedni kostium (o ile nie był pierwszy).
Po otrzymaniu komunikatu więcej należy ustawić następny kostium (o ile nie był ostatni).
Po otrzymaniu komunikatu generowanego przez przycisk Kupuję należy ukryć duszka.
Przykładowe skrypty reagujące na otrzymanie komunikatów wybrano bilet, mniej oraz więcej.
RVBketphzu6Uq
Ilustracja przedstawia trzy skrypty dla duszka reprezentującego liczbę kupowanych biletów. Skrypt pierwszy. Na pierwszym bloku znajduje się napis: kiedy otrzymam: wybrano bilet. Napis: wybrano bilet znajduje się w rozwijalnym polu wyboru. Na drugim bloku znajduje się napis: pokaż. Na trzecim bloku znajduje się napis: zmień kostium na: gloł jeden. Napis: gloł jeden znajduje się w rozwijalnym polu wyboru. Na czwartym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Skrypt drugi. Na pierwszym bloku znajduje się napis: kiedy otrzymam: więcej. Napis: więcej znajduje się w rozwijalnym polu wyboru. Na drugim bloku znajdują się napisy: jeżeli i to. Pomiędzy jeżeli a to znajduje się blok z napisami: kostium liczba znak mniejszości dziewięć. Napis liczba znajduje się w rozwijalnym polu wyboru. Cyfra dziewięć została wpisana w białym polu. Pod jeżeli i to znajduje się podblok z napisem: następny kostium. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Skrypt trzeci. Na pierwszym bloku znajduje się napis: kiedy otrzymam mniej. Napis: mniej znajduje się w rozwijalnym polu wyboru. Na drugim bloku znajdują się napisy: jeżeli i to. Pomiędzy jeżeli a to znajduje się blok z napisami: kostium liczba znak większości jeden. Napis liczba znajduje się w rozwijalnym polu wyboru. Cyfra jeden została wpisana w białym polu. Pod jeżeli i to znajduje się podblok z napisem: zmień kostium na: kostium liczba minus jeden. Napis liczba znajduje się w rozwijalnym polu wyboru. Cyfra jeden została wpisana w białym polu. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Skrypty dla duszka reprezentującego liczbę kupowanych biletów
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
2
Ćwiczenie 11
Przygotuj skrypty dla przycisku Kupuję. W podpowiedzi znajdziesz algorytmy, według których należy je przygotować.
Po otrzymaniu komunikatu wybrano bilet należy pokazać duszka.
Po kliknięciu duszka należy go ukryć i nadać komunikat kupuję.
Przykładowe skrypty:
R1WtNx8RHs0rn
Ilustracja przedstawia trzy skrypty dla duszka – przycisku kupuję. Skrypt pierwszy. Na pierwszym bloku znajdują się napis: kiedy kliknięto oraz zielona flaga. Na drugim bloku znajduje się napis: ukryj. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Skrypt drugi. Na pierwszym bloku znajduje się napis: kiedy otrzymam: wybrano bilet. Napis: wybrano bilet znajduje się w rozwijalnym polu wyboru. Na drugim bloku znajduje się napis: pokaż. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Skrypt trzeci. Na pierwszym bloku znajduje się napis: kiedy ten duszek kliknięty. Na drugim bloku znajduje się napis: ukryj. Na trzecim bloku znajduje się napis: nadaj komunikat: kupuję. Napis: kupuję znajduje się w rozwijalnym polu wyboru. Na czwartym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Skrypty dla duszka – przycisku „Kupuję”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Projektujemy listy cen biletów, nominałów monet i reszty
Ponieważ automat biletowy ma nie tylko umożliwić wybranie rodzaju biletu, ich liczby, ale także obliczyć wartość kupowanych biletów oraz wydać resztę, potrzebne będą informacje dotyczące cen poszczególnych biletów, nominałów monet, liczby wydawanych poszczególnych monet. Ponieważ w przykładowej aplikacji występuje 6 różnych biletów, mamy także 6 nominałów monet, niewygodne będzie pamiętanie tych informacji w pojedynczych zmiennych liczbowych. Lepiej utworzyć i zapamiętać te informacje na listach. Więcej informacji dotyczących list znajdziesz tutajiwePopYOpl_d1111e54911123tutaj. Ceny biletów lepiej jest pamiętać jako liczby naturalne, a więc wyrażone w groszach. Wynika to z faktu, że liczby całkowite są w komputerze pamiętane dokładnie, a liczby rzeczywiste - w przybliżeniu. Łatwiej będzie prowadzić obliczenia. Analogicznie nominały monet zapamiętamy w tych samych jednostkach, czyli w groszach (np. 1 zł jako 100 groszy). Więcej o reprezentacji liczb całkowitych i rzeczywistych dowiesz się tutajiwePopYOpl_d1111e427tutaj.
2
Ćwiczenie 12
Utwórz listy do pamiętania cen poszczególnych biletów, nominałów monet oraz liczby wydawanych monet o poszczególnych nominałach. Utwórz bloki inicjalizujące listy. Pamiętaj, że liczba biletów i ich rodzajów musi być zgodna z Twoim projektem.
Listę cen biletów zaplanuj zgodnie z wartościami zmiennej rodzaj. Tzn. jeśli zmienna rodzaj przyjmuje wartość 1 dla biletu normalnego 20‑minutowego, to na pierwszym miejscu listy powinna być cena tego biletu.
Listę z nominałami monet przygotuj uporządkowaną malejąco: od największego do najmniejszego nominału.
Listę z liczbami monet do wydania jako reszta wypełnij wartościami 0 (nie wiemy jeszcze, czy i jaką resztę trzeba będzie wydać).
Zastanów się, na jakie zdarzenie oraz dla jakiego obiektu (którego duszka lub sceny) wywołać bloki. Jeśli chcesz sobie przypomnieć informacje o tworzeniu własnych bloków, kliknij tutajiwePopYOpl_d1111e449tutaj.
Najwygodniej będzie wywołać bloki inicjalizujące listy po kliknięciu zielonej flagi dla sceny, ponieważ jest jedna, a duszków wiele i każdy z nich ma inne własne skrypty.
Przykładowe skrypty:
RrNI7KYvSwbws
Ilustracja przedstawia definicję bloku przygotuj listę monety, który odpowiada za ustawienia początkowe listy monety. Na pierwszym bloku znajduje się napis: definiuj. W bloku tym umieszczono blok z napisem Przygotuj listę monety. Na drugim bloku znajduje się napis: usuń wszystko z monety. Napis: monety znajduje się w rozwijalnym polu wyboru. Na trzecim bloku znajduje się napis: dodaj pięćset do monety. Liczba pięćset została wpisana w białym polu. Napis: monety znajduje się w rozwijalnym polu wyboru. Na czwartym bloku znajduje się napis: dodaj dwieście do monety. Liczba dwieście została wpisana w białym polu. Napis: monety znajduje się w rozwijalnym polu wyboru. Na piątym bloku znajduje się napis: dodaj sto do monety. Liczba sto została wpisana w białym polu. Napis: monety znajduje się w rozwijalnym polu wyboru. Na szóstym bloku znajduje się napis: dodaj pięćdziesiąt do monety. Liczba pięćdziesiąt została wpisana w białym polu. Napis: monety znajduje się w rozwijalnym polu wyboru. Na siódmym bloku znajduje się napis: dodaj dwadzieścia do monety. Liczba dwadzieścia została wpisana w białym polu. Napis: monety znajduje się w rozwijalnym polu wyboru. Na ósmym bloku znajduje się napis: dodaj dziesięć do monety. Liczba dziesięć została wpisana w białym polu. Napis: monety znajduje się w rozwijalnym polu wyboru. Na dziewiątym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Definicja bloku „Przygotuj listę monety”, który odpowiada za ustawienia początkowe listy „monety”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
R1e1GrMz9pu1M
Ilustracja przedstawia definicję bloku przygotuj listę cen biletów, który odpowiada za ustawienia początkowe listy ceny biletów. Na pierwszym bloku znajduje się napis: definiuj. W bloku tym umieszczono blok z napisem Przygotuj listę cen biletów. Na drugim bloku znajduje się napis: usuń wszystko z ceny biletów. Napis: ceny biletów znajduje się w rozwijalnym polu wyboru. Na trzecim bloku znajduje się napis: dodaj trzysta czterdzieści do ceny biletów. Liczba trzysta czterdzieści została wpisana w białym polu. Napis: ceny biletów znajduje się w rozwijalnym polu wyboru. Na czwartym bloku znajduje się napis: dodaj czterysta czterdzieści do ceny biletów. Liczba czterysta czterdzieści została wpisana w białym polu. Napis: ceny biletów znajduje się w rozwijalnym polu wyboru. Na piątym bloku znajduje się napis: dodaj siedemset do ceny biletów. Liczba siedemset została wpisana w białym polu. Napis: ceny biletów znajduje się w rozwijalnym polu wyboru. Na szóstym bloku znajduje się napis: dodaj sto siedemdziesiąt do ceny biletów. Liczba sto siedemdziesiąt została wpisana w białym polu. Napis: ceny biletów znajduje się w rozwijalnym polu wyboru. Na siódmym bloku znajduje się napis: dodaj dwieście dwadzieścia do ceny biletów. Liczba dwieście dwadzieścia została wpisana w białym polu. Napis: ceny biletów znajduje się w rozwijalnym polu wyboru. Na ósmym bloku znajduje się napis: dodaj trzysta pięćdziesiąt do ceny biletów. Liczba trzysta pięćdziesiąt została wpisana w białym polu. Napis: ceny biletów znajduje się w rozwijalnym polu wyboru. Na dziewiątym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Definicja bloku „Przygotuj listę cen biletów”, który odpowiada za ustawienia początkowe listy „ceny biletów”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
RaypwXKNSjNGd
Ilustracja przedstawia definicję bloku inicjuj listę reszta, który odpowiada za przygotowanie listy reszta. Na pierwszym bloku znajduje się napis: definiuj. W bloku tym umieszczono blok z napisem Inicjuj listę reszta. Na drugim bloku znajduje się napis: usuń wszystko z reszta. Napis: reszta znajduje się w rozwijalnym polu wyboru. Na trzecim bloku znajduje się napis: powtórz sześć razy. Cyfra sześć została wpisana w białym polu. W bloku tym znajduje się podblok z napisem: dodaj zero do reszta. Cyfra zero została wpisana w białym polu. Napis: reszta znajduje się w rozwijalnym polu wyboru. Na czwartym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Definicja bloku „Inicjuj listę reszta”, który
odpowiada za przygotowanie listy „reszta”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
R19vREFK6Vvet
Ilustracja przedstawia główny skrypt inicjalizujący, który wykorzystuje wcześniej przygotowane bloki. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Obok widoczna jest zielona chorągiewka. Na drugim bloku znajduje się napis: zmień tło na tło jeden. Napis: tło jeden znajduje się w rozwijalnym polu wyboru. Na trzecim bloku znajdują się długopis oraz napis: wyczyść wszystko. Na czwartym bloku znajduje się napis: przygotuj listę cen biletów. Na piątym bloku znajduje się napis: przygotuj listę monety. Na szóstym bloku znajduje się napis: inicjuj listę reszta. Na ósmym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Główny skrypt inicjalizujący, który wykorzystuje wcześniej przygotowane bloki
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
iwePopYOpl_d1111e54911123
Często zachodzi potrzeba przechowania większej ilości danych. Niewygodne staje się wówczas pamiętanie ich na pojedynczych zmiennych, szczególnie gdy pełnią podobny charakter. Lepiej pamiętać je pod jedną nazwą. Dostęp do pojedynczej danej (elementu) możliwy jest wtedy za pośrednictwem indeksu (numeru elementu). W Scratchu służą do tego listy. Przykład: Rzucamy wielokrotnie sześcienną kostką do gry. Chcemy policzyć, ile razy wypadły poszczególne liczby oczek. Można utworzyć sześć zmiennych odpowiednio do przechowywania liczby wystąpień jednego oczka, dwóch oczek itd. Lepiej jednak utworzyć sześcioelementową listę. Liczba oczek będzie w takim przypadku indeksem. Symbolicznie indeks będziemy podawać w nawiasach kwadratowych: Wyniki[liczba oczek] – ile razy wypadła liczba oczek, gdzie liczba oczek może przyjmować wartości od 1 do 6. Listę, podobnie jak pojedynczą zmienną, można utworzyć w kategorii Dane. Należy kliknąć przycisk Stwórz listę, w polu edycyjnym wpisać nazwę nowo tworzonej listy (można także wybrać, czy będzie dostępna dla wszystkich duszków, czy tylko jednego) i zatwierdzić przyciskiem OK.
R1JGjqTza7RNe
Ilustracja przedstawia sposób tworzenia listy. Najpierw należy wybrać opcję Stwórz listę z kategorii Zmienne. Następnie pojawia się okienko Nowa lista. Należy tutaj uzupełnić nową nazwę listy, wybrać jedną z opcji: dla wszystkich duszków albo tylko dla tego duszka, a na końcu potwierdzić przyciskiem OK.
Sposób tworzenia listy
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Po utworzeniu listy w kategorii Dane są do dyspozycji klocki umożliwiające operacje na liście.
RFhBirjikjUMr
Ilustracja przedstawia blok: dodaj do listy. Znajduje się na nim napis: dodaj obiekt do wyniki. Napis: obiekt można wpisać w białym polu. Napis: wyniki znajduje się w rozwijalnym polu wyboru.
Blok „dodaj… do listy…”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Dodanie nowego elementu na końcu listy.
R15USYS48OLjT
Ilustracja przedstawia blok: usuń z listy. Znajduje się na nim napis: usuń jeden z wyniki. Liczbę jeden można wpisać w białym polu. Napis: wyniki znajduje się w rozwijalnym polu wyboru.
Blok „usuń… z listy…”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Usunięcie elementu o określonym indeksie (numerze elementu) lub wszystkich elementów (jeśli z pierwszej listy rozwijalnej zostanie wybrana opcja wszystko).
RZ9VGZGHvbXhL
Ilustracja przedstawia blok: wstaw na pozycji z listy. Znajduje się na nim napis: wstaw obiekt na pierwszej pozycji z wyniki. Napisy: obiekt oraz jeden można wpisać w białym polu. Napis: wyniki znajduje się w rozwijalnym polu wyboru.
Blok „wstaw… na… pozycji z listy…”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Wstawienie nowego elementu na pozycji o podanym indeksie.
RJDuFqKiU3xJW
Ilustracja przedstawia blok: zamień z listy na. Znajduje się na nim napis: zamień jeden z wyniki na obiekt. Napisy: jeden oraz obiekt można wpisać w białym polu. Napis: wyniki znajduje się w rozwijalnym polu wyboru.
Blok „zamień… z listy… na…”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Zmiana wartości elementu na pozycji o podanym indeksie.
R1NjfourZ4MZ2
Ilustracja przedstawia blok: element z listy. Znajduje się na nim napis: element jeden z wyniki. Liczbę jeden można wpisać w białym polu. Napis: wyniki znajduje się w rozwijalnym polu wyboru.
Blok „element… z listy…”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Wartość elementu na pozycji o podanym indeksie.
RtROUVeSEbkvW
Ilustracja przedstawia blok: długość. Znajduje się na nim napis: długość wyniki. Napis: wyniki znajduje się w rozwijalnym polu wyboru.
Blok „długość…”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Wartością jest liczba elementów listy.
R1GCr2mpHvsYD
Ilustracja przedstawia blok: zawiera. Znajduje się na nim napis: wyniki zawiera obiekt znak zapytania. Napis: wyniki znajduje się w rozwijalnym polu wyboru. Napis: obiekt można wpisać w białym polu.
Blok „…zawiera…?”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Sprawdzenie, czy na liście znajduje się określony element.
Przykład:
REpL1hEYVzjri
Ilustracja przedstawia przykładowy skrypt wykorzystujący listy i niektóre jej funkcjonalności. Na pierwszym bloku znajdują się: napis: kiedy kliknięto oraz zielona flaga. Na drugim bloku znajduje się napis: usuń wszystko z wyniki. Napis: wyniki znajduje się w rozwijalnym polu wyboru. Na trzecim bloku ukazano napis: powtórz sześć razy. Cyfrę sześć wpisano w białym polu. W tym bloku znajduje się podblok z napisem: dodaj zero do wyniki. Cyfrę zero wpisano w białym polu. Napis: wyniki znajduje się w rozwijalnym polu wyboru. Na czwartym bloku znajduje się napis: powtórz sto razy. Liczbę sto wpisano w białym polu. W tym bloku znajdują się dwa podbloki. Podblok pierwszy zawiera napis: ustaw liczba oczek na losuj liczbę od jednego do sześciu. Napis: liczba oczek znajduje się w rozwijalnym polu wyboru. Cyfry jeden i sześć zostały wpisane w białym polu. Podblok drugi zawiera napis: zamień liczba oczek z wyniki na element liczba oczek z wyniki plus jeden. Napisy: wyniki znajdują się w rozwijalnych polach wyboru. Cyfra jeden została wpisana w białym polu. Na piątym bloku znajduje się napis: powiedz: rzuciłem setny raz kostką do gry, wyniki obok. Napis: rzuciłem setny raz kostką do gry, wyniki obok znajduje się w białym polu. Na szóstym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Przykładowy skrypt wykorzystujący listy i niektóre jej funkcjonalności
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
R15m5o3gh3dQZ
Ilustracja przedstawia scenę z przykładową symulacją skryptu wykorzystującego listę. Po lewej stronie znajduje się tabela o nagłówku wyniki. Wiersze są koloru pomarańczowego. Wiersz pierwszy. Trzynaście. Wiersz drugi. Czternaście. Wiersz trzeci. Czternaście. Wiersz czwarty. Dwadzieścia cztery. Wiersz piąty. Osiemnaście. Wiersz szósty. Siedemnaście. Pod rekordami znajduje się napis: plus długość sześć równa się. Po lewej stronie ilustracji umieszczono duszka kota. Odchodzi od niego dymek dialogowy z napisem: rzuciłem setny raz kostką do gry, wyniki obok.
Scena z przykładową symulacją skryptu wykorzystującego listę
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Lista może być widoczna na scenie lub ukryta. Widoczność można zmieniać edycyjnie, włączając/wyłączając znacznik przy liście,
R15IpiyUHwqqt
Ilustracja przedstawia umiejscowienie opcji do zmiany widoczności listy na scenie. Na górnym pasku znajdują się opcje do wyboru: skrypt, kostiumy, dźwięki. Na pasku po lewej stronie znajdują się następujące kategorie bloków: ruch, wygląd, dźwięk, zdarzenia, kontrola, czujniki, wyrażenia i zmienne. Wybrano opcję zmienne. Pośrodku ekranu uwidoczniono bloki z następującymi napisami. Stwórz listę. Blok pierwszy, który zaznaczono ptaszkiem. Wyniki. Blok drugi. Dodaj obiekt do wyniki. Blok trzeci. Usuń jeden z wyniki. Blok czwarty. Usuń wszystko z wyniki. Blok piąty. Wstaw obiekt na jeden pozycji z wyniki. Blok szósty. Zamień jeden z wyniki na obiekt. Blok siódmy. Element jeden z wyniki.
Umiejscowienie opcji do zmiany widoczności listy na scenie
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
lub programowo, przy pomocy klocków:
RP0vIi5qRM7Ok
Ilustracja przedstawia bloki: pokaż listę i ukryj listę. Blok pierwszy. Znajduje się na nim napis: pokaż listę wyniki. Napis: wyniki znajduje się w rozwijalnym polu wyboru. Blok drugi. Znajduje się na nim napis: ukryj listę wyniki. Napis: wyniki znajduje się w rozwijalnym polu wyboru.
Bloki „pokaż listę…” i „ukryj listę…”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
iwePopYOpl_d1111e427
Pojęcia bit i bajt mają istotne znaczenie w dziedzinie informatyki. Bit może przyjąć jedno z dwóch możliwych stanów, które oznacza się jako 0 i 1. Bajt natomiast składa się z 8 bitów. W komputerze liczby są przechowywane przy użyciu bajtów pamięci. Warto zaznaczyć, że liczby w informatyce są zawsze ograniczone, ponieważ są reprezentowane w określonym zakresie. Na przykład liczby całkowite mogą być dokładnie przechowywane, podczas gdy większość liczb rzeczywistych jest przechowywana w przybliżeniu, nawet te niewymierne. Ponadto istnieje ograniczenie dotyczące liczby stanów, które można zapisać na określonej liczbie bitów.
Liczby całkowite bez znaku Liczby całkowite bez znaku są pamiętane w układzie przy podstawie 2 (dwójkowym, binarnym). Jeśli do pamiętania liczby przeznaczy się n bitów, to można zapamiętać na nich 2Indeks górny nn stanów, czyli reprezentować liczby od 0 do 2Indeks górny nn-1. Na przykład na jednym bajcie można zapamiętać liczby z zakresu od 0 do 255.
RnsVoYB0ARK9v
Ilustracja przedstawia tabelę z liczbami w systemie dziesiętnym i odpowiadającymi im wartościami w systemie binarnym. Składa się ona z dwóch kolumn. Pierwsza kolumna zawiera liczby dziesiętne, druga zaś odpowiadające im liczby binarne. Zero w systemie dziesiętnym to osiem zer w systemie binarnym. Jeden w systemie dziesiętnym to siedem zer i jeden w systemie binarnym. Dwa w systemie dziesiętnym to sześć zer, jeden i zero w systemie binarnym. Trzy w systemie dziesiętnym to sześć zer i dwie jedynki w systemie binarnym. Cztery w systemie dziesiętnym to pięć zer, jeden i dwa zera w systemie binarnym. Dwieście pięćdziesiąt cztery w systemie dziesiętnym to siedem jedynek i zero w systemie binarnym. Dwieście pięćdziesiąt pięć w systemie dziesiętnym to osiem jedynek w systemie binarnym.
Tabela z liczbami w systemie dziesiętnym i odpowiadającymi im wartościami w systemie binarnym
Źródło: Janusz Wierzbicki, Maciej Borowiecki, licencja: CC BY 3.0.
Liczby całkowite ze znakiem Jeden bit przeznacza się na pamiętanie znaku liczby. A więc np. na jednym bajcie można zapamiętać liczby z zakresu od -128 do 127. Liczby pamiętane są w specjalnym kodzie (kodzie uzupełnień do 2), tak, aby przy operacjach arytmetycznych znak stanowił integralną część liczby i nie musiał być interpretowany oddzielnie.
R1MK2mMKR80ks
Ilustracja przedstawia tabelę z liczbami w systemie dziesiętnym i odpowiadającymi im wartościami w systemie U dwa. Składa się ona z dwóch kolumn. Pierwsza kolumna zawiera liczby dziesiętne, druga zaś odpowiadające im liczby w kodzie U dwa. Minus sto dwadzieścia osiem w systemie dziesiętnym to jeden i siedem zer w kodzie U dwa. Minus sto dwadzieścia siedem w systemie dziesiętnym to jeden, sześć zer i jeden w kodzie U dwa. Minus sto dwadzieścia sześć w systemie dziesiętnym to jeden, pięć zer, jeden i zero w kodzie U dwa. Minus dwa w systemie dziesiętnym to siedem jedynek i zero w kodzie U dwa. Minus jeden w systemie dziesiętnym to osiem jedynek w kodzie U dwa. Zero w systemie dziesiętnym to osiem zer w kodzie U dwa. Jeden w systemie dziesiętnym to siedem zer i jeden w kodzie U dwa. Dwa w systemie dziesiętnym to sześć zer, jeden i zero w kodzie U dwa. Sto dwadzieścia siedem w systemie dziesiętnym to zero i siedem jedynek w kodzie U dwa.
Tabela z liczbami w systemie dziesiętnym i odpowiadającymi im wartościami w systemie U2
Źródło: Janusz Wierzbicki, Maciej Borowiecki, licencja: CC BY 3.0.
Liczby rzeczywiste Liczby rzeczywiste najczęściej reprezentowane są w pamięci komputera w zapisie zmiennoprzecinkowym w tzw. notacji naukowej. W układzie dziesiętnym zapis liczby w notacji naukowej jest następujący: x = znak * mantysa * 10Indeks górny cechacecha znak – znak liczby. mantysa – liczba ułamkowa w zakresie [1, 10). cecha – wykładnik potęgi, liczba całkowita. Przykłady: Liczba 234,567 zapisana w notacji naukowej to 2,34567 * 10Indeks górny 22 Liczba -0,234567 zapisana w notacji naukowej to -2,34567 * 10Indeks górny -1-1 W układzie binarnym zapis w notacji naukowej jest następujący: x = znak * mantysa * 2Indeks górny cechacecha znak – znak liczby. mantysa – liczba ułamkowa w zakresie [1, 2). Część całkowita jest zawsze równa 1, można ją pominąć. Mantysę można więc pamiętać jako liczbę całkowitą. cecha – wykładnik potęgi, liczba całkowita. Często liczba, która wydaje się nam, że powinna być pamiętana dokładnie, jest pamiętana w przybliżeniu (na przykład dziesiętna liczba 0.1). Dzieje się tak, ponieważ liczba mająca skończone rozwinięcie w układzie dziesiętnym może mieć nieskończone rozwinięcie w układzie binarnym. Spróbuj wykonać poniższy skrypt:
R1C80umkQIcSg
Ilustracja przedstawia przykładowy nieskończony skrypt obrazujący problem przybliżania wartości zmiennych. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Obok widoczna jest zielona chorągiewka. Na drugim bloku znajduje się napis: ustaw X na zero. Napis: X znajduje się w rozwijalnym polu wyboru. Cyfra zero została wpisana w białym polu. Na trzecim bloku znajduje się napis: powtarzaj aż X równa się jeden. Cyfra jeden została wpisana w białym polu. W tym bloku znajduje się podblok z napisem: zmień X o jedną dziesiątą. Napis: X znajduje się w rozwijalnym polu wyboru. Liczba jedna dziesiąta została wpisana w białym polu. Na czwartym bloku znajduje się napis: powiedz X jest już równe jeden. Napis X jest już równe jeden został wpisany w białym polu. Na piątym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Przykładowy nieskończony skrypt obrazujący problem przybliżania wartości zmiennych
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Zapewne się zdziwisz, że skrypt działa w nieskończoność (pętli się). Zmienna x nigdy nie osiąga dokładnie wartości 1. W takich sytuacjach często prowadzimy obliczenia do osiągnięcia wartości przybliżonej z określoną dokładnością, np. w tym przypadku z dokładnością do 0.01. Warunek pętli może być następujący:
RWEXe2BZleuSx
Ilustracja przedstawia warunek sprawdzający, czy wartość bezwzględna ze zmiennej X minus jeden jest mniejsza od jednej setnej. Blok ten składa się z napisu: wartość bezwzględna z X minus jeden jest mniejsza od jednej setnej. Napis: wartość bezwzględna znajduje się w rozwijalnym polu wyboru. Liczby jeden oraz jedna setna zostały wpisane w białym polu.
Warunek sprawdzający, czy wartość bezwzględna ze zmiennej „x” – 1 jest mniejsza od 0.01
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
iwePopYOpl_d1111e449
Często bardziej złożony problem warto podzielić na podproblemy i zapisać je w postaci oddzielnych bloków. W celu utworzenia nowego bloku należy przejść do kategorii Więcej bloków. Następnie kliknąć przycisk Stwórz blok, w polu edycyjnym wpisać jego nazwę i zatwierdzić przyciskiem OK. W obszarze skryptów pojawi się nowy klocek, pod który można podczepić instrukcje‑klocki realizujące rozwiązywany podproblem. Przykład 1. Duszek ma narysować kilka obróconych kwadratów. Wygodnie będzie zdefiniować własny blok rysujący pojedynczy kwadrat.
Rm0qfokMllefm
Ilustracja przedstawia tworzenie bloku kwadrat i wykorzystanie go w przykładowym skrypcie. Ukazano dwa skrypty oraz grafikę przedstawiającą koło złożone z wielu kwadratów. Skrypt pierwszy. Na pierwszym bloku znajduje się napis: definiuj kwadrat. Na drugim bloku znajduje się napis: powtórz cztery razy. Cyfra cztery została wpisana w białym polu. W obrębie tego bloku umieszczono dwa podbloki. Podblok pierwszy zawiera napis: przesuń o sto kroków. Liczba sto została wpisana w białym polu. Podblok drugi składa się z napisów: obróć strzałka zgodna z ruchem wskazówek zegara o dziewięćdziesiąt stopni. Liczba dziewięćdziesiąt została wpisana w białym polu. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Skrypt drugi. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Obok umieszczono zieloną chorągiewkę. Na drugim bloku znajdują się: długopis oraz napis: wyczyść wszystko. Na trzecim bloku znajdują się: długopis oraz napis: przyłóż pisak. Na czwartym bloku znajduje się napis: zapytaj, ile kwadratów mam narysować, i czekaj. Napis: ile kwadratów mam narysować został wpisany w białym polu. Na piątym bloku znajduje się napis: powtórz odpowiedź razy. W obrębie tego bloku umieszczono dwa podbloki. Podblok pierwszy zawiera napis: kwadrat. Podblok drugi składa się z napisów: obróć strzałka zgodna z ruchem wskazówek zegara o trzysta sześćdziesiąt podzielone na odpowiedź stopni. Liczba trzysta sześćdziesiąt została wpisana w białym polu. Na szóstym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Tworzenie bloku „kwadrat” i wykorzystanie go w przykładowym skrypcie
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Na poniższym filmie możesz obejrzeć, jak utworzyć i wykorzystać własny blok.
R19fZKLFbXL76
Film przedstawia tworzenie nowego bloku.
Film przedstawia tworzenie nowego bloku.
Film przedstawiający tworzenie nowego bloku
Źródło: Maciej Borowiecki, Janusz Wierzbicki, licencja: CC BY 3.0.
Źródło: Maciej Borowiecki, Janusz Wierzbicki, licencja: CC BY 3.0.
Film przedstawia tworzenie nowego bloku.
Własne bloki mogą mieć też parametry, analogicznie jak w przypadku wielu standardowych klocków (np. w klocku przesuń podajesz, o ile kroków duszek ma się przemieścić). Przykład 2. Duszek ma rysować mniejsze i większe kwadraty. Parametrem dla bloku rysującego kwadrat będzie więc długość boku. Jeśli blok jest już zdefiniowany, wystarczy kliknąć go prawym przyciskiem myszy i wybrać z menu kontekstowego Edytuj, a następnie rozwinąć listę opcji. Jeśli dopiero tworzymy nowy blok, po podaniu jego nazwy należy od razu rozwinąć listę opcji. W kolejny krokach trzeba:
wybrać parametr liczbowy,
wpisać nazwę parametru,
zatwierdzić przyciskiem OK.
Żeby wykorzystać parametr, należy przeciągnąć go z klocka rozpoczynającego definicję nowego bloku do instrukcji, w której chcemy go użyć.
R1Dq8tSs3YYiR
Ilustracja przedstawia tworzenie bloku kwadrat wraz z parametrem wejściowym i wykorzystanie go w przykładowym skrypcie. Ukazano dwa skrypty oraz grafikę przedstawiającą duży kwadrat złożony z wielu kwadratów o różnej wielkości. Skrypt pierwszy. Na pierwszym bloku znajduje się napis: definiuj kwadrat bok. Na drugim bloku znajduje się napis: powtórz cztery razy. Cyfra cztery została wpisana w białym polu. W obrębie tego bloku umieszczono dwa podbloki. Podblok pierwszy zawiera napis: przesuń o bok kroków. Podblok drugi składa się z napisów: obróć strzałka zgodna z ruchem wskazówek zegara o dziewięćdziesiąt stopni. Liczba dziewięćdziesiąt została wpisana w białym polu. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Skrypt drugi. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Obok umieszczono zieloną chorągiewkę. Na drugim bloku znajdują się: długopis oraz napis: wyczyść wszystko. Na trzecim bloku znajdują się: długopis oraz napis: przyłóż pisak. Na czwartym bloku znajduje się napis: ustaw bok na dwieście. Napis: bok znajduje się w rozwijalnym polu wyboru. Liczba dwieście została wpisana w białym polu. Na piątym bloku znajduje się napis: powtarzaj, aż bok jest mniejszy od dwudziestu. Liczba dwadzieścia została wpisana w białym polu. W obrębie tego bloku umieszczono dwa podbloki. Podblok pierwszy zawiera napis: kwadrat bok. Podblok drugi składa się z napisu: zmień bok o minus dwadzieścia. Napis: bok znajduje się w rozwijalnym polu wyboru. Liczba minus dwadzieścia została wpisana w białym polu. Na szóstym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Tworzenie bloku „kwadrat” wraz z parametrem
wejściowym i wykorzystanie go w przykładowym skrypcie
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Na poniższym filmie możesz obejrzeć, jak utworzyć i wykorzystać własny blok z parametrem.
RS0lFzyVjb7J3
Film przedstawia tworzenie nowego bloku z parametrem.
Film przedstawia tworzenie nowego bloku z parametrem.
Film przedstawiający tworzenie nowego bloku z parametrem
Źródło: Maciej Borowiecki, Janusz Wierzbicki, licencja: CC BY 3.0.
Film przedstawiający tworzenie nowego bloku z parametrem
Źródło: Maciej Borowiecki, Janusz Wierzbicki, licencja: CC BY 3.0.
Film przedstawia tworzenie nowego bloku z parametrem.
Duszek oblicza należność i prosi o zapłatę
Na kolejnym ekranie (po otrzymaniu komunikatu kupuję) należy pokazać duszka, który nas rozliczy. Powinien on najpierw obliczyć wartość kupowanych biletów, następnie poprosić o zapłatę.
Polecenie 4
Utwórz zmienną, np. o nazwie kwota do zapłaty, której zadaniem będzie zapamiętanie obliczonej wartości kupowanych biletów. Będzie to wygodne rozwiązanie, dzięki któremu program będzie bardziej przejrzysty.
2
Ćwiczenie 13
Zapisz w postaci listy kroków działanie duszka‑kota na czwartym ekranie. Duszek powinien obliczyć wartość biletów i poinformować, czy zapłacona kwota jest wystarczająca. Jeśli wystąpi konieczność wydania reszty, nadaj komunikat wydaj resztę.
Cena wybranego biletu jest pamiętana w elemencie o numerze rodzaj listy ceny biletów, a liczba kupowanych biletów to numer kostiumu duszka Cyfry. Pamiętaj, że kwoty są pamiętane w groszach oraz kupujący może podać dokładną kwotę, mniejszą lub większą.
Przykładowy skrypt:
Zmień tło na kolejne.
Wyczyść scenę.
Pokaż duszka.
Ustaw wartość zmiennej kwota do zapłaty na:
Wyświetl kwotę do zapłaty i poproś o wprowadzenie kwoty przez kupującego.
Jeżeli wprowadzona kwota jest mniejsza od kwoty do zapłaty: 6.1. Powiedz „Niestety za mała kwota…”. 6.2. Zatrzymaj ten skrypt.
Jeżeli wprowadzona kwota jest równa kwocie do zapłaty: 7.1. Powiedz „Dziękuję, odliczyłeś dokładną kwotę”. 7.2. Zatrzymaj ten skrypt.
Ukryj duszka.
Nadaj komunikat wydaj resztę.
Zatrzymaj ten skrypt.
2
Ćwiczenie 14
Utwórz skrypt uruchamiany po otrzymaniu komunikatu kupuję według algorytmu z rozwiązania poprzedniego ćwiczenia.
Do wyświetlenia napisu złożonego z tekstu i wartości zmiennej użyj polecenia połącziwePopYOpl_d1111e498połącz.
Przykładowy skrypt:
R1Y4DFUYLSoDu
Ilustracja przedstawia przykładowy skrypt dla przycisku, duszka kupuję. Na pierwszym bloku znajduje się napis: kiedy otrzymam kupuję. Napis: kupuję znajduje się w rozwijalnym polu wyboru. Na drugim bloku znajduje się napis: zmień tło na tło cztery. Napis: tło cztery znajduje się w rozwijalnym polu wyboru. Na trzecim bloku znajdują się: ikona długopisu oraz napis: wyczyść wszystko. Na czwartym bloku umieszczono napis: pokaż. Na piątym bloku znajduje się napis: ustaw kwota do zapłaty na indeks kostiumu z cyfry razy element rodzaj z ceny biletów podzielone przez sto. Napisy: kwota do zapłaty, indeks kostiumu, cyfry oraz ceny biletów znajdują się w rozwijalnych polach wyboru. Liczba sto została wpisana w białym polu. Na szóstym bloku znajduje się napis: zapytaj połącz połącz do zapłaty i kwota do zapłaty i złotych. Wprowadź kwotę, mogę wydać resztę i czekaj. Napisy: do zapłaty oraz złotych, wprowadź kwotę, mogę wydać resztę zostały wpisane w białym polu. Na siódmym bloku znajduje się napis: jeżeli odpowiedź jest mniejsza niż kwota do zapłaty, to. W obrębie tego bloku umieszczono dwa podbloki. Podblok pierwszy zawiera napis: powiedz: niestety, za mała kwota. Napis: niestety, za mała kwota został wpisany w białym polu. Podblok drugi składa się z napisu: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Na ósmym bloku znajduje się napis: jeżeli odpowiedź równa się kwota do zapłaty, to. W obrębie tego bloku umieszczono dwa podbloki. Podblok pierwszy zawiera napis: powiedz: dziękuję, odliczyłeś dokładnie kwotę. Napis: dziękuję, odliczyłeś dokładnie kwotę został wpisany w białym polu. Podblok drugi składa się z napisu: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Na dziewiątym bloku znajduje się napis: ukryj. Na dziesiątym bloku umieszczono napis: nadaj komunikat: wydaj resztę. Napis: wydaj resztę znajduje się w rozwijalnym polu wyboru. Na jedenastym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Przykładowy skrypt dla przycisku – duszka „kupuję”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
iwePopYOpl_d1111e498
RiSjzbeAAYZGn
Ilustracja przedstawia blok połącz i z kategorii wyrażenia. Zawiera on napis: połącz jabłko i banan. Wyrazy: jabłko i banan zostały wpisane w białych polach.
Blok „połącz… i…” z kategorii „Wyrażenia”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Wynikiem działania klocka jest połączenie dwóch napisów w jeden. Wykorzystywany często do połączenia napisu wprowadzonego z klawiatury z wartością zwracaną przez inny klocek. Przykład:
R83nrbZfsRKE7
Ilustracja przedstawia przykładowy skrypt wykorzystujący blok połącz i. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Obok umieszczono zieloną chorągiewkę. Na drugim bloku umieszczono napis: zapytaj, jak masz na imię, i czekaj. Napis: jak masz na imię został wpisany w białym polu. Na trzecim bloku znajduje się napis: powiedz połącz dzień dobry i odpowiedź. Napis: dzień dobry został wpisany w białym polu. Na czwartym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Obok skryptu znajduje się duszek przedstawiający kota. Odchodzi od niego dymek dialogowy z napisem: dzień dobry, Ala.
Kwota reszty to różnica pomiędzy kwotą wprowadzoną przez kupującego a kwotą do zapłaty. Możesz założyć, że twój automat ma nieograniczoną liczbę monet każdego nominału.
2
Ćwiczenie 15
Podaj sposób ustalenia liczby monet poszczególnych nominałów, jakie ma wydać automat jako resztę z wprowadzonej przez kupującego kwoty.
Istnieje kilka sposobów na wydanie reszty. Na przykład resztę można wydać samymi monetami 10‑groszowymi. Postaraj się jednak znaleźć algorytm, który będzie minimalizował liczbę wydanych monet.
Algorytm 1
Weź monetę o najmniejszym nominale, czyli 10 gr, i oblicz, ile ich potrzeba (reszta do wydania podzielona przez 10). Takie rozwiązanie jest bardzo proste, ale mało przyjazne dla użytkownika. System monetarny można by ograniczyć do jednego nominału monety o najmniejszej wartości.
Algorytm 2
Zacznij od monety o największym nominale. Wydaj jej tyle egzemplarzy, ile się da. Od kwoty reszty odejmij wartość wydanych monet i przejdź do monety o kolejnym niższym nominale. Działania te powtarzaj, aż kwota reszty będzie równa zero.
2
Ćwiczenie 16
Zapisz w postaci listy kroków algorytm wydawania reszty minimalizujący liczbę wydawanych monet.
Żeby zminimalizować liczbę wydawanych monet, trzeba zacząć od jak największych nominałów. Żeby to zrealizować, najpierw trzeba znaleźć największy istniejący nominał, który jest mniejszy od reszty. Potem sprawdzić, ile maksymalnie egzemplarzy tego nominału można wydać oraz pomniejszyć resztę o wartość tych monet. Operację należy powtarzać, aż reszta będzie równa 0.
Dane:
kwota reszty – reszta do wydania wyrażona w groszach.
monety – lista dostępnych nominałów monet uporządkowana malejąco wyrażona w groszach.
Wynik:
reszta – lista z liczbą monet poszczególnych nominałów o łącznej wartości kwota reszty. Kolejność monet jest zgodna z kolejnością na liście monety.
Ustaw elementy listy reszta na zero.
Powtarzaj, aż kwota reszty będzie równa zero: 2.1. Ustaw zmienną i na 1. 2.2. Powtórz dla każdego elementu listy monety: ⠀ 2.2.1. ustaw element reszta[i] na część całkowitą wyrażenia kwota reszty / monety[i]. ⠀ 2.2.2. ustaw wartość zmiennej kwota reszty na kwota reszty – reszta[i] * monety[i]. ⠀ 2.2.3. zwiększ wartość zmiennej i o 1.
Zatrzymaj ten skrypt.
Ważne!
Taką strategię postępowania, w której w najbliższym kroku bierzemy to, co uważamy za najlepsze (w tym wypadku monetę o największym nominale mniejszym od kwoty, która pozostała do wydania), nazywamy metodą zachłannąiwePopYOpl_d1111e536metodą zachłanną.
2
Ćwiczenie 17
Utwórz nowy blokiwePopYOpl_d1111e449nowy blok dla duszka wydającego resztę zgodnie z algorytmem z poprzedniego ćwiczenia. Parametrem bloku będzie kwota reszty wyrażona w groszach. Nie musisz zerować listy reszta, zostało już to zrobione podczas tworzenia listy (po kliknięciu zielonej flagi).
Pamiętaj, że w nowo utworzonym bloku Scratcha nie można zmieniać wartości przekazanego parametru (w tym przypadku kwota reszty), więc musisz utworzyć pomocniczą zmienną, na przykład kwota. Do obliczenia części całkowitej liczby możesz wykorzystać funkcję podłogaiwePopYOpl_d1111e549podłoga.
Do realizacji zadania wykorzystaj zmienną pomocniczą. W poniższym przykładzie nazwano ją kwota.
R1OCBeH2BzPeF
Ilustracja przedstawia blok oblicz resztę z parametrem wejściowym kwota reszty. Na pierwszym bloku znajduje się napis: definiuj oblicz resztę kwota reszty. Na drugim bloku widoczny jest napis: ustaw kwota na kwota reszty. Napis: kwota znajduje się w rozwijalnym polu wyboru. Na trzecim bloku znajduje się napis: powtarzaj, aż kwota równa się zero. Cyfra zero została wpisana w białym polu. W obrębie tego bloku umieszczono dwa podbloki. Podblok pierwszy zawiera napis: ustaw I na jeden. Litera I znajduje się w rozwijalnym polu wyboru. Cyfra jeden została wpisana w białym polu. Podblok drugi składa się z napisu: powtórz długość monety razy. Napis: monety znajduje się w rozwijalnym polu wyboru. Drugi podblok zawiera trzy podbloki. Podblok pierwszy składa się z napisu: zamień I z reszta na podłoga z kwota podzielona na element I z monety. Napisy: reszta, podłoga oraz monety znajdują się w rozwijalnych polach wyboru. Podblok drugi zawiera napis: ustaw kwota na kwota minus element I z reszta razy element I z monety. Napisy: kwota, reszta oraz monety znajdują się w rozwijalnych polach wyboru. Podblok trzeci składa się z napisu: zmień I o jeden. Litera I znajduje się w rozwijalnym polu wyboru. Cyfra jeden została wpisana w białym polu. Na czwartym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Blok „Oblicz resztę” z parametrem wejściowym „kwota
reszty”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
2
Ćwiczenie 18
Zmodyfikuj skrypt dla duszka wydającego resztę, uruchamiany po otrzymaniu komunikatu kupuję. Przed nadaniem komunikatu wydaj resztę wstaw wywołanie bloku Oblicz resztę. Pamiętaj, że parametrem bloku jest liczba całkowita, która jest kwotą reszty w groszach.
Do zaokrąglenia wartości liczby rzeczywistej możesz wykorzystać bloczek zaokrąglijiwePopYOpl_d1111e568zaokrąglij.
R1Jfap8KmDJGE
Ilustracja przedstawia blok oblicz resztę wraz z parametrem wejściowym. Blok ten składa się z napisu: oblicz resztę zaokrąglij odpowiedź odjąć kwota do zapłaty razy sto. Wynik odejmowania odpowiedź i kwota do zapłaty został pomnożony razy sto. Liczba sto została wpisana w białym polu.
Blok „Oblicz resztę” wraz z parametrem
wejściowym
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
iwePopYOpl_d1111e536
Metoda zachłanna polega na dokonywaniu najlepszego w danym momencie wyboru. Nie dokonuje oceny, jak wybór wpłynie na kolejne kroki, kontynuuje rozwiązywanie problemu zgodnie z podjętą decyzją w danym kroku. Metoda zachłanna nie zawsze prowadzi do znalezienia rozwiązania najlepszego (optymalnego). Dla wielu problemów może prowadzić do rozwiązania przybliżonego. Systemy monetarne większości państw tak są konstruowane (tak dobierane są wartości nominałów), aby metoda zachłanna umożliwiała wydanie reszty jak najmniejszą liczbą monet. Można podać przykład, kiedy metoda zachłanna nie znajdzie minimalnej liczby monet. Załóżmy, że monetę 2 zł zastępujemy monetą 4 zł. Chcemy wydać 8 zł. Metoda zachłanna wyznaczy jedną monetę 5 zł i trzy monety 1 zł, czyli razem cztery monety. A kwotę 8 zł można przedstawić za pomocą dwóch monet 4 zł.
iwePopYOpl_d1111e549
R17nIlfcC4T8A
Ilustracja przedstawia bloki podłoga z oraz sufit z z kategorii wyrażenia. Blok pierwszy składa się z napisu podłoga z. Napis: podłoga znajduje się w rozwijalnym polu wyboru. Po literze Z występuje puste białe pole do wpisania. Blok drugi składa się z napisu sufit z. Napis: sufit znajduje się w rozwijalnym polu wyboru. Po literze Z występuje puste białe pole do wpisania.
Bloki „podłoga z…” oraz „sufit z…” z kategorii „Wyrażenia”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Funkcja podłoga zaokrągla liczbę rzeczywistą „w dół”, a funkcja sufit – „w górę”. Wartością funkcji podłoga jest największa liczba całkowita mniejsza lub równa od parametru, a wartością funkcji sufit – najmniejsza liczba całkowita większa od parametru. Funkcję należy wybrać z listy rozwijalnej.
RiR4rmVDnQB2T
Ilustracja przedstawia blok podłoga z z rozwiniętą listą rozwijaną, z której można wybrać inne opcje. Blok ten składa się z napisu: podłoga z. Napis: podłoga znajduje się w rozwijalnym polu wyboru. Rozwijalne pole wyboru zawiera następujące opcje: wartość bezwzględna, podłoga, sufit, pierwiastek kwadratowy, sinus, cosinus, tangens, arcus sinus, arcus cosinus, arcus tangens. Po literze Z występuje puste białe pole do wpisania.
Blok „podłoga z…” z rozwiniętą listą rozwijaną,
z której można wybrać inne opcje
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Przykłady:
RlbTfhyPaZkev
Ilustracja przedstawia przykładowy skrypt z wykorzystaniem bloku podłoga z. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Obok umieszczono zieloną chorągiewkę. Na drugim bloku widoczny jest napis: powiedz podłoga z dwóch i ośmiu dziesiątych. Napis: podłoga znajduje się w rozwijalnym polu wyboru. Liczba dwa i osiem dziesiątych została wpisana w białym polu. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Obok skryptu widoczny jest duszek kota. Odchodzi od niego dymek dialogowy z napisem: dwa.
Przykładowy skrypt z wykorzystaniem bloku „podłoga
z…”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
RlWC6NgW9IKuv
Ilustracja przedstawia przykładowy skrypt z wykorzystaniem bloku podłoga z. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Obok umieszczono zieloną chorągiewkę. Na drugim bloku widoczny jest napis: powiedz podłoga z minus dwóch i ośmiu dziesiątych. Napis: podłoga znajduje się w rozwijalnym polu wyboru. Liczba minus dwa i osiem dziesiątych została wpisana w białym polu. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Obok skryptu widoczny jest duszek kota. Odchodzi od niego dymek dialogowy z napisem: minus trzy.
Przykładowy skrypt z wykorzystaniem bloku „podłoga
z…”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
R1Kad6333ZqSS
Ilustracja przedstawia przykładowy skrypt z wykorzystaniem bloku sufit z. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Obok umieszczono zieloną chorągiewkę. Na drugim bloku widoczny jest napis: powiedz sufit z dwóch i dwóch dziesiątych. Napis: sufit znajduje się w rozwijalnym polu wyboru. Liczba dwa i dwie dziesiąte została wpisana w białym polu. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Obok skryptu widoczny jest duszek kota. Odchodzi od niego dymek dialogowy z napisem: trzy.
Przykładowy skrypt z wykorzystaniem bloku „sufit
z…”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
RTRpv6btGAQTt
Ilustracja przedstawia przykładowy skrypt z wykorzystaniem bloku sufit z. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Obok umieszczono zieloną chorągiewkę. Na drugim bloku widoczny jest napis: powiedz sufit z minus dwóch i dwóch dziesiątych. Napis: sufit znajduje się w rozwijalnym polu wyboru. Liczba minus dwa i dwie dziesiąte została wpisana w białym polu. Na trzecim bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Obok skryptu widoczny jest duszek kota. Odchodzi od niego dymek dialogowy z napisem: minus dwa.
Przykładowy skrypt z wykorzystaniem bloku „sufit
z…”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
iwePopYOpl_d1111e568
R1SAFDbqA52eM
Ilustracja przedstawia blok zaokrąglij z kategorii wyrażenia. Blok ten składa się z napisu: zaokrąglij. Po napisie: zaokrąglij występuje puste białe pole do wpisania.
Blok „zaokrąglij…” z kategorii „Wyrażenia”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Wartością jest zaokrąglony argument do najbliższej liczby całkowitej – zgodnie z regułami zaokrąglania, tzn. końcówka 0.5 i więcej jest zaokrąglana w górę, w przeciwnym przypadku – w dół.
Przykład:
ROWhTjsDQDLat
Ilustracja przedstawia przykładowy skrypt z wykorzystaniem bloku zaokrąglij oraz jego działanie. Skrypt prezentuje się następująco. Na pierwszym bloku znajduje się napis: kiedy kliknięto. Obok umieszczono zieloną chorągiewkę. Na drugim bloku widoczny jest napis: zapytaj: podaj liczbę rzeczywistą, a ja ją zaokrąglę i czekaj. Napis: podaj liczbę rzeczywistą, a ja ją zaokrąglę został wpisany w białym polu. Na trzecim bloku widoczny jest napis: powiedz zaokrąglij odpowiedź. Na czwartym bloku widoczny jest napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru. Nad skryptem widoczny jest duszek kota. Odchodzi od niego dymek dialogowy z napisem: podaj liczbę rzeczywistą, a ja ją zaokrąglę. Poniżej znajduje się pole, w którym wpisano jeden i siedemdziesiąt pięć setnych, a następnie zatwierdzono. Obok skryptu widoczny jest duszek kota. Odchodzi od niego dymek dialogowy z cyfrą dwa.
Przykładowy skrypt z wykorzystaniem bloku „zaokrąglij”
oraz jego działanie
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Duszek wydaje resztę
Ostatnim elementem oprogramowania automatu będzie wydanie reszty zgodnie z wyznaczoną liczbą monet o poszczególnych nominałach. Odpowiedzialny za to będzie duszek Monety po otrzymaniu komunikatu wydaj resztę. Zwróć uwagę, że duszek jest jeden (ma sześć kostiumów, poszczególne nominały monet), a na scenie należy wyświetlić kilka monet, często także o takich samych nominałach. Umożliwia to mechanizm klonowania duszków. Więcej o klonowaniu duszków dowiesz się tutajiwePopYOpl_d1111e593tutaj.
2
Ćwiczenie 19
Przygotuj dwa skrypty związane z wydawaniem reszty dla duszka Monety:
Uruchamiany po otrzymaniu komunikatu wydaj resztę. Jego zadaniem jest tworzenie/generowanie klonów duszka Monety zgodnie z ustawieniami na liście reszta.
Uruchamiany w wyniku wystąpienia zdarzenia gdy zaczynam jako kloniwePopYOpl_d1111e593gdy zaczynam jako klon (duszek powinien pokazać się na scenie w losowym miejscu i wydać dźwięk wypadającej monety).
W podpowiedzi znajdziesz algorytmy, według których należy przygotować skrypty.
Ustaw pomocniczą zmienną i na 1.
Ustaw pierwszy kostium (największy nominał: 5 zł).
Powtórz dla każdego nominału monety: 3.1. Powtórz reszta[i] razy: ⠀ 3.1.1. Sklonuj siebie. ⠀ 3.1.2. Czekaj chwilę (np. 0.5 sekundy). 3.2. Zwiększ wartość zmiennej i o 1. 3.3. Zmień kostium na następny.
Zatrzymaj ten skrypt.
R1NJrKpIvoETI
Ilustracja przedstawia skrypt odpowiadający za wydawanie reszty. Na pierwszym bloku znajduje się napis: kiedy otrzymam wydaj resztę. Napis: wydaj resztę znajduje się w rozwijalnym polu wyboru. Na drugim bloku znajduje się napis: ustaw I na jeden. Litera I znajduje się w rozwijalnym polu wyboru. Cyfra jeden została wpisana w białym polu. Na trzecim bloku znajduje się napis: zmień kostium na pięć złotych. Napis: pięć złotych znajduje się w rozwijalnym polu wyboru. Na czwartym bloku znajduje się napis: powtórz długość reszta razy. Napis: reszta znajduje się w rozwijalnym polu wyboru. W obrębie tego bloku umieszczono trzy podbloki. Podblok pierwszy bloku czwartego zawiera napis: powtórz element I z reszta razy. Napis: reszta znajduje się w rozwijalnym polu wyboru. W obrębie podbloku pierwszego bloku czwartego umieszczono dwa podbloki. Podblok pierwszy zawiera napis: utwórz klona z siebie. Napis: siebie znajduje się w rozwijalnym polu wyboru. Podblok drugi składa się z napisu: czekaj pięć dziesiątych sekund. Liczba pięć dziesiątych została wpisana w białym polu. Podblok drugi bloku czwartego zawiera napis: zmień I o jeden. Litera I znajduje się w rozwijalnym polu wyboru. Cyfra jeden została wpisana w białym polu. Podblok trzeci bloku czwartego składa się z napisu: następny kostium. Na bloku piątym znajduje się napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Skrypt odpowiadający za wydawanie reszty
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
R4OErEVFols8R
Ilustracja przedstawia skrypt losujący położenie nowo utworzonych klonów. Na bloku pierwszym znajduje się napis: gdy zaczynam jako klon. Na bloku drugim znajduje się napis: idź do X, losuj liczbę od jeden do dziesięć, Y, losuj liczbę od jeden do dziesięć. Liczby jeden i dziesięć zostały wpisane w białych polach. Na bloku trzecim znajduje się napis: pokaż. Na bloku czwartym widoczny jest napis: zagraj dźwięk pop. Napis: pop znajduje się w rozwijalnym polu wyboru. Na bloku piątym znajduje się napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Skrypt losujący położenie nowo utworzonych klonów
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
iwePopYOpl_d1111e593
W kategorii Kontrola znajdują się trzy klocki związane z tworzeniem i obsługą kopii (klonów) duszków podczas działania programu. Klocki te nie są dostępne dla sceny. Kliknięcie zielonej flagi lub przycisku stop (także wykonanie klocka zatrzymaj wszystko) automatycznie usuwa wszystkie kopie (klony).
R18PFm19cqiot
Ilustracja przedstawia blok utwórz klona z z kategorii kontrola. Blok ten składa się z napisu: utwórz klona z siebie. Napis: siebie znajduje się w rozwijalnym polu wyboru.
Blok „utwórz klona z…” z kategorii „Kontrola”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Klocek umożliwia duszkowi utworzenie swojej kopii lub kopii dowolnego innego duszka wybranego z listy rozwijalnej (na liście znajdują się nazwy wszystkich duszków z obszaru zarządzania duszkami). Nowo utworzony duszek posiada wszystkie cechy i funkcjonalności swojego wzorca. Po utworzeniu rozpoczyna się automatycznie wykonywanie skryptu rozpoczynającego się od klocka:
RheEgK0KkwABY
Ilustracja przedstawia blok: gdy zaczynam jako klon z kategorii kontrola. Blok ten składa się z napisu: gdy zaczynam jako klon.
Blok „gdy zaczynam jako klon” z kategorii „Kontrola”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
Można także programowo usuwać utworzonego duszka – klona. Jeśli w skryptach zostanie użyty klocek
RaplSKKSILCmn
Ilustracja przedstawia blok: usuń tego klona z kategorii Kontrola. Blok ten składa się z napisu: usuń tego klona.
Blok „usuń tego klona” z kategorii „Kontrola”
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
duszek – klon zostanie usunięty. Zwróć uwagę, że pod ten klocek nie można podczepić żadnego innego. Jeśli duszek zostanie usunięty, to nie może już wykonywać innych czynności.
Przykład: Na niebie (niebieskim tle sceny) co 1 sekundę pojawia się w losowym miejscu gwiazdka. Kliknięcie gwiazdki powoduje jej usunięcie.
RToaDGshBR9mT
Ilustracja przedstawia przykładowe skrypty wykorzystujące bloki związane z klonowaniem duszka. Skrypt pierwszy. Na bloku pierwszym znajduje się napis: kiedy kliknięto. Obok widoczna jest zielona chorągiewka. Na bloku drugim znajduje się napis: ukryj. Na bloku trzecim znajduje się napis: zawsze. W obrębie tego bloku umieszczono dwa podbloki. Podblok pierwszy zawiera napis: czekaj jeden sekund. Cyfra jeden została wpisana w białym polu. Podblok drugi składa się z napisu: utwórz klona z siebie. Napis: siebie znajduje się w rozwijalnym polu wyboru. Skrypt drugi. Na bloku pierwszym znajduje się napis: kiedy ten duszek kliknięty. Na bloku drugim znajduje się napis: usuń tego klona. Skrypt trzeci. Na bloku pierwszym znajduje się napis: gdy zaczynam jako klon. Na bloku drugim znajduje się napis: idź do X, losuj liczbę od minus dwieście do dwieście, Y, losuj liczbę od minus dwieście do dwieście. Liczby minus dwieście i dwieście zostały wpisane w białych polach. Na bloku trzecim znajduje się napis: pokaż. Na bloku czwartym widoczny jest napis: zagraj dźwięk pop. Napis: pop znajduje się w rozwijalnym polu wyboru. Na bloku piątym znajduje się napis: zatrzymaj ten skrypt. Napis: ten skrypt znajduje się w rozwijalnym polu wyboru.
Przykładowe skrypty wykorzystujące bloki związane z klonowaniem duszka
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
R1PkUKbixBgbF
Ilustracja ukazuje zrzut ekranu przedstawiający scenę w trakcie uruchomienia skryptu. Scena jest koloru niebieskiego i zawiera wiele żółtych gwiazd ułożonych w losowych miejscach.
Zrzut ekranu przedstawiający scenę w trakcie uruchomienia skryptu
Źródło: Janusz Wierzbicki, Maciej Borowiecki, licencja: CC BY 3.0.