Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Rad sa proceduram,dvostruko ulancanom listom i jos po nesto...

[es] :: Pascal / Delphi / Kylix :: Rad sa proceduram,dvostruko ulancanom listom i jos po nesto...

[ Pregleda: 1114 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zoran_ets
zoran zivanovic
ucenik
Pancevo,Srbija

Član broj: 225667
Poruke: 71
*.dynamic.isp.telekom.rs.



+1 Profil

icon Rad sa proceduram,dvostruko ulancanom listom i jos po nesto...22.06.2011. u 11:55 - pre 156 meseci
zadatak je...
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 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.



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;

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.


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]
Prikačeni fajlovi
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Rad sa proceduram,dvostruko ulancanom listom i jos po nesto...22.06.2011. u 20:50 - pre 156 meseci
> program treba da ispise 11114664334

To i ispisuje. Ne razumem šta je zapravo pitanje.


> 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...

To je isto što i Result := f(a, c) + 3, dakle Result (krajnja vrednost fukcije F) je vrednost koju vraća rekurzivno pozvana f sa nekim drugim parametrima, zavisno od parametara F može biti pozvana i stotinu puta pre nego vrati vrednost.

> 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 ,

Max je definisan kao konstanta sa vrednošću 6, dakle kao da je napisano for i := 1 to 6 do...

> zatim for i := 1 to br do koliko je br...

br je isto konstana, sa vrednošću 10.

> koliko sam razumeo sk:=[] pravi prazan skup...

...inicijalizuje niz setova (skupova) na prazan skup.

i ako moze dodatno objasnjenje do kraja... resenje je 167...

Zatim ide neko dodeljivanje vrednosti elemntima skupa, (i mod max) + 1 je isto što i (ostatak od deljenja i sa 6) + 1, šta se tu tačno radi i koja je svrha teško je reći, ako imaš pogledaj tekst zadatka.
 
Odgovor na temu

zoran_ets
zoran zivanovic
ucenik
Pancevo,Srbija

Član broj: 225667
Poruke: 71
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Rad sa proceduram,dvostruko ulancanom listom i jos po nesto...23.06.2011. u 10:39 - pre 156 meseci
E ovako ovo su skraceni zadaci ,a meni se na ispitu trazi da resim takav zadatak (nemamo kompijuer, na papiru se radi )imam ponudjeno tri odgovora i trebam da zaokruzim jedno od njih ,a nisam vidovit :) tako da ne mogu da zaokruzujem na srecu :) pa moram da resim zadatak... prvi zadatak je sa jednog roka ,dato je resenje ,ali nije dat postupak pronalazenja resenje,a ja sam bio zasto kod tog zadatka... hvala za ostale zadatke....
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Rad sa proceduram,dvostruko ulancanom listom i jos po nesto...

[ Pregleda: 1114 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.