Variable (programació)

De Viquipèdia
Dreceres ràpides: navegació, cerca

En programació, les variables són espais reservats en la memòria que, com el nom indica, poden canviar de contingut al llarg de l'execució d'un programa. Una variable correspon a una àrea reservada a la memòria principal de l'ordinador poden ser de longitud:

  • Fixa . - Quan la grandària de la mateixa no variarà al llarg de l'execució del programa. Totes les variables, siguin del tipus que siguin tenen longitud fixa, excepte algunes excepcions - com les col·leccions d'altres variables (arrays) o els strings .
  • Variable . - Quan la mida de la mateixa pot variar al llarg de l'execució. Típicament col·leccions de dades.

Tipus de dades[modifica | modifica el codi]

Article principal: Datatype

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 qüestió. Alguns tipus de dades usades:

Variables i pas de paràmetres a subalgorismes[modifica | modifica el codi]

Les variables poden ser intercanviades entre rutines, per valor i per referència:

  • 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 anomenada. Per tant, aquesta subrutina obté dit valor però no pot modificar la variable original. Això significa que si la variable pateix alteracions dins d'aquesta rutina, per poder accedir a aquestes modificacions en acabar, haurà de tornar el nou valor de la mateixa. Si no es realitza aquesta operació, el valor de la variable serà exactament el mateix que tenia abans de passar per la funció.
  • Per referència. - No es passa el valor directament de la variable, sinó una referència o punter a la mateixa-que conté l'adreça de la zona de memòria on s'allotja el contingut-, de manera que s'opera directament sobre la zona de memòria que la conté, la qual cosa implica que les modificacions que pateixi seran accessibles a posteriori.

Emmagatzematge de variables en memòria[modifica | modifica el codi]

Article principal: Assignació de memòria

Les variables es representen amb identificadors que fan referència a un lloc de la memòria del programa en on s'emmagatzema una dada. Una variable està associada a un tipus de dada s, el qual i en funció de la mida del mateix 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 memòria assignada a emmagatzemar aquestes variables no es coneix per endavant, la qual cosa porta a establir polítiques de reserva de memòria:

  • Reserva fixa de memòria . - Implica predeterminar la quantitat de memòria que s'assignarà a la col·lecció. És una política rígida i ja que arribats al final de la zona de memòria no es podrien emmagatzemar nous elements.
  • Reserva variable de memòria . - Es dedica una zona de memòria, podent ser d'una mida predeterminat o no, i en cas de sobrepassar aquesta zona de memòria es torna a assignar una altra zona, contigua o no, per impedir la restricció esmentada a dalt.

Entorn[modifica | modifica el codi]

Article principal: Entorn (programació)

Respecte als i Entorn d'una variable, aquest pot ser:

  • Local : Quan la mateixa només és accessible des d'un únic procediment fill, no podent ser llegida o modificada des d'un altre procediment germà o des del propi procediment pare. És possible declarar variables en blocs de condició, bucles, etc de tal manera que només pugui accedir a elles en el propi bloc.
  • Global : Quan la mateixa és accessible tant des rutines o macros de l'aplicació, com en tots els procediments i funcions de la mateixa.

Si bé és cert, que d'una forma bàsica, es pot definir l'Entorn de les variables de la forma exposada més amunt, hi ha graus de globalitat de les mateixes, podent ser accessibles des d'uns punts o altres, o fins i tot podent ser accessibles entre aplicacions diferents, arribant al cas de la superglobalitat . Exemple de l'Entorn d'una variable en el llenguatge de programació Java.

 public class A{
    public Integer numeroEntero = new Integer ();/* Variable Global a tots els Mètodes */
 
    public Integer Metode (){
       int num = 1;//Variable Local a Metode. Es pot accedir dins d'aquest Metode en qualsevol part, però no fora d'aquest.
       for (int i = 0; i <numeroEntero.intValue (); i++){//i és local al bucle for, només es pot accedir dins del mateix.
           num * = i;
      }
      //I = 2; Aquesta línia 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 aquí és una variable diferent de la variable num de Metode
       System.out.println ("Variable local num:"+num);
   }
}
Cal tenir en compte que en Java el cas de les variables globals a tots els Mètodes que es troben en una classe, és una cosa peculiar, ja que aquestes realment són atributs que defineixen un objecte d'una classe determinada, en aquest cas la classe A té un atribut anomenat numeroEntero. L'atribut és un concepte que defineix un objecte d'una classe determinada, mentre que una variable serveix de suport als procediments i no defineix conceptualment objectes.

Vegeu també[modifica | modifica el codi]

Nota[modifica | modifica el codi]