Hola,
Me parece que lo que hace falta es que utilices ciclos tanto a la hora de leer los datos como a la hora de imprimirlos. Al tener sentencias
readln(a[i]) o
writeln(a[i]) sencillas, solo estarás leyendo/imprimiendo un elemento de la matriz dada. Lo natural sería que esas sentencias estuvieran dentro del cuerpo de un ciclo que usara a `i' como variable de iteración.
Por ejemplo:
Código:
program burbuja;
uses crt;
const
n = 5;
var
i,j,temp:integer;
a:array[1..n] of integer;
begin
clrscr;
writeln('Metodo de ordenacion de la burbuja');
writeln('Escribe ', n, ' numeros enteros');
for i := 1 to n do
readln(a[i]);
for j := (n - 1) downto 1 do
for i := 1 to j do
if (a[i])>(a[i+1]) then
begin
temp := a[i];
a[i] := a[i+1];
a[i+1] := temp;
end;
writeln ('El resultado es:');
for i := 1 to n do
writeln (a[i]);
readln;
end.
He modificado otros pequeños elementos del código, aunque esencialmente sigue trabajando como es de esperarse. :)
Un cordial saludo