variables
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| variables [2012/08/04 00:55] – [variables automáticas] lmateu | variables [2014/08/06 16:20] (actual) – lmateu | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ===== Variables ===== | + | ====== Variables |
| Supongamos que se declara la variable x como se muestra en la figura de abajo a la izquierda. | Supongamos que se declara la variable x como se muestra en la figura de abajo a la izquierda. | ||
| Línea 9: | Línea 9: | ||
| Por último la // | Por último la // | ||
| - | ==== Ejercicio | + | === Ejercicio === |
| Haga un diagrama equivalente al anterior pero para la declaración: | Haga un diagrama equivalente al anterior pero para la declaración: | ||
| Línea 17: | Línea 17: | ||
| </ | </ | ||
| - | ==== Tiempo de vida y alcance de una variable ==== | + | ===== Tiempo de vida y alcance de una variable |
| - | Una variable tiene un tiempo de vida. La variable nace, es decir se crea cuando se le asigna un espacio en memoria. | + | Una variable tiene un //tiempo de vida//. La variable nace, es decir se crea cuando se le asigna un espacio en memoria. |
| - | El alcance de una variable es el o los trozos de código en donde su identificador es conocido. | + | El //alcance de una variable// es el o los trozos de código en donde su identificador es conocido. |
| - | ==== Variables globales ==== | + | ===== Variables globales |
| Son todas las variables que se declaran fuera de una función. | Son todas las variables que se declaran fuera de una función. | ||
| Línea 40: | Línea 40: | ||
| El alcance de una variable global comprende desde el punto del código en donde se declara hasta el final del archivo. | El alcance de una variable global comprende desde el punto del código en donde se declara hasta el final del archivo. | ||
| - | ==== variables automáticas ==== | + | ===== variables automáticas |
| La //variables automáticas// | La //variables automáticas// | ||
| Línea 46: | Línea 46: | ||
| < | < | ||
| double fact(int n) { | double fact(int n) { | ||
| - | | + | |
| while (n> | while (n> | ||
| p*= n; | p*= n; | ||
| Línea 81: | Línea 81: | ||
| Observe que variables declaradas al inicio de la función como x y sum tienen una sola reencarnación por cada invocación de sum_difs. | Observe que variables declaradas al inicio de la función como x y sum tienen una sola reencarnación por cada invocación de sum_difs. | ||
| - | === Inicialización === | + | ==== Inicialización |
| Es importante destacar que si la declaración de una variable automática no incluye un valor inicial, éste queda indeterminado y //¡rara vez resulta ser 0!// Acceder al valor de una variable automática no inicializada es un error de programación en el 99.9% de los casos. | Es importante destacar que si la declaración de una variable automática no incluye un valor inicial, éste queda indeterminado y //¡rara vez resulta ser 0!// Acceder al valor de una variable automática no inicializada es un error de programación en el 99.9% de los casos. | ||
| Línea 105: | Línea 105: | ||
| El problema con este programa es que se usa la variable v sin haberle dado un valor inicial. | El problema con este programa es que se usa la variable v sin haberle dado un valor inicial. | ||
| - | === Variables y funciones recursivas === | + | ===== Variables y funciones recursivas |
| Un caso más complicado se produce al considerar la versión recursiva de fact: | Un caso más complicado se produce al considerar la versión recursiva de fact: | ||
| Línea 111: | Línea 111: | ||
| < | < | ||
| double fact(int n) { | double fact(int n) { | ||
| - | | + | |
| - | if (fact>1) { | + | if (n>1) { |
| res= n*fact(n-1); | res= n*fact(n-1); | ||
| + | } | ||
| return res; | return res; | ||
| } | } | ||
| Línea 120: | Línea 121: | ||
| Si se invoca fact(6) se invocará recursivamente fact(5), fact(4), fact(3), fact(2) y fact(1). | Si se invoca fact(6) se invocará recursivamente fact(5), fact(4), fact(3), fact(2) y fact(1). | ||
| - | ==== Variables dinámicas ==== | + | ===== Variables dinámicas |
| La última categoría de variables corresponde a las variables dinámicas. | La última categoría de variables corresponde a las variables dinámicas. | ||
variables.1344041741.txt.gz · Última modificación: por lmateu
