[ 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 (+84)

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.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)