Zadania do wykonania
w LOGOMOCJI

Zadanie 1

Napisz procedurę KWADRATY :bok, która (wywołując odpowiednie procedury pomocnicze) utworzy na środku ekranu, możliwie duży rysunek taki, jak na rysunku 1 lub 2. Parametr :bok określa długość boku największego kwadratu.


Rysunek 1.
Kwadraty w odcieniach błękitu


Rysunek 2.
Kwadraty w losowych kolorach

 

Zadanie 2

Napisz procedurę JEŻE, która (wywołując odpowiednie procedury pomocnicze) utworzy na środku ekranu, możliwie duży rysunek przedstawiony poniżej. Kolory rysunku mogą być dowolne.

 

Zadanie 3

Napisz procedurę OKIENKO, po wywołaniu której, na środku ekranu, pojawi się możliwie duży rysunek zachowujący proporcje takie, jak na rysunku 2.



Rysunek 1.
Efekt wywołania procedury OKIENKO


Rysunek 2.
Rysunek pomocniczy

 

Zadanie 4

Napisz procedurę KWADWKWAD :ile, po wywołaniu której, zostaną narysowane kolejno wpisane i obrócone kwadraty z zamalowanymi wnętrzami (losowo wybranymi kolorami). Wartość parametru :ile może zmieniać się w zakresie od 1 do 10. Rysunek powinien być możliwie duży i znajdować się na środku ekranu.
Oto przykładowe wyniki działania procedury dla parametru
:ile równego 4 i 3.


Rysunek 1.
KWADRATY 4


Rysunek 2.
KWADRATY 3

 

Zadanie 5

Napisz procedurę SCHODY :n po wywołaniu której zostaną narysowane schody, takie jak na rysunkach poniżej. Schody składają się z kwadratów, zamalowanych losowo wybranymi kolorami. Parametr :n oznacza liczbę kwadratów, tworzących schody w jednym kierunku. Wartość parametru :n może przyjmować wartość z zakresu od 2 do 10. Rysunek powinien być możliwie duży.

 


Rysunek 1.
Przykładowy wynik działania
procedury
SCHODY dla parametru :n = 3


Rysunek 2.
Przykładowy wynik działania
procedury
SCHODY dla parametru :n = 8

 

Zadanie 6

Napisz procedury JEDEN :a, POSADZKA, POSADZKA1 :w :k, które rysują na środku ekranu rysunki zamieszczone poniżej.


Rysunek 1.
Efekt wywołania procedury JEDEN :a (kolor figury jest dowolny)


Rysunek 2.
Rysunek pomocniczy - do odczytania proporcji


Rysunek 3.
Efekt wywołania procedury POSADZKA


Rysunek 4
Efekt wywołania procedury POSADZKA1 :w :k. Parametr :w oznacza liczbę wierszy (na rysunku :w = 2), parametr :k oznacza liczbę kolumn (na rysunku :k = 4) posadzki, składającej się z elementów takich jak na rysunku 1. Parametry :w i :k mogą przyjmować wartości od 1 do 10.

 

Zadanie 7

Napisz procedurę JedenWDrugim :a :ile, która po wywołaniu rysuje elementy takie, jak na rysunku 1, jeden w drugim. Parametr :a oznacza zaznaczoną na rysunku 1 długość największego elementu. Liczba takich elementów równa jest parametrowi :ile. Parametr :ile może przyjmować wartości od 1 do 8.


Rysunek 1.
Pojedynczy element rysunku


Rysunek 2.
Pojedynczy element - rysunek pomocniczy


Rysunek 3.
Przykład wywołania procedury
JedenWDrugim 38 2


Rysunek 4.
Przykład wywołania procedury
JedenWDrugim 38 4

 

Zadanie 8

Napisz procedurę o nazwie KĄTOWNIKI :ile, po wywołaniu której na ekranie pojawi się stosunkowo duży kwadrat, z liczbą kątowników równoramiennych (na rysunku 1 znajdują się 4 takie kątowniki, na rusunku 2 jest ich 8) w każdej ćwiartce równą parametrowi :ile. Wartość parametru :ile jest z zakresu od 1 do 10. Kwadrat, który stanowi tło jest zamalowany losowo wybranym kolorem, kątowniki mają tło białe. Poniżej zostały zamieszczone przykładowe wyniki wywołania tej procedury dla trzech różnych parametrów:


Rysunek 1.
KĄTOWNIKI 1


Rysunek 2.
KĄTOWNIKI 2


Rysunek 3.
KĄTOWNIKI 4

 

Zadanie 9

Napisz procedurę WIATRAK :ile, w której parametr :ile, oznaczający liczbę ramion wiatraka, może przyjmować wartości od 3 do 100. Każde ramię wiatraka jest rombem. Po wywołaniu tej procedury, powinien się pojawić na środku ekranu stosunkowo duży rysunek wiatraka. Oto przykładowe rysunki, jakie powstały na ekranie dla różnych parametrów:


Rysunek 1.
 WIATRAK 3


Rysunek 2.
WIATRAK 4


Rysunek 3.
WIATRAK 15

 

Zadanie 10

Napisz procedurę o nazwie PASEK, po wywołaniu której, na środku ekranu pojawi się możliwie duży rysunek prostokątnego paska, z zamalowanym wnętrzem. W pasku tym mają być zawarte 4 strzałki zamalowane losowo wybranymi kolorami.

Rysunek 1.
Strzałka będąca elementem paska na rysunku 3

Rysunek 2.
Wymiary strzałki

Rysunek 3.
Przykładowy wynik wywołania procedury PASEK

 

Zadanie 11

Napisz procedurę o nazwie KWADR :bok, po wywołaniu której, na środku ekranu zostanie narysowany, możliwie duży kwadrat. W środku tego kwadratu mają znaleźć się małe kwadraty (z wnętrzami zamalowanymi losowo wybranymi kolorami), jak na rysunku poniżej. Parametr :bok oznacza długość boku małego kwadratu.

 

Zadanie 12

Napisz procedurę BAŁWANEK, po wywołaniu której, na środku ekranu, zostanie narysowany bałwanek taki, jak na rysunku poniżej.

 

Zadanie 13*

Napisz procedurę KWADRA :bok :ile. Parametr :bok oznacza bok największego kwadratu. Parametr :ile oznacza liczbę kwadratów na rysunku. Kwadraty są rysowane według następującej zasady: pierwszy kwadrat ma bok o wielkości, podanej jako parametr i wygląda, jak na rysunku 1. Każdy następny kwadrat jest wpisany w kwadrat poprzedni i obrócony o kąt 30o w prawo.


Rysunek 1.
KWADRA 1


Rysunek 2.
KWADRA 2


Rysunek 3.
KWADRA 3


Rysunek 4.
KWADRA 6

 

Zadanie 14*

Napisz procedurę o nazwie PARKIET, po wywołaniu której na środku ekranu pojawi się rysunek parkietu, składającego się z ośmiokątów foremnych, taki, jak na rysunku poniżej.

 

Zadanie 15*

Napisz procedurę o nazwie POSADZKA, po wywołaniu której, na środku ekranu, pojawi się możliwie duży rysunek posadzki, taki, jak na rysunku poniżej:

 

Zadanie 16

Napisz funkcję MAX :liczba, której wynikiem będzie największa cyfra liczby podanej jako parametr. Zakładamy, że parametrem jest liczba naturalna.


Przykładowo:
MAX 108862 da w wyniku cyfrę 8,
MAX 1 da w wyniku cyfrę 1.

 

Zadanie 17

Napisz funkcję SUMCYF :liczba, której wynikiem będzie suma cyfr liczby podanej jako parametr. Zakładamy, że parametrem jest liczba naturalna.

Przykładowo:
SUMCYF 1821 da w wyniku liczbę 12,
SUMCYF 1 da w wyniku liczbę 1.

 

Zadanie 18

Napisz funkcję MD :wyraz, której wynikiem będzie słowo, podane jako parametr, zakodowane według następującej reguły: litera mała zostanie zastąpiona wielką, a wielka małą. Zakładamy, że w słowie podanym jako parametr występują tylko małe i wielkie litery alfabetu łacińskiego (bez polskich liter).

Przykładowo:
MD "ala da w wyniku ALA
MD "Kotek da w wyniku kOTEK
MD "aAbBcC da w wyniku AaBbCc

 

Zadanie 19

Napisz procedurę 10na2 :liczba, która liczbę całkowitą w systemie dziesiętnym, zamieni na liczbę w systemie dwójkowym i narysuje ją na ekranie według następujących zasad: każdej cyfrze 0 odpowiada kwadrat niezamalowany, a cyfrze 1 kwadrat zamalowany.

Przykładowo:
10na2 123 powinno narysować rysunek taki jak obok, ponieważ liczba (123)10 = (1111011)2

 

Zadanie 20*

Napisz funkcję BezSam :lista, której parametrem jest lista słów składających się z małych liter alfabetu łacińskiego (bez polskich znaków). Wynikiem funkcji powinna być lista, zawierająca te same słowa, pozbawione wszystkich samogłosek.

Przykładowo:
BezSam [ala ma kota] da w wyniku [l m kt]
BezSam [aa ee oo] da w wyniku []