1)Šta ispisuje sledeći program na programskom jeziku Pascal?
Code:
program Zad(output);
var
a, b: integer;
procedure p(var a: integer; c: integer);
begin
a := a + 1;
b := b * 2;
if b < 11 then
p(a, c);
b := b div 2;
c := c - 1;
write(output, a, b, c);
a := a + 1
end;
begin
a := 5;
b := 1;
p(b, a)
end.
program Zad(output);
var
a, b: integer;
procedure p(var a: integer; c: integer);
begin
a := a + 1;
b := b * 2;
if b < 11 then
p(a, c);
b := b div 2;
c := c - 1;
write(output, a, b, c);
a := a + 1
end;
begin
a := 5;
b := 1;
p(b, a)
end.
program treba da ispise 11114664334
ja sam ga ovako resavao a i b dobiju vrednosti 5 i 1,pozovem proceduru ,e sada a sam shvatio kao pokazivac,znaci vrednost na sta pokazuje a u glavnom programu a to je b se uveca za 1,pa je b sada u glavnom programu 2 i onda b=b*2 pa je b= 4pa pozovem proceduru ali sada mi a pokazuje na a u glavnom programu i tako vrtim... ce se ne menja sve dok ne ispadnem iz if petlje...e da i kad ispadnem zi petlje gde ce se program nastaviti da bi nastavio dalje ispisivanje...
Code:
program rekurzija(output);
var
a, b, c: integer;
function f(var c, d: integer): integer;
begin
if c > 1 then
begin
a := a - 3;
c := c - 4;
f := f(a, c) + 3
end
else if d < 5 then
begin
d := d - 3;
c := c + 8;
f := f(d, a) + 2
end
else
f := 1
end;
begin
a := 4;
b := 7;
c := 9;
writeln(output, f(b, c))
end.
program rekurzija(output);
var
a, b, c: integer;
function f(var c, d: integer): integer;
begin
if c > 1 then
begin
a := a - 3;
c := c - 4;
f := f(a, c) + 3
end
else if d < 5 then
begin
d := d - 3;
c := c + 8;
f := f(d, a) + 2
end
else
f := 1
end;
begin
a := 4;
b := 7;
c := 9;
writeln(output, f(b, c))
end.
e sada oved mi nije jasno f := f(a, c) + 3 znam da f(a,c) poziva funkciju ali ne znam sta ce tu biti povratna vrednost funkcije...
3)Koja od sledeće tri procedure na ispravan način u dvostruko ulančanu listu, iza elementa na koji
pokazuje tek, ubacuje novi element na koji ukazuje pokazivač n? Pretpostaviti da tek nije nil i da
element na koji ukazuje pokazivač n već postoji.
Code:
a)
procedure u1(tek, n: ^elem);
begin
n^.sl := tek^.sl;
n^.pr := tek;
if tek^.sl <> nil then
tek^.sl^.pr := n;
n^.pr^.sl := n;
end;
b)
procedure u2(tek, n: ^elem);
begin
n^.sl := tek^.sl;
if tek^.sl <> nil then
tek^.sl^.pr := n;
n^.pr := tek^.sl^.pr;
tek^.sl := n;
end;
c)
procedure u3(tek, n: ^elem);
begin
tek^.sl := n;
n^.sl := tek^.sl;
n^.pr := tek;
if tek^.sl <> nil then
tek^.sl^.pr := n;
end;
a)
procedure u1(tek, n: ^elem);
begin
n^.sl := tek^.sl;
n^.pr := tek;
if tek^.sl <> nil then
tek^.sl^.pr := n;
n^.pr^.sl := n;
end;
b)
procedure u2(tek, n: ^elem);
begin
n^.sl := tek^.sl;
if tek^.sl <> nil then
tek^.sl^.pr := n;
n^.pr := tek^.sl^.pr;
tek^.sl := n;
end;
c)
procedure u3(tek, n: ^elem);
begin
tek^.sl := n;
n^.sl := tek^.sl;
n^.pr := tek;
if tek^.sl <> nil then
tek^.sl^.pr := n;
end;
e sada odgovor je pod a,ja sam to crtao ali nije mi jasno bas najbolje...(sliku 1)
4)Šta ispisuje sledeći program na programskom jeziku Pascal?
Code:
program presek(output);
const
max = 6;
br = 10;
type
skup = set of 1..255;
skupovi = array[1..max] of skup;
var
sk: skupovi;
i: integer;
begin
for i := 1 to max do
sk[i] := [];
for i := 1 to br do
sk[i mod max + 1] := sk[i mod max + 1] + [i];
for i := 1 to max do
sk[i] := sk[i] + sk[i mod max + 1];
for i := 1 to br do
if i in sk[1] then
write(output, i);
end.
program presek(output);
const
max = 6;
br = 10;
type
skup = set of 1..255;
skupovi = array[1..max] of skup;
var
sk: skupovi;
i: integer;
begin
for i := 1 to max do
sk[i] := [];
for i := 1 to br do
sk[i mod max + 1] := sk[i mod max + 1] + [i];
for i := 1 to max do
sk[i] := sk[i] + sk[i mod max + 1];
for i := 1 to br do
if i in sk[1] then
write(output, i);
end.
kod ovog zadatka mi nije jasno sta petlja for i:=1 to max,tacnije kolko je to max,da li je to ustvari 255 ili vec neki drugi broj ,zatim for i := 1 to br do koliko je br... koliko sam razumeo sk:=[] pravi prazan skup...i ako moze dodatno objasnjenje do kraja... resenje je 167...

edit (savkic) Salji formatiran kod, mnogo je lakse videti o cemu se radi u kodu i kod pisi u okviru code tagova.
[Ovu poruku je menjao savkic dana 22.06.2011. u 14:40 GMT+1]