Pascal/Turbo Pascal - Error Compilacion Pascal

 
Vista:

Error Compilacion Pascal

Publicado por Pablo (6 intervenciones) el 19/07/2008 23:16:29
Este es un procedimiento donde calculo la cantidad de personajes que viajan en un medio de transporte,y las agrupa dependiendo del tipo de boleto pedido

PROCEDURE CalculaPersonasxTipodePasaje(var DestinoPasaje2:char; var PersA:word; var PersB:word; var PersC:word; var pers:word);

Me marca el siguiente error: " Fatal:Syntax error, ; expected but identifier CALCULAPERSONASXTIPODEPASAJE FOUND"

nO ENTIENDO porque, no me doy cuenta
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:Error Compilacion Pascal

Publicado por Diego Romero (996 intervenciones) el 20/07/2008 02:13:07
¿Qué tienes antes de esa línea en el código?

Otra cosa, no es necesario repetir "var" para cada parámetro cuando estos son del mismo tipo, puedes hacer:

PROCEDURE CalculaPersonasxTipodePasaje(var DestinoPasaje2:char; var PersA, PersB, PersC, pers:word);
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:Error Compilacion Pascal

Publicado por pablo (6 intervenciones) el 20/07/2008 03:48:19
Hola Diego, te quiero mandar el ejercicio que hice pero no te lo puedo enviar a tu correo, ya que me aparece como dirección no válida. Decime como puedo hacer

gracias
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:Error Compilacion Pascal

Publicado por Diego Romero (996 intervenciones) el 20/07/2008 12:38:06
Basta con copiar cuatro o cinco líneas de código aquí mismo, no necesito más por ahora.
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:Error Compilacion Pascal

Publicado por Pablo (6 intervenciones) el 20/07/2008 17:16:48
Buenos días, pude enviarte a tu dirección de correo el ejercicio. Te adradeceria mucho si pudieras ver los errores de compilación, no encuentro como resolverlos.

GRACIAS
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:Error Compilacion Pascal

Publicado por Pablo (6 intervenciones) el 20/07/2008 17:31:09
Aca te dejo los 5 subprogramas del programa principal


PROCEDURE IngresoDatosIniciales(var fechaa:string[10]; var interno, linea,proxboleto, recorridos: word);
BEGIN
WRITELN('INGRESE FECHA');READLN(fechaa);
writeln('INGRESE NUMERO DE INTERNO');READLN(interno);
writeln('INGRESE NUMERO DE LINEA');READLN(linea);
writeln('INGRESE NUMERO DEL PROXIMO BOLETO');READLN(proxboleto);
writeln('INGRESE CANTIDAD DE RECORIDOS');READLN(recorridos);

END;


FUNCTION ValorBoleto(DestinoPasaje:char): real;

BEGIN
CASE DestinoPasaje OF
'A','a':ValorBoleto:=0.90;
'B','b':ValorBoleto:=1.00;
'C','c':ValorBoleto:=1.25;

END;


PROCEDURE CalculaPersonasxTipodePasaje(var DestinoPasaje2:char; var PersA, PersB, PersC, pers:word);

BEGIN

CASE DestinoPasaje2 OF
'A','a':PersA:=PersA + pers;
'B','b':PersB:=PersB + pers;
'C','c':PersC:=PersC + pers;

END;


PROCEDURE CalculaRecorridoMAXFACT(FactxRecorri,MAXXFACT:real;J:integer);
var
jMAXFACT:integer;


BEGIN
IF (J=1) or (FactxRecorri> MAXXFACT)
THEN
BEGIN
MAXXFACT:= FactxRecorri;
jMAXFACT:=j;
END
END;


PROCEDURECalculaRecorridoMAXPASAJEROS(MAXXPASAJEROS,AcPersonas:word; N:integer);

var
nMAXPASAJEROS:integer;

BEGIN
IF (N=1) or (AcPersonas>MAXXPASAJEROS)
THEN
BEGIN
MAXXPASAJEROS:=AcPersonas;
nMAXPASAJERPS:=N;
END
END;
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:Error Compilacion Pascal

Publicado por Diego Romero (996 intervenciones) el 21/07/2008 00:55:16
En la función ValorBoleto te falta un end, el del case.

Y a ver si aprendemos a leer. Cuando escribí que pusieras las cuatro o cinco líneas anteriores al procedimiento que comentas quise decir exactamente eso, que pusieras las cuatro o cinco líneas anteriores, nada más. Sospeché que ahí estaba el problema y no me equivoqué.
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:Error Compilacion Pascal

Publicado por Pablo (6 intervenciones) el 22/07/2008 04:07:30
Tengo problemas de codificación en este segmento del código de mi programa:

FOR i:=1 TO cantrecorridos DO
BEGIN
WRITELN('INGRESE CODIGO DE CHOFER');READLN(codchofer);
WRITELN('INGRESE DESTINO');READLN(Pasaje);

WHILE Pasaje<> 'F' DO

BEGIN
ValorBoleto(Pasaje);
writeln('ingrese cantidad de personas');readln(Personas);
AcumPersonas:=AcumPersonas + Personas;

CalculaPersonasxTipodePasaje(Pasaje,PersonasA,PersonasB,
PersonasC,Personas);

writeln('LINEA',numlinea,'INTERNO',numinterno,'CHOFER',codchofer);
writeln('Descienda por detrás');
writeln('_______________________________________________________');
*writeln(' ', fecha,' ', personas,'x $', Valorboleto:1:2,'Nro.', numproxboleto:6);

numproxboleto:= numproxboleto + 1;
writeln('INGRESE DESTINO');READLN(Pasaje);

* acá me marca el error me dice: "Wrong amount of parameters specified
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:Error Compilacion Pascal

Publicado por Diego Romero (996 intervenciones) el 22/07/2008 06:06:35
De qué tipo es "fecha"?
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:Error Compilacion Pascal

Publicado por pablo (6 intervenciones) el 22/07/2008 06:10:55
un integer con el siguiente formato: aaaammdd
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:Error Compilacion Pascal

Publicado por Diego Romero (996 intervenciones) el 22/07/2008 06:51:29
Me temo que no. En un integer no puedes acomodar un número como 20080722. Me parece que has querido decir longint.

Pero ahora que veo de nuevo el código me doy cuenta que dentro de ese writeln has incluido el identificador Valorboleto, el mismo aparece más arriba en el código como si fuera un procedimiento al cual le pasas un parámetro.

ValorBoleto(Pasaje);

Si se trata de un procedimiento entonces no puedes usarlo dentro de un writeln, si se trata de una función entonces sí pero entonces debes pasarle un parámetro, que es lo que te marca en el mensaje de error. O sea, el error está en que ValorBoleto espera un parámetro que no le estás pasando. El error no es del writeln.
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