--este programa presenta la utilizacion de
--while anidados para ordenar un arreglo ascendientemente

package bsort is
	arreglo:array(1..10) of integer;
	valor:integer;
	tecla:character;
	
	procedure leer is
	i:integer;
	begin
		for i in 1..10 loop
			write(i);write(':');write(' ');
			read(valor);
			arreglo(i):=valor;
		end loop;
	end;
	
	procedure escribir is
	i:integer;
	begin
		for i in  1..10 loop
			write(arreglo(i));write(' ');
		end loop;
		writeln;
	end;
	
	procedure sort is
	i,j,temp:integer;
	begin
		i:=1;
		while i<=10 loop 
			j:=1;
			while j<=10 loop
				if arreglo(j)>arreglo(i)
				then
					temp:=arreglo(i);
					arreglo(i):=arreglo(j);
					arreglo(j):=temp;
				end if;
				j:=j+1;
			end loop;
			i:=i+1;
		end loop;
	end;
	
begin
	loop
		leer; --leer valores del arreglo a ordenar
		escribir; --imprimir en pantalla el arreglo
		sort; --ordenar
		escribir; --imprimir en pantalla el arreglo ordenado
		loop
			write('(');write('c');write('|');write('x');write(')');write(':');write(' ');
			read(tecla); --leer tecla de continuar x salir c continuar
			writeln;
			exit when tecla='x' or tecla='c'; --si no es otra tecla continuar preguntando
		end loop;
		
		exit when tecla = 'x';
	end loop;
	
end;