Zmiany

Skocz do: nawigacji, wyszukiwania

Czasomierz lekcyjny

Dodane 1366 bajtów, 11:00, 7 lis 2014
[[Category:Scenariusze Scratch]] [[Category:Mistrzowie Kodowania]]
'''Materiały stworzone przez Fundację Coder Dojo Polska w ramach Programu „Mistrzowie Kodowania” finansowanego przez Samsung Electronics Polska, objęte licencją CC BY 3.0 PL "Creative Commons Uznanie Autorstwa 3.0 Polska".'''
== Informacje ==
# Wykorzystanie opcji dostępnej w Bloku [[Plik:Czasomierz.png]]
# Implementacja projektu w środowisku Scratch
# Opcjonalnie: '''wykorzystanie możliwości tworzenia własnych bloków''': [[Plik:DefiniujWiecej blokow stworz blok.png]]
====Poziom trudnościi proponowane wersje====
Poziom trudności dla klas 4-6 ✪✪✰✰ Gotowy projekt [[http://scratch.mit.edu/projects/2527299726833381/ Czasomierz lekcyjny]]* Poziom trudności dla klas 4-6 ✪✪✰✰* Poziom trudności dla gimnazjum ✪✰✰✰
Poziom trudności dla gimnazjum ✪✪✰✰ Gotowy projekt projekt [http://scratch.mit.edu/projects/2579693726836599/ Czasomierz lekcyjny - wersja B]z opcją tworzenia własnych bloków* Poziom trudności dla klas 4-6 ✪✪✪✰ * Poziom trudności dla gimnazjum ✪✪✰✰
Gotowy projekt projekt [http://scratch.mit.edu/projects/25974535/ Czasomierz lekcyjny - wersja C] z opcją tworzenia własnych bloków oraz zaznaczaniem kolorem upływającego odcinka czasu, uruchamianie odliczania klawiszem ''spacja''* Poziom trudności dla klas 4-6 ✪✪✪✰* Poziom trudności dla gimnazjum ✪✪✰✰ == Instrukcje ==Orientacyjny czas realizacji====Orientacyjny czas realizacji jednej z proponowanych wersji: 2x 45minut. == Etapy ==
=== Interakcja z użytkownikiem ===
Jak Scratch radzi sobie z czasem?Do mierzenia czasu w Scratch możemy użyć dwóch klocków z grupy "czujniki":
* Klocka "czasomierz", który zlicza sekundy (co do części dziesiętnej),
* Klocka "aktualna godzina / minuta".
Pierwszym etapem jest zaprojektowanie sposobu w jaki użytkownik wprowadzi dane liczbowe odpowiadające wartości czasu, który ma być odmierzony. W tym celu wykorzystane zostaną klocki:
# [[Plik:Klocek1a.png]] oraz [[Plik:Klocek1b.png]] aby uzyskać informację
# [[Plik:Zmienna czasomierzCzasomierz nazewnictwo1.pngJPG]] aby zgromadzić zebrane dane# [[Plik:Połącz.png]] aby połączyć zebrane dane  Przykładowy skrypt może wyglądać w łączny czas wyrażony w sekundach.następujący sposób:
[[Plik:Czasomierz_01.png|Krok 1. - zaprojektowanie sposobu ustawiania czasu do odliczenia]]
Co się stanie jeśli użytkownik aplikacji zamiast liczby minut wpisze dla żartu coś, co nie jest liczbą? Nasz program mógłby zacząć funkcjonować w niespodziewany sposób. Do pewnego stopnia chroni nas przed tym sam Scratch, który jeśli spróbujemy wykonać jakieś działanie matematyczne na zmiennej, która przechowuje '''tekst''', zamieni '''tekst''' na liczbę zero. W ten też sposób możemy łatwo sprawdzić czy ktoś podał liczbę (tak, jak chcemy), czy '''tekst''': (uczniowie mogą sami wymyślić ten sposób na bazie podanej właściwości):
[[Plik:czasomierz_02Czasomierz 02.png|Sposób na sprawdzenie, czy wprowadzona została liczba, czy tekstjpg]]
'''Uwaga:''' Opcjonalnie można wykorzystać opcję definiowania nowych bloków, aby przygotować klocek sprawdzania czy podana wartość jest liczbą.
[[Plik:info.png|50px|left]]Czasem warto - w celu poprawy przejrzystości skryptów - często powtarzające się fragmenty połączyć w jeden blok i w odpowiednich miejscach używać pojedynczego bloku. Można to zrobić wykorzystując Wykorzystując zakładkę "[[Plik:Wiecej bloków" -> "Stwórz blokow stworz blok".png]] tworzymy kod złożonego działania, zawarty w pojedynczym bloku. W proponowanym scenariuszu skrypt wykorzystujący opcję definiowania własnego bloku wygląda w następujący sposób:
[[Plik:Czasomierz z definiujDefiniowanie.pngJPG]]
=== Grafika Duszek "Wskazówka" ===
* Ustawiamy tło (scenę): rysujemy tarczę czasomierza w trybie wektorowym używając narzędzia elipsa z wciśniętym klawiszem "shift" aby uzyskać okrąg.
* Dodajemy duszka - wskazówkę czasomierza. Wygląd jest dowolny, istotne jest to, żeby punkt obrotu duszka był na początku wskazówki:
[[Plik:czasomierz_03.png|Ustawianie punktu obrotu duszka (szary plus na końcu wskazówki)]]
* Wskazówkę ustawiamy tak, żeby zaczynała się na środku tarczy czasomierza. * W przygotowanym projekcie wskazówka została narysowana w poziomie, co w dalszej kolejności warunkuje ustawienie pozycji startowej (aby wskazówka rozpoczynała ruch od pozycji pionowej, należy ustawić jej kierunekna 0)
=== Przesuwanie wskazówki ===
* Wskazówkę ustawiamy tak# Rozpoczęcie ruchu wskazówki inicjowane jest komunikatem nadaj wiadomość "czas-start!" wysyłanym po podaniu przez użytkownika czasu, żeby zaczynała się na środku tarczy czasomierzajaki ma zostać odmierzony. W prezentowanej wersji# Wykorzystując wyrażenie mnożenia oraz dodawania, wskazówka pokazuje się w pionie (ustaw kierunek na 0)określona zostaje łączna suma sekund do odliczenia; * Pomarańczowy klocek zlicza sumę sekund jaką należy odmierzyć i przechowuje ją # Wprowadzne przez użykownika dane, zostają przechowane w lokalnej (zdefiniowanej tylko dla tego duszka) zmiennej '''czas-suma''* Rozpoczęcie ruchu wskazówki inicjowane jest komunikatem nadaj wiadomość "czas-start!" wysyłanym po podaniu czasu,, jaki chcemy odmierzyć.'
Zarys skryptu wygląda następująco:
[[Plik:Czasomierz 04nazewnictwo2.png|Krok 3: Zarys skryptu zliczającego czas i przesuwającego wskazówkęJPG]]
* Uruchamiana Wykorzystując klocek ''powtarzaj aż'' uruchamiana jest pętla, która ma przesuwać wskazówkę (obracać jąobracac) wskazówkę, dopóki czasomierz ( wskazanie czasomierza nie zrówna się z wyznaczona wartością czasu do odliczenia.
'''Uwaga:''' W programie Scratch czasomierz stale odmierza sekundy, w związku z tym należy wprowadzić opcję zresetowania wartości czasomierza wraz z uruchomieniem odliczania zadanego czasu. W tym celu należy użyć klocka
[[Plik:Zeruj stoper.png]]
Dodatkowo zabezpieczamy się * Użycie klocków warunku umożliwia określenie zarówno momentu zrównania wartości czasomierza i wyznaczonego czasu, jak również dodatkowo zabezpiecza przed tym, że sytuacją w kótrej czas odmierzony przez czasomierz może "przeskoczyć" wartość pożądaną - stąd również przekroczenie czasu kończy pętlę. * Efekt ruchu wskazówki uzyskujemy przy użyciu klocków [[Plik:Czasomierz nazewnictwo3.JPG]]
* Po zakończeniu odliczania ustawiamy wskazówkę na powrót ponownie w pionie i uruchamiamy efekty dodatkowe, np. dźwięk.
[[Plik:Czasomierz 06nazewnictwo 4.png|Krok 3: Skrypt obliczający nachylenie wskazówki - uproszczonyJPG]]
== Działający projekt Dodatkowe opcje==Projekt czasomierza można rozwinąć o:*start spacją, umożliwiający start w dowolnym momencie*graficzny efekt odmierzania czasu, uzyskany poprzez użycie narzędzia [//scratch[Plik:Stempluj.mitPNG]] [[Plik:Czasomierz stemplowanie.edu/projects/25272997/ PNG]]*wprowadzenie intuicyjnego, zegarowego kierunku obrotu, poprzez zmianę wartości w ustawieniu kierunku:[[Plik:Czasomierz lekcyjnydodatki.PNG]]