Учеба и наука
дан одномерный целочисленный масси от 0 до 9. Значения: 1,2,4,5,7,8,9,6,03. J =6/ пока A[j]A[j+1] T = A[j] A[j]=A[j+1] A[J+1]=T J=J-1 / найти значение J - вопрос №1992341
июнь 16, 2016 г.
-
Всего ответов: 1
-
Рассмотрим, что делает эта программа.
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.