ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Globalne i lokalne varijable

Sovi?-Padovan Adriana
Deklariranje varijabli
? Deklariranje varijabli u Pascalu mo?emo
izvr?iti na 3 mjesta:
- izvan svih potprograma
- unutar potprogram ili bloka
- u definiciji potprograma

20.1.2014

GLOBALNE I LOKALNE VARIJABLE 2
Globalne varijable
? Deklarirane u glavnom dijelu programa
? Vrijednosti poznate u svim dijelovima
programa
? Mo?emo ih koristiti u svakom dijelu
programa

20.1.2014

GLOBALNE I LOKALNE VARIJABLE 3
Lokalne varijable
? Deklarirane unutar nekog potprograma
? Mogu se koristiti samo unutar tog
potprograma

20.1.2014

GLOBALNE I LOKALNE VARIJABLE 4
Za?to lokalne varijable?
? Olak?avanje postupka ispravljanja
pogre?aka
? ?tedi se memorijski prostor
? Te?iti ?to ve?em broju lokalnih a ?to
manjem broju globalni varijabli

20.1.2014

GLOBALNE I LOKALNE VARIJABLE 5
Po?etne vrijednosti
? Globalne varijable imaju po?etnu
vrijednost jednaku 0
? Po?etna vrijednost lokalne varijable je
neodre?ena i ovisi o sadr?aju koji se
koristio u memoriji prije izvo?enja
programa

20.1.2014

GLOBALNE I LOKALNE VARIJABLE 6
Napomene
? Potprogrami mogu promijeniti vrijednost
globalnih varijabli
? Promjene globalnih varijabli dobro raditi u
glavnom programu, ako to procedura ili
funkcija moraju raditi dobro je da to bude
preko formalnih parametara
? Imena lokalnih i globalnih varijabli u
jednom kodu mogu biti ista
20.1.2014

GLOBALNE I LOKALNE VARIJABLE 7
Primjer 1
? Napisati kod koji ?e imati glavni dio programa i
proceduru ¡°Znak¡±
? U glavnom programu potrebno je deklarirati tri
varijable (a, b i c) tipa char i inicirati njihove
vrijednosti dok ?emo u proceduri deklarirati
varijable b i d te inicijalizirati vrijednost svih
varijabli
? Potrebno je ispisati vrijednost varijabli u glavnom
programu (prije i poslije poziva procedure) te u
samoj proceduri
20.1.2014

GLOBALNE I LOKALNE VARIJABLE 8
Rje?enje primjera 1
program znakovi;
var a, b, c: char;
procedure Znak;
var b, d: char;
begin
a := '+';
b := '*';
c := '+';
d := '*';
writeln('Ispis u proceduri');
writeln('a:',a,' b:',b,' c:',c,' d:',d);
writeln;
end;

20.1.2014

GLOBALNE I LOKALNE VARIJABLE 9
Rje?enje primjera 1 (2)
begin
a := '*';
b := '+';
c := '*';
writeln('Ispis u glavnom prije poziva procedure');
writeln('a:',a,' b:',b, ' c: ',c);
writeln;
Znak;
writeln('Ispis u glavnom nakon poziva procedure');
writeln('a:',a,' b:',b, ' c:',c);
writeln;
end.
20.1.2014

GLOBALNE I LOKALNE VARIJABLE 10
Zadatak 1
? Napisati program koji tri broja x, y i z
sortira prema rastu?em poretku od ve?eg
prema manjem. Vrijednosti ova tri broja se
unose u glavnom dijelu programa
? Program koristiti proceduru naziva ¡°sort¡±
kojom se razmjenjuju vrijednosti dvije
varijable

20.1.2014

GLOBALNE I LOKALNE VARIJABLE 11
Zadatak 1- rje?enje
program poredak;
var
x, y, z : integer;
procedure sort(var a, b : integer);
var tmp : integer;
begin
tmp:=a;
a:=b;
b:=tmp
end;
begin
write('Unesi x: ');
readln(x);
write('Unesi y: ');
readln(y);
write('Unesi z: ');
readln(z);
if x>y then sort(x,y);
if x>z then sort(x,z);
if y>z then sort(y,z);
writeln('Sortirano: ', x,' ', y,' ' ,z);
end.

20.1.2014

GLOBALNE I LOKALNE VARIJABLE 12
Primjer 2
? Potrebno je napisati program sa 2 procedure A i B,
B je definirana i poziva se unutar A
? Po dijelovima programa definirati i inicirati varijable na ovaj
na?in: glavni program: x = 1
procedura A: x i y = 0
procedura B: x, y i z =1
? Ispisati vrijednost varijabli: unutar glavnog programa nakon
poziva procedure A, unutar procedura A i B te u proceduri
A nakon poziva procedure B

20.1.2014

GLOBALNE I LOKALNE VARIJABLE 13
Primjer 2 - rje?enje
program d;
var x: integer;
procedure A;
var y: integer;
procedure B;
var z: integer;
begin
x := 1;
y := 1;
z := x + y;
writeln('U proceduri B x=' , x , ' y=',y, ' z=', z);
writeln;
end;
20.1.2014

GLOBALNE I LOKALNE VARIJABLE 14
Primjer 2 rje?enje (2)
begin
x := 0;
y := 0;
writeln('U proceduri A x=' , x , ' y=', y);
writeln;
B;
writeln('U proceduri A nakon ?to je pozvana procedura B x=' , x , ' y=',
y);
writeln;
end;
begin
x := 10;
A;
writeln('U glavnom programu nakon poziva procedure A x=', x);
writeln;
end
20.1.2014

GLOBALNE I LOKALNE VARIJABLE 15
Zadatak 2
? Napisati program kojim se u proceduri
¡°zbroj¡± tra?i suma brojeva djeljivih sa 7 u
skupu brojeva od 100 do 200
? Rezultat ispisati u glavnom dijelu
programu

20.1.2014

GLOBALNE I LOKALNE VARIJABLE 16
Zadatak 2 - rje?enje
program prog;
var s : integer;
procedure zbroj(var s1: integer);
var i, ss1 : integer;
begin
ss1 := 0;
for i := 100 to 200 do
if (i mod 7 = 0) then ss1 := ss1+i;
s1 :=ss1;
end;
begin
zbroj(s);
writeln('Trazeni zbroj je: ',s);
end.
20.1.2014

GLOBALNE I LOKALNE VARIJABLE 17
Primjer 3
? Napisati kod koji ?e u glavnom dijelu
programa tra?iti unos 2 broja
? U proceduri ¡°minmax¡± se gleda koji od ta
dva broja je ve?i a koji manji te ispisujemo
minimum i maksimum

20.1.2014

GLOBALNE I LOKALNE VARIJABLE 18
Primjer 3 - rje?enje
program mim;
var a, b: integer;
procedure minmax;
var min, max: integer;
begin
if a>b then
begin
min := b;
max := a;
writeln('Minimum je:', min);
writeln('Maksimum je:', max);
end;
if a<b then
begin
min := a;
max := b;
20.1.2014

GLOBALNE I LOKALNE VARIJABLE 19
Primjer 3 ¨C rje?enje (2)
writeln('Minimum je:', min);
writeln('Maksimum je:', max);
end;
end;
begin
writeln('Unesite broj a:');
readln(a);
writeln('Unesite broj b:');
readln(b);
minmax;
end.
20.1.2014

GLOBALNE I LOKALNE VARIJABLE 20
Zadatak 3
? Potrebno je napisati program koji ?e u
glavnom dijelu unositi broj sekundi.
? U proceduri ¡°pretvorba¡± se unesen broj
pretvara u sate, minute i sekunde i to se
ispisuje

20.1.2014

GLOBALNE I LOKALNE VARIJABLE 21
Zadatak 3 - rje?enje
program prog;
var n: integer;
procedure pretvorba;
var sat, sek, min: integer;
begin
sat := n div 3600;
sek := n mod 3600;
min := sek div 60;
sek := sek mod 60;
writeln('Pretvoreno= ',sat, ' h ',min,' min i ',sek,' sek');
end;
begin
writeln('Unesite broj sekundi:');
readln(n);
pretvorba;
end.
20.1.2014

GLOBALNE I LOKALNE VARIJABLE 22
Zadaci za zada?u
? Napisati program u kojem se u glavnom
dijelu programa unosi 2 broja, u proceduri
¡°suma¡± se ta dva broja zbrajaju i ispisuje
se zbroj
? Napisati program kojim se u proceduri
¡°zbroj¡± tra?i suma brojeva djeljivih sa 2 i 5
u skupu brojeva od 1 do 100, te rezultat
prikazati u glavnom programu

20.1.2014

GLOBALNE I LOKALNE VARIJABLE 23

More Related Content

Similar to Globalne i lokalne varijable (7)

Pascal abc
Pascal abcPascal abc
Pascal abc
nihadc
?
3. for petlja
3. for petlja3. for petlja
3. for petlja
Brankica Joki?
?
C++ radna skripta
C++ radna skriptaC++ radna skripta
C++ radna skripta
jelicastevanovic
?
2. razgranate ii dio
2. razgranate ii dio2. razgranate ii dio
2. razgranate ii dio
Brankica Joki?
?
4. while do while
4. while do while4. while do while
4. while do while
Brankica Joki?
?
Asp audit01
Asp audit01Asp audit01
Asp audit01
Aleksandar Micic
?

Globalne i lokalne varijable

  • 1. Globalne i lokalne varijable Sovi?-Padovan Adriana
  • 2. Deklariranje varijabli ? Deklariranje varijabli u Pascalu mo?emo izvr?iti na 3 mjesta: - izvan svih potprograma - unutar potprogram ili bloka - u definiciji potprograma 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 2
  • 3. Globalne varijable ? Deklarirane u glavnom dijelu programa ? Vrijednosti poznate u svim dijelovima programa ? Mo?emo ih koristiti u svakom dijelu programa 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 3
  • 4. Lokalne varijable ? Deklarirane unutar nekog potprograma ? Mogu se koristiti samo unutar tog potprograma 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 4
  • 5. Za?to lokalne varijable? ? Olak?avanje postupka ispravljanja pogre?aka ? ?tedi se memorijski prostor ? Te?iti ?to ve?em broju lokalnih a ?to manjem broju globalni varijabli 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 5
  • 6. Po?etne vrijednosti ? Globalne varijable imaju po?etnu vrijednost jednaku 0 ? Po?etna vrijednost lokalne varijable je neodre?ena i ovisi o sadr?aju koji se koristio u memoriji prije izvo?enja programa 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 6
  • 7. Napomene ? Potprogrami mogu promijeniti vrijednost globalnih varijabli ? Promjene globalnih varijabli dobro raditi u glavnom programu, ako to procedura ili funkcija moraju raditi dobro je da to bude preko formalnih parametara ? Imena lokalnih i globalnih varijabli u jednom kodu mogu biti ista 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 7
  • 8. Primjer 1 ? Napisati kod koji ?e imati glavni dio programa i proceduru ¡°Znak¡± ? U glavnom programu potrebno je deklarirati tri varijable (a, b i c) tipa char i inicirati njihove vrijednosti dok ?emo u proceduri deklarirati varijable b i d te inicijalizirati vrijednost svih varijabli ? Potrebno je ispisati vrijednost varijabli u glavnom programu (prije i poslije poziva procedure) te u samoj proceduri 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 8
  • 9. Rje?enje primjera 1 program znakovi; var a, b, c: char; procedure Znak; var b, d: char; begin a := '+'; b := '*'; c := '+'; d := '*'; writeln('Ispis u proceduri'); writeln('a:',a,' b:',b,' c:',c,' d:',d); writeln; end; 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 9
  • 10. Rje?enje primjera 1 (2) begin a := '*'; b := '+'; c := '*'; writeln('Ispis u glavnom prije poziva procedure'); writeln('a:',a,' b:',b, ' c: ',c); writeln; Znak; writeln('Ispis u glavnom nakon poziva procedure'); writeln('a:',a,' b:',b, ' c:',c); writeln; end. 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 10
  • 11. Zadatak 1 ? Napisati program koji tri broja x, y i z sortira prema rastu?em poretku od ve?eg prema manjem. Vrijednosti ova tri broja se unose u glavnom dijelu programa ? Program koristiti proceduru naziva ¡°sort¡± kojom se razmjenjuju vrijednosti dvije varijable 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 11
  • 12. Zadatak 1- rje?enje program poredak; var x, y, z : integer; procedure sort(var a, b : integer); var tmp : integer; begin tmp:=a; a:=b; b:=tmp end; begin write('Unesi x: '); readln(x); write('Unesi y: '); readln(y); write('Unesi z: '); readln(z); if x>y then sort(x,y); if x>z then sort(x,z); if y>z then sort(y,z); writeln('Sortirano: ', x,' ', y,' ' ,z); end. 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 12
  • 13. Primjer 2 ? Potrebno je napisati program sa 2 procedure A i B, B je definirana i poziva se unutar A ? Po dijelovima programa definirati i inicirati varijable na ovaj na?in: glavni program: x = 1 procedura A: x i y = 0 procedura B: x, y i z =1 ? Ispisati vrijednost varijabli: unutar glavnog programa nakon poziva procedure A, unutar procedura A i B te u proceduri A nakon poziva procedure B 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 13
  • 14. Primjer 2 - rje?enje program d; var x: integer; procedure A; var y: integer; procedure B; var z: integer; begin x := 1; y := 1; z := x + y; writeln('U proceduri B x=' , x , ' y=',y, ' z=', z); writeln; end; 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 14
  • 15. Primjer 2 rje?enje (2) begin x := 0; y := 0; writeln('U proceduri A x=' , x , ' y=', y); writeln; B; writeln('U proceduri A nakon ?to je pozvana procedura B x=' , x , ' y=', y); writeln; end; begin x := 10; A; writeln('U glavnom programu nakon poziva procedure A x=', x); writeln; end 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 15
  • 16. Zadatak 2 ? Napisati program kojim se u proceduri ¡°zbroj¡± tra?i suma brojeva djeljivih sa 7 u skupu brojeva od 100 do 200 ? Rezultat ispisati u glavnom dijelu programu 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 16
  • 17. Zadatak 2 - rje?enje program prog; var s : integer; procedure zbroj(var s1: integer); var i, ss1 : integer; begin ss1 := 0; for i := 100 to 200 do if (i mod 7 = 0) then ss1 := ss1+i; s1 :=ss1; end; begin zbroj(s); writeln('Trazeni zbroj je: ',s); end. 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 17
  • 18. Primjer 3 ? Napisati kod koji ?e u glavnom dijelu programa tra?iti unos 2 broja ? U proceduri ¡°minmax¡± se gleda koji od ta dva broja je ve?i a koji manji te ispisujemo minimum i maksimum 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 18
  • 19. Primjer 3 - rje?enje program mim; var a, b: integer; procedure minmax; var min, max: integer; begin if a>b then begin min := b; max := a; writeln('Minimum je:', min); writeln('Maksimum je:', max); end; if a<b then begin min := a; max := b; 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 19
  • 20. Primjer 3 ¨C rje?enje (2) writeln('Minimum je:', min); writeln('Maksimum je:', max); end; end; begin writeln('Unesite broj a:'); readln(a); writeln('Unesite broj b:'); readln(b); minmax; end. 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 20
  • 21. Zadatak 3 ? Potrebno je napisati program koji ?e u glavnom dijelu unositi broj sekundi. ? U proceduri ¡°pretvorba¡± se unesen broj pretvara u sate, minute i sekunde i to se ispisuje 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 21
  • 22. Zadatak 3 - rje?enje program prog; var n: integer; procedure pretvorba; var sat, sek, min: integer; begin sat := n div 3600; sek := n mod 3600; min := sek div 60; sek := sek mod 60; writeln('Pretvoreno= ',sat, ' h ',min,' min i ',sek,' sek'); end; begin writeln('Unesite broj sekundi:'); readln(n); pretvorba; end. 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 22
  • 23. Zadaci za zada?u ? Napisati program u kojem se u glavnom dijelu programa unosi 2 broja, u proceduri ¡°suma¡± se ta dva broja zbrajaju i ispisuje se zbroj ? Napisati program kojim se u proceduri ¡°zbroj¡± tra?i suma brojeva djeljivih sa 2 i 5 u skupu brojeva od 1 do 100, te rezultat prikazati u glavnom programu 20.1.2014 GLOBALNE I LOKALNE VARIJABLE 23