Variable (programació): diferència entre les revisions

Contingut suprimit Contingut afegit
m Bot:Desambiguació assistida: Programació - Canviant enllaç(os) per Programació d'ordinadors
Revisió a partir edició ES i eliminem {{2L|data=febrer de 2013}}
Etiqueta: editor de codi 2017
Línia 1:
En [[Programació d'ordinadors|programació]], lesuna '''variables variable'''són espaisés un espai reservatsreservat a la memòria que, com el nom indica, podenpot canviar de contingut al llarg de l'execució d'un [[programari|programa]]. Una variable correspon a una àrea reservada a la [[memòria principal]] de l'[[ordinador]]. PodenPot ser de longitud:
{{2L|data=febrer de 2013}}
En [[Programació d'ordinadors|programació]], les '''variables '''són espais reservats a la memòria que, com el nom indica, poden canviar de contingut al llarg de l'execució d'un [[programari|programa]]. Una variable correspon a una àrea reservada a la [[memòria principal]] de l'[[ordinador]]. Poden ser de longitud:
 
* {{subratllat| Fixa }}. - Quan la grandària de laseva mateixamida no variarà al llarg de l'execució del programa. Totes les variables, siguin del [[tipus de dada|tipus]] que siguin, tenen longitud fixa, menys algunes excepcions - com les col·leccions d'altres variables ([[array]]s) o els [[cadena (informàtica)|string]]s.
* {{subratllat| Variable }}. - Quan la seva mida de la mateixa pot variar al llarg de l'execució. Típicament col·leccions de dades.
 
== Tipus de dades ==
Linha 15 ⟶ 14:
* Tipus de dada de [[coma flotant]] (real, amb decimals).
* [[Datatype caràcter]].
* [[Cadena (informàtica)|Datatype '' string '']]-
 
== Variables i pas de paràmetres a [[subalgorisme]]s ==
 
Les variables poden ser intercanviades entre [[subrutina|rutines]], per valor i per referència:
 
* {{subratllat|Per valor}}. - Es copia el valor (la dada) de la variable a la zona de la [[pila de trucades]] -d'Entornentorn local- que correspon a la nova subrutina anomenadacridada. Per tant, aquesta subrutina obté aquest 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 d'aquesta. Si no es realitza aquesta operació, el valor de la variable serà exactament el mateix que tenia abans de passar per la funció.
* {{subratllat|Per referència}}. - No es passa el valor directament de la variable, sinó una referència o [[Punter (programació)|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é. Això implica que les modificacions que pateixi seran accessibles a posterioriposteriorment.
 
== Emmagatzematge de variables en memòria ==
{{AP|Assignació de memòria}}
Les variables es representen amb identificadors que fan referència a un lloc de la memòria del programa on s'emmagatzema una dada. Una variable està associada a un [[tipus de dada]], el qual i en funció de la seva mida del mateix determina la quantitat de [[byte]]s 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, lafet qual cosaque porta a establir polítiques de reserva de [[Memòria d'ordinador|memòria]]:
 
* {{subratllat| 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.
* {{subratllat| Reserva variable de memòria }}. - Es dedica una zona de memòria, podent ser d'unade mida predeterminatpredeterminada o no, i en cas de sobrepassar aquesta zona de memòria es torna a assignar una altra zona, contigua o no, per impedirimpedint la restricció esmentada a dalt.
 
== Entorn ==
 
{{AP|Entorn (programació)}}
Respecte alsa i Entorn ''l'àmbit d'una variable, aquest pot ser:
 
* ''' Local ''':. Quan la mateixavariable 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 mateix procediment pare. És possible declarar variables en blocs de condició, bucles, etc. de tal manera que només s'hi pugui accedir a elles en el mateix bloc.
Respecte als i Entorn ''' d'una variable, aquest pot ser:
* ''' Global ''':. Quan la mateixavariable és accessible tant des de rutines o macros de l'aplicació, com en tots els procediments i funcions d'aquesta.
Si bé és cert, que d'una forma bàsica, es pot definir l'Entornentorn de les variables de la forma exposada més amunt, hi ha graus de ''globalitat'' d'aquestesde les variables; poden ser accessibles des d'uns punts o altres, o fins i tot podentpoden ser accessibles entredes d'aplicacions diferents, arribant al cas de la '' superglobalitat ''. Exemple de l'Entorn d'una variable en el llenguatge de programació [[Llenguatge de programació Java|Java]].
 
'' - Exemple de l'entorn d'una variable en el llenguatge de programació [[Llenguatge de programació Java|Java]].''
* ''' 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 mateix procediment pare. És possible declarar variables en blocs de condició, bucles, etc de tal manera que només pugui accedir a elles en el mateix bloc.
* ''' Global ''': Quan la mateixa és accessible tant des rutines o macros de l'aplicació, com en tots els procediments i funcions d'aquesta.
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'' d'aquestes; poden 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ó [[Llenguatge de programació Java|Java]].
<source lang="java">
public class A{
Linha 59 ⟶ 57:
}
</source>
: '' CalEn tenirel en compte que enllenguatge Java el cas de les variables globals a tots els Mètodesmètodes que es troben en una classe, és una cosa peculiar, ja que aquestesles variables realment són ''' atributs ''' que defineixen un objecte d'una classe determinada,. enEn aquest cas la classe A té un atribut anomenat ''numeroEntero''. L'atribut és un concepte que no defineix un objecte d'una classe determinada, mentresinò que és una variable que serveix de suport als procediments i no defineix conceptualment objectes. ''
 
== Vegeu també ==