Logia09 – rok szkolny 2008/2009 – etap - III
Zad. 1. W tradycyjnej grze w domino występuje 28 kamieni. Każdy kamień składa się z 2 pól zawierających od zera do sześciu oczek. Każdy układ oczek na polach kamieni występuje tylko raz. Poniższe rysunki przedstawiają przykładowe kamienie.
Najczęściej spotykana wersja gry polega na wykładaniu przez graczy kolejnych kamieni w taki sposób, aby stykające się pola na kamieniach miały taką samą liczbę oczek. Alek, przygotowując się do turnieju, postanowił zanotować przebieg rozegranej partii, a następnie go przeanalizować. Dla ułatwienia liczbę oczek na stykających się kamieniach notował raz, pomijając powtórzenia, np. układ [1 0][0 3][3 2] zapisał jako 1032. Napisz procedurę DOMINO :gra, która narysuje przebieg gry według notatek Alka lub wypisze komunikat - Błąd. Parametr :gra jest słowem złożonym z cyfr od 0 do 6. Rysunek musi mieścić się na ekranie, jego szerokość nie może być mniejsza niż 400, kamienie układane są poziomo.
Przykłady:
- efekt wywołania DOMINO "0123456
- wywołanie DOMINO "232 powinno wypisać komunikat Błąd.
Zad. 2. Jasio postanowił zwiedzić archipelag zachodnich Wysp Kanaryjskich. Składa się on z czterech wysp: Tenerife, La Gomera, La Palma oraz El Hierro. Pomiędzy wyspami kursują promy. Odległości pomiędzy poszczególnymi wyspami przedstawia tabelka poniżej.
Tenerife | La Gomera | La Palma | El Hierro | |
Tenerife | x | 28 km | 85 km | 88 km |
La Gomera | 28 km | x | 58 km | 61 km |
La Palma | 85 km | 58 km | x | 68 km |
El Hierro | 88 km | 61 km | 68 km | x |
Jasio zapisał na liście trasę, którą zamierza pokonać. Oblicz długość trasy. Napisz funkcję DT :trasa, której wynikiem jest liczba kilometrów, jaką przepłynie prom, który zawinie po kolei do wysp, których nazwy są na liście :trasa.
Wynikiem
- DT [] - jest 0.
- DT [Tenerife La Gomera El Hierro La Palma Tenerife] - jest 242.
Zad. 3. Ela wymyśliła metodę szyfrowania tekstu przy pomocy klucza złożonego z małych liter alfabetu łacińskiego. Zaczęła od zapisania liter alfabetu według następujących zasad:
- najpierw słowo kluczowe (bez powtarzających się liter),
- potem pozostałe litery alfabetu.
Na przykład dla klucza "choinka kolejność liter będzie następująca: choinkabdefgjlmpqrstuvwxyz, a dla klucza "abrakadabrahokuspokus: abrkdhouspcefgijlmnqtvwxyz.
Ela szyfrowała każdą literę tekstu w następujący sposób - znajdowała pozycję litery w alfabecie łacińskim i odpowiadającą literę tej pozycji w swoim alfabecie. Na przykład zaszyfrowana litera "c (trzecia pozycja w alfabecie) według klucza "abrakadabrahokuspokus, to litera "r (trzecia litera w alfabecie Eli), a zaszyfrowane "d to litera "k według tego klucza.
Grzesio pisze zaszyfrowany list do kolegi używając szyfru Eli. Napisz funkcję SZYFR :klucz :list, która pomoże Grzesiowi zaszyfrować list. Parametr :klucz jest słowem (kluczem szyfrowania) a parametr :list listą słów (listem do zaszyfrowania). Obydwa parametry składają się tylko z małych liter alfabetu łacińskiego. Wynikiem jest słowo będące zaszyfrowanym listem (spacje pomijamy).
Wynikiem
- SZYFR "choinka [ala ma kotka i lwa] - jest "cgcjcfmtfcdgwc.
- SZYFR "abrakadabrahokuspokus [dookola wojtek biega wolno] - jest "kiicieawipqdcbsdoawiegi.
Zad. 4. Ola lubi łamigłówki słowne. Interesują ją szczególnie słowa-anagramy, czyli wyrazy powstałe przez przestawienie liter innego wyrazu. Pomóż Oli pogrupować słowa-anagramy i napisz funkcję ANAGRAMY :wyrazy, której parametrem jest niepusta lista słów zbudowanych z małych liter alfabetu łacińskiego. Wynikiem funkcji jest lista list. Lista podrzędna składa się ze słów-anagramów zbudowanych z tych samych liter. Kolejność list oraz słów na liście jest dowolna.
Wynikiem
- ANAGRAMY [kto tyran kra kot pies tok narty rak] - jest
[[kto kot tok][tyran narty][kra rak][pies]].