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

c := 0;

for i := 1 to 9 do

if A[i-1] >= A[i] then begin

t:= A[i];

A[i]:= A[i - 1];

A[i-1]:= t

end

else

c:= c + 1;

Липапит Липапит    1   22.04.2020 20:11    1

Ответы
SashaWest SashaWest  22.04.2020 22:30

23 балла для решения данной хрени, слишком мало...

ПОКАЗАТЬ ОТВЕТЫ
YeezyM YeezyM  22.04.2020 22:30

Рассмотрим, что делает эта программа.

 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

Подробнее - на -

Объяснение:

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Другие предметы