BEBRO konkurso užduotys 2017

 

Bebrų viešbutis

Taškai: 9

Bebrų viešbutyje yra 5 aukštai. Kiekviename aukšte yra po 8 kambarius. Kambarius valo robotas. Jis vykdo tokias instrukcijas:
•    C simbolis – ieškok aukšte, kuriame esi, nevalyto kambario ir jį išvalyk,
•    U simbolis – lipk vienu aukštu aukštyn,
•    D simbolis – lipk vienu aukštu žemyn,
•    skaičius n, įrašytas prieš skliaustus (), nurodo, kiek kartų kartoti veiksmus, surašytus skliaustuose.
Pavyzdžiui, jei norima, kad robotas išvalytų 2 kambarius to aukšto, kuriame yra, rašoma 2(C). Jei norima, kad robotas paskui dar nuliptų aukštu žemyn, rašoma 2(C) D.

Reikia sutvarkyti visus viešbučio kambarius, todėl robotas pradeda nuo pirmo aukšto. Išvalęs visus viešbučio kambarius, jis privalo sugrįžti į pirmą aukštą. Robotas gali judėti tik penkiuose viešbučio aukštuose.

Kuri komandų seka yra teisinga?
A. 4(8(C) U) 8(C) 4(D)
B. 4(8(C) U) 8(C D)
C. 5(8(C) U) 4(D)
D. 5(C) U 4(D)

Paaiškinimas

Visose programavimo kalbose esama tam tikrų ciklų konstrukcijų. Vieni tipiškiausių yra ciklai for ir while.

Šiame uždavinyje vartojama įsivaizduojama programavimo kalba su palyginti paprasta ciklo konstrukcija. Taip pat čia naudojama komandų seka. Jei ši kalba turėtų šakojimo konstruktą if, tai taptų daug sudėtingesne programavimo kalba.

Raktiniai žodžiai: ciklas, komandų seka, programavimo kalba.

Atsakymas

Teisingas atsakymas yra A – 4(8(C) U) 8(C) 4(D).

Komandų seka 8(C) U nurodo, kad reikia išvalyti visus 8 aukšto kambarius ir lipti į kitą aukštą.

Tai reikia kartoti 4 kartus, nes po ketvirto karto robotas užlipa į penktą aukštą 4(8(C) U).

Jei vietoj skaičiaus 4 būtų parašyta 5, tai, išvalęs penktą aukštą, robotas liptų ant stogo. Kadangi penktame aukšte taip pat yra 8 kambariai, tai komandos rašomos taip: 8(C). Išvalęs visus kambarius, robotas privalo sugrįžti į pirmą aukštą, todėl rašoma 4(D).

B – neteisingas, nes robotas išvalytų kelis kambarius 2 kartus ir nusileistų į viešbučio rūsį.

C – neteisingas, nes robotas užliptų ant stogo.

D – neteisingas, nes robotas išvalytų tik 5 pirmo aukšto kambarius, užliptų į antrą aukštą ir nusileistų į rūsį.

 

 
Informacija atnaujinta 2017-11-13 16:52:39