한국   대만   중국   일본 
Variable (programacio) - Viquipedia, l'enciclopedia lliure Ves al contingut

Variable (programacio)

De la Viquipedia, l'enciclopedia lliure

En programacio , una variable es un espai reservat a la memoria que, com el nom indica, pot canviar de contingut al llarg de l'execucio d'un programa . Una variable correspon a una area reservada a la memoria principal de l' ordinador . Pot ser de longitud:

  • Fixa . Quan la seva mida no variara al llarg de l'execucio del programa. Totes les variables, siguin del tipus que siguin, tenen longitud fixa, menys algunes excepcions - com les col·leccions d'altres variables ( arrays ) o els strings .
  • Variable . Quan la seva mida pot variar al llarg de l'execucio. Tipicament col·leccions de dades.

Tipus de dades [ modifica ]

Com que les variables contenen o apunten a valors de tipus determinats, les operacions sobre les mateixes i el domini dels seus propis valors estan determinades pel tipus de dades en questio.

Alguns tipus de dades usades:

Variables i pas de parametres a subalgorismes [ modifica ]

Les variables poden ser intercanviades entre rutines , per valor i per referencia:

  • Per valor . Es copia el valor (la dada) de la variable a la zona de la pila de trucades -d'entorn local- que correspon a la nova subrutina cridada. Per tant, aquesta subrutina obte aquest valor pero no pot modificar la variable original. Aixo significa que si la variable pateix alteracions dins d'aquesta rutina, per poder accedir a aquestes modificacions en acabar, haura de tornar el nou valor d'aquesta. Si no es realitza aquesta operacio, el valor de la variable sera exactament el mateix que tenia abans de passar per la funcio.
  • Per referencia . No es passa el valor directament de la variable, sino una referencia o punter a la mateixa -que conte l'adreca de la zona de memoria on s'allotja el contingut- de manera que s'opera directament sobre la zona de memoria que la conte. Aixo implica que les modificacions que pateixi seran accessibles posteriorment.

Emmagatzematge de variables en memoria [ modifica ]

Les variables es representen amb identificadors que fan referencia a un lloc de la memoria del programa on s'emmagatzema una dada. Una variable esta associada a un tipus de dada , el qual i en funcio de la seva mida determina la quantitat de bytes que seran necessaris per emmagatzemar la variable. En el cas de col·leccions i al contrari que amb la resta de tipus de dades, ja siguin primitius o objectes complexos, la memoria assignada a emmagatzemar aquestes variables no es coneix per endavant, fet que porta a establir politiques de reserva de memoria :

  • Reserva fixa de memoria . Implica predeterminar la quantitat de memoria que s'assignara a la col·leccio. Es una politica rigida, ja que arribats al final de la zona de memoria no es podrien emmagatzemar nous elements.
  • Reserva variable de memoria . Es dedica una zona de memoria, de mida predeterminada o no, i en cas de sobrepassar aquesta zona de memoria es torna a assignar una altra zona, contigua o no, impedint la restriccio esmentada.

Entorn [ modifica ]

Respecte a l'ambit d'una variable, aquest pot ser:

  • Local . Quan la variable nomes es accessible des d'un unic procediment fill, no podent ser llegida o modificada des d'un altre procediment germa o des del mateix procediment pare. Es possible declarar variables en blocs de condicio, bucles, etc. de manera que nomes s'hi pugui accedir en el mateix bloc.
  • Global . Quan la variable es accessible tant des de rutines o macros de l'aplicacio, com en tots els procediments i funcions d'aquesta.

Si be es cert, que d'una forma basica, es pot definir l'entorn de les variables de la forma exposada mes amunt, hi ha graus de globalitat de les variables; poden ser accessibles des d'uns punts o altres, o fins i tot poden ser accessibles des d'aplicacions diferents, arribant al cas de la superglobalitat .

- Exemple de l'entorn d'una variable en el llenguatge de programacio Java .

 public
 class
 A
{

 public
 Integer
 numeroEntero
 =
 new
 Integer
 ();
/* Variable Global a tots els Metodes */


 public
 Integer
 Metode
 (){

 int
 num
 =
 1
;
//Variable Local a Metode. Es pot accedir dins d'aquest Metode en qualsevol part, pero no fora d'aquest.

 for
 (
int
 i
 =
 0
;
 i
 <
numeroEntero
.
intValue
 ();
 i
++
){
//i es local al bucle for, nomes es pot accedir dins del mateix.

 num
 *
 =
 i
;

 }

 //I = 2; Aquesta linia provocaria error al no haver declarat la variable i. i va ser definida localment al bucle for.

 return
 Integer
.
valueOf
 (
num
);

 }


 public
 void
 altreMetode
 (){

 int
 num
 =
 1
;
//Variable local a altreMetode. num aqui es una variable diferent de la variable num de Metode

 System
.
out
.
println
 (
"Variable local num:"
+
num
);

 }

}

En el llenguatge Java el cas de les variables globals a tots els metodes que es troben en una classe es peculiar, ja que les variables realment son atributs que defineixen un objecte d'una classe determinada. En aquest cas la classe A te un atribut anomenat numeroEntero . L'atribut es un concepte que no defineix un objecte d'una classe determinada, sino que es una variable que serveix de suport als procediments i defineix conceptualment objectes.

Vegeu tambe [ modifica ]

Nota [ modifica ]