Písomná skúška na prijímacích pohovoroch z Informatiky
- Variant B - 1999
-
Nasledujúci program v nejakých časových intervaloch vydáva zvuk pípnutia
(príkaz pipni), pričom medzi pípnutiami je nejaké pozdržanie v stotinách
sekundy (príkaz pozdrz s parametrom počet stotín sekundy). Vlastné
pípnutie trvá jednu stotinu sekundy. Predpokladáme, že zvyšné príkazy v
programovacom jazyku trvajú nulový čas. (Operácia mod označuje zvyšok
po celočíselnom delení čísla i číslom j.)
var i,j,n:integer;
begin
readln(N);
for i:=1 to N do
for j:=2 to N do
if i mod j = 0 then pipni
else pozdrz(10);
end.
-
Spočítajte počet pípnutí a dĺžku trvania programu pre N=12.
-
Konštanta 10 mala pôvodne inú celočíselnú hodnotu. Zistite túto hodnotu,
ak vieme, že pre N=50 program bežal približne 140 sekúnd (t.j. 140±
1). Zistite aj počet pípnutí.
-
Jeden tanzánijský kmeň ešte stále používa päťkovú číselnú sústavu. Vyriešte
príklad, ktorý sme vybrali z ich učebnice matematiky pre základnú školu
(POZOR! všetky konštanty sú v päťkovej sústave):
Zistite, koľko existuje 4-ciferných čísel (v päťkovej sústave), ktoré
neobsahujú cifru 3 a pritom sú deliteľné číslom 3. Uveďte aspoň 2 takéto
čísla (v päťkovej sústave), ktoré obsahujú cifry 2 aj 4.
-
Postupnosť písmen môžeme transformovať pomocou prepisovacích pravidiel.
Napr. pravidlo AB -> BA označuje, že ak sa v postupnosti za sebou vyskytuje
dvojica písmen AB, tak sa môže nahradiť dvojicou BA. Ak je daných viac
pravidiel, nezáleží na poradí, v akom sa budú aplikovať. Danú postupnosť
písmen budeme transformovať dovtedy, kým sa dá použiť niektoré z daných
pravidiel. Jeden krok transformácie zapisujeme slovo1 => slovo2, kde slovo2
vzniklo aplikovaním niektorého pravidla na slovo1. Symbolom =>* označíme,
že sme pravidlá aplikovali dovtedy, kým sa dalo a z počiatočného slova
sme získali výsledné.
Stratila sa nám postupnosť prepisovacích pravidiel, zachovalo sa len
niekoľko "pretransformovaných" slov a ľavé strany týchto pravidiel. Doplňte
chýbajúce časti prepisovacích pravidiel.
-
aabcab =>* abc; aa->?, ca->?, cb->?
-
aaabc =>* bbbbbbbbc; ab->???, ac->?
-
Predpokladajme, že v programovacom jazyku je zadefinovaná procedúra vektor
s dvoma reálnymi parametrami: uhol a dĺžka. Táto procedúra na obrazovke
nakreslí úsečku zadanej dĺžky z momentálnej pozície pera, ktorá zviera
s y-ovou osou zadaný uhol. Po nakreslení úsečky pero zostane v koncovom
bode úsečky a kreslenie pokračuje ďalej od tohto bodu. Veľkosť uhla zadávame
v stupňoch a meriame v smere otáčania hodinových ručičiek (sever je uhol
0). Predpokladáme, že v programovacom jazyku už nie sú žiadne ďalšie grafické
príkazy. Pero je na začiatku v strede obrazovky.
Napíšte program (v ľubovoľnom programovacom jazyku, ktorý ste používali
na strednej škole), ktorý nakreslí 3 rovnostranné trojuholníky so stranami
100. Každý trojuholník sa práve jedným vrcholom dotýka vrchola druhého
trojuholníka a práve jedným (ale iným) vrcholom sa dotýka vrchola zvyšného
trojuholníka.
Program sa musí skladať z cyklu, ktorý má presne 3 opakovania (napr.
for i:=1 to 3 do) a vlastné kreslenie sa robí len v tele tohoto
cyklu. POZOR, po každej čiare sa môže prejsť maximálne dvakrát.