Другие языки программирования и технологии

Упорядочить массив по убыванию из 10 случайных чисел на промежутке от -500 до 500. Информатика, 9 класс.

Программа должна выглядит так, но при проверки указывает на ошибку, но я не могу понять, как исправить .Все ли правильно?
Program Ex;
Uses CRT;
Const n=10;
Var
V:array[1..n] of Integer;
Procedure nm;
Var
i:Integer;
Begin
i:Integer;
Begin
Randomize;
for i:=1 to n do
begin
V[i]:=Random(500);
end;
End;
Procedure out_mas;
Var
i:Integer;
Begin
for i:=1 to n do
begin
write(V[i], ' ' );
end;
End;
Procedure order_down;
Var i,j,tmp:integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if V[i]<=V[j] then begin
tmp:=V[i];
V[i]:=V[j];
V[j]:=tmp;
Writeln;
end;
BEGIN
nm;
Writeln('Исходный массив: ');
out_mas;
writeln;
order_down;
Writeln('Упорядоченный по убыванию массив: ')
out_mas;
End.
program q186693969;
const
n = 10;
var
i, j: Integer;
a: array[1..n] of Integer;
begin
Randomize;
for i := 1 to n do
begin
a[i] := Random(500 - - 500 + 1) - 500;
Write(a[i]:5);
end;
WriteLn;
for i := 1 to n - 1 do
for j := i + 1 to n do
if a[i] < a[j] then
begin
a[i] := a[i] xor a[j];
a[j] := a[j] xor a[i];
a[i] := a[i] xor a[j];
end;
for i := 1 to n do
Write(a[i]:5);
Readln;
end.

или

program q186693969;
const
n = 10;
var
a: array[1..n] of Integer;

procedure Print(a: array of Integer);
var
i: Integer;
begin
for i := Low(a) to High(a) do
Write(a[i]:5);
WriteLn;
end;

procedure Rand(var a: array of Integer);
var
i: Integer;
begin
Randomize;
for i := Low(a) to High(a) do
a[i] := Random(500 - -500 + 1) - 500;
end;

procedure Sort(var a: array of Integer);
var
i, j: Integer;
begin
for i := Low(a) to Pred(High(a)) do
for j := i + 1 to High(a) do
if a[i] < a[j] then
begin
a[i] := a[i] xor a[j];
a[j] := a[j] xor a[i];
a[i] := a[i] xor a[j];
end;
end;

begin
Rand(a);
Print(a);
Sort(a);
Print(a);
Readln;
end.
НН
Неизвестный Неизвестный
53 631
Лучший ответ
К отвечающему выше, здесь правда даж соображать почти не надо. Хоть по минимуму мозг включи. Гуглили? плохо гуглили. Это задание элементарнейшее. И уж если хочешь, чтоб тебе помогли, выкладывай код отформатированный, а не этот столбик. и Полную информацию об ошибках.
Сергей Копинов если я плохо гуглила, то вы нашли? Элементарное задание может для вас, но я не могу понять. Это не значить, что я тупая.
Procedure nm;
Var
i:Integer;
Begin
i:Integer;
Begin
АM
Александр Mun
7 018
Сергей Копинов а в чем ошибка заключается?
В какой строке выдает ошибку?