Zadania drugiego etapu Konkursu Informatycznego dla gimnazjalistów LOGIA 11

Zadanie 1 (szlaczek).

W klasie Oli zapanowała moda na kolorowe szlaczki rysowane w zeszytach. Każdy chciał mieć oryginalny szlaczek wymyślony tylko dla siebie. Ola postanowiła przygotować specjalny program do projektowania szlaczków złożonych z kwadratów w dwóch kolorach. Umówiła się z koleżankami, że otrzyma od nich dwie informacje - wysokość szlaczka oraz opis tworzących go kwadratów. Rysunki wydały jej się smutne, więc postanowiła dodać trzeci kolor - czerwony, w ten sposób, że w tych kolumnach rysowanego szlaczka, w których jest najwięcej szarych kwadratów, zastąpiła je kwadratami czerwonymi.

Pomóż Oli projektować szlaczek i napisz procedurę WZOREK :h :s rysującą na środku ekranu szlaczek o szerokości 600 lub wysokości 400, złożony z szarych, czerwonych i białych kwadratów. Parametr :h określa wysokość szlaczka i może przyjmować wartości od 2 do 20. Parametr :s jest słowem opisującym wygląd szlaczka zgodnie z następującymi zasadami:

  • opisuje kolory kolejnych kwadratów, kolumnami, poczynając od lewego dolnego kwadratu,
  • składa się z jedynek i zer, jedynka oznacza kwadrat szary, zaś zero - biały,
  • jego długość jest wielokrotnością :h.

Rysunki poniżej przedstawiają efekt wywołania WZOREK 2 "10111001011011, WZOREK 3 "101010111010101010111 i WZOREK 5 "10001011101000101010

Zadanie 2 (palindromy).

Słowo palindrom pochodzi od greckiego słowa palindromeo - biec z powrotem. Palindrom to takie wyrażenie, które jest identyczne, jeśli czytamy je od lewej do prawej i od prawej do lewej, przykładowo: oko, inni, kajak, inniwinni, kobyłamamałybok.

Napisz funkcję ILEP :s, której wartością jest liczba palindromów zawartych w słowie :s, składającym się jedynie z małych liter.

Wynikiem ILEP "kajak jest 7, bo kajak zawiera palindromy k, a, j, a, k, aja, kajak.
Wynikiem ILEP "mama jest 6, bo mama zawiera palindromy m, a, m, a, mam, ama.

Zadanie 3 (pionek).

Pionek porusza się po prostokątnej planszy, w każdym ruchu przesuwając się o jedno pole w jednym z czterech kierunków: w lewo, w prawo, w górę, w dół. Poszczególne pola planszy zawierają cyfry.

Napisz funkcję PIONEK :w :p :c, która dla planszy składającej się z :w wierszy, opisanej słowem :p, wyliczy minimalną liczbę ruchów, jaką musi wykonać pionek, aby przejść pomiędzy dwoma polami zawierającymi cyfrę :c. Słowo :p zawiera ciąg cyfr opisujących zawartość kolejnych pól planszy, wierszami, poczynając od lewego górnego pola. Zakładamy, że cyfra :c występuje na planszy co najmniej dwa razy, a także poprawną długość słowa :p.

Wynikiem PIONEK 1 "444474744474 7 jest 2, patrz rysunek poniżej.
Wynikiem PIONEK 2 "444474744474 7 jest 1, patrz rysunek poniżej.
Wynikiem PIONEK 3 "532378832375 5 jest 5, patrz rysunek poniżej.