В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 6; 9; 7; 2; 1; 5; 0; 3; 4; 8 соответственно, т.е. A[0] = 6; A[1] = 9 и т.д. Определите значение переменной c после выпол...

В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 6; 9; 7; 2; 1; 5; 0; 3; 4; 8 соответственно, т.е. A[0] = 6; A[1] = 9 и т.д. Определите значение переменной c после выполнения следующего фрагмента программы. c := 0; for i := 1 to 9 do if A[i - 1] < A[i] then begin c := c + 1; t := A[i]; A[i] := A[i - 1]; A[i - 1] := t end;
Гость
Ответ(ы) на вопрос:
Гость
Рассмотрим, что делает эта программа.   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.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы