16-11-2012, 04:46
Hola, este es mi primer mensaje en el foro y mañana al mediodía tengo que entregar el TP de algoritmos. Tengo todo hecho pero a la hora de compilar el programa en dev-pascal me tira un error que no tengo idea de por qué está mal. Les dejo el código
El error dice 75/28 "Fatal: Syntax error, ; expected but ( found".
O sea el error estaría en este proceso, justo antes de "(Ptr;TemaSelec);" como si esperase que la sentencia terminara así "BuscarNodo;"
Ese es el único error que me tira, y me parece que es muy tonto y no me estoy dando cuenta. O al menos eso espero, si me pueden ayudar me salvarían la materia!!! Espero haber sido claro, cualquier cosa pregunten. Espero alguna respuesta, gracias!!
EDIT: CHAN recién cuando publiqué el post vi que había una opción para compilar el programa acá mismo, así lo hice y me tiró muchos más errores que en dev-pascal :/ Bueno, ahora me estaré fijando qué onda estos errores que tiró...
Spoiler: Mostrar
Type
str100 = string[100];
str50 = string[50];
str3 = string[3];
Tvec = Array [1..40] of byte;
TRInfo = record
CodTema: string[3];
pos: byte;
End;
TPtr = ^TLista;
TLista = record
RInfo: TRInfo;
Sgte: TPtr;
End;
Tnodo =TLista;
TregEnlaces=Record
Esp: char;
Curso: word;
Grupo: byte;
Enlace: str100;
Descripcion: str50;
Responsable: str50;
CodigoTema: str3;
End;
Tarchinfo = file of TRinfo;
TarchEnlaces = file of TregEnlaces;
TarchTLista = file of TLista;
VAR
i: byte;
ArchEnlaces: TarchEnlaces;
Vec: TVec;
Ptr: TPtr;
Lista: Tnodo;
TemaSelec: string[3];
ArchDesc: text;
CodTema: string[3];
NombreTema: string[50];
Info: TRInfo;
ArchUnif: TarchEnlaces;
ArchIn: TarchEnlaces;
Cant: integer;
P: byte;
NomFisArch: string[15];
Puntero: TPtr;
PROCEDURE MostrarEnlacesTema (VAR ArchEnlaces: tArchEnlaces; VAR Vector: Tvec; i:integer; T:TRegEnlaces);
Begin
i:=0;
Assign (ArchEnlaces, 'EnlacesK1193.DAT');
Reset (ArchEnlaces);
WHILE (Vector[i] <> -1) AND (i<40) DO
Begin
i:= i+1;
Seek (ArchEnlaces, Vector [i]);
Read (ArchEnlaces, T);
Write (ArchEnlaces);
End;
End;
PROCEDURE ArmarVecPosics (VAR Vec:Tvec; VAR Ptr:TPtr; Lista:Tnodo; TemaSelec:string[3];i:integer;BuscarNodo:TPtr);
Begin
i:=0;
Ptr:= Lista;
WHILE (Ptr <> Nil) DO
Ptr:= BuscarNodo(Ptr; TemaSelec);
Vec[i]:= Ptr^.info.Tema;
i:= i+1;
END;
IF i<= 40
THEN
Begin
Vec[i]:= -1;
END;
END;
PROCEDURE MostrarDescTema (NroIngresado:byte; VAR CodTema: string[3]; ArchDesc: Text);
Begin
Case NroIngresado of
1: NombreTema:= 'Responsabilidad Social';
CodTema:= RS
Assign (ArchDesc,'RS.TXT');
End;
2: NombreTema:= 'Responsabilidad Social Universitaria';
Assign (ArchDesc,'RSU.TXT');
CodTema:= RSU
End;
3: NombreTema:= 'Desarrollo Sustentable';
CodTema:= DS
Assign (ArchDesc,'DS.TXT');
End;
4: NombreTema:= 'Formacion y Educacion Ambiental';
Assign (ArchDesc,'FEA.TXT');
CodTema:= FEA
End;
5: NombreTema:= 'Tics y Cuidado Ambiental';
Assign (ArchDesc,'TIC.TXT');
CodTema:= TIC
End;
6: SalirPrograma:= ReadKey;
End;
end;
Reset (ArchDesc);
Rewrite (ArchDesc,
'Tema: ', NombreTema,' Fecha: ',DateToStr
'Codigo de Tema: ', CodTema,' Hora: ', TimeToStr
'Definicion: ');
Close (ArchDesc);
End;
Function BuscarNodo (puntero: TPtr; info: TRInfo): TPtr;
Begin
While (puntero <> NIL) AND (info.CodTema <> puntero^.info.CodTema)
Begin
puntero := puntero^.Sgte;
End;
BuscarNodo := puntero;
End;
PROCEDURE Estrategia1.1 (VAR Lista:TLista; VAR ArchUnif:TRegEnlaces; VAR Archln:TRegEnlaces; VAR Rinfo: TRinfo; VAR Cant: int);
Begin
Lista:= Nil;
write('Ingrese cantidad de Archivos a unificar:');
read(Cant);
P:=0;
For i to Cant do
begin
write('Ingrese nombre fisico del archivo:');
read(NomFisArch);
assign(Archin, NomFisArch);
reset(NomFisArch);
While not EOF(Archin) do
begin
read(Archin, TRenlaces);
write(ArchUnif, TRenlaces);
Rinfo.CodTema:=TRenlaces.CodigoTema;
Rinfo.pos:= P;
Procedure InsertarDelante (var Lista: TLista; Valor: TRInfo);
P:=P+1;
end;
end;
end;
PROCEDURE Estrategia2.2 (VAR Puntero:Tptr; Lista:Tnodo; Tema:string[3]; ArchDef: text, VAR Vec:Tvec; ArhcEnlaces: TArchEnlaces);
Begin
PROCEDURE MostrarDescTema (CodTema; ArchDesc);
IF NroIngresado = 6 THEN
Begin
Write('Finalizado el programa');
End;
ELSE
Begin
PROCEDURE ArmarVecPosics (Vec; Puntero; Lista; Tema);
PROCEDURE MostrarEnlacesTema (ArchEnlaces; Vec);
End;
END;
PROGRAM TrabajoPractico2;
Begin
PROCEDURE Estrategia1.1 (Lista; ArchUnif; ArchIN; Rinfo);
PROCEDURE Estrategia2.2 (Puntero; Lista; Tema; ArchDesc; Vec; ArchEnlaces);
END.
El error dice 75/28 "Fatal: Syntax error, ; expected but ( found".
O sea el error estaría en este proceso, justo antes de "(Ptr;TemaSelec);" como si esperase que la sentencia terminara así "BuscarNodo;"
Spoiler: Mostrar
PROCEDURE ArmarVecPosics (VAR Vec:Tvec; VAR Ptr:TPtr; Lista:Tnodo; TemaSelec:string[3];i:integer;BuscarNodo:TPtr);
Begin
i:=0;
Ptr:= Lista;
WHILE (Ptr <> Nil) DO
Ptr:= BuscarNodo(Ptr; TemaSelec);
Vec[i]:= Ptr^.info.Tema;
i:= i+1;
END;
IF i<= 40
THEN
Begin
Vec[i]:= -1;
END;
END;
Ese es el único error que me tira, y me parece que es muy tonto y no me estoy dando cuenta. O al menos eso espero, si me pueden ayudar me salvarían la materia!!! Espero haber sido claro, cualquier cosa pregunten. Espero alguna respuesta, gracias!!
EDIT: CHAN recién cuando publiqué el post vi que había una opción para compilar el programa acá mismo, así lo hice y me tiró muchos más errores que en dev-pascal :/ Bueno, ahora me estaré fijando qué onda estos errores que tiró...