После выполнения циклических операций переменная s примет значение
Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 9. Перед началом выполнения данного фрагмента эти элементы массива имели значения 2, 4, 6, 1, 7, 2, 3, 6, 7, 2 (т. е. A[0] = 2, A[1] = 4, …, A[9] = 2). Определите значение переменной s после выполнения фрагмента.
Данный алгоритм прибавляет к значению A[0] значение A[i], если A[i] больше A[0] и вычитает значение A[i] в противоположном случае. Затем к значению s прибавляется значение A[0]. Промоделируем работу алгоритма.
1 шаг цикла. A[0] = 2, A[1] = 4. После выполнения шага цикла A[0] = 6, s = 6.
2 шаг цикла. A[0] = 6, A[2] = 6. После выполнения шага цикла A[0] = 0, s = 6.
3 шаг цикла. A[0] = 0, A[3] = 1. После выполнения шага цикла A[0] = 1, s = 7.
4 шаг цикла. A[0] = 1, A[4] = 7. После выполнения шага цикла A[0] = 8, s = 15.
5 шаг цикла. A[0] = 8, A[5] = 2. После выполнения шага цикла A[0] = 6, s = 21.
6 шаг цикла. A[0] = 6, A[6] = 3. После выполнения шага цикла A[0] = 3, s = 24.
7 шаг цикла. A[0] = 3, A[7] = 6. После выполнения шага цикла A[0] = 9, s = 33.
8 шаг цикла. A[0] = 9, A[8] = 7. После выполнения шага цикла A[0] = 2, s = 35.
9 шаг цикла. A[0] = 2, A[9] = 2. После выполнения шага цикла A[0] = 0, s = 35.
Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 9. Перед началом выполнения данного фрагмента эти элементы массива имели значения 3, 5, 8, 2, 1, 4, 3, 1, 2, 3 (т. е. A[0] = 3, A[1] = 5, …, A[9] = 3). Определите значение переменной s после выполнения фрагмента.
Данный алгоритм прибавляет к значению A[0] значение A[i], если A[i] больше A[0] и вычитает значение A[i] в противоположном случае. Затем к значению s прибавляется значение A[0]. Промоделируем работу алгоритма.
1 шаг цикла. A[0] = 3, A[1] = 5. После выполнения шага цикла A[0] = 8, s = 8.
2 шаг цикла. A[0] = 8, A[2] = 8. После выполнения шага цикла A[0] = 0, s = 8.
3 шаг цикла. A[0] = 0, A[3] = 2. После выполнения шага цикла A[0] = 2, s = 10.
4 шаг цикла. A[0] = 2, A[4] = 1. После выполнения шага цикла A[0] = 1, s = 11.
5 шаг цикла. A[0] = 1, A[5] = 4. После выполнения шага цикла A[0] = 5, s = 16.
6 шаг цикла. A[0] = 5, A[6] = 3. После выполнения шага цикла A[0] = 2, s = 18.
7 шаг цикла. A[0] = 2, A[7] = 1. После выполнения шага цикла A[0] = 1, s = 19.
8 шаг цикла. A[0] = 1, A[8] = 2. После выполнения шага цикла A[0] = 3, s = 22.
9 шаг цикла. A[0] = 3, A[9] = 3. После выполнения шага цикла A[0] = 0, s = 22.
Аналоги к заданию № 18500: 18631 Все
Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 10. Перед началом выполнения данного фрагмента эти элементы массива имели значения 3, 5, 8, 12, 11, 5, 7, 2, 9, 6, 11 (т. е. A[0] = 3, A[1] = 5, …, A[10] = 11). Определите значение переменной s после выполнения фрагмента.
Данный алгоритм накапливает значение текущего элемента массива в переменной s, если переменная s больше значения элемента массива с индексом 6, иначе значение текущего элемента массива прибавляется к значению элемента массива с индексом 6. За после первой итерации цикла переменная s станет равна 5. Далее переменная s и значение элемента A[6] будут изменяться следующим образом.
Значения элементов после второй итерации: 3, 5, 8, 12, 11, 5, 7, 2, 9, 6, 11. Переменная s = 13.
Третья итерация: 3, 5, 8, 12, 11, 5, 19, 2, 9, 6, 11. Переменная s = 13.
Четвёртая итерация: 3, 5, 8, 12, 11, 5, 19, 2, 9, 6, 11. Переменная s = 24.
Пятая итерация: 3, 5, 8, 12, 11, 5, 48, 2, 9, 6, 11. Переменная s = 24.
Далее в переменной s до конца работы программы будут накапливаться значения оставшихся элементов массива. Таким образом, s = 24 + 2 + 9 + 6 + 11 = 52.
Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 10. Перед началом выполнения данного фрагмента эти элементы массива имели значения 3, 5, 8, 12, 11, 4, 7, 2, 9, 6, 11 (т. е. A[0] = 3, A[1] = 5, …, A[10] = 11). Определите значение переменной s после выполнения фрагмента.
Данный алгоритм накапливает значение текущего элемента массива в переменной s, если переменная s больше значения элемента массива с индексом 4, иначе значение текущего элемента массива прибавляется к значению элемента массива с индексом 4. После первой итерации цикла переменная s станет равна 5. Далее переменная s и значение элемента A[4] будут изменяться следующим образом.
Значения элементов после второй итерации: 3, 5, 8, 12, 11, 4, 7, 2, 9, 6, 11. Переменная s = 13.
Третья итерация: 3, 5, 8, 12, 23, 4, 7, 2, 9, 6, 11. Переменная s = 13.
Четвёртая итерация: 3, 5, 8, 12, 23, 4, 7, 2, 9, 6, 11. Переменная s = 36.
Пятая итерация: 3, 5, 8, 12, 27, 4, 7, 2, 9, 6, 11. Переменная s = 36.
Шестая итерация: 3, 5, 8, 12, 34, 4, 7, 2, 9, 6, 11. Переменная s = 36.
Седьмая итерация: 3, 5, 8, 12, 36, 4, 7, 2, 9, 6, 11. Переменная s = 36.
Восьмая итерация: 3, 5, 8, 12, 45, 4, 7, 2, 9, 6, 11. Переменная s = 36.
Далее в переменной s до конца работы программы будут накапливаться значения оставшихся элементов массива. Таким образом, s = 36 + 6 + 11 = 53.
Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 9. Перед началом выполнения данного фрагмента эти элементы массива имели значения 3, 5, 8, 2, 1, 4, 3, 1, 2, 6 (т.е. A[0] = 3, A[1] = 5, …, A[9] = 6). Определите значение переменной s после выполнения фрагмента.
Данный алгоритм меняет местами текущий элемент массива и элемент массива, номер которого вычисляется путём вычитания из 8 номера текущего элемента массива, после чего к переменной s прибавляется значение элемента массива, номер которого вычисляется путём вычитания из 8 номера текущего элемента массива, если текущий элемент массива меньше последнего элемента массива.
Изначальный порядок значений: 3, 5, 8, 2, 1, 4, 3, 1, 2, 6.
Первое изменение элементов: 2, 5, 8, 2, 1, 4, 3, 1, 3, 6, s = s + 3.
Второе изменение элементов: 2, 1, 8, 2, 1, 4, 3, 5, 3, 6, s = s + 5.
Третье изменение элементов: 2, 1, 8, 4, 1, 2, 3, 5, 3, 6, s = s + 2.
Четвёртое изменение элементов: 2, 1, 8, 4, 1, 2, 3, 5, 3, 6, s = s + 1.
Пятое изменение элементов: 2, 1, 8, 2, 1, 4, 3, 5, 3, 6, s = s + 2.
Шестое изменение элементов: 2, 1, 3, 2, 1, 4, 8, 5, 3, 6, s = s + 3.
Седьмое изменение элементов: 2, 5, 3, 2, 1, 4, 8, 1, 3, 6, s = s + 5.
Последнее изменение элементов: 3, 5, 3, 2, 1, 4, 8, 1, 2, 6, s = s + 3.
Таким образом, значение переменной s после выполнения фрагмента программы равняется
Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 9. Перед началом выполнения данного фрагмента эти элементы массива имели значения, 2, 4, 8, 6, 1, 7, 2, 3, 6, 7 ( т. е. A[0] = 2, A[1] = 4, …, A[9] = 7). Определите значение переменной s после выполнения фрагмента.
Данный алгоритм меняет местами текущий элемент массива и элемент массива, номер которого вычисляется путём вычитания из 8 номера текущего элемента массива, после чего к переменной s прибавляется значение элемента массива, номер которого вычисляется путём вычитания из 8 номера текущего элемента массива, если текущий элемент массива меньше последнего элемента массива.
Изначальный порядок значений: 2, 4, 8, 6, 1, 7, 2, 3, 6, 7.
Первое изменение элементов: 6, 4, 8, 6, 1, 7, 2, 3, 2, 7, s = s + 2.
Второе изменение элементов: 6, 3, 8, 6, 1, 7, 2, 4, 2, 7, s = s + 4.
Третье изменение элементов: 6, 3, 8, 7, 1, 6, 2, 4, 2, 7, s = s + 6.
Четвёртое изменение элементов: 6, 3, 8, 7, 1, 6, 2, 4, 2, 7, s = s + 1.
Пятое изменение элементов: 6, 3, 8, 6, 1, 7, 2, 4, 2, 7, s = s + 6.
Шестое изменение элементов: 6, 3, 2, 6, 1, 7, 8, 4, 2, 7, s = s + 2.
Седьмое изменение элементов: 6, 4, 2, 6, 1, 7, 8, 3, 2, 7, s = s + 4.
Последнее изменение элементов: 2, 4, 2, 6, 1, 7, 8, 3, 6, 7, s = s + 2.
Таким образом, значение переменной s после выполнения фрагмента программы равняется
Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 11. Перед началом выполнения данного фрагмента эти элементы массива имели значения 20, 19, 33, 21, 42, 13, 12, 24, 4, 22, 6, 10 (т.е. A[0] = 20, A[1] = 19, …, A[11] = 10). Определите значение переменной s после выполнения фрагмента.
Данный алгоритм умножает значение переменной s на значение переменной i и меняет местами текущий элемент массива и элемент массива с номером n, если текущий элемент массива меньше элемента массива с номером n.
Изначальный порядок значений: 20, 19, 33, 21, 42, 13, 12, 24, 4, 22, 6, 10.
Первое изменение элементов: 20, 13, 33, 21, 42, 19, 12, 24, 4, 22, 6, 10, s = s · 5 = 5.
Второе изменение элементов: 20, 12, 33, 21, 42, 19, 13, 24, 4, 22, 6, 10, s = s · 6 = 30.
Последнее изменение элементов: 20, 4, 33, 21, 42, 19, 13, 24, 12, 22, 6, 10, s = s · 8 = 240.
Таким образом, значение переменной s после выполнения фрагмента программы равняется 240.
В программе используется одномерный целочисленный массив A с индексами от 0 до 11. Значения элементов равны 14, 13, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9 соответственно, т. е. A[0] = 14, A[1] = 13 и т. д. Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на пяти языках программирования).
нц для i от 0 до 11
Данный алгоритм сравнивает каждый элемент массива с элементом массива с индексом 1, после чего либо накапливает в переменной s значение элемента A[i] и индекса i, если A[i] > A[1], либо приравнивает элементу массива с индексом 1 значение элемента массива A[i].
Изначальный порядок значений: 14, 13, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9.
Первая итерация: 14, 13, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9. Теперь s = 14 + 0 = 14.
Вторая итерация: 14, 13, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9.
Третья итерация: 14, 13, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9. Теперь s = 14 + 15 + 2 = 31.
Четвёртая итерация: 14, 8, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9.
Пятая итерация: 14, 4, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9.
Шестая итерация: 14, 4, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9. Теперь s = 31 + 12 + 5 = 48.
Далее элементы массива изменяться не будет. К переменной s к концу исполнения цикла будет прибавленна сумма значений и индексов оставшихся элементов массива.
Таким образом, значение переменной s после выполнения данного фрагмент программы равно:
s = 48 + 30 + 6 + 21 + 7 + 22 + 8 + 16 + 9 + 5 + 10 + 9 + 11 = 202.
В программе используется одномерный целочисленный массив A с индексами от 0 до 11. Значения элементов равны 14, 13, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9 соответственно, т. е. A[0] = 14, A[1] = 13 и т. д. Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на пяти языках программирования).
Данный алгоритм сравнивает каждый элемент массива с элементом массива с индексом 0, умноженным на индекс текущего элемента массива, после чего либо накапливает в переменной s значение элемента A[i], если A[i]
s = 13 + 15 + 8 + 4 + 12 + 30 + 21 + 22 + 16 + 5 + 9 = 155.
В программе используется одномерный целочисленный массив A с индексами от 0 до 10. Значения элементов равны 4, 3, 6, 8, 5, 8, 4, 2, 10, 9, 4 соответственно, т. е. A[0] = 4, A[1] = 3 и т. д. Определите значение переменной c после выполнения следующего фрагмента программы (записанного ниже на пяти языках программирования).
нц для i от 1 до 9
for i := 1 to 9 do begin
if A[i] = A[0] then begin
Заметим, что первый раз условие в цикле выполнится, когда A[i] = A[0]. После этого значения A[i] и A[i+1] поменяются местами, поэтому на всех последующих шагах условие A[i] = A[0] также будет выполнено. Каждый раз при выполнении условия A[i] = A[0] переменная c увеличивается на единицу. Первый раз условие будет выполнено при i=6, поэтому после выполнения фрагмента программы c будет равно 4.
В программе используется одномерный целочисленный массив A с индексами от 0 до 10. Значения элементов равны 4, 3, 6, 8, 4, 8, 2, 10, 9, 14, 4 соответственно, т. е. A[0] = 4, A[1] = 3 и т. д. Определите значение переменной c после выполнения следующего фрагмента программы (записанного ниже на пяти языках программирования).
нц для i от 1 до 9
for i := 1 to 9 do begin
if A[i] = A[0] then begin
Заметим, что первый раз условие в цикле выполнится, когда A[i] = A[0]. После этого значения A[i] и A[i+1] поменяются местами, поэтому на всех последующих шагах условие A[i] = A[0] также будет выполнено. Каждый раз при выполнении условия A[i] = A[0] переменная c увеличивается на единицу. Первый раз условие будет выполнено при i=4, поэтому после выполнения фрагмента программы c будет равно 6.
Аналоги к заданию № 11248: 11275 Все
Данный алгоритм отнимает от значения следующего элемента массива значение текущего, если текущий элемент массива меньше следующего. Если текущий элемент массива больше или равен следующему, то от значения текущего элемента массива отнимается значение следующего элемента массива. При этом на каждой итерации цикла к значению s прибавляется значение текущего элемента массива после его обработки.
Изначальный порядок значений: 2, 4, 6, 1, 7, 2, 3, 6, 7, 2.
Первое изменение элементов: 2, 2, 6, 1, 7, 2, 3, 6, 7, 2, s = s + 2.
Второе изменение элементов: 2, 2, 4, 1, 7, 2, 3, 6, 7, 2, s = s + 2.
Третье изменение элементов: 2, 2, 3, 1, 7, 2, 3, 6, 7, 2, s = s + 3.
Четвёртое изменение элементов: 2, 2, 3, 1, 6, 2, 3, 6, 7, 2, s = s + 1.
Пятое изменение элементов: 2, 2, 3, 1, 4, 2, 3, 6, 7, 2, s = s + 4.
Шестое изменение элементов: 2, 2, 3, 1, 4, 2, 1, 6, 7, 2, s = s + 2.
Седьмое изменение элементов: 2, 2, 3, 1, 4, 2, 1, 5, 7, 2, s = s + 1.
Восьмое изменение элементов: 2, 2, 3, 1, 4, 2, 1, 5, 2, 2, s = s + 5.
Последнее изменение элементов: 2, 2, 3, 1, 4, 2, 1, 5, 0, 2, s = s + 0.
Таким образом, значение переменной s после выполнения фрагмента программы равняется
Сегодня будем тренироваться решать 19 задание из ЕГЭ по информатике.
В девятнадцатом задании ЕГЭ по информатике обычно даются задачи, в которых есть программный код на пяти языках программирования, и нужно показать умение работать с массивами.
Все примеры буду рассматривать на языке программирования Паскаль, который популярен на уроках информатики.
Пусть у нас есть пять переменных, и их первоначальные значения нужно увеличить в два раза. Тогда без массива код будет выглядеть следующим образом:
Видим, что приходится каждую переменную умножать отдельно.
Теперь тоже самое сделаем с помощью массива.
Обратите внимание, что удвоение во втором случае идёт с помощью двух строчек, когда в первом случае, удвоение получается с помощью пяти строчек. Если бы переменных было 1000, то выигрыш в объёме кода, был бы ещё большим.
Схематично наш массив можно представить так:

Это те же 5 переменных, но они объединены общем именем A. К каждому элементу массива можно обратится по индексу A[1], A[2] и т.д.
Здесь мы задали нумерацию элементов массива от 1 до 5. В паскале можно задать нумерацию элементов массива и от нуля. Например A:array[0..24] of integer;
Удобство использования массива заключается в том, что его элементы можно перебирать и обрабатывать с помощью ЦИКЛОВ! Значит, обычно массив и цикл работают в связке.
Не терпится уже разобрать первый пример из предположительных задач ЕГЭ по информатике.
Примеры решения задач 19 задания из ЕГЭ по информатике
В программе используются целочисленный массив A с индексами от 0 до 9. Значения элементов массива равны 4; 5; 4; 7; 6; 3; 9; 11; 7; 8 соответственно, т.е. A[0] = 4; A[1] = 5 и т.д.
Определите значение переменной k после выполнения следующего фрагмента программы, записанной ниже на разных языках программирования.
| Бейсик | Python |
|---|---|
| Паскаль | Алгоритмический язык |
| Си++ | |
Решение:
Рассмотрим программу на языке Паскаль.
В начале переменная k = 0.
Затем начинается ЦИКЛ. Цикл будет выполнятся, пока переменная i «бежит» от 0 до 8.
При первом проходе ЦИКЛА i = 0, при втором i = 1 и т.д.
Внутри цикла проверяется условие (A[i] > A[i+1]). Если условие ВЕРНО, то программа прибавляет к переменной k единицу, и плюс, меняет значения ячеек массива A[i] и A[i+1] с помощью дополнительной переменной t.

Про замену значений двух переменных у меня на сайте написана целая статья!
Чтобы понять, чему равна переменная k после окончания программы, нужно понять, сколько раз будет верно условие внутри цикла.
Сам массив нам дан! (4; 5; 4; 7; 6; 3; 9; 11; 7; 8).

На рисунке показана каждая итерация ЦИКЛА при всех значениях переменной i. Зелёной галочкой отмечены те итерации, где сработает условие, и, значит, переменная k будет увеличена на 1.
Важно: После первого срабатывания условия, программа меняет значения элементов A[1] и A[2]. И наш массив принимает следующий вид: 4; 4; 5; 7; 6; 3; 9; 11; 7; 8. И при следующем проходе A[2] снова принимает значение «5», а не «4»! И так во всех случаях, когда условие срабатывает!
Таким образом, значение k после выполнения программы равна 5.
Продолжаем подготовку к 19 заданию из ЕГЭ по информатике.
Задача (ЕГЭ по информатике, 2019, Москва)
Определите значение переменной s после выполнения фрагмента этой программы (записанной ниже на разных языках программирования)
| Бейсик | Python |
|---|---|
| Паскаль | C++ |
Решение:
В ЦИКЛЕ i проходит каждое значение от 0 до 9. В теле Цикла только условие! А в условии проверяется: будет ли элемент массива A с индексом i больше, чем A[n].
В первый раз n=6 (A[6] = 8). Напоминаю, что в этой задаче номера индексов массива начинаются с нуля! Но если условие «сработает», то A[n] поменяется.
Если условие выполнится, то значение A[n] станет равно A[i]. Опять присутствует блок, где элементы массива A[n] и A[i] меняются значениями (Найдите этот кусок кода сами!). И, соответственно, сравнивать в условии будем тоже с новым значением.
Причем, сначала происходит суммирование для переменной s, а потом уже замена значения для A[n].
| i | A[i] | A[n] | A[i] > A[n] | A[i] mod A[n] | s |
| 0 | 2 | 8 | 2 > 8 | — | 0 |
| 1 | 3 | 8 | 3 > 8 | — | 0 |
| 2 | 5 | 8 | 5 > 8 | — | 0 |
| 3 | 6 | 8 | 6 > 8 | — | 0 |
| 4 | 10 | 8 | 10 > 8 | 2 | 2 |
| 5 | 4 | 10 | 4 > 10 | — | 2 |
| 6 | 10 | 10 | 10 > 10 | — | 2 |
| 7 | 6 | 10 | 6 > 10 | — | 2 |
| 8 | 12 | 10 | 12 > 10 | 2 | 4 |
| 9 | 9 | 12 | 9 > 12 | — | 4 |
Таким образом, по окончании данного фрагмента программы, получится в переменной s значение 4.
Ещё один пример 19 задания из реального экзамена, который был в 2020 году в Москве!
Задача (ЕГЭ по информатике, 2020, Москва)
Представленный ниже фрагмент программы обрабатывает элементы одномерного целочисленного массива A c индексами от 0 до 11. Перед началом выполнения данного фрагмента эти элементы массива имели значения согласно таблице:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 5 | 43 | 20 | 7 | 13 | 7 | 20 | 13 | 2 | 33 | 15 | 5 |
Определите значение переменной s после выполнения фрагмента этой программы (записанного ниже на разных языках программирования).
| Бейсик | Python |
|---|---|
| Паскаль | C++ |
Решение:
| i | A[i-1] | A[i] | A[i-1] div A[i] 0 | 43 | 43 (в конце итерации) |
| 2 | 43 | 20 | 2 | 43 | 40 (в конце итерации) |
| 3 | 40 | 7 | 5 | 43 | 21 (в конце итерации) |
| 4 | 21 | 13 | 1 | 56 | 13 (в конце итерации) |
| 5 | 13 | 7 | 1 | 63 | 7 (в конце итерации) |
| 6 | 7 | 29 | 0 | 92 | 29 (в конце итерации) |
| 7 | 29 | 13 | 2 | 92 | 91 (в конце итерации) |
| 8 | 91 | 2 | 45 | 92 | 16 (в конце итерации) |
| 9 | 16 | 33 | 0 | 125 | 33 (в конце итерации) |
| 10 | 33 | 15 | 2 | 125 | 150 (в конце итерации) |
| 11 | 150 | 5 | 30 | 125 | 55 (в конце итерации) |
Ответ: 125
На этом всё! Счастливого ЕГЭ по информатике!




