|
[ 93 Stefan @ 15.03.2010. 22:23 ] @
| Ć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:
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:
?
Kako se kreće promena vrednosti koje se uzimaju van procedure u toj prvoj proceduri?
Da li ovako
a:=5;
a:=6;
b:=7? |
[ savkic @ 16.03.2010. 00:05 ] @
> 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.
[ 93 Stefan @ 16.03.2010. 09:38 ] @
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.
[ savkic @ 16.03.2010. 12:21 ] @
> Valjda se menja lokalna promenljiva d? Definisana je u var u okviru procedure.
Da tako je, prevideo sam tu deklaraciju.
[ 93 Stefan @ 16.03.2010. 19:00 ] @
Hvala na pomoći, ipak nije dala tako neke zeznutije primere na kontrolnom, pa sam lepo uradio.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|