В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 7; 3; 2; -1; 6; 1; 0; 4; 8; 5 соответственно, т.е. A[0] = 7; A[1] = 3 и т.д. Определите значение переменной c после выполнения следующего фрагмента программы, записанного ниже на разных языках программирования.
\[\begin{array}{| l | l | l |} \hline \textbf{C++} & \textbf{Python} & \textbf{Pascal}\\ \hline s=0; & s=0 & s:=0;\\ \textit{for($i=0$; $i<=9$; $i++$) }\{ & \textit{for i in range $(10)$:} & \textit{for $i=0$ to $9$ do} \\ \quad \textit{if $(A[i]>A[i+1])$ }\{ & \quad \textit{if $A[i]>A[i+1]:$} & \quad \textit{if $A[i]>A[i+1]$ then}\\ \quad \quad s=s+1; & \quad \quad s=s+1 & \quad \quad begin\\ \quad \quad t=A[i]; & \quad \quad t=A[i] & \quad \quad \quad s=s+1; \\ \quad \quad A[i]=A[i+1]; & \quad \quad A[i]=A[i+1] & \quad \quad \quad \text{$t:=A[i]$;}\\ \quad \quad A[i+1]=t; \text{\}} & \quad \quad A[i+1]=t & \quad \quad \quad \text{$A[i]:=A[i+1]$;}\\ \quad \} && \quad \quad \quad \text{$A[i+1]:=t;$}\\ && \quad \quad end;\\ \hline \end{array}\]
Первый способ решения
С помощью цикла сравниваются текущее значение элемента \(A[i]\) и со следующим элементом \(A[i+1]\). Если \(A[i]>A[i+1]\), то значение переменной \(s\) увеличивается на 1, а элементы массива меняются местами. Пошагово распишем работу программы: \(A=\{7, 3, 2, -1, 6, 1, 0, 4, 8, 5\}\); \(s=0\)
\(7>3\), значит, увеличиваем \(s\) и меняем элементы местами: \(A=\{3, 7, 2, -1, 6, 1, 0, 4, 8, 5\}\); \(s=1\)
\(7>2\), значит, увеличиваем \(s\) и меняем элементы местами: \(A=\{3, 2, 7, -1, 6, 1, 0, 4, 8, 5\}\); \(s=2\)
\(7>(-1)\), значит, увеличиваем \(s\) и меняем элементы местами: \(A=\{3, 2, -1, 7, 6, 1, 0, 4, 8, 5\}\); \(s=3\)
\(7>6\), значит, увеличиваем \(s\) и меняем элементы местами: \(A=\{3, 2, -1, 6, 7, 1, 0, 4, 8, 5\}\); \(s=4\)
\(7>1\), значит, увеличиваем \(s\) и меняем элементы местами: \(A=\{3, 2, -1, 6, 1, 7, 0, 4, 8, 5\}\); \(s=5\)
\(7>0\), значит, увеличиваем \(s\) и меняем элементы местами: \(A=\{3, 2, -1, 6, 1, 0, 7, 4, 8, 5\}\); \(s=6\)
\(7>4\), значит, увеличиваем \(s\) и меняем элементы местами: \(A=\{3, 2, -1, 6, 1, 0, 4, 7, 8, 5\}\); \(s=7\)
\(7<8\), не увеличиваем значение \(s\), массив остается без изменений. Рассмотрим последнюю пару: \(8>5\), увеличиваем \(s\), получаем ответ \(s=8\).
Второй способ решения
Можем заметить, что 7 — самое старшее значение в массиве до предпоследнего элемента. Значит, до \(A[8]\) каждый раз будет увеличиваться значение \(s\) и элементы будут меняться местами. От \(A[0]\) до \(A[7]\) находится 7 пар, каждая даст +1 к значению \(s\), таким образом получаем, что на предпоследнем шаге решение будет выглядеть: \(A=\{3, 2, -1, 6, 1, 0, 4, 7, 8, 5\}\); \(s=7\). Т.к. \(7<8\), не увеличиваем значение \(s\), массив остается без изменений. Рассмотрим последнюю пару: \(8>5\), увеличиваем \(s\), получаем ответ \(s=8\).
Ответ: 8