SCRATCH -> LISTY

SCRATCH -> LISTY
SPIS TREŚCI

Szkoła podstawowa

  • Przykłady i zadania – str. 1
  • Rozwiązania zadań – str. 2

POZIOM 1 – SZKOŁA PODSTAWOWA

WSTĘP

Programy komputerowe przetwarzają bardzo duże ilości informacji. Pisząc grę wieloosobową dla 15 osób, w której każdy gracz ma swojego bohatera, kiepskim pomysłem byłoby tworzenie 15 zmiennych. Jeśli dodatkowo założymy, że każda postać posiada pięć różnych cech, które ją charakteryzują (siła, wytrzymałość, zręczność, mądrość i szybkość) musielibyśmy zadeklarować aż 75 zmiennych. Nawet gdyby okazało się to możliwe, czy potrafisz sobie wyobrazić chaos w swoim programie? Albo zapytam inaczej, czy byłbyś w stanie po 3 miesiącach wprowadzić drobną modyfikację lub dodać nowy level? Pozytywna odpowiedź na to pytanie jest co najmniej wątpliwa.

Rozwiązaniem problemu zbyt dużej liczby zmiennych jest użycie list. Lista w Scratch umożliwia zapisanie bardzo dużej ilości danych w jednym miejscu. Listę możesz wyobrazić sobie jako jednokolumnową tabelę w której można zapisać zarówno tekst jak i liczby. Zapis i odczyt z listy nie jest skomplikowany. Przejdźmy do przykładów.

PRZYKŁADY

Przykład 1
a) Wybierz z menu ’Zmienne’, kliknij przycisk ’Stwórz listę’ a następnie w oknie ’Nowa lista’ wpisz Lista. Zostaw domyślnie włączoną opcję ’Dla wszystkich duszków’.

b) W menu ’Zmienne’ zaznacz ptaszek obok utworzonej listy.

c) Jeśli wszystko wykonałeś poprawnie efekt będzie następujący.

d) Twój pierwszy program można podzielić na dwie części.

Część 1
Na początku programu dodaj bloczek o nazwie ’usuń wszystko z listy’. Ponieważ w czasie testowania programu będziesz go wielokrotnie uruchamił, bloczek ten po każdym uruchomieniu, usunie liczby z poprzedniego wywołania.
Po bloczku ’usuń wszystko’ dodaj pętlę ’powtórz’. Pętla ta wylosuje 10 liczb całkowitych z przedziału <1,10> i zapisze je na liście.

Cześć 2
Usuń pięć pierwszych liczb z listy.

Wynik pierwszej części programu.

Wynik drugiej części programu.

Przykład 2
Użytkownik wprowadza liczby do momentu wpisania wartości 0. Dodatkowo program wyświetla informację o liczbie elementów zapisanych na liście.

Po uruchomieniu.

Przykład 3
a) Ustaw rozmiar duszka na 50.
b) Plansza po której porusza się duszek to zbiór punktów. Każdy punkt jest opisany za pomocą dwóch liczb x i y. Program przedstawiony na rysunku wyświetla współrzędne x i y punktu w który klikniesz myszką. Sprawdź to.

c) Wykorzystamy teraz wcześniej zdobyte informacje. Gracz klika myszką w 5 miejsc na planszy, program zapamiętuje te miejsca, zapisując współrzędne x i y na liście.

Wiemy już, że każdy punkt to para liczb. Liczby -10 i 104 to pierwszy punkt kliknięcia a 119 i 39 to drugi punkt.

Przykład 4
Rozbuduj przykład nr 3 tak, aby lisek pokonał drogę wyznaczoną przez punkty zapisane na liście (nie zapomnij dodać zmiennych x i y do programu).

Przykład 5
Pewnie nie raz, ktoś z rodziny lub znajomych grał w dużego lotka. Wylosuj 6 liczb z przedziału <1;49> bez powtórzeń.
W czasie testowania programu zmień przedział na <1;7>. Będzie Ci łatwiej zweryfikować czy liczby się nie powtarzają.

Po uruchomieniu

ZADANIA

Zadanie 1
Napisz program zapamiętujący imiona twoich przyjaciół. Wczytywanie kończy się po wpisaniu słowa ’koniec’. Słowo ’koniec’ nie jest dodawane do listy.

Zadanie 2
Zapisz na liście imiona osób, które jadą na wycieczkę szkolną. Następnie program zadaje pytanie 'Kogo usunąć z listy?’. Użytkownik wprowadza imiona do momentu wpisania słowa ’koniec’. Przed usunięciem osoby, program sprawdza czy znajduje się ona na liście. Jeżeli się nie znajduje wyświetla odpowiedni komunikat. Nie możesz usunąć wszystkich osób. Przynajmniej jeden uczeń musi pojechać na wycieczkę.

Zadanie 3
Rozbuduj przykład nr 4 tak, aby duszek po przejściu pełnej trasy, wrócił tą samą drogą do punktu startu.

Zadanie 4
Multi multi. Wylosuj 20 liczb bez powtórzeń z przedziału <1;80>. Ukryj wynik losowania. Poproś użytkownika o wprowadzenie 10 liczb. Program wyświetla listę wylosowanych i zwraca informację ile razy trafiłeś. Dla uproszczenia przyjmij, że gracz jest uczciwy i podaje różne liczby.

Zadanie 5*
Jak zabezpieczyć program z zadana 4 tak, aby użytkownik nie mógł podawać tych samych liczb?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.