[ Foro de Pascal ]

Subprogramas

29-Nov-2017 18:46
Ivan del Pino
1 Respuestas

Hola, veréis acabo de hacer un programas que trata de que con subprogramas de tipo procedimiento, tengo que ordenar tres números cualquieras de menor a mayor.
El caso es que yo he hecho este programa, pero a la hora de arrancar no me arranca el programas, sin darme ningún error ni nada.

 
program prog; 
	{Proposito: ordenar tres numeros de menor a mayor}
	{Entrada: los tres numeros desordenados}
	{Salida: los tres numero ordenados de menor a mayor}
var n1, n2, n3, nalto, nbajo, nmedio: integer;s
procedure numeromayor (n1, n2, n3, nalto: integer);
begin
	if (n3>n2) and (n3>n1) then
	nalto:= n3;
	if (n1>n3) and (n1>n2) then
	nalto:= n1;
	if (n2>n1) and (n2>n3) then
	nalto:= n2;
end;
procedure numeromenor (n1, n2, n3, nbajo: integer);
begin
	if (n1<n3) and (n1<n2) then
	nbajo:= n1;
	if (n2<n1) and (n2<n3) then
	nbajo:= n2;
	if (n3<n1) and (n3<n2) then
	nbajo:= n3;
end;
procedure numeromedio (n1, n2, n3, nmedio: integer);
begin
	if (n1>n2) and (n1<n3) then
	nmedio:= n1;
	if (n1>n3) and (n1<n2) then
	nmedio:= n1;
	if (n2>n1) and (n2<n3) then
	nmedio:= n2;
	if (n2>n3) and (n2<n1) then
	nmedio:= n2;
	if (n3>n1) and (n3<n2) then
	nmedio:= n3;
	if (n3>n2) and (n3<n1) then
	nmedio:= n3;
end;
 
begin
	writeln('Escribe los tres numeros que quieres ordenar');
	readln(n1, n2, n3);
	numeromayor
	numeromenor
	numeromedio
	writeln('Los numeros ordenados de menor a mayor son estos');
	writeln(nbajo);
	writeln(nmedio);
	writeln(nalto);
	readln();
 
 
end.
 


¿Me podríais decir que es lo que pasa para que este programas no arranque?
Muchas gracias.


29-Nov-2017 18:48
Nacho Cabanes (+32)

Es que no es válido hacer cosas como "writeln(nbajo); " si "nbajo" es un "procedure" en vez de una "function", porque los procedimientos no devuelven ningún valor.






Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...