Autorské riešenie
[stiahni]

Ak chceme zistiť, ktoré družstvo získalo koľko bodov, musíme prejsť výsledkami všetkých zápasov. Podľa toho, kto s kým hral a ako zápas skončil, pripíšeme body jednotlivým družstvám. Vhodne využijeme fakt, že súťažné družstvá majú svoje štartovné čísla. S ich pomenovaním teda môžeme pracovať ako s číslami. Aby sme si riešenie čo najviac zjednodušili, je vhodné porozmýšľať o tom, ako a kde si pamätať body družstiev počas spracovania výsledkov jednotlivých zápasov a nakoniec aj celkové bodové skóre.

Vieme, že počet družstiev turnaja je uložený v premennej "početDružstiev. Na začiatku vyhodnotenia turnaja každému družstvu pridelíme 0 bodov. Množstvo bodov každého družstva si uložíme do zoznamu "body.  Prvý prvok predstavuje body prvého družstva, druhý prvok body druhého družstva atď. Vhodne sme teda využili fakt, že družstvá sú určené svojimi štartovnými číslami. Štartovné číslo družstva je zároveň pozíciou v zozname "body, kde sú uložené jeho body.

viem vypisBody

  urobTu "body []
  opakuj :početDružstiev [
   urobTu "body vlozPo 0 :body
  ]

koniec

Teraz postupne spracujeme výsledky všetkých zápasov. Výsledky jednotlivých zápasov sú uložené v premennej "výsledky. Je to zoznam zoznamov. Každý prvok, štvorčíselný zoznam, je teda záznam jedného zápasu. Prvé dve čísla sú štartovné čísla družstiev. Druhé dve čísla sú počty gólov ktoré tieto družstva strelili. Stačí porovnať počty gólov a podľa výsledku pripísať body družstvám.

viem vypisBody

  urobTu "body []
  opakuj :početDružstiev [
   urobTu "body vlozPo 0 :body
  ]

  prePrvky "zapas :výsledky [
    urobTu "d1 prvok 1 :zapas
    urobTu "d2 prvok 2 :zapas
    urobTu "gd1 prvok 3 :zapas
    urobTu "gd2 prvok 4 :zapas
    ak2 :gd1 > :gd2 [
      urobTu "body nahrad :d1 :body 2 + prvok :d1 :body
    ][
      ak2 :gd1 < :gd2 [
        urobTu "body nahrad :d2 :body 2 + prvok :d2 :body
      ][
        urobTu "body nahrad :d1 :body 1 + prvok :d1 :body
        urobTu "body nahrad :d2 :body 1 + prvok :d2 :body
      ]
    ]
  ]

  zo :body

koniec

Štartovné čísla družstiev pre každý zápas sme si uložili do premenných "d1 a "d2. Počty gólov, ktoré družstvá strelili sme si uložili do premenných "gd1 a "gd2. Porovnaním počtu strelených gólov zistíme, ktorému družstvu máme pripísať koľko bodov. Starý počet bodov v zozname "body nahradíme novým, zvýšeným počtom bodov.  Nakoniec počty bodov vypíšeme.

Vaše zaujímavé riešenia a najčastejšie chyby

Niektorí z vás pripisovali za víťazstvo 3 body namiesto 2. Častou chybou bolo, že ste predpokladali, že družstiev je maximálne 9 a vytvorili ste si 9 premenných. Jednak že je to dosť neefektívne (lebo zisťujete body aj pre neexistujúce družstvá) a zároveň to nebude fungovať, ak družstiev bude viac.