Математические задачи со стрелочными часами в пакете Maple
Выпуск:
ART 85534
Библиографическое описание статьи для цитирования:
Заваровский
Ю.
Н. Математические задачи со стрелочными часами в пакете Maple // Научно-методический электронный журнал «Концепт». –
2015. – Т. 13. – С.
2666–2670. – URL:
http://e-koncept.ru/2015/85534.htm.
Аннотация. В статье представлены разработанные автором три процедуры для работы в универсальном математическом пакете Maple. Первые две процедуры позволяют в автоматическом режиме решать ряд математических задач, связанных с циферблатом стрелочных часов (вычисление угла между часовой и минутной стрелками в заданный произвольный момент времени и обратная задача). Третья процедура позволяет получить детальное изображение часов со стрелками в любой момент времени вместе с изображением соответствующего угла.
Текст статьи
Заваровский Юрий Николаевич,кандидат физикоматематических наук, доцент кафедры «Информатика, математика и общегуманитарные науки»,Пензенский филиал Финансового университета при Правительстве Российской федерации, г. Пенза,Kitonum@yandex.ru
Математические задачи со стрелочными часами в пакете Maple
Аннотация. В статье представлены разработанные автором три процедуры для работы в универсальном математическом пакете Maple. Первые две процедуры позволяют в автоматическом режиме решать ряд математических задач, связанных с циферблатом стрелочных часов (вычисление угла между часовой и минутной стрелками в заданный произвольный момент времени и обратная задача). Третья процедура позволяет получить детальное изображение часов со стрелками в любой момент времени вместе с изображением соответствующего угла.Ключевые слова:стрелочные часы, Maple, процедура, угол между часовой и минутной стрелками.
Одна из характерных черт современной школы –всё большее проникновение различных компьютерных технологий. Сейчас уже никого не удивишь такими программными продуктами как, например, Wordили PowerPoint,которые широко используются почти во всех дисциплинах.Однако в преподавании такихведущихдисциплин как математикаили физика, компьютер практически не используется, в лучшем случае калькулятор. А ведь достаточно давно существуют так называемые универсальные математические пакеты, которые позволяют в автоматическом режиме решать самые разные математические задачи(или математически ориентированные задачи по физике), например, находить корни уравнений, строить различные графики, вычислять производные и интегралы, и даже создавать анимации (движущиеся картинки). В последние 10 –15 лет значительное распространение во всём мире получила разработка канадской фирмы Maplesoft–это универсальный математический пакет Maple.Основной способ работы в пакете Maple–это применение так называемых встроенных функций (команд), которых в пакете более 4000. Для этого достаточно просто набрать имя нужной команды, затем в круглых скобках основные параметры решаемой задачи и нажать клавишу «Ввод». Помимо встроенных функций в Mapleимеется свой язык программирования, очень близкий к такимпопулярным учебным языкам как Бэйсик или Паскаль, что позволяет «наводить мостики» между курсами математики и информатики. Конечно, если вести речь о школе, всё вышесказанное полезно прежде всего учителю математикиили физики, который может, используя пакет, в автоматическом режиме подготовить задания для самостоятельной или контрольной работыи тут жераспечатать ихдля непосредственного использования. Для удобства проверки он может, также в автоматическом режиме,прорешать эти примеры, получив все ответы. Понятно, что это избавляет учителя от рутинной работы и позволяет ему сосредоточиться на более творческих проблемах, недоступных машине.
Математические задачи на циферблате стрелочных часов в дидактическом отношении очень полезны в нескольких аспектах. С одной стороны они очень наглядны и поэтому понятны даже для школьников младших классов и в то же время имеют важное развивающее значение при изучении вращательного движения объектов, двигающихся с различными скоростями. Встатье представлены разработанные автором три процедуры для работы с такими задачами в пакете Maple. Эти процедуры ранее были представлены автором на англоязычном форуме по пакету Maple(адрес сайта http://www.mapleprimes.com) и обсуждались на нём (см. [1] и [2]).Ниже приводятся тексты кодов этих процедур и ряд примеров работы с ними. Никаких умений программировать при этом не требуется. Достаточно иметь у себя на компьютере установленный пакет Mapleи обладать простейшими навыками работы в нём (см. [3]). Сами коды следует просто скопировать как текст в окно программы, инициализировать, т.е. нажать клавишу «Ввод»и всё готово к работе.Первая процедура с именем ClockHandsAngle (в переводе угол между стрелками)в любой заданный момент времени вычисляет угол между часовой и минутной стрелками. Параметры процедуры: H–числочасах (в диапазоне от 0 до 23)и М–число минут (в диапазоне от 0 до 59). Процедура возвращает точный ответ в градусах в виде целого числа или дроби (правильной или неправильной).Тексткодапроцедуры ClockHandsAngle:ClockHandsAngle:=proc(H, M) # HиM–времявчасах(0 H= 23) иминутах(0=M60)local A1,A2; A1:=(irem(H,12)+M/60)*30; A2:=M*6;min(abs(A1A2),360abs(A1A2)); # Уголвградусахendproc:
Два примера работы с процедурой ClockHandsAngle.
В первом примере часы показывают 3 часа и 15 минут, а во втором –19 часов и 10 минут:
ClockHandsAngle(3,15);ClockHandsAngle(19,10);152155
Таким образом, в первом примере угол равен 7,5 градуса, а во втором примере угол равен 155 градусов.
Вторая процедура с именем TimeFromAngle (в переводе времяпоуглу)решает обратную задачу, т.е. по заданномууглумежду часовой и минутной стрелкаминаходит соответствующие моменты времени в указанном диапазоне. Параметры процедуры: Angle–угол в градусахи Range–временной диапазон в часах. Процедура возвращает точныеответыв часах, минутах и долях минуты.Данная процедура включает в себя как подпроцедуру первую процедуру ClockHandsAngleи поэтому может быть использована независимо от неё. Тексткодапроцедуры TimeFromAngle:TimeFromAngle:=proc(Angle::numeric, Range::range) local ClockHandsAngle, F, L, H;
if Angle 0 or Angle 䀀180 then error "Should be 0=Angle180"; fi;if lhs(Range)0 or rhs(Range瀀)24 or not type(lhs(Range), nonnegint) or not type(rhs(Range), nonnegint) then error "ЛевыеиправыечастидиапазонаRange должныбытьнеотрицательнымицелыминепревосходящими24"; fi;
ClockHandsAngle:=proc(H, M) # HиM–времявчасах(0 H= 23) иминутах(0=M60)local A1,A2; A1:=(irem(H,12)+M/60)*30; A2:=M*6;min(abs(A1A2),360abs(A1A2)); # Уголмеждустрелкамичасовend proc:
L:=[];for H from lhs(Range) to rhs(Range)1 doF:=proc(a, b) rhs(op(a))rhs(op(b)); end proc;sort([solve([ClockHandsAngle(H,M)=Angle, M=0, M60])], F); L:=[op(L), seq([H, rhs(op(%[j]))], j=1..nops(%))];od;
op(map(t>cat(t[1],` час `,floor(t[2]),`if`(frac(t[2])<>0,cat(` и `,convert(frac(t[2]),symbol)),NULL),` мин `),L)); endproc:
Два примера работы с процедурой TimeFromAngle.
В первом примере нужно найти момент времени после часа дня, когда минутная стрелка догоняет часовую и сливается с ней.
TimeFromAngle(0, 1..2);1 час 5 и 511мин
Во втором примере нужно найти сколько раз в течение суток часовая и минутная стрелки перпендикулярны между собой. Процедура находит абсолютно точно все эти моменты времени и их количество (всего 44 раза)
TimeFromAngle(90, 0..24);nops([%]);
Рис. 1. Пример работы процедуры TimeFromAngle
Третья процедура с именем
Clock (в переводечасы)в любой заданный момент времени показывает циферблат часов и соответствующий угол между часовой и минутной стрелками. Параметры процедуры: H–число часах (в диапазоне от 0 до 23) и М–число минут (в диапазоне от 0 до 59).Тексткодапроцедуры Clock:Clock:=proc(H, M) # HиM–времявчасах(0 H= 23) иминутах(0=M60)local A1,A2, A, B, B1, C1, C, E, F,alpha,t, T, T1, T2, P, G;uses plottools, plots;
A1:=(irem(H,12)+M/60)*30; A2:=M*6;A:=circle([0,0], thickness=5);P:=disk([0,0], 1, color=grey);B:=seq(line([0.9*cos(2*Pi*k/12),0.9*sin(2*Pi*k/12)], [cos(2*Pi*k/12),sin(2*Pi*k/12)], thickness=5, color=red), k=1..12);C:=seq(line([0.95*cos(2*Pi*k/60),0.95*sin(2*Pi*k/60)], [cos(2*Pi*k/60),sin(2*Pi*k/60)], color=blue, thickness=3), k=1..60);B1:=line([0,0], [1.2*sin(A1*Pi/180),1.2*cos(A1*Pi/180)]);C1:=line([0,0], [1.2*sin(A2*Pi/180),1.2*cos(A2*Pi/180)]);
E:=arrow([0,0],[0.65*sin(A1*Pi/180),0.65*cos(A1*Pi/180)], .05, .1, .15, color=red):F:=arrow([0,0], [0.8*sin(A2*Pi/180),0.8*cos(A2*Pi/180)], .05, .1, .15, color=blue):
alpha:=min(abs(A1A2),360abs(A1A2));
if A1=A2 and A1A2360A1+A2 then G:=arc([0,0], 1.15,Pi/2A2*Pi/180..Pi/2A1*Pi/180); t:=Pi/2(A1+A2)*Pi/360; T:=textplot([1.25*cos(t), 1.25*sin(t), cat(convert(alpha, symbol), ` градусов`)], font=[TIMES,ITALIC,20]); elif A1=A2 and A1A2=360A1+A2 then G:=arc([0,0],1.15,Pi/2A1*Pi/180..Pi/2(A2+360)*Pi/180); t:=Pi/2(A1+A2+360)*Pi/360; T:=textplot([1.25*cos(t), 1.25*sin(t), cat(convert(alpha, symbol), ` градусов`)], font=[TIMES,ITALIC,24]); fi;
if A1=A2 and A2A1360A2+A1 then G:=arc([0,0], 1.15,Pi/2A1*Pi/180..Pi/2A2*Pi/180);t:=Pi/2(A1+A2)*Pi/360; T:=textplot([1.25*cos(t), 1.25*sin(t), cat(convert(alpha, symbol), ` градусов`)], font=[TIMES,ITALIC,20]); elif A1=A2 and A2A1=360A2+A1 then G:=arc([0,0],1.15,Pi/2A2*Pi/180..Pi/2(A1+360)*Pi/180); t:=Pi/2(A1+A2+360)*Pi/360; T:=textplot([1.25*cos(t), 1.25*sin(t), cat(convert(alpha, symbol), ` градусов`)], font=[TIMES,ITALIC,20]); fi;
T1:=textplot([0,1/2, `Часы`], font=[TIMES,ITALIC,28]);T2:=textplot([[0.85*cos(Pi/2),0.85*sin(Pi/2), 12], [0.85*cos(Pi/3),0.85*sin(Pi/3), 1], [0.85*cos(Pi/6),0.85*sin(Pi/6), 2], [0.85*cos(0),0.85*sin(0), 3], [0.85*cos(Pi/6),0.85*sin(Pi/6), 4], [0.85*cos(Pi/3),0.85*sin(Pi/3), 5], [0.85*cos(Pi/2),0.85*sin(Pi/2), 6], [0.85*cos(2*Pi/3),0.85*sin(2*Pi/3), 7], [0.85*cos(5*Pi/6),0.85*sin(5*Pi/6), 8], [0.85*cos(Pi),0.85*sin(Pi), 9], [0.85*cos(7*Pi/6),0.85*sin(7*Pi/6), 10], [0.85*cos(2*Pi/3),0.85*sin(2*Pi/3), 11]], font=[TIMES,ROMAN,26]);
print(cat(`Уголмеждустрелкамичасовравен`, convert(alpha, symbol),` градусов`));display(A, B, B1, C1, C, E, F, P, G, T, T1, T2, axes=none, scaling=constrained);
endproc:
Рассмотрим пример работы процедуры Clock:
Clock(1,18);
Рис. 2. Пример работы процедуры Clock
Ссылки на источники1. URL: http://www.mapleprimes.com/posts/143494MapleForClockAndDegreesProblem–[Дата обращения 29.04.2015].2. URL: http://www.mapleprimes.com/posts/143906VisualizationOfClockAndDegreesProblem–[Дата обращения 29.04.2015].3. СдвижковО. А. Математика на компьютере: Maple8 / О. А. Сдвижков –М. : СОЛОНПресс, 2003. –175 с.
Математические задачи со стрелочными часами в пакете Maple
Аннотация. В статье представлены разработанные автором три процедуры для работы в универсальном математическом пакете Maple. Первые две процедуры позволяют в автоматическом режиме решать ряд математических задач, связанных с циферблатом стрелочных часов (вычисление угла между часовой и минутной стрелками в заданный произвольный момент времени и обратная задача). Третья процедура позволяет получить детальное изображение часов со стрелками в любой момент времени вместе с изображением соответствующего угла.Ключевые слова:стрелочные часы, Maple, процедура, угол между часовой и минутной стрелками.
Одна из характерных черт современной школы –всё большее проникновение различных компьютерных технологий. Сейчас уже никого не удивишь такими программными продуктами как, например, Wordили PowerPoint,которые широко используются почти во всех дисциплинах.Однако в преподавании такихведущихдисциплин как математикаили физика, компьютер практически не используется, в лучшем случае калькулятор. А ведь достаточно давно существуют так называемые универсальные математические пакеты, которые позволяют в автоматическом режиме решать самые разные математические задачи(или математически ориентированные задачи по физике), например, находить корни уравнений, строить различные графики, вычислять производные и интегралы, и даже создавать анимации (движущиеся картинки). В последние 10 –15 лет значительное распространение во всём мире получила разработка канадской фирмы Maplesoft–это универсальный математический пакет Maple.Основной способ работы в пакете Maple–это применение так называемых встроенных функций (команд), которых в пакете более 4000. Для этого достаточно просто набрать имя нужной команды, затем в круглых скобках основные параметры решаемой задачи и нажать клавишу «Ввод». Помимо встроенных функций в Mapleимеется свой язык программирования, очень близкий к такимпопулярным учебным языкам как Бэйсик или Паскаль, что позволяет «наводить мостики» между курсами математики и информатики. Конечно, если вести речь о школе, всё вышесказанное полезно прежде всего учителю математикиили физики, который может, используя пакет, в автоматическом режиме подготовить задания для самостоятельной или контрольной работыи тут жераспечатать ихдля непосредственного использования. Для удобства проверки он может, также в автоматическом режиме,прорешать эти примеры, получив все ответы. Понятно, что это избавляет учителя от рутинной работы и позволяет ему сосредоточиться на более творческих проблемах, недоступных машине.
Математические задачи на циферблате стрелочных часов в дидактическом отношении очень полезны в нескольких аспектах. С одной стороны они очень наглядны и поэтому понятны даже для школьников младших классов и в то же время имеют важное развивающее значение при изучении вращательного движения объектов, двигающихся с различными скоростями. Встатье представлены разработанные автором три процедуры для работы с такими задачами в пакете Maple. Эти процедуры ранее были представлены автором на англоязычном форуме по пакету Maple(адрес сайта http://www.mapleprimes.com) и обсуждались на нём (см. [1] и [2]).Ниже приводятся тексты кодов этих процедур и ряд примеров работы с ними. Никаких умений программировать при этом не требуется. Достаточно иметь у себя на компьютере установленный пакет Mapleи обладать простейшими навыками работы в нём (см. [3]). Сами коды следует просто скопировать как текст в окно программы, инициализировать, т.е. нажать клавишу «Ввод»и всё готово к работе.Первая процедура с именем ClockHandsAngle (в переводе угол между стрелками)в любой заданный момент времени вычисляет угол между часовой и минутной стрелками. Параметры процедуры: H–числочасах (в диапазоне от 0 до 23)и М–число минут (в диапазоне от 0 до 59). Процедура возвращает точный ответ в градусах в виде целого числа или дроби (правильной или неправильной).Тексткодапроцедуры ClockHandsAngle:ClockHandsAngle:=proc(H, M) # HиM–времявчасах(0 H= 23) иминутах(0=M60)local A1,A2; A1:=(irem(H,12)+M/60)*30; A2:=M*6;min(abs(A1A2),360abs(A1A2)); # Уголвградусахendproc:
Два примера работы с процедурой ClockHandsAngle.
В первом примере часы показывают 3 часа и 15 минут, а во втором –19 часов и 10 минут:
ClockHandsAngle(3,15);ClockHandsAngle(19,10);152155
Таким образом, в первом примере угол равен 7,5 градуса, а во втором примере угол равен 155 градусов.
Вторая процедура с именем TimeFromAngle (в переводе времяпоуглу)решает обратную задачу, т.е. по заданномууглумежду часовой и минутной стрелкаминаходит соответствующие моменты времени в указанном диапазоне. Параметры процедуры: Angle–угол в градусахи Range–временной диапазон в часах. Процедура возвращает точныеответыв часах, минутах и долях минуты.Данная процедура включает в себя как подпроцедуру первую процедуру ClockHandsAngleи поэтому может быть использована независимо от неё. Тексткодапроцедуры TimeFromAngle:TimeFromAngle:=proc(Angle::numeric, Range::range) local ClockHandsAngle, F, L, H;
if Angle 0 or Angle 䀀180 then error "Should be 0=Angle180"; fi;if lhs(Range)0 or rhs(Range瀀)24 or not type(lhs(Range), nonnegint) or not type(rhs(Range), nonnegint) then error "ЛевыеиправыечастидиапазонаRange должныбытьнеотрицательнымицелыминепревосходящими24"; fi;
ClockHandsAngle:=proc(H, M) # HиM–времявчасах(0 H= 23) иминутах(0=M60)local A1,A2; A1:=(irem(H,12)+M/60)*30; A2:=M*6;min(abs(A1A2),360abs(A1A2)); # Уголмеждустрелкамичасовend proc:
L:=[];for H from lhs(Range) to rhs(Range)1 doF:=proc(a, b) rhs(op(a))rhs(op(b)); end proc;sort([solve([ClockHandsAngle(H,M)=Angle, M=0, M60])], F); L:=[op(L), seq([H, rhs(op(%[j]))], j=1..nops(%))];od;
op(map(t>cat(t[1],` час `,floor(t[2]),`if`(frac(t[2])<>0,cat(` и `,convert(frac(t[2]),symbol)),NULL),` мин `),L)); endproc:
Два примера работы с процедурой TimeFromAngle.
В первом примере нужно найти момент времени после часа дня, когда минутная стрелка догоняет часовую и сливается с ней.
TimeFromAngle(0, 1..2);1 час 5 и 511мин
Во втором примере нужно найти сколько раз в течение суток часовая и минутная стрелки перпендикулярны между собой. Процедура находит абсолютно точно все эти моменты времени и их количество (всего 44 раза)
TimeFromAngle(90, 0..24);nops([%]);
Рис. 1. Пример работы процедуры TimeFromAngle
Третья процедура с именем
Clock (в переводечасы)в любой заданный момент времени показывает циферблат часов и соответствующий угол между часовой и минутной стрелками. Параметры процедуры: H–число часах (в диапазоне от 0 до 23) и М–число минут (в диапазоне от 0 до 59).Тексткодапроцедуры Clock:Clock:=proc(H, M) # HиM–времявчасах(0 H= 23) иминутах(0=M60)local A1,A2, A, B, B1, C1, C, E, F,alpha,t, T, T1, T2, P, G;uses plottools, plots;
A1:=(irem(H,12)+M/60)*30; A2:=M*6;A:=circle([0,0], thickness=5);P:=disk([0,0], 1, color=grey);B:=seq(line([0.9*cos(2*Pi*k/12),0.9*sin(2*Pi*k/12)], [cos(2*Pi*k/12),sin(2*Pi*k/12)], thickness=5, color=red), k=1..12);C:=seq(line([0.95*cos(2*Pi*k/60),0.95*sin(2*Pi*k/60)], [cos(2*Pi*k/60),sin(2*Pi*k/60)], color=blue, thickness=3), k=1..60);B1:=line([0,0], [1.2*sin(A1*Pi/180),1.2*cos(A1*Pi/180)]);C1:=line([0,0], [1.2*sin(A2*Pi/180),1.2*cos(A2*Pi/180)]);
E:=arrow([0,0],[0.65*sin(A1*Pi/180),0.65*cos(A1*Pi/180)], .05, .1, .15, color=red):F:=arrow([0,0], [0.8*sin(A2*Pi/180),0.8*cos(A2*Pi/180)], .05, .1, .15, color=blue):
alpha:=min(abs(A1A2),360abs(A1A2));
if A1=A2 and A1A2360A1+A2 then G:=arc([0,0], 1.15,Pi/2A2*Pi/180..Pi/2A1*Pi/180); t:=Pi/2(A1+A2)*Pi/360; T:=textplot([1.25*cos(t), 1.25*sin(t), cat(convert(alpha, symbol), ` градусов`)], font=[TIMES,ITALIC,20]); elif A1=A2 and A1A2=360A1+A2 then G:=arc([0,0],1.15,Pi/2A1*Pi/180..Pi/2(A2+360)*Pi/180); t:=Pi/2(A1+A2+360)*Pi/360; T:=textplot([1.25*cos(t), 1.25*sin(t), cat(convert(alpha, symbol), ` градусов`)], font=[TIMES,ITALIC,24]); fi;
if A1=A2 and A2A1360A2+A1 then G:=arc([0,0], 1.15,Pi/2A1*Pi/180..Pi/2A2*Pi/180);t:=Pi/2(A1+A2)*Pi/360; T:=textplot([1.25*cos(t), 1.25*sin(t), cat(convert(alpha, symbol), ` градусов`)], font=[TIMES,ITALIC,20]); elif A1=A2 and A2A1=360A2+A1 then G:=arc([0,0],1.15,Pi/2A2*Pi/180..Pi/2(A1+360)*Pi/180); t:=Pi/2(A1+A2+360)*Pi/360; T:=textplot([1.25*cos(t), 1.25*sin(t), cat(convert(alpha, symbol), ` градусов`)], font=[TIMES,ITALIC,20]); fi;
T1:=textplot([0,1/2, `Часы`], font=[TIMES,ITALIC,28]);T2:=textplot([[0.85*cos(Pi/2),0.85*sin(Pi/2), 12], [0.85*cos(Pi/3),0.85*sin(Pi/3), 1], [0.85*cos(Pi/6),0.85*sin(Pi/6), 2], [0.85*cos(0),0.85*sin(0), 3], [0.85*cos(Pi/6),0.85*sin(Pi/6), 4], [0.85*cos(Pi/3),0.85*sin(Pi/3), 5], [0.85*cos(Pi/2),0.85*sin(Pi/2), 6], [0.85*cos(2*Pi/3),0.85*sin(2*Pi/3), 7], [0.85*cos(5*Pi/6),0.85*sin(5*Pi/6), 8], [0.85*cos(Pi),0.85*sin(Pi), 9], [0.85*cos(7*Pi/6),0.85*sin(7*Pi/6), 10], [0.85*cos(2*Pi/3),0.85*sin(2*Pi/3), 11]], font=[TIMES,ROMAN,26]);
print(cat(`Уголмеждустрелкамичасовравен`, convert(alpha, symbol),` градусов`));display(A, B, B1, C1, C, E, F, P, G, T, T1, T2, axes=none, scaling=constrained);
endproc:
Рассмотрим пример работы процедуры Clock:
Clock(1,18);
Рис. 2. Пример работы процедуры Clock
Ссылки на источники1. URL: http://www.mapleprimes.com/posts/143494MapleForClockAndDegreesProblem–[Дата обращения 29.04.2015].2. URL: http://www.mapleprimes.com/posts/143906VisualizationOfClockAndDegreesProblem–[Дата обращения 29.04.2015].3. СдвижковО. А. Математика на компьютере: Maple8 / О. А. Сдвижков –М. : СОЛОНПресс, 2003. –175 с.