Информатика ЕГЭ 25 задание разбор

25-е задание: «Вторая часть: программирование»
Уровень сложности — высокий,
Максимальный балл — 2,
Примерное время выполнения — 30 минут.

Задачи с поэлементной обработкой массива

Разбор 25 задания ЕГЭ по информатике 2017 года (один из вариантов со слов выпускника):

Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество элементов массива НЕ кратных 3.

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

1
2
3
4
5
6
7
8
const N = 20;
var i,j,k:integer;
a:array [1..N] of integer; 
begin
for i:=1 to N do 
  readln(a[i]);end.

Показать решение:

Рассмотрим заданный фрагмент решения:

  • в цикле со счетчиком i запрашиваются значения элементов массива, т.е. формируется массив;
  • из постановки задания видим, что необходимо найти количество чего-то, это значит, что нужно использовать переменную счетчик;
  • объявлены три целочисленных переменных: i, j, k; переменная i использована в первом цикле, значит для счетчика можно взять переменную k;
  • счетчик всегда нужно обнулять, поэтому следующим оператором будет:
  • k:=0;
  • определим, количество чего нам необходимо считать: количество элементов массива не кратных 3. Кратность можно определить через остаток от деления: если значение элемента массива при делении на 3 в остатке не возвращает 0, значит элемент не кратен трем;
  • остаток при делении в паскале — оператор mod. Поскольку необходимо просмотреть каждый элемент массива, то это нужно делать в цикле for;
  • переменная i уже использована в первом цикле for, значит, для очередного цикла возьмем неиспользованную переменную j:
  • for j:=1 to N do
      if a[j] mod 3 <> 0 then
  • если условие истинно (т.е. нашелся элемент массива, не кратный трем), то увеличиваем счетчик:
  •      inc(k);
  • после цикла остается вывести значение счетчика, т.е. вывести количество элементов массива не кратных 3:
  • writeln(k);

Результат:

k:=0;
for j:=1 to N do
  if a[j] mod 3 <> 0 then
    inc(k);
writeln(k);

📹 Видео


Решение 25 задания ЕГЭ по информатике Демоверсия 2018:

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

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

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

1
2
3
4
5
6
7
8
9
10
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.

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

Похожие задания для тренировки

Показать решение:

  • Решение на языке Паскаль:
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    
    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

Задачи на обработку пар элементов массива (два подряд идущих)

25_4: Разбор 25 задания ЕГЭ по информатике 2019 года ФИПИ «Типовые экзаменационные варианты» вариант 10 (Крылов С.С., Чуркина Т.Е.):

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

Например, для массива из семи элементов: 13; 323; 12; 33; 117 — ответ: 4.

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

1
2
3
4
5
6
7
8
9
10
const
  N = 40;
var
  a: array [1..N] of integer;
  i, j, k: integer;
begin
  for i := 1 to N do 
    readln(a[i]);
  ...
end.

Показать решение:

    1
    2
    3
    4
    5
    
    k := 0;
    for i := 1 to N - 1 do
     if ((a[i] < 100) and (a[i] > 9)) or ((a[i + l] < 100) and (a[i + 1] > 9)) then 
          inc(k);
    writeln(k);

Задачи на обработку трёх подряд идущих элементов массива (тройки элементов массива)

Разбор 25 задания ЕГЭ по информатике 2019 года ФИПИ вариант 11, «Типовые экзаменационные варианты» (Крылов С.С., Чуркина Т.Е.):

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

Например, для массива из семи элементов: 2; 2; 2; 4; 4; 4; 4 — ответ: 3.

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

1
2
3
4
5
6
7
8
9
10
const
  N=40;
var
  a: array[1..N] of integer;
  i, j, k:integer;
begin
  for i:=1 to N do
    readln(a[i]);
  ...
end.

Показать решение:

  • из постановки задания видим, что необходимо искать количество чего-то, это значит, что нужно использовать переменную счетчик; возьмем для нее объявленную переменную k;
  • счетчик всегда нужно сначала обнулять, поэтому следующим оператором будет:
  • k:=0;
  • определим, количество чего нам необходимо считать: количество троек элементов массива, состоящих из равных между собой чисел. Т.е. необходимо сравнивать между собой каждые три подряд идущих элемента массива, например так:
  • if (a[i]=a[i+1]) and (a[i]=a[i+2]) then
        inc(k);
  • inc(k) — оператор, увеличивающий счетчик k на единицу;
  • условие необходимо выполнять в цикле, так как нужно проверить все элементы массива; цикл со счетчиком необходимо организовать от 1 до N-2, в противном случае индексы элементов a[i+2] выйдут за границы диапазона массива (например, при i = 40, получим … a[40+2], а 42-го элемента массива не существует, поэтому цикл надо делать до i = 38, т.е. N-2).

Результат:

for i:=1 to N-2 do
    if (a[i]=a[i+1]) and (a[i]=a[i+2]) then
      inc(k);
writeln(k);

📹 Видео


Задачи на поиск максимума, минимума элементов массива и другие


Поделитесь уроком с коллегами и друзьями:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*

Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить