Problema dificil
Publicado por Victor (5 intervenciones) el 28/08/2008 23:39:31
Hola estoy haciendo un codigo y tengo hecho este procedimiento para unas listas pero no se por que cuando termina de ejecutarse el programa se termina y no sigue ejecutando los procedimientos despues de este:
os pongo los tipos:
Telemento=char;
PTNodo=^TNodo;
TLista = PTNodo;
TNodo=RECORD
elemento:Telemento;
siguiente:TLista;
End;
TProd = ^TProduccion;
TListaP = TProd;
TProd2 = RECORD
izq:TLista;
der:TLista;
end;
TProduccion = RECORD
prod:TProd2;
sig: TProd;
end;
Y el procedimiento
procedure simbolos_innecesarios (var listaP:TlistaP);
var
aux:TlistaP;
aux3:Tlista;
izq:char;
der:string;
begin
der:='';
aux:=listaP;
aux3:=aux^.prod.der;
while (aux<>NIL) do
begin
izq:=' ';
der:='';
izq:=aux^.prod.izq.elemento;
while (aux3<>nil) do begin
der:=der+aux3^.elemento;
aux3:=aux3^.siguiente;
end;
{if izq=der then begin
borrarlistaP(listaP,aux^.prod.izq^.Elemento,aux^.prod.der^.elemento);
aux:=listaP;
end; }
aux:=aux^.sig;
aux3:=aux^.prod.der;
end;
end;
os pongo los tipos:
Telemento=char;
PTNodo=^TNodo;
TLista = PTNodo;
TNodo=RECORD
elemento:Telemento;
siguiente:TLista;
End;
TProd = ^TProduccion;
TListaP = TProd;
TProd2 = RECORD
izq:TLista;
der:TLista;
end;
TProduccion = RECORD
prod:TProd2;
sig: TProd;
end;
Y el procedimiento
procedure simbolos_innecesarios (var listaP:TlistaP);
var
aux:TlistaP;
aux3:Tlista;
izq:char;
der:string;
begin
der:='';
aux:=listaP;
aux3:=aux^.prod.der;
while (aux<>NIL) do
begin
izq:=' ';
der:='';
izq:=aux^.prod.izq.elemento;
while (aux3<>nil) do begin
der:=der+aux3^.elemento;
aux3:=aux3^.siguiente;
end;
{if izq=der then begin
borrarlistaP(listaP,aux^.prod.izq^.Elemento,aux^.prod.der^.elemento);
aux:=listaP;
end; }
aux:=aux^.sig;
aux3:=aux^.prod.der;
end;
end;
Valora esta pregunta


0