Autorské riešenie
[stiahni]

Riešenie tejto úlohy je veľmi jednoduché. Pracujeme prevažne s textovými poliami.

Ak chceme vypočítať dĺžku života osobnosti, tak od jej dátumu úmrtia (v poli smrt1 resp. smrt2) odpočítame dátum narodenia (v poli nar1 resp. nar2). Získané hodnoty zapíšeme do poľa zivot1 resp. zivot2.

zivot1'nechhodnota smrt1'hodnota-nar1'hodnota
zivot2'nechhodnota smrt2'hodnota-nar2'hodnota

Ak chceme zistiť, ktorá osobnosť je staršia, tak nám stačí porovnať hodnoty, ktoré sme pred chvíľou zapísali do polí zivot1 a zivot2. Do textového poľa dlhyZivot vpíšeme meno osobnosti, ktoré získame z textových polí meno1 alebo meno2. V prípade, že sú osobnosti rovnako staré, tak do poľa vypíšeme text sú_rovnako_starí.

ak2 zivot1'hodnota>zivot2'hodnota
      [dlhyZivot'nechhodnota meno1'hodnota]
      [ak2 zivot1'hodnota=zivot2'hodnota
            [dlhyZivot'nechhodnota "sú_rovnako_starí]
            [dlhyZivot'nechhodnota meno2'hodnota]
      ]

Nájzložitejšou časťou zadania je zistenie, či sa osobnosti mohli stretnúť, čo znamená, či žili aspoň 1 rok spoločne. Jednoduchšie je však zistiť, kedy sa osobnosti nemohli stretnúť. To nastane vtedy, ak smrt jedného je skôr ako narodenie druhého alebo naopak. Preto príkaz na zistenie spolužitia v jednej dobe vyzerá nasledovne:

ak2 alebo smrt1'hodnota < nar2'hodnota smrt2'hodnota < nar1'hodnota
     [spolu'nechhodnota "nie]
     [spolu'nechhodnota "ano]

Procedúra pocitaj bude teda vyzerať nasledovne:

viem pocitaj
;výpočet dĺžky životov a ich výpis do texových polí zivot1 a zivot2
     zivot1'nechhodnota smrt1'hodnota-nar1'hodnota
     zivot2'nechhodnota smrt2'hodnota-nar2'hodnota

;výpis do textového poľa dlhyZivot, ktorá z osobností žila dlhšie
ak2 zivot1'hodnota>zivot2'hodnota
      [dlhyZivot'nechhodnota meno1'hodnota]
      [ak2 zivot1'hodnota=zivot2'hodnota
            [dlhyZivot'nechhodnota "sú_rovnako_starí]
            [dlhyZivot'nechhodnota meno2'hodnota]
      ]

;výpis do textového poľa spolu, či sa osobnosti mohli stretnúť
     ak2 alebo smrt1'hodnota < nar2'hodnota smrt2'hodnota < nar1'hodnota
          [spolu'nechhodnota "nie]
          [spolu'nechhodnota "ano]
koniec

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

Väčšina z vašich riešení bola veľmi pekná, ale zbytočne definujete nové premenné, z ktorými potom pracujete. V tejto úlohe ste nemuseli definovať žiadnu novú premennú, stačilo pracovať s hodnotami v textových poliach. :)