Logia03 – rok szkolny 2002/2003 – etap - III

Zad. 1. Zdefiniuj polecenie RYSDR :dr, którego skutkiem będzie utworzenie na środku ekranu możliwie dużego rysunku danej drogi, na tle jej zakresu z zaznaczonym za pomocą słowa start punktem początkowym.

Zad. 2. Zdefiniuj funkcję DŁMP :kd (długość maksymalnego łańcucha pionków), która mając dany kod dziesiętny układu pionków daje w wyniku długość maksymalnego łańcucha pionków, tzn. nieprzerwanej sekwencji pionków, w tym układzie.

Oto przykładowe wyniki:

Zad. 3. Wolno nam dostawić 1 pionek w dowolnym pustym polu na taśmie. Musimy go wstawić tak, aby utworzyć możliwie najdłuższy łańcuch pionków. Zdefiniuj funkcję PLOMBA :kd, która daje w wyniku kod nowego ustawienia, jakie można utworzyć z danego ustawienia przez dodanie 1 pionka, w taki sposób, aby otrzymać maksymalnie długi łańcuch pionków.

W przypadku jeśli takie nowe ustawienie o maksymalnym łańcuchu pionków można otrzymać na wiele sposobów, wynikiem funkcji powinien być kod ustawienia, reprezentowanego przez najmniejszą liczbę.

Oto przykładowe wyniki:

Zad. 4. Układ pionków na taśmie można też zakodować w postaci listy liczb całkowitych. Możemy przyjąć, że każdy łańcuch pionków na taśmie będzie reprezentowany przez jego długość, a każda sekwencja pustych pól przez liczbę przeciwną do jej długości. W tym systemie kodem układu 11101001111 będzie lista [3 -1 1 -2 4].

Zdefiniuj funkcję KL :kd która dla danego kodu dziesiętnego układu daje w wyniku jego kod listowy.