Písomná skúška na prijímacích pohovoroch z Informatiky
- Variant A - 1999
-
Nasledujúci program podľa určitého algoritmu spracuje celočíselnú hodnotu
n
a vypíše hodnotu premennej i. Predpokladajme, že na našom počítači
operácie násobenia a delenia desiatimi sú veľmi rýchle a trvajú tisícinu
sekundy. Operácie pričítania a odčítania trvajú 4 tisíciny, 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 a div
je celočíselné delenie - obe tieto operácie považujeme za operácie delenia.)
var i,j,n:longint;
begin
readln(n);
i:=n; j:=1;
while i>9 do begin i:=i div 10; j:=j*10 end;
i:=0;
repeat
if n mod 10<>0 then
begin i:=i+j; n:=n-1 end
else
begin j:=j div 10; n:=n div 10 end
until n=0;
writeln(i);
end.
-
Spočítajte, ako dlho program bežal pre n=123.
-
Zistite, pre akú najmenšiu hodnotu n program bežal 0,503 sekundy.
-
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):
Doplňte chýbajúce cifry tak, aby platila nasledujúca rovnosť:
1?3? 5 * ?0?25
= 24042?? 5.
-
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.
Teraz si pozrime postupnosť slov, ktorá vznikla tak, že každé ďalšie
slovo vzniklo transformovaním podľa nejakého pravidla z predchádzajúceho
slova v postupnosti:
abbbbbbcc => abbbbcbc => abbcbbc => acbbbc => abbbc => abcb =>
ab
-
Stratila sa nám postupnosť prepisovacích pravidiel, zachovali sa len ich
ľavé strany. Doplňte chýbajúce časti prepisovacích pravidiel: abc->?,
ac->?, bbc->??
-
Navrhnite čo najdlhšie vstupné slovo obsahujúce len písmená 'a' , 'b' a
'c', písmeno 'c' sa v ňom vyskytuje práve trikrát, ktoré sa pretransformuje
na písmeno 'a‘, za ktorým nasleduje len 10 písmen 'b'. Ak vo vstupnom slove
za sebou nasleduje niekoľko rovnakých písmen, môžete to skrátene zapísať
umocnením, napr. namiesto abbbbbbbbbb bude ab10.
-
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í pravidelný N-uholník so stranou 100,
pričom nad každou stranou N-uholníka zostrojí rovnostranný trojuholník
otočený smerom do vnútra N-uholníka. N je načítaná vstupná hodnota, ktorá
je väčšia ako 3. Pre N=6 by sa mal nakresliť pravidelný 6-uholník so všetkými
uhlopriečkami prechádzajúcimi stredom 6-uholníka.