Pascal/Turbo Pascal - Program CalculaResta

   
Vista:

Program CalculaResta

Publicado por Clive (7 intervenciones) el 14/11/2012 16:05:24
Hola. Soy nuevo en la programacion, tengo un problema con un programa de restar dos numeros enteros en pascal. El programa que he de corregir es el que muestro a continuacion:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Program CalculaResta;
 
Procedure CalculaResta(primer_valor, segundo_valor: Integer):Integer;
Begin
	CalculaResta :=primer_valor-segundo_valor;
	MuestraPorPantalla(CalculaResta);
End;
 
Procedure MuestraPorPantalla(resultado: Integer);
Begin
	Writeln("El resultado es ",resultado);
End;
 
Var
	Valor1:integer;
	Valor2:integer;
begin
	write('Introduzca el primer numero : ');
	readln(Valor1);
	write('Introduzca la cantidad a restar : ');
	readln(Valor2);
	CalculaResta(Valor1,Valor2);
end.


No se puede modificar el numero de procedimientos(procedure), tienes que ser con dos, solamente. Hasta ahora he corregido varias cosas que estaban mal pero ha llegado un punto en que no soy quien a encontrar que puede estar fallando, he intentando varias cosas pero o sigue como estaba o aumentan los errores. Lo que he corregido es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Program CalculaResta;
 
Procedure Resta(Valor1, Valor2: Integer):Integer;
Begin
	Resta :=Valor1-Valor2;
	writeln(Resultado);
End;
 
Procedure MuestraPorPantalla(resultado: Integer);
Begin
	Writeln("El resultado es ",resultado);
End;
 
Var
	Valor1:integer;
	Valor2:integer;
begin
	write('Introduzca el primer numero : ');
	readln(Valor1);
	write('Introduzca la cantidad a restar : ');
	readln(Valor2);
	Resta(MuestraPorPantalla);
end.
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

Program CalculaResta

Publicado por ramon (2072 intervenciones) el 14/11/2012 18:49:54
{Te comento esto tuyo es:

1
2
3
4
5
6
7
8
9
10
11
12
13
Procedure Resta(Valor1, Valor2: Integer):Integer;
Begin
	Resta :=Valor1-Valor2;
	writeln(Resultado);
End;
 
Debiera de ser :
 
function  Resta(Valor1, Valor2: Integer):Integer;
Begin
	Resta :=Valor1-Valor2;
	writeln(Resultado);
End;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Program CalculaResta

Publicado por Clive (7 intervenciones) el 14/11/2012 18:55:50
Si, se que se podria hacer de esa manera, el problema es que los procedure no se pueden modificar, de eso se trata el ejercicio. Se puede modificar el resto de cosas incluido lo que hay dentro de los "procedures" .
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

Program CalculaResta

Publicado por Clive (7 intervenciones) el 14/11/2012 19:12:51
El enunciado dice: El siguiente programa realiza la resta de dos números introducidos por el usuario y muestra el valor por pantalla. Encuentre los errores que contiene e indique cuáles son en el apartado de respuesta. Utilice para ello el compilador.
Corrija los errores, recuerde no modificar el número de procedimientos.
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

Program CalculaResta

Publicado por ramon (2072 intervenciones) el 14/11/2012 19:18:11
En tonces el error es ese procedimiento no retorna valores.

La forma es errónea

Procedure Resta(Valor1, Valor2: Integer) {:Integer esto esta mal hay} ;
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

Program CalculaResta

Publicado por ramon (2072 intervenciones) el 14/11/2012 19:13:02
Disculpa lo que tu pones no funciona como procedure puesto que un procedimiento no retorna valores, tendrías que hacer esto.
1
2
3
4
5
6
7
8
9
var
   rest : integer;
 
Procedure Resta(Valor1, Valor2: Integer);
Begin
Resta :=Valor1-Valor2;
rest := resta;      { rest seria una variable externa o sea general}
writeln(Resultado);
End;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Program CalculaResta

Publicado por Clive (7 intervenciones) el 14/11/2012 19:36:07
Ok. Muchas gracias!!, ya me di cuenta del fallo. Un saludo. Bye
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