- Uvedená časť programu kreslí pomocou grafického pera nejaký obrázok na grafickú plochu. Na začiatku je pero umiestnené v strede grafickej plochy. Grafická procedúra linerel(dx,dy) nakreslí čiaru z momentálnej pozície (x,y) do pozície (x+dx,y+dy).
i:=1; j:=N div 2;
while i<=N do
begin
linerel(0,-10*j); linerel(10*i,0); i:=i+1;
linerel(0,10*j); linerel(-10*i,0); i:=i+1; j:=j-1;
end;
- Spočítajte celkovú dĺžku dráhy, ktorú prejde grafické pero pri kreslení daným programom pre N=10 (do dĺžky dráhy započítavame aj opakované prechody po tej istej čiare).
- Spočítajte dĺžku nakreslených čiar pri kreslení daným programom pre N=12 (čiaru, po ktorej prejde grafické pero viackrát, započítavame len raz).
- Máme danú časť programu:
readln(K);
A:=0; B:=1;
while K>0 do
begin
if K mod 3=0 then A:=A+2*B
else if K mod 3=1 then A:=A+B;
B:=B*3; K:=K div 3
end;
writeln(A);
- Zistite, aký bude výstup, ak sme na vstupe zadali K=100.
Zistite, aká bola hodnota vstupu K, ak program vypísal číslo 200.
Pomôcka: Premyslite si, ako by vyzeral výpočet v 3-ovej sústave.
- Nasledujúci program hľadá metódou Eratostenovho sita prvočísla menšie ako N. V tomto programe niekto omylom nahradil niektoré výskyty premennej j identifikátorom i. Opravte program!
const N=1000;
var e:array[1..N] of integer;
i,j:integer;
begin
for i:=1 to N do e[i]:=1;
i:=2; j:=4;
while i*i<=N do
begin
if e[i]=1 then
while i<=N do
begin e[i]:=0; i:=i+i end;
i:=i+1; i:=i+i
end;
for i:=2 to N do
if e[i]=1 then write(i,' ');
writeln
end.
- Napíšte program (Pascal, Basic, C), ktorý vyplní celočíselné dvojrozmerné pole rozmeru NxN postupne celými číslami od 1 do NxN po vedľajších uhlopriečkach zhora dolu, napr. pre N=5 bude mať vyplnené pole tvar:
1 2 4 7 11
3 5 8 12 16
6 9 13 17 20
10 14 18 21 23
15 19 22 24 25
Program nemusí obsahovať výpis tohoto poľa.