Logia-2 – rok szkolny 1997/1998 – etap - III
Zad. 1. Zdefiniuj funkcję z jednym parametrem DOSTU :listaliczb, której wartością dla danej listy liczb całkowitych jest:
- ta sama lista liczb, jeśli jej suma wynosi sto,
- dana lista liczb całkowitych z dopisaną na końcu jedną liczbą, taką, że suma nowej listy wynosi 100.
Oto przykładowe wyniki:
- DOSTU [35 -15 77] - ma wartość [35 -15 77 3]
- DOSTU [35 -15 80] - ma wartość [35 -15 80]
- DOSTU [35 -15 77 33] - ma wartość [35 -15 77 33 -30]
- DOSTU [] - ma wartość [100]
Zad. 2. Kwadrat o boku 16 można pokryć 85 jednakowymi płytkami w kształcie litery L (utworzonej z trzech jednostkowych kwadratów) i jedną płytką w kształcie kwadratu o boku 1. Poniższe rysunki przedstawiają dwa takie ułożenia różniące się położeniem kwadratowej płytki.
Kwadratowa płytka na rysunku pierwszym ma współrzędne [13,8] - leży w 13 wierszu od góry i w 8 kolumnie od lewej. Kwadratowa płytka na rysunku drugim ma współrzędne [8,6] - leży w 8 wierszu od góry i w 6 kolumnie od lewej. Kwadratowa płytka w lewym górnym rogu ma oczywiście współrzędne [1,1], a płytka w prawym dolnym rogu [16,16].
Napisz procedurę z dwoma parametrami POSADZKA :w :k, która dla danych wartości współrzędnych :w :k z zakresu [1..16], tworzy na środku ekranu możliwie duży rysunek kwadratu pokryty 85 płytkami w kształcie L i jedną płytką kwadratową o danych współrzędnych.
Zad. 3. Kwadratową siatką o rozmiarze n nazywamy wycinek pokratkowanej kartki papieru mający n*n kratek. Pola kwadratowej siatki (tj. kratki) numerujemy kolejno wierszami od lewego górnego pola do prawego dolnego liczbami od 0 do n*n-1. Na przykład kwadratowa siatka o rozmiarze 8 ma 64 pola ponumerowane od 0 do 63, jak na rysunku poniżej:
Jeżeli rozmiar siatki jest parzysty, to można ja podzielić na cztery ćwiartki o identycznych rozmiarach. Cztery ćwiartki siatki numerujemy wg tej samej zasady jak pola:
- ćwiartka w lewym górnym rogu siatki ma numer 0,
- ćwiartka w prawym górnym rogu ma numer 1,
- ćwiartka w lewym dolnym rogu ma numer 2,
- ćwiartka w prawym dolnym rogu ma numer 3.
Zdefiniuj funkcję z dwoma parametrami NUMER_CWIARTKI :rozmiar :numer, której wartością dla danego rozmiaru kwadratowej siatki, będącego parzystą liczbą całkowitą dodatnią, oraz numeru pola jest numer ćwiartki, w której leży to pole. Oto przykładowe wyniki:
- NUMER_CWIARTKI 4 5 - ma wartość 0
- NUMER_CWIARTKI 4 13 - ma wartość 2
Twoja funkcja będzie testowana tylko dla poprawnych danych. Może nie mieć wartości lub mieć wartość przypadkową, jeśli dane nie są poprawne, np. jeśli :rozmiar nie jest liczbą parzystą lub :numer jest za duży.