Logia12 – rok szkolny 2011/2012 – etap - II
Zad. 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,
- WZOREK 5 "10001011101000101010
Zad. 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.
Zad. 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.