2014 2015 2016 2017 2018

Augalo gyvenimas

Taškai: 12

Bebrui patinka augalai. Jis sukūrė vaizdinę programavimo kalbą, kurioje augalo augimas vaizduojamas paveikslėliais. Kiekvienas paveikslėlis pradedamas kvadratu a. Vaizdiniai objektai kuriami trimis operacijomis: augti(), daugintis() ir sunykti(). Skliaustuose nurodoma augimo kryptis (rytai, vakarai, šiaurė, pietūs). Pateikiamas penkių operacijų programos pavyzdys:

  a.augti(rytai); a.augti(rytai);
b,c = a.daugintis(); c.augti(šiaurė); b.sunykti();


Stačiakampiam objektui sukurti gali būti taikoma operacija daugintis() – sukuriami du padalinti per vidurį dvigubai trumpesni augalai, negu prieš tai buvęs vienas augalas. Kvadratiniam objektui sukurti operacijos daugintis negalima taikyti. Bebras nori parašyti programą, kuri padėtų kairįjį paveiksliuką transformuoti į dešinįjį: 

Kokios turėtų būti pirmosios keturios operacijos?

A. a.augti(rytai); a.augti(rytai); b,c = a.daugintis(); b.sunykti();

B. a.augti(šiaurė); a.augti(rytai); a.augti(rytai); b,c = a.daugintis();

C. a.augti(rytai); a.augti (rytai); a.augti(šiaurė); a.sunykti();

D. a.augti(rytai); b,c = a.daugintis(); c.augti(šiaurė); c.augti(rytai);

Paaiškinimas

Kompiuterių programos, klasių bibliotekos ir programavimo kalbos dažnai remiasi intuityviomis metaforomis. Tai palengvina pradedančių programuotojų mokymąsi ir padeda greičiau perprasti abstrakčias idėjas. Pavyzdžiui, LOGO grafikos sistema yra grindžiama judančiu vėžliuku, kuris valdomas programiniu būdu. Vėžliukas turi pieštuką, kuris piešia nueitą kelią.
Šiame uždavinyje panaudota augmenijos idėja. Augalai negali vaikščioti iš vienos vietos į kitą, jie neturi kojų ir raumenų. Tačiau augalai gali augti, daugintis, vegetuoti ir sunykti. Su šiomis operacijomis galima įgyvendinti tam tikrą judėjimą, atliekant galimas operacijas, kurias galima pavaizduoti piešiniais.

Atsakymas

Teisingas atsakymas yra A. Štai, kaip veikia programa:
a.augti(rytai);  a.augti(rytai);  b,c = a.daugintis(); d,e = c.daugintis(); b.sunykti(); d.sunykti(); d.augti(šiaurė);