R1SNCDnUer0E3
Rysunek przedstawia ręce człowieka sprawdzającego listę zadań do wykonania.

Operacje na listach w Scratch: tworzenie i sortowanie listy, minimum i maksimum

Źródło: Videoplasty.com, licencja: CC BY-SA 4.0. Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0.

Czy można zbudować trójkąt - gra matematyczna

W materiale pt. Jeszcze więcej duszków. Klonowanie, stemplowanie i komunikatyP16aveyceJeszcze więcej duszków. Klonowanie, stemplowanie i komunikaty opisano grę, w której zadaniem użytkownika jest odpowiedzenie na pytanie, czy z trzech odcinków o podanych długościach (wylosowanych przez duszka) można zbudować trójkąt. Duszek sprawdzał odpowiedź i wyświetlał odpowiedni komunikat.

W tym materiale zmodyfikujemy tą aplikację.  Duszek postawi przed użytkownikiem trudniejsze zadanie. Odcinków będzie więcej, trzeba odpowiedzieć na pytanie, czy z każdych trzech odcinków można zbudować trójkąt. Twoim zadaniem będzie oprogramować działania duszka, który sprawdza odpowiedź użytkownika. Działanie przykładowej aplikacji możesz obejrzeć na poniższym filmie.

RS4TBPErlNR45
Przedstawienie działania przykładowej aplikacji. Pojawiają się długości odcinków, a obok nich pytanie w dymku Czy z każdych trzech odcinków o podanych długościach można zbudować trójkąt?. Na górze znajdują się przyciski TakNie.
Polecenie 1

Poszukaj w swoich zasobach gry Czy można zbudować trójkątD11hqKrSTCzy można zbudować trójkąt . Kolejne ćwiczenia pozwolą ci na zmodyfikowanie jej tak, aby działała tak, jak na filmie powyżej. Jeżeli nie masz tej aplikacji, wykonaj poniższe ćwiczenia, a na koniec dopisz własne skrypty, korzystając z materiału  Jeszcze więcej duszków. Klonowanie, stemplowanie i komunikatyP16aveyceJeszcze więcej duszków. Klonowanie, stemplowanie i komunikaty

Ćwiczenie 1

Utwórz listę do przechowywania długości odcinków (np. o nazwie Odcinki) oraz zmienną (np. o nazwie n), w której będzie przechowywana liczba losowanych odcinków.

R2cIKTlTTqzjH
Ćwiczenie 1
Uporządkuj etapy tworzenia listy.
Źródło: GroMar Sp. z o.o., licencja: CC BY-SA 3.0.
Ćwiczenie 2

Przygotuj skrypt, uruchamiany po kliknięciu zielonej flagi, losujący najpierw liczbę odcinków, a potem ich długości. Uwzględnij w skrypcie polecenie, które każe duszkowi zadać pytanie, czy z podanych odcinków da się zbudować trójkąt.

R1QTMqJYQzPda
Ćwiczenie 2
Uporządkuj bloki skryptu, który losuje najpierw liczbę odcinków, a potem ich długości.
Źródło: GroMar Sp. z o.o., licencja: CC BY-SA 3.0.

Aby z trzech odcinków dało się zbudować trójkąt, musi być spełniona tzw. nierówność trójkąta, która mówi, że w trójkącie suma długości dwóch krótszych boków jest zawsze większa od długości najdłuższego boku.

Ćwiczenie 3

Określ, jak sprawdzić, czy z każdych trzech odcinków można zbudować trójkąt. Spróbuj znaleźć więcej niż jedną propozycję rozwiązania tego problemu.

Żeby stwierdzić, czy z każdej trójki odcinków można zbudować trójkąt wystarczy znaleźć dwa najkrótsze odcinki oraz najdłuższy, czyli dwie liczby najmniejsze i największą, a następnie sprawdzić dla nich nierówność trójkąta. Do znalezienia tych wartości wykorzystaj trzy pomocnicze zmienne.

Polecenie 2

Utwórz trzy pomocnicze zmienne, w których zapamiętasz poszukiwane liczby.

Ćwiczenie 4

Zastanów się, jakie nadać wartości początkowe zmiennym min1, min2 i max. Przygotuj pomocniczy skrypt nadający im wartości początkowe.

R1X3w8u9ZjMF2
Ćwiczenie 4
Użytkownik ma za zadanie stworzyć blok, który nadaje wartości początkowe zmiennym min1, min2 i max. Wstaw w tekst uzupełnienia kodu.
Źródło: GroMar Sp. z o.o., licencja: CC BY-SA 3.0.
Ćwiczenie 5

Zapisz w postaci listy kroków algorytm znajdowania dwóch wartości najmniejszych i największej.

Do zapisania listy kroków możesz wykorzystać poniższy notatnik.

R1MVrV482jjJJ
Miejsce, w którym można wpisać tekst
Notatnik
Źródło: GroMar Sp. z o.o., licencja: CC BY-SA 3.0.
Ćwiczenie 6

Utwórz nowy blok znajdujący dwie wartości najmniejsze i największą zgodnie z algorytmem z poprzedniego ćwiczenia.

RvOU8sAiHpEYj
Ćwiczenie 6
Użytkownik ma za zadanie utworzyć blok znajdujący dwie wartości najmniejsze i największą w liście o nazwie Odcinki. W skrypcie powinien też wykorzystać zdefiniowany wcześniej blok początkowe wartości. Uporządkuj elementy kodu.
Źródło: GroMar Sp. z o.o., licencja: CC BY-SA 3.0.

Podstawowe trudności związane z tworzeniem bloków do wyszukiwania elementów najmniejszych i największego zostały pokonane. Pozostaje teraz wykorzystać je w pozostałych skryptach.

Polecenie 3

Zmodyfikuj skrypt początkowy tak, aby zawierał bloki utworzone w poprzednich ćwiczeniach. Popraw też, lub napisz na nowo skrypty uruchamiane po otrzymaniu komunikatów taknie, tak aby sprawdzały czy suma dwóch najmniejszych odcinków jest większa od największego. Nie zapomnij też o skryptach naddających komunikaty. Jeśli ich nie masz, stwórz je w ten sam sposób, co w pierwotnej grze.

Sprawdź poprawność działania aplikacji, popraw ewentualne błędy.

Wykorzystaj poniższe pole na zapisanie swoich notatek i przemyśleń.

RjqkjgO9biQil
Dzienniczek, w którym możesz zapisać swoje notatki i przemyślenia.
Dzienniczek, w którym możesz zapisać swoje notatki i przemyślenia.
Źródło: GroMar, licencja: CC BY 3.0.