Демоверсия егэ по информатике 2019. Задание 25, вторая часть

Задание 25. Преобразование логических выражений: демонстрационный вариант егэ информатика 2019


*** КАНАЛ ЮТЬЮБ ***
 
ЕГЭ по информатике -> ЕГЭ 2019 -> ЕГЭ 2019
 

Разбор 25 задания демоверсии егэ по информатике 2019:

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

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

14
6
11
18
9
24

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

9
6
9
18
9
24

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

Паскаль: Python:
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.
# допускается также
# использовать две
# целочисленные переменные j и k
a = []
n = 30
for i in range(0, n):
a.append(int(input()))
...
C++:
#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;
}

✍ Решение:
 

    На языке Паскаль:

     k := 10000;
      for i := 1 to N do
        if (a[i] mod 6 <> 0) and (a[i] < k) then
          k := a[i];
      for i := 1 to N do 
      begin
        if (a[i] mod 6 <> 0) then
          a[i] := k;
        writeln(a[i]);
      end;

    На языке Python:

    k = 10000
    for i in range(0, n):
       if (a[i] % 6 != 0 and a[i] < k):
          k = a[i]
    for i in range(0, n):
       if (a[i] % 6 != 0):
          a[i] = k
       print(a[i])

    На языке С++:

    k = 10000;
    for (i = 0; i < N; i++)
      if (a[i] % 6 != 0 && a[i] < k)
        k = a[i];
    for (i = 0; i < N; i++) {
      if (a[i] % 6 != 0)
        a[i] = k;
      cout << a[i] << endl;
    }