Pascal/Turbo Pascal - Punteros

 
Vista:

Punteros

Publicado por Jorge Yani. (1 intervención) el 06/06/2006 14:31:35
Como hacer un programa de punteros con memoria dinamica:

Hacer un programa que crea un Catalogo con los siguientes ingresos:

Codigo.
Nombre,
telefono
Esto que sea con un registro (puntero) con memoria dinamica.

Agradeceria mucho que dieran un ejemplo o poder resolver esta tarea.

Atentamente,

Jorge
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:Punteros

Publicado por Diego Romero (996 intervenciones) el 07/06/2006 03:57:47
Parece que lo que te han pedido es hacer una lista dinámica. Afortunadamente tengo un código que te puede servir:
http://www.geocities.com/diegofrom/listasimple.htm
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:Punteros

Publicado por Leandro (5 intervenciones) el 26/06/2006 04:25:22
seria lo siguiente:
type
Catalogo = pointer to nodo;
nodo= RECORD
Nombre: <...tio...>
Codigo :<...tipo...>
Telefono :<...tipo...>
sig:Catalogo
END;

luego necesitas dos procedimientos uno q te crea la lista vacia y luego otro que lo que hace es ir insertando elementos a la lista

Function Crear( ):Catalogo;
var
a:Catalogo;
BEGIN
crear:= NIL
END;

(para usar la funcion insertar debes de tener la lista creada , osea una vez q se creo la lista, puedo llamar a insertar cuantas veces yo quiera, pero primero debo crear la lista)

PROCEDURE insertar(N:..; T...; VAR cat:...;calatologo):
var a:Catalogo;
BEGIN
if c=nil THEN
NEW(cat);
cat^.Nombre:=N;
cat^.codigo:=c;
cat^.telefono:= t;
ELSE
NEW(a);
a^.Nombre:=N;
a^.codigo:=c;
a^.telefono:= t;
a^.sig:=cat;
cat:=a;
END;


Aca la funcion insertar inserta los elementos al principio del catalogo, si quiesieras insertarlos al final o en alguna otra posicion debes de recorrer la lista hasta llegar a la posicion deseada, pero hay q tener cuidado de no perder datos de la lista al navegar por ella, para hacerlo bien es aconsejable navegarla con una variable auxiliar
Espero haerte ayudado en algo
Saludos
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:Punteros

Publicado por Leandro (5 intervenciones) el 26/06/2006 04:28:17
seria lo siguiente:
type
Catalogo = pointer to nodo;
nodo= RECORD
Nombre: <...tio...>
Codigo :<...tipo...>
Telefono :<...tipo...>
sig:Catalogo
END;

luego necesitas dos procedimientos uno q te crea la lista vacia y luego otro que lo que hace es ir insertando elementos a la lista

Function Crear( ):Catalogo;
BEGIN
crear:= NIL
END;

(para usar la funcion insertar debes de tener la lista creada , osea una vez q se creo la lista, puedo llamar a insertar cuantas veces yo quiera, pero primero debo crear la lista)

PROCEDURE insertar(N:..; T...,c:....; VAR cat:...;calatologo):
var a:Catalogo;
BEGIN
if c=nil THEN
NEW(cat);
cat^.Nombre:=N;
cat^.codigo:=c;
cat^.telefono:= t;
ELSE
NEW(a);
a^.Nombre:=N;
a^.codigo:=c;
a^.telefono:= t;
a^.sig:=cat;
cat:=a;
END;

Aca la funcion insertar inserta los elementos al principio del catalogo, si quiesieras insertarlos al final o en alguna otra posicion debes de recorrer la lista hasta llegar a la posicion deseada, pero hay q tener cuidado de no perder datos de la lista al navegar por ella, para hacerlo bien es aconsejable navegarla con una variable auxiliar
Espero haerte ayudado en algo
Saludos
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:Punteros

Publicado por felipe (2 intervenciones) el 26/06/2006 19:52:20
ESTUDIO CONTABLE FELIPE RIDAO . BALCARCE . Bs As
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