СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости


Задания
Версия для печати и копирования в MS Word
Задание 25 № 15993

Дан массив, содержащий 30 целых чисел, элементы массива могут принимать значения от −10 000 до 10 000 включительно. Необходимо найти минимальный элемент массива кратный 5, а затем заменить каждый элемент массива кратный 5 на найденный минимальный элемент. Гарантируется, что хотя бы один элемент кратный 5 в массиве есть.

Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке. Например, для исходного массива из 6 элементов 204 115 27 20 305 4 программа должна вывести числа 204 20 27 20 20 4 по одному числу в строке (все элементы кратные 5 были приравнены минимальному из них).

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

 

 

БейсикPython

CONST N=30

DIM A(1 TO N) AS LONG

DIM I, J, 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()))

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

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.

алг

нач

    цел N=30

    целтаб a[1:N]

    цел i, j, k

    нц для i от 1 до N

        ввод a[i]

    кц

    …

кон

С++

#include <iostream>

using namespace std;

const int N=30;

    int main(){

    int a[N];

    int i, j, k;

    for (i=0; i<N; ++i)

        cin >> a[i];

    …

    return 0;

}

 

 

 

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

Решение.

Задача решается в два прохода: на первом проходе определяется минимальный нечётный элемент, на втором производится корректировка и вывод элементов.

Возможно решение в три прохода, когда на втором проходе выполняется только замена значений, а на третьем — вывод.

 

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

 

Паскаль

k := 10001;

for i:=1 to N do begin

    if (a[i] mod 5 = 0) and (a[i] < k)

        then k := a[i];

end;

for i:=1 to N do begin

    if a[i] mod 5 = 0

        then a[i] := k;

    writeln(a[i])

end;

Источник: ЕГЭ по информатике 28.05.2018. Основная волна, вариант А. Имаева — «Котолис».