мария: хороший сайт
21-07-2024
Читать статью
мария: класс
20-07-2024
маша: мяу
Привет! Сегодня разберём новый тип 6 задания из ЕГЭ по информатике 2025!
Добавим недостающий пазл в видеокурс по подготовке к ЕГЭ по информатике.
Рассмотрим типичную тренировочную задачу из ЕГЭ по информатике.
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, и Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки. Запись
означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм:
Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии следует учитывать.
В это задачке достаточно не просто составить уравнения прямых полученной фигуры. В таких случаях можно попробовать вручную посчитать точки с помощью известной программы Кумир от НИИСИ РАН. Скачать её можно с официального сайта НИИСИ РАН.
Вероятно, это программа окажется на компьютере на экзамене.
Запустим программу Кумир-Стандарт. В начале нужно подключить модуль Черепаха.
После того, как модуль Черепаха подключён, можно написать программу на языке Кумир.
использовать Черепаха алг нач опустить хвост нц 16 раз влево(36) вперед(4) влево(36) кц кон
В начале нужно подключить модуль Черепаха. Слово алг обозначает начало алгоритма. Слово нач - это начало программы.
Опускаем хвост у Черепахи. Цикл пишем с помощью команды нц - начало цикла. Команда кц - это конец цикла. Команда влево - это аналог команды Налево (видим, что эти команды пишутся по-разному). Аналогично есть команда вправо в программе Кумир. Команда вперед пишется без буквы ё.
После того, как алгоритм перенесли в программу Кумир, запускаем программу, нажав на кнопку F9 (или кнопка плей в виде треугольника).
После этого появится окно в правом нижнем углу. Это окно можно расширить до приемлемых размеров, чтобы нам было удобно анализировать рисунок.
Необходимо настроить масштабирование на 1.
После этого можно сделать скриншот и перенести рисунок в программу Paint, где и посчитать точки вручную.
Получается в ответе 31 точка. Обратите внимание, что в этой задачи просили подсчитать точки, которые находятся на линиях в том числе.
Даже если нет программы Кумир, можно подсчитать точки вручную через Python. Напишем программу.
from turtle import * tracer(0) left(90) for i in range(16): left(36) forward(4*40) left(36) penup() for x in range(-10, 10): for y in range(-10, 10): setpos(x*40, y*40) dot(4, 'red')
Программа выведет такую картину.
В программе подключаем модуль turtle. В начале повернём Черепаху на 90 градусов налево, с помощью команды left. Это делается из-за того, в Python Черепаха смотрит вдоль положительного направления оси абсцисс.
Далее идёт цикл, который указан в задаче. Он должен повторится 16 раз. Внутри цикла пишем программу для Черепахи. Команда left() - поворот налево (аналогично right() - поворот направо), команда forward() - это движение верёд.
4 единицы внутри команды forward() умножаются на 40. Число 40 - это коэффициент размера нашего рисунка. Попробуйте "поиграть" с этим числом, чтобы посмотреть эффект уменьшения или увеличения рисунка.
Команда penup() позволяет поднять кисть, чтобы проставить точки, которые будут символизировать точки с целыми координатами.
Далее идут вложенные циклы, с помощью них мы проставим точки с целыми координатами. Выбираем диапазон, чтобы наша фигура точно уместилась.
Команда setpos() ставим точки. Умножаем координаты x и y на тот же коэффициент, что использовали ранее.
Команда dot() устанавливает жирность и цвет точки.
В начале мы прописали команду tracer(0), чтобы рисунок моментально отрисовывался.
Закрепите материал с помощью видеороликов:
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 6 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Определите, сколько точек с целочисленными координатами будут находиться внутри объединения фигур, ограниченных заданными алгоритмом линиями, включая точки на линиях.
Пропишем в Кумире программу:
использовать Черепаха алг нач опустить хвост нц 2 раза вперед(10) вправо(90) вперед(18) вправо(90) кц поднять хвост вперед(5) вправо(90) вперед(7) вправо(90) опустить хвост нц 2 раза вперед(10) вправо(90) вперед(7) вправо(90) кц кон
Получается такая картина:
Красным цветом отмечены точки, которые нужно подсчитать. Объединение фигур - это значит, что две фигуры объединились в одну, и получается одна большая фигура.
В верхнем ряду 19 точек. Всего таких рядов 11. Значит, в верхней части 19 * 11 = 209. В нижней части в одном ряду 8 точек. Всего таких рядов 5. Значит, в нижней части 8 * 5 = 40 точек. Всего получается 209 + 40 = 249.
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Определите, сколько точек с целочисленными координатами будут находиться внутри пересечения фигур, ограниченных заданными алгоритмом линиями, включая точки на линиях.
Напишем программу в Кумире:
использовать Черепаха алг нач опустить хвост нц 2 раза вперед(13) вправо(90) вперед(18) вправо(90) кц поднять хвост вперед(5) вправо(90) вперед(9) влево(90) опустить хвост нц 2 раза вперед(11) вправо(90) вперед(7) вправо(90) кц кон
Пересечение фигур - это значит нужно взять общее от двух фигур. Те точки, которые нужно подсчитать отмечены красным цветом.
Можно подсчитать умножением 8 * 9 = 72
Определите периметр области пересечения фигур, ограниченных заданными алгоритмом линиями.
Здесь тоже самое, только нужно найти не количество точек с целыми координатами, а периметр нужной области. Напишем программу в Кумире:
использовать Черепаха алг нач опустить хвост нц 9 раз вперед(22) вправо(90) вперед(6) вправо(90) кц поднять хвост вперед(1) вправо(90) вперед(5) влево(90) опустить хвост нц 9 раз вперед(53) вправо(90) вперед(75) вправо(90) кц кон
Нужно найти периметр выделенного прямоугольника:
Не сложно подсчитать, что периметр равен 44.
В следующих задачах трудно точки подсчитать вручную. Пока такие задачи не появляются в реальном ЕГЭ, однако их можно встретить в некоторых сборниках для подготовки к экзамену по информатике. В таких задачах можно составить уравнения прямых.
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост поднят. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует три команды: Вперёд n (где n - целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Направо m (где m - целое число), вызывающая изменение направления движения на m градусов по часовой стрелке; Опусти, принуждающая Черепаху опустить хвост.
Запись Повтори k [Команда 1 Команда 2 ... Команда S] означает, что последовательность из S команд повторится k раз.
Вперёд 100 Направо 90 Вперёд 100 Направо 30 Опусти Повтори 10 [Вперёд 25 Направо 90]
Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует.
Нарисуем общий рисунок.
Здесь уже не очень удобно пользоваться элегантным способом. Составим уравнения прямых, которые образуют квадрат. Общий вид уравнения прямой выглядит так:
Коэффициент k - это тангенс угла наклона α к оси X ( 0 ≤ α < π, но α ≠ π/2). Число b - это смещение прямой по оси Y относительно нуля.
Для прямой AE k1=tan(60o)=√3. Так же она проходит через точку (100, 100).
Найдём число b. Подставим в общее уравнение координаты точки (100, 100):
Получается уравнение прямой AE:
Найдём на сколько смещена FC по оси Y относительно AE.
Получается, что уравнение для прямой FC:
Для прямой EC k2=-tan(30o) = - √3/3. Эта прямая тоже проходит через точку (100, 100). Подставим эти координаты в уравнение и найдём b.
Тогда уравнение для прямой EC получается:
Найдём на сколько смещена прямая AF относительно EC по оси Y.
Тогда для прямой AF:
Пробежимся с помощью Питона для переменной x от 0 до 150. Для переменной y от 0 до 100. Чтобы получить точку, используем вложенные циклы!
s=0 for x in range(1, 200): for y in range(1, 200): if (y < (3**0.5)*x + 100*(1-3**0.5)) and (y > (3**0.5)*x + 100*(1-3**0.5) - 50) and (y < (- 3**0.5 / 3)*x + 100*(1+ 3**0.5 / 3)) and (y > (-3**0.5/3)*x + 100*(1 + 3**0.5 /3) - 50 / 3**0.5 ): s=s+1 print(s)
Точки, которые лежат в квадрате должны удовлетворять следующим условиям:
Проверить выше или ниже некоторая точка M(xm, ym), чем прямая y=k*x+b, можно следующим образом:
Данный принцип и был использован в программе.
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует три команды: Вперёд n (где n - целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Направо m (где m - целое число), вызывающая изменение направления движения на m градусов по часовой стрелке; Опусти, принуждающая Черепаху опустить хвост.
Повтори 21 [Вперёд 31 Направо 60]
Попробуем понять, какая фигура получится в итоге.
Получается правильный шестиугольник. Угол ∠СВА = 120o. Как раз угол правильного n-угольника равен (n-2)*180o/n. Для шестиугольника получается (6-2)*180o/6 = 120o.
Будем решать методом составления уравнений.
Рассмотрим прямую BC. Если провести от точки B прямую параллельную оси X, то мы увидим, что угол наклона прямой BC равен 30o.
Прямая DC имеет угол наклона -30o к оси X. Она расположена выше, чем BC на МВ. Треугольник BCM равносторонний. Значит, МВ=31. Тогда уравнение для DC будет:
Уравнение для AF будет:
Прямая EF имеет угол наклона 30o относительно оси X. Смещена она вниз на AP. Треугольник AFP так же является равносторонним. Следовательно, AP = 31. Тогда для EF получается:
Прямая AB это x=0. Найдём так же ED.
Значит, уравнение для ED: x = 31 * √3.
Когда уравнения готовы, можно написать программу.
k=0 for x in range(-100, 100): for y in range(-100, 100): if (y < 3**0.5 / 3 * x + 31) and (y < -(3**0.5) / 3 * x + 62) and (y > -(3**0.5) / 3 * x) and (y > 3**0.5 / 3 * x - 31) and (x > 0) and (x < 31 * 3**0.5): k=k+1 print(k)
Точки должны быть ниже прямых BC и CD, но выше прямых AF и EF. Так же координаты x должны быть 0 < x < 31 * √3.
Важно не забыть для y пробежаться и по отрицательным значениям, т.к. фигура находится меньше оси X.
На сегодня всё. Удачи при решение 6 задания из ЕГЭ по информатике 2023.