Slider

Решение. Задание 25. Досрочный ЕГЭ 2020 года, Информатика

Условие задачи

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

Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки.

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

141

256

92

148

511

4

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

2

256

92

148

2

4

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

Бейсик 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.
С++
#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 4 <> 0)

          then k := k+1;

for i:=1 to N do begin

     if (a[i] >  100) and (a[i] mod 4 <> 0)

          then a[i] := k;

          writeln(a[i]);

Назад