25 задание ЕГЭ
Алгоритмы обработки массивов
Предисловие
Эта статья будет на порядок больше, чем предыдущие, потому что 25 задание сравнительно нетрудное, хочется разобраться со всеми демо-версиями с 2009 по 2019 годы.
Демонстрационный вариант ЕГЭ 2019 г. ИНФОРМАТИКА и ИКТ, 11 класс.
1. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит минимум среди элементов массива, не делящихся нацело на 6, а затем заменяет каждый элемент, не делящийся нацело на 6, на число, равное найденному минимуму. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки. Например, для исходного массива из шести элементов:
14
6
11
18
9
24
программа должна вывести следующий массив
9
6
9
18
9
24
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
|
Бейсик |
Python |
|
CONST N AS INTEGER = 30 DIM A (1 TO N) AS LONG DIM I AS LONG, J AS LONG, K AS LONG FOR I = 1 TO N INPUT A(I) NEXT I ... END |
# допускается также # использовать две # целочисленные переменные j и k a = [] n = 30 for i in range(0, n): a.append(int(input())) ... |
|
Алгоритмический язык |
Паскаль |
|
алг нач цел N = 30 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц ... кон |
const N = 30; var a: array [1..N] of longint; i, j, k: longint; begin for i := 1 to N do readln(a[i]); ... end. |
|
C++ |
|
|
#include <iostream> using namespace std; const int N = 30; int main() { long a[N]; long i, j, k; for (i = 0; i < N; i++) cin >> a[i]; ... return 0; } |
|
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на Алгоритмическом языке).
Инициализируем переменную k, которая будет использоваться для поиска наименьшего значения, не кратного 6. Т.к. наибольшее значение элемента массива = 10000, то присвоим k значение = 10001. Далее будем с помощью цикла искать k. В следующем цикле присваиваем всем элементам массива, не кратным 6 значение переменной k. Выводим каждый элемент массива с новой строчки.
Код на месте двоеточия:
k := 10001;
for
Вступайте в нашу телеграмм-группу Инфостарт