Pascal/Turbo Pascal - Ayuda con Variables Dinamicas

 
Vista:

Ayuda con Variables Dinamicas

Publicado por benjamin (10 intervenciones) el 18/02/2001 20:32:14
Prfavor alguien expliqeume a detalle lo que son las variables dinamicas, para que sirven y como se usan. Eso del apuntador. Porfavor que no tengo idea.

-GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con Variables Dinamicas

Publicado por Cris (29 intervenciones) el 19/02/2001 06:44:30
Un puntero es una direccion de memoria de alguna otra variable, por ejemplo, tienes un entero:

var x,y,z:integer;
p:^integer;

{ahora, tienes tres enteros, y un puntero p que contendra la direccion de algun entero}

begin
x:=1;
y:=2;
z:=3;
{ahora, puedes darle a p la direccion de cualquiera de estas tres variables}
p^:=x;
{esto quiere decir que p tiene la direccion de x}

para poder explicar esto te lo pondre asi:
supongamos que pascal le da la direccion 154h a x;
l72h a y; y 198h a z:
x---154h
y---172h
z---198h
ok?
por lo tanto en la direccion 154h habra un 1 no?
ya que inicialize a x con 1, y por consecuencia la direccion 172h tendra un 2 y la 198h un 3.

bueno, pues la variable p es un puntero a un entero, y solo puede contener direcciones de memoria, por lo tanto al decir:
p^:=x; {se lee: a donde apunta p es igual a x}

como x no es un puntero no puedes decir p:=x
bueno, continuando, despues de eso, p sera igual a 154h, no a 1
y si pones : p^:=y; p sera igual a 172h
espero haberme explicado hasta ahorita...
ahora, para poder imprimirlo debes poner esto:

begin
x:=1;
y:=2;
z:=3;
p^:=x;
write(p^); {escribira 1}
p^:=y;
write(p^); {escribira 2}
p^:=z;
write(p^); {escribira 3}

Bueno, hasta aqui le dejo, la teoria de apuntadores es larga y no cabe aqui, asi que si tienes otra duda, escribe.

Saludos
Cristina

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Variables Dinamicas

Publicado por Maverick01 (26 intervenciones) el 13/03/2001 06:24:14
Bueno, me parece bien lo que te dicen, pero por si no pescas muy bien, porque es de por sí algo enredado, imagína que cada variable es una caja donde almacenas algo, (número, palabra, pizza -bueno, pizza no-) Ok??

Ahora, cada caja se distingue de las otras por el nombre que tiene y la descripción que posee, así, una dirá "edad" como nombre y "byte" como descripción, bueno, si tomamos las cajas y las colocamos en gavetas (la memoria), similar a como hacen en los Supermercados donde dejan los paquetes, entonces, tendremos una ficha con el número de gaveta donde dejamos la caja (el apuntador), así cuando querramos tomar la caja que dejamos, entonces usando el número de la ficha cómo referencia (la Dirección de memoria) encontramos la caja.

Ahora cuando dejamos la caja y tomamos la ficha, en Pascal lo que estamos haciendo es usar la instrucción NEW que nos dice donde quedó la caja.
Cuando tomamos la caja y regresamos la ficha equivale en Pascal a usar DISPOSE que deja libre el espacio de nuestra caja, así otros pueden dejar sus cajas ahí.

Por eso de tomar y liberar casi a nuestro antojo a lo largo de programa es que se conocen como variables Dinámicas ;)

Espero me hayas entendido, luego te doy una explicación más detallada.

See YA!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar