Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 2.185 pregleda

Najnovija ↓

Pomoć oko procedure 15.03.2010. u 23:23 · pre 202 meseca #1
Ćao svima, izvinite što vas opet smaram sa ovim jednostavnim stvarima, ali mi očigledno imamo nikakvog profesora koji uopšte ne zna da objasni ništa.
Hitno je, pa vas molim da pomognete, treba mi najkasnije sutra do podneva objašnjenje.
Dakle imam ovaj zadatak i pitanje je šta se štampa:
Citat:
program test;
var a,b,c,d:integer;
procedure p(var b:integer; c:integer);
var d:integer;
begin
a:=5;
b:=6;
c:=7;
d:=8;
writeln (a,b,c,d)
end;
begin
a:=1;
b:=2;
c:=3;
d:=4;
p(a,b);
writeln (a,b,c,d)
end.

Rešenje je:
Citat:
6,6,7,8
6,2,3,4

Jasno mi je kako se dobije ovaj drugi niz, ali ne i ovaj prvi. U čemu je razlika između te gore formulacije i ove:
Citat:
program test;
var a,b,c,d:integer;
procedure p(var x:integer; y:integer);
var w,z:integer;
begin
w:=5;
x:=6;
y:=7;
z:=8;
writeln (a,b,c,d)
end;
begin
a:=1;
b:=2;
c:=3;
d:=4;
p(a,b);
writeln (a,b,c,d)
end.

U kojoj se dobija:
Citat:
5,6,7,8
6,2,3,4

?
Kako se kreće promena vrednosti koje se uzimaju van procedure u toj prvoj proceduri?
Da li ovako
a:=5;
a:=6;
b:=7?
Potpis
Izvinjavam se svima koje sam razgnevio svojim pisanjima. Trudiću se da se popravim.
Re: Pomoć oko procedure 16.03.2010. u 01:05 · pre 202 meseca #2
> Jasno mi je kako se dobije ovaj drugi niz, ali ne i ovaj prvi.

Zar je teško napisati kod lepo formatiran i razdvojen? Molim te da koristiš code tagove za pisanje koda.

Code:

var
  a, b, c, d: integer;

procedure p(var b: integer; c: integer);
var
  d: integer;
begin
  a := 5;  // menja se globalna promenljiva a
  b := 6;  // menja se parametar b, koji je u stvari globalna promenljiva a
  c := 7;  // menja se lokalna promenljiva c
  d := 8;  // menja se globalna promenljiva d
  writeln(a, b, c, d)
end;

begin
  a := 1;
  b := 2;
  c := 3;
  d := 4;
  p(a, b); // po povratku a je promenjen, b nije
  writeln(a, b, c, d);
end.


> U čemu je razlika između te gore formulacije i ove:

To ostavljam tebi kao vežbu, pusti program kroz debugger i biće ti jasno.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Pomoć oko procedure 16.03.2010. u 10:38 · pre 202 meseca #3
Code:
d := 8;  // menja se globalna promenljiva d

Valjda se menja lokalna promenljiva d? Definisana je u var u okviru procedure.
A pogledaću sad za koji minut to u debuggeru, hvala.
Potpis
Izvinjavam se svima koje sam razgnevio svojim pisanjima. Trudiću se da se popravim.
Re: Pomoć oko procedure 16.03.2010. u 13:21 · pre 202 meseca #4
> Valjda se menja lokalna promenljiva d? Definisana je u var u okviru procedure.

Da tako je, prevideo sam tu deklaraciju.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Pomoć oko procedure 16.03.2010. u 20:00 · pre 202 meseca #5
Hvala na pomoći, ipak nije dala tako neke zeznutije primere na kontrolnom, pa sam lepo uradio.
Potpis
Izvinjavam se svima koje sam razgnevio svojim pisanjima. Trudiću se da se popravim.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme