рассмотрим, что делает эта программа.
c : = 0; // начальное значение счётчика
for i : = 1 to 9 do // цикл по i
if a[i - 1] < a[i] then begin // если текущий элемент больше предыдущего
c : = c + 1; // то увеличиваем счётчик на 1
t : = a[i]; // и меняем текущий элемент местами с предыдущим
a[i] : = a[i - 1];
a[i - 1] : = t
end;
последние три строчки перед end - обычный алгоритм обмена значениями между двумя переменными (t = a; a = b; b = t).
итак, моделируем, что делает программа и считаем число обменов.
0) 6 9 7 2 1 5 0 3 4 8 - исходный массив
1) 6 9 7 2 1 5 0 3 4 8 -> 9 6 7 2 1 5 0 3 4 8 обмен
2) 9 6 7 2 1 5 0 3 4 8 -> 9 7 6 2 1 5 0 3 4 8 обмен
3) 9 7 6 2 1 5 0 3 4 8 ок
4) 9 7 6 2 1 5 0 3 4 8 ок
5) 9 7 6 2 1 5 0 3 4 8 -> 9 7 6 2 5 1 0 3 4 8 обмен
6) 9 7 6 2 5 1 0 3 4 8 ок
7, 8, 9) ноль будет "всплывать" в конец, 3 обмена
всего будет 6 обменов, c = 6.
Проведем высоту в ромбе, получим прямоугольный треугольник.
a - сторона ромба ( гипотенуза в Δ)
h - высота ромба (катет в Δ), лежит против угла в 30°.
Катет в прямоугольном Δ, лежащий против угла в 30° равен половине гипотенузы. Значит h = a/2
S = (a·a)/2 = a²/2
18= a²/2
36=a²
a₁=6
a₂= - 6 (не удовл. условию задачи)
ответ: а = 6см