izmenjeno 1 put, poslednji put savkic 22.06.2011. u 14:40
Izmene poruke
- savkic22.06.2011. u 14:40zapis iz teksta poruke
zadatak je...
1)Šta ispisuje sledeći program na programskom jeziku Pascal?
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...
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.
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?
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.
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.