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




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

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

204

115

27

20

305

4

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

204

135

27

135

305

4

 

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

 

БейсикPython

CONST N AS INTEGER = 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

    целтаб а[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++)

        std::cin >> a[i];

    ...

     return 0;

}

 

 

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

Решение.

Паскаль

k := 0;

for i:=1 to n do

    if (a[i]<200) AND (a[i] mod 5 = 0) then

        k := k + a[i];

for i:=1 to n do begin

    if (a[i]<200) AND (a[i] mod 5 = 0) then

        a[i] := k;

    writeln(a[i]);

end;

 

Общие указания

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

2. Эффективность алгоритма не имеет значения и не оценивается.

3. Допускается запись алгоритма на языке программирования, отличном от языков, перечисленных в условии. В этом случае должны использоваться переменные, аналогичные описанным в условии. Если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на естественном языке. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования; при этом количество переменных и их идентификаторы должны соответствовать условию задачи

Источник: ЕГЭ — 2018. До­сроч­ная волна. Вариант 2., ЕГЭ — 2018. До­сроч­ная волна. Вариант 1.