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




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

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

Например, для массива из шести элементов: 4 115 7 195 25 106 программа должна вывести числа 4 2 7 2 25 106

 

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

 

 

Бейсик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()))

...

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

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() {

long a[N];

long i, j, k;

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

    cin >> a[i];

    ...

    return 0;

}

 

 

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

Решение.

Паскаль

k := 0;

for i := 1 to N do

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

            k:=k+1;

for i := 1 to N do begin

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

        a[i] := k;

    writeln(a[i])

end

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

k := 0

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

    если a[i] > 100 и mod(a[i], 5) = 0 то

        k := k + 1

    все

кц

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

    если a[i] > 100 и mod(a[i], 5) = 0 то

        a[i] := k

    все

    вывод a[i], нс

кц

Бейсик

K = 0

FOR I = 1 TO N

    IF A(I) > 100 AND A(I) MOD 5 = 0 THEN

        K = K + 1

    END IF

NEXT I

FOR I = 1 TO N

I    F A(I) > 100 AND A(I) MOD 5 = 0 THEN

        A(I) = K

    END IF

    PRINT A(I)

NEXT I

Python

k = 0

for i in range(0, n):

if (a[i] > 100 and a[i] % 5 == 0):

    k+=1

for i in range(0, n):

    if (a[i] > 100 and a[i] % 5 == 0):

        a[i] = k

    print(a[i])

Си

k = 0;

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

if (a[i] > 100 && a[i]%5 == 0)

    k++;

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

    if (a[i] > 100 && a[i]%5 == 0)

        a[i] = k;

cout << a[i];

}

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ—2018 по информатике.