Logia-3 – rok szkolny 1996/1997 – etap - III

Zad. 1. Sieć metra w mieście Y składa się z wielu linii. Każda z nich biegnie od Centrum do pewnej końcowej stacji na peryferiach. Na każdej linii kursuje jeden pociąg, który w chwili 0 wyrusza z Centrum i pokonuje odcinki między kolejnymi stacjami w czasie 1 minuty. Na stacjach końcowych - na peryferiach i w Centrum pociąg stoi jedną minutę. Czas postoju pociągu na pośrednich stacjach jest zaniedbywalny.

Zdefiniuj funkcję dwuparametrową STACJA :n :linia, której wartością jest nazwa stacji na danej linii, na jakiej powinien znajdować się pociąg po upływie :n minut. Zakładamy, że wartością pierwszego parametru może być dowolna liczba całkowita nieujemna, a drugiego niepusta lista kolejnych stacji - zaczynając od Centrum - na dowolnej linii metra. Oto przykładowe wyniki:

Zad. 2. Rysunek przedstawia 13 kwadratów rozrzuconych w sposób losowy w polu ograniczonym kwadratową ramką.

Napisz procedurę bez parametrów, o nazwie KWADRATY, która tworzy na ekranie komputera podobny rysunek złożony z losowej liczby od 5 do 15 kwadratów rozrzuconych w sposób losowy w kwadratowym polu ograniczonym ramką:

Zad. 3. W arabskich budowlach można spotkać mozaiki ułożone z kwadratowych - jasnych i ciemnych kafelków, przedstawiające różne napisy. Mozaika na I rysunku, ułożona z 5 wierszy po 9 ciemnych (widocznych na rysunku) i białych (niewidocznych) kwadratowych kafelków przedstawia słowo Allah, zapisane pismem kufickim.

Następny rysunek przedstawia inny napis kuficki z XIV wieku, pochodzący z meczetu w Aleppo.

Przyjmujemy następujący sposób kodowania mozaikowych napisów, takich jak na przedstawionych rysunkach:

Na przykład:

Napisz procedurę z jednym parametrem MOZAIKA :kod, która mając dany :kod mozaiki - w postaci listy liczb naturalnych - tworzy na ekranie możliwie duży jej rysunek. Możesz założyć, że mozaika o danym kodzie będzie prostokątem mającym nie mniej niż 4 i nie więcej niż 32 wiersze złożone z od 6 do 32 kwadratowych kafelków.