Привет! Сегодня поговорим о 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.
Рассмотрим анатомию данной программы:

В начале заводятся 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
Оставить коментарий: