
В программе используется одномерный целочисленный массив А с индексами от 0 до 9. Значения
элементов равны 1,2,4,3,5,6,8,7,3,4,т.е А(0)=1 и тд. Определите значение переменной s после выполнения следующего фрагмента программы: s:=0 for i:=1 to 9 do if A[i-1] A[i]:=A[i-1]+1 s:=s+1 end

Ответы на вопрос

s := 0; (начальное значение счётчика)
for i := 1 to 9 do (цикл по i)
if A[i - 1] < A[i] then begin (если текущий элемент больше предыдущего,
s := s + 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 обменов, s = 6.
Ответ: 6



Данный фрагмент программы содержит цикл for, который выполняется 9 раз, начиная с i=1 и заканчивая i=9. В каждой итерации цикла выполняется проверка условия if A[i-1] < A[i]. Если условие истинно, то значение A[i] изменяется на A[i-1]+1. При этом переменная s увеличивается на 1.
Изначально массив А содержит следующие значения: 1,2,4,3,5,6,8,7,3,4.
Первая итерация цикла:
i = 1 A[0] = 1, A[1] = 2 Условие if выполняется, так как A[0] < A[1] A[1] присваивается значение A[0] + 1, то есть 2 s увеличивается на 1, s = 1
Массив А после первой итерации: 1,2,4,3,5,6,8,7,3,4
Вторая итерация цикла:
i = 2 A[1] = 2, A[2] = 4 Условие if не выполняется, так как A[1] >= A[2]
s увеличивается на 1, s = 2
Массив А после второй итерации: 1,2,4,3,5,6,8,7,3,4
Третья итерация цикла:
i = 3 A[2] = 4, A[3] = 3 Условие if не выполняется, так как A[2] >= A[3]
s увеличивается на 1, s = 3
Массив А после третьей итерации: 1,2,4,3,5,6,8,7,3,4
Четвертая итерация цикла:
i = 4 A[3] = 3, A[4] = 5 Условие if выполняется, так как A[3] < A[4] A[4] присваивается значение A[3] + 1, то есть 4 s увеличивается на 1, s = 4
Массив А после четвертой итерации: 1,2,4,3,4,6,8,7,3,4
Пятая итерация цикла:
i = 5 A[4] = 4, A[5] = 6 Условие if выполняется, так как A[4] < A[5] A[5] присваивается значение A[4] + 1, то есть 5 s увеличивается на 1, s = 5
Массив А после пятой итерации: 1,2,4,3,4,5,8,7,3,4
Шестая итерация цикла:
i = 6 A[5] = 5, A[6] = 8 Условие if вып


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili