Pascal/Turbo Pascal - Fallo de campilacion

   
Vista:

Fallo de campilacion

Publicado por Ginkoss (7 intervenciones) el 21/01/2015 17:54:17
Buenas, me encuentro escribiendo un subprograma sencillo, pero no consigo averiguar que hago mal. Tengo pascal un poco oxidado y no entiendo porque me falla. Aqui el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program prog;
VAR
base,numero:integer;
 
function logEntero(var n,b:integer):integer;
	begin
	if n<b then
		logEntero:=0
	else
		logEntero:=1+logEntero(n DIV b,b);
	end;
begin
writeln ('Introduca "b" y "n" para calcular la parte entera');
writeln ('del logaritmo en base "b" de "n"');
read(base,numero);
writeln('Resultado: ',logEntero(numero,base));
end.

El error en compilacion se produce en la parte señalada. el codigo de error que me devuelve es:" Variable identifier expected"
¿Alguien me puede echar una mano?
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

Fallo de campilacion

Publicado por David (144 intervenciones) el 21/01/2015 19:30:16
Yo lo he solucionado usando una variable intermedia en lugar de poner directamente la operación y funciona correctamente. Te dejo aquí el código.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program prog;
VAR
base,numero:integer;
 
function logEntero(var n,b:integer):integer;
	begin
	if n<b then
		logEntero:=0
	else
          begin
	      aux:=n div b;
              logEntero:=1+logEntero(aux,b);
 
          end;
	end;
begin
writeln ('Introduca "b" y "n" para calcular la parte entera');
writeln ('del logaritmo en base "b" de "n"');
read(base,numero);
writeln('Resultado: ',logEntero(numero,base));
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
Imágen de perfil de xve

Fallo de campilacion

Publicado por xve (21 intervenciones) el 21/01/2015 22:04:17
Gracias por compartirlo David!!
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

Fallo de campilacion

Publicado por Ginkoss (7 intervenciones) el 22/01/2015 11:32:48
Gracias por la ayuda. Sin embargo, ya lo solucione. Era tan simple como quitar "var" en la cabecera de la funcion. De esa forma no me salia error. Vamos, que parece que habia escrito mal la cabecera. De todas muchas gracias por intentar ayudarme y perdona las molestias n.n
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