2003 variant A
- Daný program po načítaní dvoch čísel A a
B vypíše hodnotu P:
var
i,j,A,B,P:integer;
begin
read(A,B);
P:=0;
for i:=A to B do begin
j:=i;
while j>0 do begin
if j mod 10 = 7 then
P:=P+1;
j:=j div 10;
end;
end;
writeln(P);
end;
- Zistite, čo sa vypíše, ak zadáme A=180 a B=250.
- Predpokladajme, že A=1. Zistite, aké musíme zadať
najmenšie B, aby sa vypísalo číslo 20.
- Zistite, čo sa vypíše pre A=1000 a B=10000.
Pozn.
- x mod y znamená zvyšok po delení čísla
x číslom y, napr. 127
mod 10 = 7
- x div y znamená celočíselné delenie
čísla x číslom y, napr. 127
div 10 = 12.
- V jednorozmernom poli čísel sú uložené
informácie o počte obyvateľov pyramídového N-poschodového
domu takto:
- v prvom prvku poľa je jediný byt na najvyššom N-tom poschodí;
- v ďalších dvoch prvkoch sú dva byty na ďalšom - nižšom
poschodí;
- v ďalších troch prvkoch sú tri byty na treťom poschodí
- ak počítame od hora;
- atď. až v posledných N prvkoch sú byty na prvom -
najnižšom poschodí.
Daná časť programu zisťuje, ktoré poschodie je najhustejšie
obývané, t.j. na ktorom poschodí je v priemere najviac
obyvateľov vzhľadom na počet bytov.
V programe však niekto vynechal niektoré
aritmetické a logické výrazy. Opravte program!
cp:=1; max:=a[1];
k:=___________________;
for i:=2 to N do begin
sucet:=0;
for j:=1 to i do begin
sucet:=____________________;
k:=________________;
end;
if _____________________ then begin
max:=________________;
cp:=_________________;
end;
end;
writeln('najhustejšie poschodie = ',_________________);
- Máme danú množinu znakových reťazcov,
ktoré sú zložené z písmen A a B
a všetky sú ukončené nejakou cifrou 1, 2, 3
alebo 4. Takýmto reťazcom budeme hovoriť slová. Slová
v tejto množine vznikli podľa špeciálnych pravidiel:
x = Ay | Bz | 1
y = Ax | Bu | 2
z
= Au | Bx | 3
u = Az | By | 4
Aby sme vytvorili nejaké nové slovo do tejto množiny, vždy
zoberieme štartové písmeno x, nájdeme zodpovedajúce
pravidlo (prvý riadok pravidiel) a vyberieme nejakú z možností
(možnosti sú oddelené znakom "|" ) – písmeno
x nahradíme touto možnosťou. Ak výsledok obsahuje jedno
z písmen x, y, z alebo u, pokračujeme
v nahrádzaní podľa príslušného pravidla. Celý
proces vytvárania nového slova zrejme končí, keď písmeno
nahradíme cifrou. Postup nahrádzania budeme značiť šípkou,
napr. takto
x => Ay => ABu => ABBy
=> ABB2 ... t.j. vznikla postupnosť písmen A
a B a vždy končí nejakou cifrou od 1 do 4.
- Zistite, akou cifrou končia slová ABABABABABABAB a
AAABAAAABAAAAABAAAAAABAAAAAAAB.
- Zistite, koľko existuje rôznych slov dĺžky 6, ktoré
sú zložené z 5 znakov A a B a končia znakom
2.
- Deti robili v škole takéto experimenty: sledovali skoky
lúčneho koníka pomocou vodorovného pravítka
a zapisovali ich do tabuľky skoky. Do jednorozmerného celočíselného
poľa skoky sa zapíše dĺžka skoku (počet centimetrov) tak,
že keď koník skočil vpravo, tak zapíšeme kladné číslo,
ak skočil opačným smerom, zapíšeme záporné číslo.
Napíšte
program, ktorý pre dané N-prvkové pole skoky
vypíše:
- vzdialenosť, v ktorej skončí od svojej štartovej pozície;
- dodatočne sme zistili, že jedno číslo v tabuľke bolo zapísané
zle (treba mu otočiť znamienko). Program by mal zistiť, ktoré
to bolo číslo, ak vieme, že po tejto oprave bola vzdialenosť
od štartu minimálna možná.
Môžete použiť ľubovoľný programovací jazyk, ktorý
ste používali na strednej škole. Predpokladajte, že N-prvkové
celočíselné pole skoky je už na začiatku programu prečítané.
© AB