Решение 25 задания ЕГЭ 2018 по информатике из демонстрационного варианта. Проверяемые элементы содержания: Умение анализировать программу, использующую процедуры и функции.
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит количество элементов массива, больших 100 и при этом кратных 5, а затем заменяет каждый такой элемент на число, равное найденному количеству. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести измененный массив, каждый элемент массива выводится с новой строчки.
Например, для массива из шести элементов: 4 115 7 195 25 106 программа должна вывести числа 4 2 7 2 25 106
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
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.
Решение 25 задания ЕГЭ 2018 по информатике
В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Можно записать решение также на другом языке программирования.
В этом случае нужно использовать те же самые исходные данные и
переменные, какие были предложены в условии (например, в образце,
записанном на Алгоритмическом языке).
Ответ на языке Паскаль
k := 0;
for i := 1 to N do
if (a[i] > 100) and (a[i] mod 5 = 0) then
k:=k+1;
for i := 1 to N do begin
if (a[i] > 100) and (a[i] mod 5 = 0) then
a[i] := k;
writeln(a[i])
end
Ответ на языке Алгоритмическом языке
k := 0
нц для i от 1 до N
если a[i] > 100 и mod(a[i], 5) = 0 то
k := k + 1
все
кц
нц для i от 1 до N
если a[i] > 100 и mod(a[i], 5) = 0 то
a[i] := k
все
вывод a[i], нс
кц
Ответ на языке Бейсик
K = 0
FOR I = 1 TO N
IF A(I) > 100 AND A(I) MOD 5 = 0 THEN
K = K + 1
END IF
NEXT I
FOR I = 1 TO N
IF A(I) > 100 AND A(I) MOD 5 = 0 THEN
A(I) = K
END IF
PRINT A(I)
NEXT I
Ответ на языке С++
k = 0;
for (i = 0; i < N; i++)
if (a[i] > 100 && a[i]%5 == 0)
k++;
for (i = 0; i < N; i++) {
if (a[i] > 100 && a[i]%5 == 0)
a[i] = k;
cout << a[i];
}
Ответ на языке Python
k = 0
for i in range(0, n):
if (a[i] > 100 and a[i] % 5 == 0):
k = k + 1
for i in range(0, n):
if (a[i] > 100 and a[i] % 5 == 0):
a[i] = k
print(a[i])