Заметили ошибку ?
Выделите это место и нажмите Ctrl + Q

ЕГЭ по информатике 2021 - Задание 17 (Пишем программу)



Привет! Сегодня поговорим о 17 задании из ЕГЭ по информатике нового образца 2021.


Это задание так же, как и предыдущее, решается на компьютере. Нужно составить программу на одном из доступных языков программирования при сдаче ЕГЭ по информатике.



Мы на этом уроке будем использовать язык программирования Pascal.


Перейдём к практике решения примерных задач из ЕГЭ по информатике 2021.


Задача (Количество и максимальное значение)

Рассматривается множество целых чисел, принадлежащих числовому отрезку [4668; 10414], которые делятся на 4 и не делятся на 7, 17. Найдите количество таких чисел и максимальное из них. В ответе запишите два целых числа: сначала количество, затем максимальное число.

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.


Решение:

Напишем программу языке программирования Паскаль:


var i, c, max: integer;
begin

c:=0;
max:=0;

for i:=4668 to 10414 do 
begin
  if (i mod 4 = 0) and (i mod 7 <> 0) and (i mod 17 <> 0) then  
  begin
    c := c + 1;
    if i > max then max:=i;
  end;
end;

Writeln(c);
Writeln(max);

End.

Рассмотрим анатомию данной программы:


ЕГЭ по информатике 2021 - задание 17 (Анатомия программы)

В начале заводятся 3 переменные: для количества чисел, удовлетворяющих условию задачи (переменная c), и для максимального значения (переменная max) и для ЦИКЛА дополнительную переменную i.


Затем идёт инициализация переменных, т.е. присваиваем переменным начальные значения.


В начале количество чисел, удовлетворяющих условию задачи, равно нулю, поэтому переменная c равна нулю.


Переменной max присваиваем значение ноль. Мы выбираем очень маленькое значение специально, т.к. далее в ЦИКЛЕ будем брать все целые числа из заданного диапазона, и, если найдётся число, удовлетворяющее условию задачи, большее, чем значение в переменной max, то это число запишем в переменную max.


Таким образом, числа, которые "победят" переменную max, сами "получают титул" максимального значения и записываются в переменную max.


Для этого мы и делаем очень маленькое значение в начале. Ведь, если поставить в переменную max большое значение, его будет сложно "победить", и мы получим не правильный результат.


Важно знать: Если мы ищем максимальное значение, то в начале в переменную max кладём минимальное значение.


Примечание: Если после выполнения программы в переменной max останется ноль, значит, нету чисел в указанном интервале, удовлетворяющих условию задачи.


Далее идёт ЦИКЛ for. Он перебирает все целые числа от 4668 до 10414. Границы цикла показывают ключевые слова begin и end. Эти слова показывают границы чего-либо в языке программирования Паскаль. У нас с помощью этих слов в этом примере показаны границы основной части программы, ЦИКЛА for и условия!


Внутри ЦИКЛА находится команда условия if. Она проверяет подходит ли конкретное число из обозначенного диапазона под наши условия задачи. Если ДА, то мы прибавляем к переменной с единицу и проверяем может ли данное число претендовать на на максимальное значение.


Важно знать: Когда ищем количество, мы в ЦИКЛЕ прибавляем к переменной по 1.


После окончания ЦИКЛА у нас в переменных c и мах будут уже нужные нам значения. И мы их распечатываем на экран.


Количество чисел получилось 1159, а максимальное число, удовлетворяющие условию задачи, будет 10412.


Ответ: 115910412

Ещё посмотрим возможные задачи 17 задания из ЕГЭ по информатике 2021.


Задача (Сумма и минимальное значение)

Рассматривается множество целых чисел, принадлежащих числовому отрезку [-2031; 5021], которые делятся на 7, являются нечётными и не делятся на 3. Найдите сумму таких чисел и минимальное из них. В ответе запишите два целых числа: минимальное значение, затем сумму.


Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.


Решение:

Напишем программу на языке Pascal.


var i, sum, min: integer;
begin

min:=5022;
sum:=0;

for i:=-2031 to 5021 do 
begin
  if (i mod 7 = 0) and (i mod 2 <> 0) and (i mod 3 <> 0) then  
  begin
    sum := sum + i;
    if i < min then min:=i;
  end;
end;

Writeln(sum);
Writeln(min);

End.

Здесь заводим переменные, которые нужны для решения задачи.


В переменную min кладём максимальное значение. Можно положить значение 5021 + 1.


Важно знать: Если мы ищем минимальное значение, то в начале в переменную min кладём максимальное значение.


Далее делаем аналогично предыдущей задаче. Нечётное число - это то число, которое не делится на 2.


Когда ищем минимальное значение, то в условии меняем знак на "меньше".


Важно знать: Когда ищем сумму, в ЦИКЛЕ суммируем сами значения переменной i.


После запуска программы получаем, что минимальное значение равно -2023, а сумма равна 500976.


Ответ: -2023500976

Ещё одна задача из примерных вариантов 17 задания ЕГЭ по информатике 2021.


Задача (Союз ИЛИ)

Рассматривается множество целых чисел, принадлежащих числовому отрезку [5883; 15906], которые делятся на 9 или 23 и не делятся на 13, 18, 19, 22. Найдите количество таких чисел и максимальное из них. В ответе запишите два целых числа без пробелов и других дополнительных символов: сначала количество, затем максимальное число.

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.


Решение:

В этой задаче нужно использовать в условии союз ИЛИ (or)


var i, c, max: integer;
begin

max:=0;
c:=0;

for i:=5883 to 15906 do 
begin
  if ((i mod 9 = 0) or (i mod 23 = 0)) and (i mod 13 <> 0) and (i mod 18 <> 0) 
  and (i mod 19 <> 0) and (i mod 22 <> 0) then
  begin
    c := c + 1;
    if i > max then max:=i;
  end;
end;

Writeln(c);
Writeln(max);

End.

Обратите внимание: Выражение, в котором стоит союз ИЛИ (or ), взято в скобки. Дело в том, что союз И (and) имеет приоритет, поэтому, чтобы программа верно отработала условие задачи, нужно это выражение взять в скобки.


Количество чисел равно 810, максимальное число будет 15893.


Ответ: 81015893

Решим ещё одну задачу из 17 задания ЕГЭ по информатике 2021.


Задача (Ищем на что оканчивается число)

Рассматривается множество целых чисел, принадлежащих числовому отрезку [1; 2021], которые делятся на 13 и не оканчиваются на 9. Найдите количество таких чисел и максимальное из них. В ответе запишите два целых числа: сначала количество, затем максимальное число.


Решение:

Напишем программу.


var i, c, max: integer;
begin

max:=0;
c:=0;

for i:=1 to 2021 do 
begin
  if (i mod 13 = 0) and (i mod 10 <> 9) then  
  begin
    c := c + 1;
    if i > max then max:=i;
  end;
end;

Writeln(c);
Writeln(max);

End.


Важно знать: Конструкция i mod 10 показывает на что оканчивается число в переменной i


Количество чисел равно 139, а максимальное число равно 2015.


Ответ: 1392015

Посмотрим ещё одну редкую задачу из 17 задания ЕГЭ по информатике 2021.


Задача (Найти сумму всех делителей)

Найдите сумму всех делителей числа 2021. Числа 1 и 2021 не учитывать.

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.


Решение:
var i, sum: integer;
begin

sum:=0;

for i:=2 to 1010 do 
begin
  if 2021 mod i = 0 then
  begin
    sum := sum + i;
  end;
end;

Writeln(sum);

End.

Перебираем все числа от 2 до 1010 (2021/2). Числа больше, чем половина от нашего числа 2021, не могут быть делителем числа 2021. Поэтому мы прогоняем цикл до 1010 (исключение составляет само число 2021, но по условию задачи его не нужно учитывать).


В ЦИКЛЕ мы последовательно проверяем все числа от 2 до 1010, кто из них является делителем числа 2021. Если число является делителем, то мы его суммируем.


После запуска программы получилось число 90.


Ответ: 90




21-10-2020 в 21:07:42





Похожая статья:

ЕГЭ по информатике - задание 4 (трудолюбие и внимательность)

Пришло время 4 задания из ЕГЭ по информатике....

Категория: ЕГЭ  Подкатегория: -
Дата: 15-01-2018 в 16:47:34 0


Комментарии:

Неверно говорить что используется Pascal ABC и демонстрировать при этом окно IDE-среды c надписью на рамке PascalABC.NET. В вашем случае решения приводится средствами, которыми пользовались еще в 1983 году, когда вышел Turbo Pascal. И действительно, в 2004 году в Южном федеральном университете был написан интерпретатор языка Turbo Pascal для Windows с тем, чтобы избавиться от порядком надоеших DOSBox'ов. Но в 2008 году поддержна проекта была прекращена в связи с переходом к PascalABC.NET - полноценного компилятора, реализующего расширенный Паскаль. Поэтому говоря Pascal ABC вы сбиваете с толку тех, кто понимает описанное выше. В Вашем случае вообще все равно, в какой среде выполнять код, поэтому тут провильнее говорить просто "Паскаль".
Александр 31-10-2020 в 05:06:56

Спасибо, поправил.
Калужский Александр 31-10-2020 в 06:44:04

Подскажите пожалуйста, как решить такую задачу: Рассматривается множество целых чисел, принадлежащих числовому отрезку [4221;17523], которые в шестнадцатеричной сс оканчиваются на В или в семеричной сс оканчиваются на 6. Найдите сумму таких чисел и минимальное из них.
Мария 06-11-2020 в 14:17:40

Мария, добавил данную задачу в очередь для разбора на ютуб канале: https://www.youtube.com/channel/UCGBaXVk4CKyCOuoj49IxK5w/
Калужский Александр 06-11-2020 в 14:23:24

Мария, вот решение Вашей задачи на PascalABC.NET 3.7.1 ## var s := (4221..17523).Where(n -> (n mod 16 = 11) or (n mod 7 = 6)); Print(s.Sum, s.First) Ответ: 28400746 4227
Александр 13-11-2020 в 10:28:00

Здравствуйте! Помогите пожалуйста решить задачу: Рассматривается множество целых чисел, принадлежащих числовому отрезку [3721; 7752], которые удовлетворяют следующим условиям: − сумма цифр числа кратна 3; − двоичная запись числа не заканчивается на 000. Найдите количество таких чисел и минимальное из них.
Андрей 13-11-2020 в 13:51:42

Здравствуйте! Добавил данную задачу в очередь для разбора на Youtube канале: https://www.youtube.com/channel/UCGBaXVk4CKyCOuoj49IxK5w/
Калужский Александр 13-11-2020 в 13:54:06

Здравствуйте, пожалуйста помогите решить: Рассматривается множество целых чисел, принадлежащих числовому отрезку [2807; 8558], которые удовлетворяют следующим условиям: − запись в двоичной системе заканчивается на 11; − запись в девятеричной системе заканчивается на 5. Найдите максимальное из таких чисел и их сумму. Гарантируется, что искомая сумма не превосходит 10 в 7 ст. моя программа: var i,m,sum: integer; begin m:=0; sum:=0; for i:=2807 to 8558 do begin if (i div 10 = 3) or (i mod 10 = 5) then begin sum:=sum+i; if i>m then m:=i; end; end; writeln (m); writeln (sum); end. мой ответ:8555 3268875 ответ на сайте: 8555 910880 И ещё объясните, пожалуйста, почему в условиях программы нужно писать "or",а не "and"? (почему в условиях задачи подразумевается ,что два условия верны, а не одно из них? Ведь по логике "or"...) заранее спасибо))
Полина 26-11-2020 в 20:35:23

ой... там должно быть (i mod 10)... но даже так неправильное решение
Полина 26-11-2020 в 20:38:35

Полина, добавил данную задачку в очередь для разбора на Youtube канале: https://www.youtube.com/channel/UCGBaXVk4CKyCOuoj49IxK5w/
Калужский Александр 27-11-2020 в 20:22:23

Определите, сколько символов * выведет эта процедура при вызове F(280): procedure F( n: integer ); begin write('*'); if n >= 1 then begin write('*'); F(n-1); F(n div 3); write('*'); end; end; Для вычисления div воспользуйтесь функцией ОТБР
Татьяна 28-11-2020 в 19:32:52



Оставить коментарий:



Напишите email, чтобы получать сообщения о новых комментариях (необязательно):


Задача против робота. Расположите картинки горизонтально:


Последние
видео:



ЕГЭ по информатике - Задание 20
ЕГЭ по информатике - Задание 19





Давайте
дружить!


Группа Вконтакте Code-Enjoy

Твиттер Александра Калужского

YouTube канал Code-Enjoy