Maszynka losująca (wersja B): Różnice pomiędzy wersjami

Z Wiki Mistrzowie Kodowania
Skocz do: nawigacji, wyszukiwania
 
(Nie pokazano 22 wersji utworzonych przez 3 użytkowników)
Linia 1: Linia 1:
==Cel==
+
[[Category:Scenariusze Scratch]] [[Category:Mistrzowie Kodowania]]
Celem projektu jest stworzenie programu umożliwiającego losowanie liczby z podanego zakresu lub losowanie imienia/nazwiska z wprowadzonej listy.  
+
'''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==
 
==Informacje==
Poziom trudności dla klas 4-6 ✪✰✰✰ przejdź do scenariusza [Maszynka losująca] Gotowy projekt [[http://scratch.mit.edu/projects/25600510/ maszynka losujaca 4-6]]
+
===Cele===
 +
Celem projektu jest stworzenie programu umożliwiającego losowanie liczby z podanego zakresu lub losowanie imienia/nazwiska z wprowadzonej listy.
  
Poziom trudności dla gimnazjum ✪✰✰✰ - Gotowy projekt [[http://scratch.mit.edu/projects/25276398/ Maszynka losująca]]
+
# Przypomnienie i utrwalenie poznanych wcześniej poleceń i konstrukcji języka Scratch,
 +
# Wykorzystanie klocków z Bloku Dane (stwórz listę)
 +
# Implementacja w środowisku Scratch
 +
 
 +
===Poziom trudności i proponowane wersje===
 +
 
 +
Poziom trudności dla klas 4-6 ✪✪✰✰
 +
 
 +
Poziom trudności dla gimnazjum ✪✪✰✰
 +
 
 +
Gotowy projekt: [http://scratch.mit.edu/projects/25276398/ Maszynka losująca]
 +
[http://scratch.mit.edu/projects/25948365/ Lotto]
 +
 
 +
===Orientacyjny czas realizacji===
  
 
==Etapy==
 
==Etapy==
Linia 11: Linia 25:
 
===Skrypt losowania liczby lub imienia/nazwiska.===
 
===Skrypt losowania liczby lub imienia/nazwiska.===
  
Skrypt zawiera pola dialogowe z bloków [[Plik:Blok wyglad.png]] i [[Plik:Blok wyrazenia.png]], opcję zmienne i tworzenia zmiennych z bloku [[Plik:Blok dane.png]] oraz element losowania z bloku [[Plik:Blok czujniki.png]].
+
Wprowadzenie do modułu znajduje się w scenariuszu „Maszyna losująca” (wersja podstawowa). Można rozpocząć realizację tego modułu od wprowadzenia wersji podstawowej. Warto wtedy, aby stworzony skrypt został zachowany, bo jego część będzie dalej używana w nowej wersji maszyny.
Wybrany w tej wersji duszek ''Jay'' informuje o możliwości wylosowania liczby lub elementu z listy. W uzależnieniu od decyzji gracza zadaje pytanie o zakres liczb lub prosi o podanie zestawu danych do listy. Po uzyskaniu odpowiedzi losuje. W ostatnim punkcie duszek podaje losowo wybraną liczbę.
+
  
==== Algorytm wyboru między losowaniem liczby z podanego zakresu, a losowaniem elementu z utworzonej listy.====
+
====Szkielet warunku ====
 +
Pytamy uczniów czy w zdarzało im się używać kostek o większej ilości boków lub mających na sobie symbole, które nie mają tylko liczb. Chcemy rozwinąć nasz program, aby miał dwie użyteczności. Jedna będzie dalej kontynuowała działania maszyny losującej liczby, druga będzie losować dowolny tekst (np. imiona, nazwiska, nazwy kolorów, miast). Razem z uczniami rozpisujemy sytuację, którą mamy zaprogramować. (1. Użytkownik jest proszony o wybór opcji losowania, 2. Uruchamiane jest losowanie liczby lub tekstu). Prosimy ich, aby dalej pozostali przy traktowaniu „odpowiedzi” jako zmiennej. Dla odpowiedzi „1” – ustalamy losowanie liczby, dla odpowiedzi „2” – ustalamy losowanie tekstu. Warto też zastanowić się co zrobić jeśli użytkownik wpisze inną odpowiedź. Uczniowie mają więc stworzyć szkielet skryptu warunkowego dla wypracowanych wartości.
  
 +
Uwaga. Jeśli uczniowie nie posiadają takiej wiedzy, warto wskazać im, że wyrażenia mogą się w sobie zagnieżdżać, dzięki czemu możliwe jest budowanie zdań logicznych.
 +
 +
Ważne. Warto zatrzymać się też i porozmawiać z uczniami na temat różnicy pomiędzy przykładowymi zdaniami logicznymi, np.:
 +
[[Plik:Zdania_logiczne.png]]
 +
 +
==== Algorytm wyboru między losowaniem liczby z podanego zakresu, a losowaniem elementu z utworzonej listy.====
 
[[Plik:Maszynka losujaca 1.png]]
 
[[Plik:Maszynka losujaca 1.png]]
  
 +
====Maszyna losująca====
 +
Dla pierwszego warunku skrypt wygląda podobnie jak w pierwszej części scenariusza. Program pyta o ilość losowanych liczb i wykorzystuje odpowiedź jako zadeklarowaną zmienną. Uczniowie mogą przenieść część skryptu z drugiej wersji maszyny losującej (jeśli ją robili).
 
==== Algorytm losowania liczby ====
 
==== Algorytm losowania liczby ====
 
 
[[Plik:Maszynka losujaca 2.png]]
 
[[Plik:Maszynka losujaca 2.png]]
 +
  
 
==== Algorytm losowania elementu z utworzonej listy.====
 
==== Algorytm losowania elementu z utworzonej listy.====
 +
 +
Wprowadzamy uczniom dwie nowe funkcje Scratcha, które będą niezbędne do zbudowania skryptu losowania tekstu.
 +
====Funkcja połącz:====
 +
[[Plik: Połącz.png]]
 +
 +
W przygotowanej części kodu duszek od razu wyświetla wylosowaną liczbę. Można jednak zrobić tak, aby program połączył tekst który wprowadzimy, a po nim wylosowaną „odpowiedź”. Możemy poprosić uczniów, aby poszukali klocka, który może odpowiadać za tę funkcję. Jeśli go znajdą prosimy, aby połączyli ze sobą słowo „wylosowałem: ” oraz „wylosowaną liczbę” i wstawili w odpowiednią część kodu.
 +
 +
[[Plik:Połacz_2.png]]
 +
 +
====Funkcja listy zmiennej====
 +
Ponieważ program ma losować wprowadzone przez użytkownika imiona lub nazwy kolorów użyjemy listy zmiennej dzięki której widoczne będę losowane elementy.
 +
Możemy wprowadzić funkcjonalność listy zmiennej na bazie przykładu z wpisywaniem  imion poszczególnych graczy. Do tego celu możemy tworzyć nowy projekt lub nowego duszka. Pokazujemy uczniom w jaki sposób tworzy się listę. Prosimy o to, aby zastanowili się w jaki sposób zrobić skrypt zapisujący dziesięć kolejnych imion.
 +
Przykładowy skrypt
 +
 +
[[Plik:Imiona.png]]
 +
 +
Po przećwiczeniu dwóch nowych funkcji uczniowie mogą spróbować wykorzystać je do stworzenia skryptu maszyny losujące tekst.
  
 
W bloku [[Plik:Blok dane.png]] tworzymy zmienną [[Plik:Maszynka dane.png]] gromadzącą informacje na temat liczby wprowadzonych na liście elementów (np.: ilość wprowadzonych imion, nazwisk itp).  
 
W bloku [[Plik:Blok dane.png]] tworzymy zmienną [[Plik:Maszynka dane.png]] gromadzącą informacje na temat liczby wprowadzonych na liście elementów (np.: ilość wprowadzonych imion, nazwisk itp).  
Linia 48: Linia 87:
  
 
==== Finałowy skrypt ====
 
==== Finałowy skrypt ====
 +
 +
W zakończeniu możemy wprowadzić dodatkowe klocki dialogowe, które będa reagowały na wybór kategorii poza zdefiniowanymi (1) zakresem liczb a (2) elementami dodawanymi do listy.
  
 
[[Plik:Maszynka losujaca 7.png]]
 
[[Plik:Maszynka losujaca 7.png]]

Aktualna wersja na dzień 12:07, 7 lis 2014

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

Cele

Celem projektu jest stworzenie programu umożliwiającego losowanie liczby z podanego zakresu lub losowanie imienia/nazwiska z wprowadzonej listy.

  1. Przypomnienie i utrwalenie poznanych wcześniej poleceń i konstrukcji języka Scratch,
  2. Wykorzystanie klocków z Bloku Dane (stwórz listę)
  3. Implementacja w środowisku Scratch

Poziom trudności i proponowane wersje

Poziom trudności dla klas 4-6 ✪✪✰✰

Poziom trudności dla gimnazjum ✪✪✰✰

Gotowy projekt: Maszynka losująca Lotto

Orientacyjny czas realizacji

Etapy

Wybieramy lub rysujemy postać duszka, który będzie losował.

Skrypt losowania liczby lub imienia/nazwiska.

Wprowadzenie do modułu znajduje się w scenariuszu „Maszyna losująca” (wersja podstawowa). Można rozpocząć realizację tego modułu od wprowadzenia wersji podstawowej. Warto wtedy, aby stworzony skrypt został zachowany, bo jego część będzie dalej używana w nowej wersji maszyny.

Szkielet warunku

Pytamy uczniów czy w zdarzało im się używać kostek o większej ilości boków lub mających na sobie symbole, które nie mają tylko liczb. Chcemy rozwinąć nasz program, aby miał dwie użyteczności. Jedna będzie dalej kontynuowała działania maszyny losującej liczby, druga będzie losować dowolny tekst (np. imiona, nazwiska, nazwy kolorów, miast). Razem z uczniami rozpisujemy sytuację, którą mamy zaprogramować. (1. Użytkownik jest proszony o wybór opcji losowania, 2. Uruchamiane jest losowanie liczby lub tekstu). Prosimy ich, aby dalej pozostali przy traktowaniu „odpowiedzi” jako zmiennej. Dla odpowiedzi „1” – ustalamy losowanie liczby, dla odpowiedzi „2” – ustalamy losowanie tekstu. Warto też zastanowić się co zrobić jeśli użytkownik wpisze inną odpowiedź. Uczniowie mają więc stworzyć szkielet skryptu warunkowego dla wypracowanych wartości.

Uwaga. Jeśli uczniowie nie posiadają takiej wiedzy, warto wskazać im, że wyrażenia mogą się w sobie zagnieżdżać, dzięki czemu możliwe jest budowanie zdań logicznych.

Ważne. Warto zatrzymać się też i porozmawiać z uczniami na temat różnicy pomiędzy przykładowymi zdaniami logicznymi, np.: Zdania logiczne.png

Algorytm wyboru między losowaniem liczby z podanego zakresu, a losowaniem elementu z utworzonej listy.

Maszynka losujaca 1.png

Maszyna losująca

Dla pierwszego warunku skrypt wygląda podobnie jak w pierwszej części scenariusza. Program pyta o ilość losowanych liczb i wykorzystuje odpowiedź jako zadeklarowaną zmienną. Uczniowie mogą przenieść część skryptu z drugiej wersji maszyny losującej (jeśli ją robili).

Algorytm losowania liczby

Maszynka losujaca 2.png


Algorytm losowania elementu z utworzonej listy.

Wprowadzamy uczniom dwie nowe funkcje Scratcha, które będą niezbędne do zbudowania skryptu losowania tekstu.

Funkcja połącz:

Połącz.png

W przygotowanej części kodu duszek od razu wyświetla wylosowaną liczbę. Można jednak zrobić tak, aby program połączył tekst który wprowadzimy, a po nim wylosowaną „odpowiedź”. Możemy poprosić uczniów, aby poszukali klocka, który może odpowiadać za tę funkcję. Jeśli go znajdą prosimy, aby połączyli ze sobą słowo „wylosowałem: ” oraz „wylosowaną liczbę” i wstawili w odpowiednią część kodu.

Połacz 2.png

Funkcja listy zmiennej

Ponieważ program ma losować wprowadzone przez użytkownika imiona lub nazwy kolorów użyjemy listy zmiennej dzięki której widoczne będę losowane elementy. Możemy wprowadzić funkcjonalność listy zmiennej na bazie przykładu z wpisywaniem imion poszczególnych graczy. Do tego celu możemy tworzyć nowy projekt lub nowego duszka. Pokazujemy uczniom w jaki sposób tworzy się listę. Prosimy o to, aby zastanowili się w jaki sposób zrobić skrypt zapisujący dziesięć kolejnych imion. Przykładowy skrypt

Imiona.png

Po przećwiczeniu dwóch nowych funkcji uczniowie mogą spróbować wykorzystać je do stworzenia skryptu maszyny losujące tekst.

W bloku Blok dane.png tworzymy zmienną Maszynka dane.png gromadzącą informacje na temat liczby wprowadzonych na liście elementów (np.: ilość wprowadzonych imion, nazwisk itp). W tym samym bloku tworzymy listę, która będzie gromadziła listę wprowadzanych do wylosowania elementów

Stwórz liste maszynka.png

Rozpoczynając gromadzenie danych, maszynka losująca musi posiadać zmienną numer elementu ustawioną na pierwszą liczbę (1), po każdym dodaniu elementu do listy, wartość zmiennej ulega zwiększeniu. W tym celu do skryptu wprowadzone zostają klocki Zmienne maszynka.png

Aby wychwycić moment ukończenia listy i nadać sygnał do rozpoczęcia losowania korzystamy z opcji nieudzielenia odpowiedzi, tj. pust pole, wykorzystując klocki: Powtarzaj az odpowiedzi brak.png

Na tym etapie ten fragment skryptu może wyglądać w następujący sposób:

Maszynka losujaca 3.png

Aby maszynka losująca udzieliła odpowiedzi, poprzez podanie wylosowanego elementu, wykorzystujemy formułę:

Maszynka losujaca 4.png

Warto zwrócić uwagę na konieczność usunięcia z listy elementów, ostatniej odpowiedzi, tj.: pustego pola. Brak odpowiedzi miał być sygnałem do rozpoczęcia losowania, jednak ten ostatni element nie powinien być brany pod uwagę w losowaniu: Maszynka losujaca 5.png Zanim zatem maszynka losująca dokona losowania i poda odpowiedź należy dodać klocek usuwający puste pole.

Jednocześnie, aby maszynka losująca był a gotowa do zbierania nowych elementów na liście zimennych, należy skrypt w poczatkowej części, uzupełnić o klocek Maszynka losujaca 6.png

Finałowy skrypt

W zakończeniu możemy wprowadzić dodatkowe klocki dialogowe, które będa reagowały na wybór kategorii poza zdefiniowanymi (1) zakresem liczb a (2) elementami dodawanymi do listy.

Maszynka losujaca 7.png