Program z1;
var s,a,b:real;
begin
writeln('введите стороны прямоугольника');
readln(a,b);
s:=a*b;
writeln(s);
end.
Https://studopedia.ru/3_177371_osnovnie-algoritmicheskie-konstruktsii-bazovie-algoritmi.html
Рассмотрим, что делает эта программа.
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) <span>6 9 7 2 1 5 0 3 4 8 -> </span><span>9 6 7 2 1 5 0 3 4 8 ОБМЕН
2) </span>9 6 7 2 1 5 0 3 4 8 -> <span>9 7 6 2 1 5 0 3 4 8 ОБМЕН
3) </span>9 7 6<span> 2 1 5 0 3 4 8 ОК
4) </span>9 7 6<span> 2 1 5 0 3 4 8 ОК
5) </span>9 7 6 2 1 5 0 3 4 8 -> 9 7 6<span> 2 5 1 0 3 4 8 ОБМЕН
6) </span>9 7 6<span> 2 5 1 0 3 4 8 ОК
7, 8, 9) Ноль будет "всплывать" в конец, 3 ОБМЕНА
Всего будет 6 обменов, <u>c = 6</u>.</span>