mff/15.6.2000/i      

Variant D

Prijímacie pohovory z informatiky

 

 

1.       V n-prvkovom celočíselnom poli a sa nachádzajú nejaké čísla. Je daná časť programu:

  c:=9; p:=7; b:=0;

  for i:=1 to n do

    begin

      c:=c+p; p:=p+2; b:=2*b;

      if a[i]=c then b:=b+1;

    end; 

  writeln(b);

a)       Zistite, čo vypíše tento program, ak sa v poli pre n=7 nachádzajú čísla:

12, 25, 75, 49, 59, 30, 100

b)       Navrhnite čísla c, p a ďalšie štyri hodnoty do 6-prvkového poľa a

?,  ?,  121,  ?,  169,  ?

tak, aby program vypísal číslo 63.

 

2.       V múzeu výpočtovej techniky sme objavili historickú celočíselnú kalkulačku, ktorá až na dve tlačidlá vôbec nefun­gu­je. Jedno tlačidlo má označenie [*2-1] a po jeho zatlačení sa číslo na dipleji vynásobí 2 a odčíta 1. Druhé tlačidlo [*3-1] vynásobí číslo na displeji troma a odčíta 1. Na začiatku je na displeji číslo 2. Postupným stláčaním tlačidiel môžeme na displeji dosiahnuť rôzne výsledky. Zistite, ktoré z čísel od 2 do 100 sa dajú dosiahnuť dvoma rôznymi postupnosťami tlačidiel.

 

3.       V poznámkach jedného programátora sa našiel úryvok programu v zabudnutom programovacom jazyku A--. Podarilo sa nám rozlúštiť tieto pravidlá jazyka - všetky inštrukcie sa skladajú z troch častí:

·         kódu operácie (= priradenie,+,-,*,/ celočíselné delenie,% zvyšok po celočíselnom delení,<> test na nulu);

·         premennej, s ktorou sa vykoná operácia;

·         parametra (číslo alebo premenná), resp. pre reláciu <> je posledným parametrom návestie skoku.

Niektoré inštrukcie navyše začínajú návestím na skok - číslo, za ktorým je dvojbodka (označuje miesto v programe, na ktoré bude možné skočiť inštrukciou testu na nulu).

Napr. + x 7 znamená, že k x sa pričíta 7, <> x 1 znamená, že ak x sa nerovná 0, tak program pokračuje na návestí 1.

Máte daný nasledujúci program v jazyku A--:

= a 0 = b 1 1: = d c % d 3 <> d 2 + a b + a b 2: - d 1 <> d 3 + a b 3: * b 3 / c 3 <> c 1

a)       Zistite, čo bude v premennej a po skončení programu, ak v premennej c bolo 100.

b)       Zistite, pre akú vstupnú hodnotu c bude mať program po skončení v premennej a číslo 200.

 

4.       Predpokladajme, že v programovacom jazyku máme definovanú procedúru daj s troma parametrami r, s a h, ktorá do špeciálnej dvojrozmernej tabuľky celých čísel zapíše do r-tého riadku a s-tého stĺpca jedno číslo h. Riadky aj stĺpce číslujeme od 1. V programovacom jazyku už nemáme ďalšiu procedúru na prečítanie hodnoty zo žiadneho políčka.

Napíšte program, ktorý túto tabuľku zaplní rôznymi číslami len s použitím procedúry daj podľa nasledujúceho návodu (číslovanie políčok "po uhlopriečkach"):

·         v ľavom hornom rohu je 1;

·         pridáme sprava uhlopriečku, t.j. do prvého riadka a druhého stĺpca príde 2 a druhého riadka prvého stĺpca dáme 3;

·         pridávame ďalšie uhlopriečky, až kým neočíslujeme celú tabuľku veľkosti NxN.

Zaplňte prvých N riadkov a N stĺpcov tabuľky číslami od 1 do N*N, pričom nesmiete použiť žiadne pomocné polia.

Môžete použiť ľubovoľný programovací jazyk, ktorý ste používali na strednej škole.

ÓAB