2014 2015 2016 2017 2018
BEBRO konkurso užduotys 2018

 

Magija

Taškai: 12

Milda sėdi ant kalno ir žavisi trimis kriokliais. Ji gali įmesti į vieną iš krioklių daiktą, kuris toliau bus plukdomas upe. Bet upėse yra tiltų su troliais, kurie magiškai pakeičia praplaukiančius po tiltais daiktus.

Pavyzdžiui, kai morka plaukia po tiltu, troliai pakeičia ją į žuvį.

Justinas sėdi ir laukia Mildos įmesto daikto upės gale.

Jei Justinas nori gauti rąstą, kokį daiktą ir į kurį krioklį turi įmesti Milda?

A) Įmesti žuvį  pirmame krioklyje.

B) Įmesti žuvį  antrame krioklyje.

C) Įmesti morką antrame krioklyje.

D) Įmesti morką trečiame krioklyje.

Paaiškinimas

Galima galvoti apie kompiuterį kaip apie prietaisą, kuris nuskaito įvestį ir parašo išvestį. Kaip kompiuteris „žino“ ką reikia daryti? Atsakymas tas, kad žmonės iš anksto pasako, ką daryti!

Mes rašome programas, kurias kompiuteriai gali atlikti vėl ir vėl. Yra daug skirtingų programavimo kalbų. Vienas programavimo kalbų stilių yra funkcinis programavimas. Šis stilius panašus į patį kompiuterį, nes sukurtas iš daugybės funkcijų, nuskaitančių įvestį ir pateikiančių išvestį.

Tiltai šiame uždavinyje – tai mažos funkcijos, o visa sistema – programa, parašyta naudojant funkcinę programavimo kalbą.

Raktiniai žodžiai: šakojimo algoritmas, programos testavimas.

Atsakymas

Teisingas atsakymas: B.

Pažiūrėkime, kas atsitiks kiekvienu atveju:

A) Žuvis, įmesta pirmame krioklyje, bus pakeista tik paskutiniame tilte, todėl Justinas gaus morką.

B) Žuvis, įmesta antrame krioklyje, bus pakeista į rąstą, bet toliau plaukiant bus pakeista į morką, o po kitu tiltu morka pakeista į rąstą. Todėl Justinas gaus rąstą.

C) Morka, įmesta antrame krioklyje, bus pakeista į žuvį, o vėliau žuvis vėl pakeista į morką. Todėl Justinas gaus morką.

D) Morka, įmesta trečiame krioklyje, bus pakeista į žuvį, o vėliau žuvis vėl pakeista į morką, todėl Justinas gaus morką.

Kitas būdas spręsti šią užduotį – tikrinti galimus variantus nuo upės pabaigos, kur laukia Justinas. Žinoma, kad norint gauti rąstą pabaigoje, daiktas, plaukiantis po priešpaskutiniu tiltu, turi būti morka. Norint gauti morką, reikia po pirmo ir antro krioklių upių susijungimo turėti rąstą. Vienintelis būdas turėti rąstą toje vietoje – į antrą krioklį turi būti įmesta žuvis.