- Учителю
- План открытого урока в 11 классе по теме “Алгоритм Евклида нахождения НОД в геометрических задачах”
План открытого урока в 11 классе по теме “Алгоритм Евклида нахождения НОД в геометрических задачах”
Зубков Олег Владимирович,
учитель информатики МАОУ Лицей ИГУ города Иркутска
План открытого урока в 11 классе
по теме "Алгоритм Евклида нахождения НОД в геометрических задачах"
Тема: Алгоритм Евклида нахождения НОД в геометрических задачах.
ЭОР: "Школа программиста" (acmp.ru), "Timus Online Judge" (acm.timus.ru)
Технология: интерактивный метод обучения
УМК: Поляков К. Ю. . Еремин Е. А. Информатика. Углублённый уровень: учебник для 10 класса : в 2 ч. Ч.1., БИНОМ. "Лаборатория знаний", 2013.
Тип урока: урок комплексного применения знаний
Образовательная цель: создать условия для формирования навыков применения алгоритма Евклида для решения олимпиадных задач.
Деятельностная цель: закрепить навыки быстрого и безошибочного программирования алгоритма Евклида на языке С++.
Форма организации: коллективное, групповое - в малых группах, индивидуальное учебное занятие.
Задачи:
Предметные: ознакомление с олимпиадными задачами, решаемыми при помощи нахождения НОД двух чисел;
Личностные: формирование познавательного интереса к изучаемому предмету;
Межпредметные: формирование навыков решения задач из одной области при помощи методов из смежной области знаний на примере разделов "Теория чисел" и "Геометрия";
Деятельностные задачи:
-
предметные: построение и отладка программ для реализации комбинированного алгоритма;
-
личностные: воспитание внимательности, аккуратности и настойчивости при достижении поставленной цели;
-
метапредметные: развитие методов получения новых знаний: анализ, синтез, рассуждения по аналогии.
Ход урока
Деятельность
Применяемые технологии, приёмы, средства организации урока
Интерактивная доска
Учитель
Ученики
Организационный момент, актуализация знаний - время 5 мин.
Приветствует учащихся, проверяет готовность к учебному занятию, организует внимание детей.
Приветствуют учителя, занимают рабочие места, запускают среду программирования CodeBlocks и авторизуются на ЭОР "Школа программиста". Параллельно вспоминают и озвучивают алгоритм Евклида
Формирование ответственного отношения к учению,
создание условия для возникновения у ученика внутренней потребности включения в учебный процесс.
Найти наибольший общий делитель чисел:
12 и 18;
1000 и 128;
714 и 221;
Повторение и применение уже известной краткой реализации алгоритма Евклида - 5 минут
На экране уже известная ученикам рекурсивная реализация алгоритма Евклида. Проговаривает алгоритм, особо отмечая условие завершения и выхода из рекурсии.
Создают шаблон программы, самостоятельно или, сверяясь с интерактивной доской, пишут функцию NOD и проверяют свои ответы на примеры из первого раздела урока.
Включение в учебную деятельность на личностно значимом уровне, повторение и закрепление на практике путем проверки устных вычислений при помощи самостоятельно написанной программы.
int NOD (int a, int b){
if (b ==0) return a;
else return NOD(b, a%b);
}
Закрепление алгоритма Евклида при помощи автоматической проверяющей системы - 5 минут
Анализирует задачу №148 "НОД", отмечает, что алгоритм ее решения уже фактически реализован, помогает исправить ошибки.
Производят окончательную отладку уже работающей программы и сдают ее на проверку в автоматической системе acmp.ru. При получении сообщения об ошибке, пытаются найти и исправить недостаток самостоятельно.
Доведение условно работающей программы до состояния прохождения формальной и независимой от ученика и учителя проверки, воспитание внимательности и аккуратности при написании фрагмента программы уже известного алгоритма.
Задача №148 "НОД" с acmp.ru
Условие задачи
Даны два натуральных числа A и B. Требуется найти их наибольший общий делитель (НОД).
Входные данные
Во входном потоке два натуральных числа A и B через пробел (A, B ≤ 109).
Выходные данные
В выходной поток выведите НОД чисел А и В.
Пример
Входные данные Выходные данные
12 42 6
Осмысление основной учебной задачи - 6 минут
Следит за правильностью построения рассуждений, если необходимо направляет исследование в нужное русло.
Коллективно или разбившись на подгруппы, анализируют приведенные примеры и ответы к ним, пытаются применить уже известную тему урока и формулируют гипотезу о том, что число целых точек на отрезке есть
НОД(|Ax-Bx|, |Ay-By|)+1.
Проверяют эту гипотезу на своих примерах.
Метод постановки и решения учебной задачи: подводящий к теме - диалог, коллективное обсуждение или обсуждение в группах.
Задача: даны две произвольные точки A и B плоскости с целыми координатами.
Требуется узнать, сколько точек с целыми координатами попадает на отрезок АB.
1: A(1,7), B(7,4)
2: A(2,1), B(6,1)
3: A(10,7), B(10,4)
4: A(9,1), B(12,2)
И еще:
5: A(16, 11), B(1,1)
Написание и отладка программы, окончательная проверка гипотезы - время 9 мин.
Формулирует основную задачу урока, предлагает самостоятельно написать и сдать на проверку в систему программу для ее решения, при необходимости помогает исправить ошибки и отладить неработающие варианты программ.
Пишут программу для решения задачи. При возникновении ошибок компиляции или содержательных ошибок, помогают друг другу их исправить. Взаимодействуя с проверяющей системой, получают информацию о правильности написанной программы, при необходимости доводя программу до надлежащего уровня.
Взаимодействие учеников внутри группы и взаимодействие с интерактивной проверяющей системой позволяет обучающимся закрепить материал и самостоятельно или с помощью одногруппника исправить и отладить программу.
Задача №319 "Точки на отрезке"
с acmp.ru
Условие задачи
Концы отрезка на плоскости имеют целочисленные координаты. Написать программу, которая вычислит, сколько всего точек с целочисленными координатами принадлежат этому отрезку.
Входные данные
Входной поток содержит четыре числа - координаты концов отрезка (x1, y1) и (x2, y2). Каждая из координат не превышает по абсолютной величине значения 109.
Выходные данные
Выходной поток должен содержать одно число - количество точек на заданном отрезке, имеющих целочисленные координаты.
Пример
Входные данные Выходные данные
0 0 -2 -2 3
Решение дополнительной задачи или продолжение решения основной задачи - время 8 мин.
Предлагает ученикам, получившим вердикт Accepted по предыдущей задаче объединиться в группу решающих дополнительную задачу №358 "Забор в парке". Убедившись, что данная задача понята и группа приступила к ее решению и написанию программы, продолжает помогать группе учеников, программы которых по предыдущей задаче еще не прошли окончательную проверку в системе.
Совместно разрабатывают алгоритм решения задачи №358 "Забор в парке", пишут и сдают на проверку решающую ее программу либо пытаются отладить и успешно сдать программу по задаче №319 "Точки отрезка".
Метод работы в малых группах, обусловленый разной скоростью восприятия материала и написания программ обучающимися.
Задача №358 "Забор в парке"
с acmp.ru
Условие задачи
В парке деревья образуют квадратную решетку с шагом один метр. Часть парка было решено оградить забором, который представляет собой треугольник с заданными координатами вершин. Деревья, которые в точности попадают на вершины или стороны треугольника, придется срубить. Требуется написать программу, которая найдет количество таких деревьев.
Входные данные
Входной поток содержит шесть целых чисел - координаты вершин треугольника. Все числа по абсолютной величине не превышают 109 и разделены пробелами.
Выходные данные
Выходной поток должен содержать одно число - количество деревьев.
Пример
Входные данные Выходные данные
0 0 2 0 0 2 6
Домашнее задание, инструктаж по его выполнению - время 2 мин.
Предлагает домашнее задание каждой группе в отдельности:
решившим все задачи урока -дополнительную задачу №1259 "Как стать звездой" с ресурса acm.timus.ru, остальным - дорешать и успешно сдать на проверку в системе acmp.ru те задачи урока, по которым программа не получила полный балл.
Самостоятельно выбирают объем
домашнего задания; задают уточняющие вопросы.
Объективно оценивать свои результаты и соответственно им выбирать домашнее задание.
Способность организовать собственную деятельность.
Задачи для тренировки: © acm.timus.ru, 2000-2015
1259. Как стать звездой
Ограничение времени: 1.0 секунды
Ограничение памяти: 64 МБ
Определение. Звездой называется замкнутая ломаная, построенная за конечное число шагов по следующему алгоритму:
-
Фиксируем некоторый угол α (0 < α < π)
-
Первое звено ломаной (0, 0) - (1, 0).
-
Второе звено ломаной получается из первого путем его поворота на угол α против часовой стрелки относительно точки (1, 0).
-
(i + 2)-е звено ломаной получается из (i + 1)-го звена путем его поворота на угол α против часовой стрелки относительно свободного конца (противоположного тому, которое соединено с i-м звеном) (i + 1)-го звена.
-
Алгоритм заканчивает работу сразу, как только ломаная замкнулась.
Определение. Количество вершин звезды - количество звеньев построенной ломаной.
Исходные данные
Единственное целое число N (3 ≤ N ≤ 100000).
Результат
Выведите количество различных звёзд с N вершинами.
Примеры
исходные данные
результат
5
2
9
3
1291. Шестерёнки
Ограничение времени: 1.0 секунды
Ограничение памяти: 64 МБ
Каждая шестерня на схеме обозначается окружностью с вписанным в ней числом - количеством зубьев шестерни. Шестерни соединяются самым обычным образом: зубья одной шестерёнки заходят в пазы между зубьями другой так, что вращение одной из них передаётся другой. Известно, что система шестерёнок не содержит циклы. Необходимо проверить, что скорость и направление вращения каждой шестерни соответствуют требованиям.
Исходные данные
В первой строке содержится число N (1 ≤ N ≤ 1000) - количество шестерёнок в системе. В следующих N строках содержится информация о шестерёнках и их соединении между собой. i-я строка содержит следующие числа через пробел: количество зубьев i-й шестерёнки (целое число от 1 до 1000) и список номеров шестерёнок, с которыми она соединена, заканчивающийся нулём.
Последняя строка входа содержит два числа: номер шестерни, соединённой с кинетическим генератором, и скорость, с которой она вертится против хода часовой стрелки (целое число от 1 до 1000).
Результат
Выведите N строк. i-я строка должна содержать скорость вращения i-й шестерни в данном механизме в виде несократимой дроби. Числитель и знаменатель должны быть разделены знаком '/'. Скорость может быть как положительной, тогда считается, что шестерня крутится против хода часовой стрелки, так и отрицательной, тогда считается, что шестерня крутится по ходу часовой стрелки. Если скорость отрицательна, то знак минус должен быть перед числителем. Если скорость равна нулю, то числитель должен быть равен нулю, а знаменатель - единице. Гарантируется, что и числитель, и знаменатель скорости любой шестерёнки не превосходит по абсолютному значению 106.
Пример
исходные данные
результат
4
10 2 3 0
20 1 0
40 1 4 0
100 3 0
1 6
6/1
-3/1
-3/2
3/5
Медиаресурсы
1. Образовательный Интернет-ресурс олимпиадного программирования для школьников "Школа программиста" [Электронный ресурс] // Сайт Красноярского краевого Дворца пионеров и школьников. - 2015. - Режим доступа:
2. Архив задач по программированию с автоматической проверяющей системой " Timus Online Judge" [Электронный ресурс] // Сайт студентов и выпускников Уральского Федерального университета. - 2015. - Режим доступа: http://acm.timus.ru/
3. Портал Codeforces [Электронный ресурс] // Сайт Михаила Мирзаянова: платформа для создания, проведения и обсуждения соревнований по программированию. - 2015. - Режим доступа:
4. Информационный ресурс по программированию e-maxx [Электронный ресурс] // Сайт Максима Иванова: методические и информационные материалы для подготовки к олимпиадам по программированию. - 2015. - Режим доступа:
Литература
1. Кирюхин В.М. Методика проведения и подготовки к участию в олимпиадах по информатике. Всероссийская олимпиада школьников. - М.: БИНОМ. Лаборатория знаний, 2012. - 280 с.
2. Меньшиков Ф.В. Олимпиадные задачи по программированию. - СПб.: Питер, 2006. - 315 с.
3. Бьерн Страуструп - Программирование. Принципы и практика использования C++. -М.: Вильямс, 2011. - 1248 с.