25

Замена нечётных элементов массива

ЕГЭ · Информатика · Задание 25 · Массивы и строки
ПовышеннаяФИПИ332FD5Развёрнутое решение≈ 10 минут

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

Например, для исходного массива из семи элементов:
148
1
202
351
171
74
201

программа должна вывести следующий массив:
148
172
202
351
172
74
201

Исходные данные объявлены в программе заранее: массив содержит 30 элементов и обозначен переменной a, количество элементов — переменной n, индекс элемента — переменной i. Разрешается использовать также целочисленные переменные j и k. В качестве ответа приведите фрагмент программы, находящийся вместо многоточия после ввода элементов массива. Можно использовать Python, Бейсик, алгоритмический язык, Паскаль или C++.

Условие как в банке ФИПИ — открыть и сверить
Дайте развернутый ответ.

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

Например, для исходного массива из семи элементов:

148

1

202

351

171

74

201

программа должна вывести следующий массив:

148

172

202

351

172

74

201

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

Бейсик

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). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на Алгоритмическом языке).



Ответ

Это задание с развёрнутым решением: ответом считается запись хода решения, а не строка. Напишите решение на бумаге и сравните с разбором — там каждый шаг с обоснованием.

Открыть разбор
!
3 уровня: от лёгкого толчка до почти готового решения. Следующий открывается, когда прочитан предыдущий, — чтобы не перепрыгнуть сразу к ответу.
1Мягкая — с чего смотретьуровень 1 из 3

Как проверить одновременно ограничение на значение элемента и нечётность числа?

2Наводящая — какие числа считатьуровень 2 из 3

Выполните два прохода по массиву: в первом найдите сумму элементов, для которых $a[i] \leq 197$ и $a[i]$ нечётно, во втором замените такие элементы и выведите все элементы.

3Прямая — фактически решениеуровень 3 из 3

Для Python условие имеет вид `if a[i] <= 197 and a[i] % 2 == 1`. После вычисления суммы во втором цикле присвойте подходящим элементам значение `s` и выведите каждый элемент.

Всё равно не складывается?Полное решение с обоснованием каждого шага — на отдельной странице.
Открыть решение

Задание 25 ЕГЭ, информатика

Задача из темы «Массивы и строки»: в ней 238 задач с ответом и разбором по шагам. В 25-м номере бланка — 216 задач.

Ответ можно проверить здесь же, а если не выходит — открыть подсказку или разбор. Регистрация не нужна.