3
ProgramiranjeI_sylabus.doc Uvod u programiranje::Vježbe http://dl.fit.ba/ 1 Fakultet informacijskih tehnologija [email protected] Datum:22.10.2006 Opseg (scope) varijabli Opseg varijabli ilustrirat ćemo primjerom: #include <iostream> using namespace std; int a (); //prototip funkcije a int b (); // prototip funkcije b int x=1; // globalna varijabla int main ()//glavni program { int x= 5; // lokalna varijabla cout<<"lokalna varijabla x - vanjski blok "<< x<< endl; { int x= 7; // lokalna varijabla u unutarnjem bloku cout<<"lokalna varijabla x - unutarnji blok "<< x<< endl; } cout<<"lokalna varijabla x - vanjski blok"<< x<< endl; a();//prvi put pozivamo funkciju a b();//prvi put pozivamo funkciju b a();//drugi put put pozivamo funkciju a b();//drugi put pozivamo funkciju b system ("pause"); } int a () //definicija funkcije a { int x=25; // inicijalizira se pri svakom pozivanju funkcije cout<<"lokalna varijabla x - na pocetku funkcije a "<< x<< endl; x++; cout<<"lokalna varijabla x - na kraju funkcije a "<< x<< endl; return 0; } int b() //definicija funkcije b { cout<<"globalna varijabla x - na pocetku funkcije b "<< x<< endl; x*=10; cout<<"globalna varijabla x - na kraju funkcije b "<< x<< endl; return 0;}

Opseg (Scope) Varijabli

Embed Size (px)

DESCRIPTION

Opseg (Scope) Varijabli

Citation preview

Page 1: Opseg (Scope) Varijabli

ProgramiranjeI_sylabus.doc

Uvod u programiranje::Vježbe

http://dl.fit.ba/

1

Fakultet informacijskih tehnologija

[email protected]

Datum:22.10.2006

Opseg (scope) varijabli

Opseg varijabli ilustrirat ćemo primjerom:

#include <iostream> using namespace std; int a (); //prototip funkcije a int b (); // prototip funkcije b int x=1; // globalna varijabla int main ()//glavni program { int x= 5; // lokalna varijabla cout<<"lokalna varijabla x - vanjski blok "<< x<< endl; { int x= 7; // lokalna varijabla u unutarnjem bloku cout<<"lokalna varijabla x - unutarnji blok "<< x<< endl; } cout<<"lokalna varijabla x - vanjski blok"<< x<< endl; a();//prvi put pozivamo funkciju a b();//prvi put pozivamo funkciju b a();//drugi put put pozivamo funkciju a b();//drugi put pozivamo funkciju b system ("pause"); } int a () //definicija funkcije a { int x=25; // inicijalizira se pri svakom pozivanju funkcije cout<<"lokalna varijabla x - na pocetku funkcije a "<< x<< endl; x++; cout<<"lokalna varijabla x - na kraju funkcije a "<< x<< endl; return 0; } int b() //definicija funkcije b { cout<<"globalna varijabla x - na pocetku funkcije b "<< x<< endl; x*=10; cout<<"globalna varijabla x - na kraju funkcije b "<< x<< endl; return 0;}

Page 2: Opseg (Scope) Varijabli

ProgramiranjeI_sylabus.doc

Uvod u programiranje::Vježbe

http://dl.fit.ba/

2

Fakultet informacijskih tehnologija

[email protected]

Šta zaključujete iz navedenog primjera?

• varijabla deklarirana unutar nekog bloka (blok je omeñen vitičastim

zagradama{}) vrijedi samo unutar tog bloka;

{

int x= 7; // lokalna varijabla u unutarnjem bloku cout<<"lokalna varijabla x - unutarnji blok "<< x<< endl; }

• dok se izvršava unutarnji blok (tačka 1) vrijednost varijable istog tipa i imena (int

x=5) iz vanjskog bloka nije „vidljiva“;

• po završetku unutarnjeg bloka vrijednost varijable int x=5 iz vanjskog bloka

ponovno postaje vidljiva;

cout<<"lokalna varijabla x - vanjski blok"<< x<< endl;(linija 18)

• varijable čija vrijednost je „vidljiva“ i dostupna unutar jednog bloka ili funkcije,

odnosno na ograničenom mjestu, se nazivaju lokalne varijable;

• varijabla deklarirana izvan svih blokova i funkcija, tzv. globalna varijabla, „poznata“ je svim blokovima i funkcijama koje slijede nakon njezine deklaracije;

int x=1; // globalna varijabla (linija 7)

• vrijednost globalne varijable dostupna je u svim blokovima i funkcijama koje se

nalaze nakon njezine deklaracije, pod uvjetom da unutar tih blokova i funkcija ne

postoji lokalna varijabla istog tipa i imena ( vidi tačku 2)

int x=1; // globalna varijabla (linija 7)

int b() //definicija funkcije b { cout<<"globalna varijabla x - na pocetku funkcije b "<< x<< endl; x*=10; //pri prvom pozivu funkcije vrijednost globalne varijable je promijenjena sa 1 na 10, a u drugom pozivu na 100 cout<<"globalna varijabla x - na kraju funkcije b "<< x<< endl; return 0;}

Dio programa u kojem se neki identifikator (u našem slučaju varijabla) može

jednoznačno odrediti i koristiti naziva se opsegom. Opseg može biti:

• Datoteka (file scope)

• Funkcija (funkction scope)

• Blok (block scope)

• Prototip funkcije (function-prototipe scope).

Page 3: Opseg (Scope) Varijabli

ProgramiranjeI_sylabus.doc

Uvod u programiranje::Vježbe

http://dl.fit.ba/

3

Fakultet informacijskih tehnologija

[email protected]

Grafički bi to mogli predstaviti ovako:

int main ()

{ int x= 5;

}

int a () // funkcija a ima lokalnu varijablu x { int x=25;

}

{int x= 7;}

#include <iostream> using namespace std; int x=1;

int b () // u funkciji b nema lokalne varijable x { x*=10; //u ovom izrazu se koristi globalna varijabla

}