Во-первых,
RandomIze достаточно вызвать всего один раз в файле проекта (.dpr) сразу после
begin.
Во-вторых, не пойму этого оборота:
Код:
for i:=0 to 36 do
mas[i]:=(10-Random(20));
for i:=0 to 36 do
If mas[i]<0 then mas[i]:=0;
Первым циклом заполняем массив случайными числами в диапазоне от -10 до 10, а во втором все отрицательные числа сводим к нулю. Не проще ли было вместо этих двух циклов написать один?:
Код:
for i:=0 to 36 do
mas[i]:=Random(10));
В-третьих, после задания массива сразу идет сортировка. Думаю, следовало бы сначала занести сформированный массив в StringGrid1, потом отсортировать (вижу реализацию метожа пузырька

, хотя он какой-то странный: почему j от 25 до i?), а потом аналогичным образом вывести массив в StringGrid2.
В-четвертых, не зная размерность таблицы (StringGrid.RowCount/ColCount) не готов сказать как лучше сделать заполнение, но кажется, что написанный метод содержит много излишек.