Pascal/Turbo Pascal - me tiene loco no consigo el error

 
Vista:
Imágen de perfil de cesar
Val: 20
Ha disminuido su posición en 2 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

me tiene loco no consigo el error

Publicado por cesar (10 intervenciones) el 01/08/2017 00:34:52
Program promedio;




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Var
a:longint;
 p:longint;
   Function promN(n:integer):integer;
begin
promN:= 0 ;
 
  for a:=1 to n do
   promN:=promN+a;
 
writeln(promN(3));
 
 begin
   	p:= a/n;
         a := a+n;
        readln;
 
end.

ERROR ES:
prom3.lpr(22,10) Error: Incompatible types: got "Extended" expected "LongInt"
SI SE DAN CUENTA ME ESTADANDO EL ERROR EN LA LINEA 22 PARA LA VARIABLE a SEGUN EL PROGRAMA LAZARUS DEBO poner a en longint.y como se dan cuenta Var
a:longint; puse la L en mayuscula y me da el error espero su ayuda -Cesar-
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
sin imagen de perfil
Val: 287
Oro
Ha mantenido su posición en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

me tiene loco no consigo el error

Publicado por dario (38 intervenciones) el 01/08/2017 05:27:09
Hola, no logro entender que estas haciendo, cual es el enunciado del problema.
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

me tiene loco no consigo el error

Publicado por David (224 intervenciones) el 01/08/2017 16:27:52
El error de compliación se soluciona cambiando el tipo de variable longint por extended. Luego hay, a mi entender, errores de concepto:
Utilizas una variable "a" que no está inicializada en ninguna parte, con lo cual no sabemos que valor tendrá cuando se ejecute el programa principal.

Luego utilizas el parámetro de entrada de la función para sacar contenido de la misma (¿?)(o eso entiendo yo según lo que has puesto) sin hacer además, ninguna llamada a la función en el programa principal. ¿Para qué crearla si no se la referencia después?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Var
 
a:longint;
 
 p:extended;
 
   Function promN(n:integer):integer; {suponiendo que queramos utilizar n para sacar datos de la función sin referenciarla debería ser como variable por referencia (var n:integer).. }
 
begin
 
promN:= 0 ;
 
 
 
  for a:=1 to n do
 
   promN:=promN+a;
 
 
 
writeln(promN(3));
 
{ supongo que este es el final de la función. Te faltaría un end;}
 
 begin
 
   	p:= a/n;
 
         a := a+n;
 
        readln;
 
 
 
end.

En fin, como ya te han dicho antes, sería conveniente que pusieras algún enunciado o explicaras qué intentas hacer.

Un saludo.
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

me tiene loco no consigo el error

Publicado por ramon (2158 intervenciones) el 01/08/2017 22:57:36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{Seria algo así}
 
Var
   n : integer;
   a:longint;
   p:longint;
 
   Function promN(n:integer):integer;
  begin
  if n = 0 then
  promN:= 1
  else
   promN := n * promN(n - 1);
 end;
 
 
 begin
       n := 3;
        writeln(promN(n));
   	p := a div n;
        writeln(p);
         a := a+n;
         writeln(a);
         readln;
 
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