Napisz bezparametrową procedurę/funkcję serwetka, po wywołaniu której na środku ekranu powstanie rysunek taki, jak poniżej. Wysokość rysunku wynosi co najmniej 400.
Obrazek składa się z wielu bardzo podobnych części: wewnątrz i na zwenątrz znajdują się czerwone trójkąty. Dodatkowo warto zauważyć, że każdy sześciokąt został podzielony na 6 trójkątów, a każdy trójkąt jest w połowie zamalowany na różowo. Zadanie można wykonać rysując sześć takich samych części rysunku.
Na początku ustalane są dwie wartości. Zostały one dobrane tak, aby rysunek spełniał założenia o minimalnej wysokości.
Potem rozpoczyna się pętla właściwa. Zostanie ona wykonana sześć razy. Za każdym razem zostaje ona wykonana ze środka rysunku, więc (5. - 8.) najpierw przesuwamy do środka kolejnego sześciokątu i (9. - 21.) rysujemy sześciokąt z trójkątami zamalowanymi w połowie.
Dalsza część kodu polega na (22. - 30.) dorysowaniu czerwonych elementów na zewnątrz. Tu warto zauważyć, że z pozycji środka sześciokąta każdy kolejny można narysować wykonując ten sam zestaw instrukcji i wystarczy tylko pomiędzy kolejnymi wywołaniami obrócić żółwia. Na koniec pętli (31. - 37.) dorysowany zostaje wewnętrzny czerwony trójkąt i (38. - 43.) żółw wraca do pozycji wyjściowej.
Napisz jednoparametrową procedurę/funkcję ramka, po wywołaniu której na środku ekranu powstanie rysunek, taki jak poniżej. Parametr określa liczbę powtarzających się fragmentów rysunku i może przyjmować wartości od 1 do 5. Wysokość rysunku wynosi 480, a długość boku wewnętrznego białego kwadratu dla parametru 1 wynosi 240.
Rysunek można narysować rekurencyjnie, albo iteracyjnie. Kod zamieszczony niżej przedstawia drugą z tych wersji. Zakłada się, że początku każdej iteracji żółw znajduje się pośrodku rysunku. Dopiero później przesuwa się on w lewy dolny róg rysunku i cztery razy rysuje ten sam fragment przechodząc od rogu do rogu.
Poniższa procedura ramka rysuje obrazek zgodnie z poleceniem.
(2.) Przypisz zmiennej :a początkową wartość (z treści zadania). Następnie (3.) rozpocznij pętle do wykonania :n razy. Dalej (4. - 5.) oblicz zmienne pomocnicze, (6. - 9.) przejdź w lewy dolny róg rysunku i (10. - 24.) narysuj cztery razy ten sam fragment. Na koniec pętli należy pamiętać (29. - 32.) o powrocie na środek ekranu. Zmniejszanie rozmiaru rysunku odbywa się w linijce (4.).
Napisz dwuparametrową procedurę/funkcję parkiet, po wywołaniu której na środku ekranu powstanie rysunek parkietu takiego, jak przedstawiony poniżej. Długość boku najmniejszego widocznego na rysunku kwadratu wynosi 10. Pierwszy parametr określa liczbę żółtych kwadratów w wierszu i może przyjmować wartości od 1 do 8. Drugi parametr określa liczbę żółtych kwadratów w kolumnie i może przyjmować wartości od 1 do 5.
Rysunek składa się z wielu identycznych fragmentów. Każdy z nich można narysować w ten sam sposób: obrysuj kwadrat, następnie w kważdym rogu umieść cztery różowe prostokąt, a środek pomaluj na żółto. W zadaniu należy również pamiętać o tym, że podawana jest ilość żółtych środków, więc iloczyn ich ilości w kolumnie jak i w wierszu oznacza ile takich fragmentów należy narysować.
Na początku (2.) warto przypisać wartość 10 do zmiennej (tutaj :a). Następnie (3. - 6.) żółw przesuwa się w lewy dolny róg.
(7.) Dla każdego wiersza: (8. - 28.) narysuj odpowiednią ilość elementów i (29. - 30.) przejdź wyżej. W celu narysowania fragmentu: (9. - 12.) rysowany jest najpierw duży, żółty kwadrat, a dopiero potem (13. - 25.) dorysowane zostają jego różowe części.
Kuba trenuje bieganie. Trener Kuby określa tempo przebiegania kolejnych odcinków, podając liczbę, której ostatnia cyfra oznacza tempo przebiegnięcia pierwszego odcinka, przedostatnia – drugiego, itd., …, a pierwsza – ostatniego. Jeśli kolejna cyfra, licząc od prawej strony, jest większa od poprzedniej, to Kuba przyspiesza, jeśli mniejsza – zwalnia, a jeśli taka sama – nie zmienia tempa biegu.
Napisz jednoparametrową funkcję bieg, której wynikiem jest liczba określająca ile razy, w ciągu całego biegu, Kuba biegł dwa kolejne odcinki w tym samym tempie. Parametrem funkcji jest liczba naturalna, podana przez trenera, nie zawierająca w swym zapisie zer, z zakresu od 11 do 2147483647.
bieg 653327778 | jest 3 |
---|---|
bieg 1335544544 | jest 4 |
Rozwiązanie tego zadania polega na wybieraniu kolejnych par elementów z podanego tekstu i jeśli (4.) są równe to (5.) należy zwiększyć pewien licznik (tutaj :ile). Na koniec (8.) funkcja powinna zwrócić wartość, która znajduje się w liczniku.