Strona główna » Poradniki » Logomocja » LOGIA » Logia 2015/16 Etap II
 

Logia 2015/16 Etap II

· Etap I · Etap II · Etap I ·
Oryginalna treść zadań jest dostępna pod oficjalnym adresem konkursu LOGIA

Zadanie 1 (sześciokąty)

Rysunek pomocniczy

Rysunek obok przedstawia dziesięć sześciokątów. Każdy z nich jest otoczony sześcioma trójkątami równobocznymi. Długości boków sześciokątów wynoszą 40. Kolejne sześciokąty odpowiadają cyfrom od 0 do 9, jak zostało to zaznaczone na rysunku.

Nina i Franek bawią się liczbami. Franek podaje Ninie dziewięciocyfrowe liczby. Nina analizuje liczby i odpowiednio zamalowuje sześciokąty.

Napisz jednoparametrową procedurę/funkcję sze, której parametrem jest dziewięciocyfrowa liczba. Efektem wywołania procedury jest rysunek, w którym kolorem czerwonym zamalowane są sześciokąty odpowiadające cyfrom, które nie występują w zapisie liczby danej jako parametr, żółtym – odpowiadające cyfrom, które występują jednokrotnie, a niebieskim – odpowiadające cyfrom, które występują więcej razy.

sze 321458973

Rozwiązanie

    Zadanie 2 (gdy powiesz a, powiedz b)

    Słowa Bartka to takie słowa, w których litery a i b występują w parach: każdemu wystąpieniu litery a musi odpowiadać inne wystąpienie litery b w dalszej części słowa i odwrotnie – każde wystąpienie litery b musi być poprzedzone innym wystąpieniem litery a.

    Napisz jednoparametrową funkcję spr, której parametrem jest słowo. Wynikiem jest długość najdłuższego prefiksu będącego słowem Bartka. Prefiks to początkowy fragment słowa lub całe słowo.

    spr "balonjest 0
    spr "abrakadabrajest 3
    spr "arbuzjest 5

    Rozwiązanie

      Zadanie 3 (działki)

      Kwadratowy teren podzielono na n x n identycznych kwadratowych działek. Działki ponumerowano liczbami od 1 do n2 – kolejno rzędami, w każdym rzędzie według tej samej kolejności. Niektóre działki zabudowano.

      Działkami sąsiadującymi z daną działką są działki znajdujące się na tych samych pozycjach w rzędach poprzednim i następnym oraz działki położone na poprzedniej i następnej pozycji w tym samym rzędzie, co dana działka. Tak więc, dla każdej działki, która nie jest położona przy krawędzi terenu, istnieją cztery działki z nią sąsiadujące, zaś dla tych przy krawędzi terenu – dwie lub trzy.

      Napisz dwuparametrową funkcję ms, której pierwszy parametr n określa liczbę rzędów (2 ≤ n ≤ 10), a drugi – niepustą listę numerów działek, które zostały zabudowane. Wynikiem funkcji jest uporządkowana rosnąco lista numerów tych niezabudowanych działek, które sąsiadują z maksymalną liczbą działek zabudowanych.

      ms 4 [9 10 14]jest [13]
      ms 3 [4 5 6]jest [1 2 3 7 8 9]

      Rozwiązanie