Главная / ЕГЭ Информатика / Задание №25 / ID 34394
ID 34394 ЕГЭ Информатика Линия №25 СдамГИА ID: 15962 Анализ информационных моделей
✈️ TG ВК Следующая ⏭️
Дан массив, содержащий 2018 положительных целых чисел, не превышающих 30 000. Необходимо уменьшить все нечётные элементы этого массива на одно и то же значение, при этом минимальный из них должен стать равным 1.
Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке. Например, для исходного массива из 5 элементов 112 87 27 95 148 программа должна вывести числа 112 61 1 69 148 по одному числу в строке (все нечётные элементы уменьшены, минимальный из них стал равен 1).
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

Бейсик | Python

CONST N=2018
DIM A(N) AS INTEGER
DIM I, K, M AS INTEGER
FOR I = 1 TO N
    INPUT A(I)
NEXT I

END

|

# кроме уже указанных
# допускается использование
# целочисленных переменных
# k, m
a = []
n = 2018
for i in range(0, n):
    a.append(int(input()))


Паскаль | Алгоритмический язык

const
    N=2018;
var
    a: array [1..N] of integer;
    i, k, m: integer;
begin
    for i:=1 to N do
        readln(a[i]);
    …
end.

|

алг
нач
    цел N=2018
    целтаб a[1:N]
    цел i, k, m
    нц для i от 1 до N
        ввод a[i]
    кц
    …
кон

С++

#include <iostream>
using namespace std;
const int N=2018;
    int main(){
    int a[N];
    int i, k, m;
    for (i=0; i<N; ++i)
        cin >> a[i];
    …
    return 0;
}

В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
💡 Пошаговый разбор и решение:
Задача решается в два прохода: на первом проходе определяется минимальный нечётный элемент, на втором производится корректировка и вывод элементов.
Возможно решение в три прохода, когда на втором проходе выполняется только замена значений, а на третьем  — вывод.

Пример правильной программы на языке Паскаль:

Паскаль

m := 30001;
for i:=1 to N do begin
    if (a[i] mod 2 = 1) and (a[i]

При использовании языка Python первый проход можно записать в одну строку, применяя специальные средства этого языка. В приведённом ниже примере использован параметр default, действующий в версии Python 3.4 и более поздних. При использовании ранних версий Python необходимо отдельно проверять наличие в массиве удовлетворяющих условию элементов.

Python

m = min ((k for k in a if k%2 == 1), default = 0)
for i in range(0, n):
    if a[i] % 2 == 1:
        a[i] = a[i] + 1 − m
    print(a[i])

Использовать описанную выше возможность не обязательно, на языке Python допустимо описывать развёрнутый алгоритм решения, аналогичный приведённой выше программе на языке Паскаль.
📚 Похожие разобранные задания по предмету:
ID 31037 • Задание №8
Азбука Морзе позволяет кодировать символы для сообщений по радиосвязи, задавая комбинацию точек и тире. Скольк...
Смотреть разбор ↗
ID 30036 • Задание №5
У исполнителя Калькулятор две команды, которым присвоены номера: 1.  возведи в квадрат, 2.  прибавь 1. Перва...
Смотреть разбор ↗
Официальные критерии проверки ФИПИ:
Критерии проверки:

Критерии оценивания выполнения задания | Баллы

Предложен правильный алгоритм, выдающий верное значение.
Допускается запись алгоритма на другом языке, использующая аналогичные переменные. В случае, если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на языках, использованных в задании. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования, при этом количество переменных и их идентификаторы должны соответствовать условию задачи. В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы | 2

Не выполнены условия, позволяющие поставить 2 балла.
Предложено в целом верное решение, содержащее не более одной ошибки из числа следующих (если одинаковая ошибка повторяется несколько раз, она считается за одну ошибку).
1. Отсутствие инициализации или неверная инициализация максимума.
2. Выход за границы массива.
3. Неверные сравнения при определении максимума (например, вместо максимума ищется минимум).
4. Неверное определение остатка, соответствующего символу E (использование другого числа вместо 14).
5. Использование частного вместо остатка (div вместо mod или аналогичная замена в других языках).
6. Неверный ответ или отсутствие ответа в ситуации, когда в массиве нет подходящих элементов.
7. Ошибка при построении логического выражения.
8. Отсутствует вывод ответа.
9. Используется переменная, не объявленная в разделе описания переменных.
10.Индексная переменная в цикле не меняется (например, в цикле while) или меняется неверно | 1

Не выполнены условия, позволяющие поставить 1 или 2 балла | 0

Максимальный балл | 2
🔗 Другие задания линии №25 по предмету Информатика:
ID 34189 Назовём маской числа последовательность цифр, в которой также могут встречаться следующие симво... ID 34190 Маска числа  — это последовательность цифр, в которой могут встречаться специальные символы «?»... ID 34191 Маска числа  — это последовательность цифр, в которой могут встречаться специальные символы «?»... ID 34192 Назовём маской числа последовательность цифр, в которой также могут встречаться следующие симво... ID 34193 Маска числа  — это последовательность цифр, в которой могут встречаться специальные символы «?»...
← Предыдущее задание 📚 Все задания по предмету Следующее задание →