Задание 25. Программирование. Обработка массивов. ЕГЭ 2020 по информатике

За это задание ты можешь получить 2 балла. На решение дается около 30 минут. Уровень сложности: высокий.
Средний процент выполнения: 40.2%
Ответом к заданию 25 по информатике может быть развернутый ответ (полная запись решения с обоснованием выполненных действий).

Задачи для практики

Задача 1

Дана матрица (двумерный массив) размером 20×20. Каждый элемент может принимать целочисленные значения от 0 до 100.Опишите на одном из языков программирования алгоритм, который позволит найти наименьшую из сумм элементов каждой строки. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

min:=5000;

for i:=0 to N-1 do begin

s:=0;

for j:=0 to N-1 do

s:=s+a[i,j];

if s end;

writeln(min);

Ответ:
Показать решение

Задача 2

Дан целочисленный массив из 100 элементов. Элементы массива могут принимать целые значения от 1 до 500. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести минимальное значение среди элементов массива, которые делят максимальное значение элементов массива без остатка. Гарантируется, что в исходном массиве есть хотя бы один элемент, который делит максимальное значение элементов массива без остатка.

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные не обязательно.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

max := 1;

for i := 1 to N do

if (a[i] > max)

then

max := a[i];

min := 500;

for i := 1 to N do

if (a[i] < min) and (max mod a[i] = 0)

then

min := a[i];

writeln(min);

Ответ:
Показать решение

Задача 3

Дан массив из 30 элементов. Каждый элемент может принимать целочисленные значения от −100 до 100. Опишите на одном из языков программирования алгоритм, который позволит подсчитать среднее арифметическое положительных элементов массива, которые кратны первому элементу массива (то есть делятся на него без остатка). При нахождении среднего арифметического учитывать первый элемент массива. Гарантируется, что первый элемент отличен от нуля.Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

sum := 0; k:=0;

for i := 0 to N-1 do begin

if (a[i] > 0) and (a[i] mod a[0] = 0) then

begin

sum := sum + a[i];

k := k + 1

end

end;

writeln(sum/k);

Пример фрагмента программы на языке Python 3.8

Sum = 0

k = 0

for i in range(N):

    if a[i] > 0 and a[i] % a[0] == 0:

        Sum += a[i]

        k = k + 1

print(Sum/k)

Ответ:
Показать решение

Задача 4

Дан целочисленный массив из 43 элементов. Элементы массива могут принимать целые значения от 55 до 155. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди элементов массива, которые имеют нечётное значение и не делятся на 9. Гарантируется, что в исходном массиве есть хотя бы один такой элемент.

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные не обязательно.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

max := 54;

for i:=1 to N do

if (a[i] mod 2=1) and (a[i] mod 9<>0) and (a[i]>max)

then max := a[i];

writeln(max);

Пример фрагмента программы на языке Python 3.8.

Max = 54

for i in range(N):

    if a[i] % 2==1 and a[i] % 9!= 0 and a[i]>Max:

        Max = a[i]

print(Max)

Ответ:
Показать решение

Задача 5

Дан массив из 40 элементов. Каждый элемент может принимать целочисленные значения от 0 до 300.Опишите на одном из языков программирования алгоритм, который позволит найти произведение тех элементов массива, которые имеют чётный индекс и кратны семи. Гарантируется, что хотя бы один элемент массива удовлетворяет этому условию. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

p := 1;

for i := 0 to N-1 do

if (i mod 2 = 0) and (a[i] mod 7=0) then

p:=p*a[i];

writeln(p);

Пример фрагмента программы на языке Python 3.8.

p = 1

for i in range(N):

    if i % 2 == 0 and a[i] % 7==0:

        p *= a[i]

print(p)

Ответ:
Показать решение

Задача 6

Дан массив из 40 элементов. Каждый элемент может принимать целочисленные значения от −800 до 800. Опишите на одном из языков программирования алгоритм, который позволит найти минимальное значение среди положительных элементов массива, кратных двум. Гарантируется, что хотя бы один элемент массива удовлетворяет этому условию. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

x := 801;

for i := 0 to N-1 do

if (a[i]>0) and (a[i] mod 2=0) and a[i] < x

then x:=a[i];

writeln(x);

Пример фрагмента программы на языке Python 3.8.

x = 801

for i in range(N):

    if a[i]>0 and a[i] % 2==0 and a[i] < x:

        x=a[i]

print(x)

Ответ:
Показать решение

Задача 7

Дан массив из 50 элементов. Каждый элемент может принимать целочисленные значения от −500 до 500. Опишите на одном из языков программирования алгоритм, позволяющий определить, на сколько число положительных элементов массива больше, чем число отрицательных, и вывести найденное значение. Гарантируется, что в исходном массиве есть и отрицательные, и положительные элементы, и положительных элементов больше. Исходные данные объявлены так, как показано ниже.

Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке Паскаль.

kol_p := 0; kol_m := 0;

for i := 1 to N do begin

if (a[i] > 0) then kol_p: = kol_p + 1;

if (a[i] < 0) then kol_m: = kol_m + 1

end;

writeln(kol_p - kol_m);

Пример фрагмента программы на языке Python.

kol_p = kol_m = 0

for i in range(N):

    if a[i] > 0:

        kol_p += 1

    elif a[i] < 0:

         kol_m += 1

print(kol_p - kol_m)

Ответ:
Показать решение

Задача 8

Дан массив из 40 элементов. Каждый элемент может принимать целочисленные значения от 0 до 200.Опишите на одном из языков программирования алгоритм, который позволит определить, все ли элементы массива различны.

Программа должна вывести одно из сообщений «Есть одинаковые элементы» или «Все элементы различны».

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке Паскаль.

for i:=0 to N-2 do begin

for j:=i+1 to N-1 do

if a[i]=a[j] then

break;

if j break

end

if i writeln(’Есть одинаковые элементы’);

else writeln(’Все элементы различны’);

Ответ:
Показать решение

Задача 9

Дан массив из 40 элементов. Каждый элемент может принимать целочисленные значения от 0 до 200.Опишите на одном из языков программирования алгоритм, который позволит найти наиболее часто встречающийся элемент массива.Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке Паскаль.

m:=1; k:=1;

for i:=0 to N-1 do begin

l:=0;

for j:=0 to N-1 do

if a[i]=a[j] then l:=l+1;

if l>m then begin

m:=l; k:=i;

end;

end;

writeln(a[k]);

Ответ:
Показать решение

Задача 10

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от −20 до 20, отличные от 0. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести наибольшее количество идущих подряд элементов одного знака. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные не обязательно.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке Паскаль.

k:=0; max:=0;

repeat

for i := 1 to N-1 do

if (a[i]*a[i+1]>0) then

k:=k+1

else

if k>max then begin

max:=k; k:=0;

end;

if k>max then max:=k;

writeln(max);

Ответ:
Показать решение

Задача 11

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от −200 до 200. Опишите на одном из языков программирования алгоритм, позволяющий найти максимальную сумму пар элементов массива, в которых оба числа чётны. «Пара элементов»— это два подряд идущих элемента.

Например, для массива из 8 элементов:−12, 11, 22, 14, 9,−16, 20, 12— ответ 36.

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные не обязательно.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке Паскаль.

max:=-401;

for i := 1 to N-1 do

if (a[i] mod 2=0) and (a[i+1] mod 2=0) and

(a[i]+a[i+1] > max) then

max:=a[i]+a[i+1];

writeln(max);

Ответ:
Показать решение

Задача 12

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от −20 000 до 20 000. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых хотя бы одно число нечётно. «Пара элементов» — это два подряд идущих элемента.

Например, для массива из 7 элементов: −12, 11, 22, 14, 9, −11, 20 — ответ 5.

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные не обязательно.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

k:=0;

for i := 1 to N-1 do

if (a[i] mod 2<>0) or (a[i+1] mod 2<>0) then

k:=k+1;

writeln(k);

Ответ:
Показать решение

Задача 13

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от −20 000 до 20 000. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых хотя бы одно из чисел делится на 5. «Пара элементов» — это два подряд идущих элемента. Например, для массива из 7 элементов: −12, 10, 25, 15, 9, 11, 20 — ответ 5.

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные необязательно.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

k:=0;

for i := 1 to N-1 do

if (a[i]*a[i+1] mod 5=0) then

k:=k+1;

writeln(k);

Ответ:
Показать решение

Задача 14

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 10 до 20 000. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых хотя бы одно из чисел оканчивается на 12. «Пара элементов»—это два подряд идущих элемента.

Например, для массива из 7 элементов: 12, 100, 125, 1512, 912, 1121, 20—ответ 4.

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные необязательно.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

k:=0;

for i := 1 to N-1 do

if (a[i] mod 100 = 12) or (a[i+1] mod 100 = 12)

then k:=k+1;

writeln(k);

Ответ:
Показать решение

Задача 15

Дан целочисленный массив из 30 элементов. Элементы массива — целые числа в диапазоне от 1 до 10 000. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести наибольшее количество идущих подряд элементов массива, каждый из которых оканчивается на 2 в четверичной системе счисления.

Например, для массива из 5 элементов: 9, 14, 6, 34, 5 — ответ 3.

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные необязательно.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

k := 0;

m := 0;

for i := 1 to N do

if (a[i] mod 4) = 2 then

m := m + 1

else

begin

if m > k then

k := m;

m := 0

end

end;

if m > k then

k := m;

writeln(k);

Ответ:
Показать решение

Задача 16

Дан целочисленный массив из 40 элементов. Элементы массива — целые числа в диапазоне от 0 до 10 000. Напишите на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых хотя бы одно число оканчивается на 12 в троичной системе счисления.

Например, для массива из 5 элементов: 9, 14, 23, 12, 18 — ответ 3. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные необязательно.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

k := 0;

for i:=0 to N-2 do

if (((a[i] mod 3) = 2) and

(((a[i] div 3) mod 3) = 1))

or (((a[i + 1] mod 3) = 2) and

(((a[i + 1] div 3) mod 3) = 1)) then

begin

k:=k+1

end;

end;

writeln(k);

Ответ:
Показать решение

Задача 17

Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди трёхзначных элементов массива, делящихся на 5.

Если в исходном массиве нет трёхзначного элемента, кратного 5, то следует вывести сообщение «Не найдено».

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

max:=0; k:=0;

for i := 1 to N do

if (1000>a[i]) and (99 and (a[i] mod 5 = 0) then

begin

max:= a[i]; k:=k+1

end;

if k>0 then

then writeln(max)

else

writeln(’ Не найдено ’);

Ответ:
Показать решение

Задача 18

Дан массив из 30 элементов. Каждый элемент может принимать целочисленные значения от 0 до 1000. Опишите на одном из языков программирования алгоритм, который позволит найти сумму двузначных элементов массива, сумма цифр которых меньше 10. Гарантируется, что в исходном массиве есть хотя бы один такой элемент. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них. Исходные данные всегда подобраны так, что результат суммы не выходит за пределы объявленных типов данных.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

sum := 0;

for i := 0 to N-1 do

if (a[i] >= 10) and (a[i] <= 99) and

(a[i] mod 10 + a[i] div 10) < 10) then

sum := sum + a[i];

writeln(sum);

Ответ:
Показать решение

Задача 19

Дан массив из 30 элементов. Каждый элемент может принимать целочисленные значения от 0 до 100. Опишите на одном из языков программирования алгоритм, который позволит найти произведение двузначных чётных элементов массива, которые начинаются с цифры 5, 6 или 7. Гарантируется, что в исходном массиве есть хотя бы один такой элемент.

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них. Исходные данные всегда подобраны так, что результат произведения не выходит за пределы объявленных типов данных.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

prod := 1;

for i := 0 to N-1 do

if (a[i] >= 50) and (a[i] <= 79) and

(a[i] mod 2 = 0) then

prod := prod * a[i];

writeln(prod);

Ответ:
Показать решение

Задача 20

Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести индекс минимального среди трёхзначных элементов массива, делящихся на 3. Если в исходном массиве нет трёхзначного элемента, кратного 3, то следует вывести сообщение «Не найдено». Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например PascalABC 1.8). В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, с учётом синтаксиса и особенностей используемого вами языка программирования.

Решение

Пример фрагмента программы на языке PascalABC 1.8.

min:=999; k:=0;

for i := 1 to N do

if (1000>a[i]) and (99a[i]) and

(a[i] mod 3 = 0) then begin

min:= a[i]; k:=i

end;

if k>0 then writeln(k)

else writeln(’ Не найдено ’);

Ответ:
Показать решение
Показать еще

Готовим к ЕГЭ на 85+ баллов и побеждаем лень

Каждый месяц 12 онлайн-занятий в дружелюбной атмосфере + 16 домашних работ с жесткими сроками.
Не готовишься — вылетаешь.

Подробнее о курсе