Результаты исследований учащихся в проекте Учимся программировать: различия между версиями
(не показано 16 промежуточных версий 2 участников) | |||
Строка 52: | Строка 52: | ||
</div> | </div> | ||
− | == Постановка задачи = | + | |
− | Целью нашего | + | <!--Постановка задачи--> |
+ | <h2 style="border:none;font-size:0px;">Постановка задачи</h2> | ||
+ | <div style="background:#C5F2FF;font-size:20px;text-align:center;padding:4px;">Постановка задачи</div> | ||
+ | <div style="padding:10px;color:black;border:1px dashed #60DBFF;margin-top:5px;"> | ||
+ | Целью нашего исследования является проверка второго закона Кеплера: "Каждая планета движется в плоскости, проходящей через центр Солнца, причём за равные промежутки времени радиус-вектор, соединяющий Солнце и планету, описывает равные площади." <br> | ||
Применительное к нашей Солнечной системе, с этим законом связаны два понятия: перигелий — ближайшая к Солнцу точка орбиты, и афелий — наиболее удалённая точка орбиты. Таким образом, из второго закона Кеплера следует, что планета движется вокруг Солнца неравномерно, имея в перигелии большую линейную скорость, чем в афелии.<br> | Применительное к нашей Солнечной системе, с этим законом связаны два понятия: перигелий — ближайшая к Солнцу точка орбиты, и афелий — наиболее удалённая точка орбиты. Таким образом, из второго закона Кеплера следует, что планета движется вокруг Солнца неравномерно, имея в перигелии большую линейную скорость, чем в афелии.<br> | ||
− | [[Изображение:СоколовВасильевВторойЗаконКеплера.svg.png| | + | [[Изображение:СоколовВасильевВторойЗаконКеплера.svg.png|400px]] |
− | Наша экспериментальная модель будет представлять собой спутник, вращающийся вокруг Земли. | + | <i style="font-size:13px;">Наша экспериментальная модель будет представлять собой спутник, вращающийся вокруг Земли.</i> |
+ | </div> | ||
− | == Аналитическое решение = | + | <!--Аналитическое решение--> |
+ | <h2 style="border:none;font-size:0px;">Аналитическое решение</h2> | ||
+ | <div style="background:#C5F2FF;font-size:20px;text-align:center;padding:4px;">Аналитическое решение</div> | ||
+ | <div style="padding:10px;color:black;border:1px dashed #60DBFF;margin-top:5px;"> | ||
[[Изображение:СоколовВасильевТеория.jpg]]<br> | [[Изображение:СоколовВасильевТеория.jpg]]<br> | ||
Согласно доказательству второго закона Кеплера в аналитическом виде подберем необходимые численные методы, для вычисления соответствующих параметров в цифровом виде. Для этого наиболее подходящим решением является метод Рунге — Кутты четвёртого порядка:<br> | Согласно доказательству второго закона Кеплера в аналитическом виде подберем необходимые численные методы, для вычисления соответствующих параметров в цифровом виде. Для этого наиболее подходящим решением является метод Рунге — Кутты четвёртого порядка:<br> | ||
[[Изображение:СоколовВасильевРунгеКутта.jpg|1000px]] | [[Изображение:СоколовВасильевРунгеКутта.jpg|1000px]] | ||
+ | </div> | ||
− | == Пробная модель = | + | <!--Пробная модель--> |
+ | <h2 style="border:none;font-size:0px;">Пробная модель</h2> | ||
+ | <div style="background:#C5F2FF;font-size:20px;text-align:center;padding:4px;">Пробная модель</div> | ||
+ | <div style="padding:10px;color:black;border:1px dashed #60DBFF;margin-top:5px;"> | ||
На данном этапе нам необходимо определиться со средой в которой будет написана наша программа. Наиболее подходящая по своей вычислительной мощи и объектно ориентированному подходу является среда Visual С++. | На данном этапе нам необходимо определиться со средой в которой будет написана наша программа. Наиболее подходящая по своей вычислительной мощи и объектно ориентированному подходу является среда Visual С++. | ||
Для наглядности в нашей программе должна присутствовать и графическая часть, по этому важным параметром будет подключение библиотек MFC. <br><br> | Для наглядности в нашей программе должна присутствовать и графическая часть, по этому важным параметром будет подключение библиотек MFC. <br><br> | ||
Строка 71: | Строка 83: | ||
В программе Microsoft Visual Studio нажимаем "создать проект"<br> | В программе Microsoft Visual Studio нажимаем "создать проект"<br> | ||
[[Изображение:СоколовВасильевПМ1.jpg|700px]]<br> | [[Изображение:СоколовВасильевПМ1.jpg|700px]]<br> | ||
+ | <br> | ||
Далее появляется мастер создания проекта. Нам необходимо выбрать среду в которой будем программировать(Visual C++ с поддержкой MFC) и пройти дальнейшие рекомендации по выбору проекта. Так как мы не создаем особо сложный проект, нам будет достаточно одного документа.<br> | Далее появляется мастер создания проекта. Нам необходимо выбрать среду в которой будем программировать(Visual C++ с поддержкой MFC) и пройти дальнейшие рекомендации по выбору проекта. Так как мы не создаем особо сложный проект, нам будет достаточно одного документа.<br> | ||
[[Изображение:СоколовВасильевПМ2.jpg|700px]]<br><br> | [[Изображение:СоколовВасильевПМ2.jpg|700px]]<br><br> | ||
− | [[Изображение:СоколовВасильевПМ3.jpg|700px]]<br> | + | [[Изображение:СоколовВасильевПМ3.jpg|700px]]<br><br> |
Нажимаем кнопку готово и переходим непосредственно к созданию платформы и рабочего кода программы. Во вкладке "окно ресурсов" выбираем папку Dialog и элемент, который там находится. Заполняем его необходимыми элементами из панели Toolbar.<br> | Нажимаем кнопку готово и переходим непосредственно к созданию платформы и рабочего кода программы. Во вкладке "окно ресурсов" выбираем папку Dialog и элемент, который там находится. Заполняем его необходимыми элементами из панели Toolbar.<br> | ||
− | [[Изображение:СоколовВасильевПМ4.jpg|700px]]<br> | + | [[Изображение:СоколовВасильевПМ4.jpg|700px]]<br><br> |
Двойным нажатием на элемент мастер направляет нас в раздел описания данного элемента. Здесь прописывается код, который должен исполняться при использовании данного элемента.<br> | Двойным нажатием на элемент мастер направляет нас в раздел описания данного элемента. Здесь прописывается код, который должен исполняться при использовании данного элемента.<br> | ||
[[Изображение:СоколовВасильевИП1.png|500px]] | [[Изображение:СоколовВасильевИП1.png|500px]] | ||
[[Изображение:СоколовВасильевИП2.jpg|500px]] | [[Изображение:СоколовВасильевИП2.jpg|500px]] | ||
[[Изображение:СоколовВасильевИП4.jpg|500px]]<br> | [[Изображение:СоколовВасильевИП4.jpg|500px]]<br> | ||
+ | </div> | ||
− | + | <!--Итоговая программа--> | |
− | == Итоговая программа = | + | <h2 style="border:none;font-size:0px;">Итоговая программа</h2> |
+ | <div style="background:#C5F2FF;font-size:20px;text-align:center;padding:4px;">Итоговая программа</div> | ||
+ | <div style="padding:10px;color:black;border:1px dashed #60DBFF;margin-top:5px;"> | ||
На данном этапе необходимо провести отладку программы: определить, все ли параметры работают корректно, нет ли каких либо ошибок. Добавляются (по мере необходимости) дополнительные параметры.<br> | На данном этапе необходимо провести отладку программы: определить, все ли параметры работают корректно, нет ли каких либо ошибок. Добавляются (по мере необходимости) дополнительные параметры.<br> | ||
− | Проведя отладку, мы можем при помощи программы проверить, выполняется ли второй закон Кеплера. <br> | + | Проведя отладку, мы можем при помощи программы проверить, выполняется ли второй закон Кеплера. <br><br> |
[[Изображение:СоколовВасильевИП5.jpg|600px]]<br><br> | [[Изображение:СоколовВасильевИП5.jpg|600px]]<br><br> | ||
Как видно из результатов, мы получили практически одинаковые отношения площадей, что говорит о правильной работе программы. Расхождения в пятом знаке после запятой объясняются неточностью используемых констант и погрешностями, возникающими при использовании итерационного метода. | Как видно из результатов, мы получили практически одинаковые отношения площадей, что говорит о правильной работе программы. Расхождения в пятом знаке после запятой объясняются неточностью используемых констант и погрешностями, возникающими при использовании итерационного метода. | ||
[https://drive.google.com/file/d/0B-DLeCobbOOqdDByRWQ4Z2FLMVE/edit?usp=sharing Архив с программой] | [https://drive.google.com/file/d/0B-DLeCobbOOqdDByRWQ4Z2FLMVE/edit?usp=sharing Архив с программой] | ||
+ | </div> | ||
− | ==Вывод= | + | <!--Вывод--> |
− | + | <h2 style="border:none;font-size:0px;">Вывод</h2> | |
+ | <div style="background:#C5F2FF;font-size:20px;text-align:center;padding:4px;">Вывод</div> | ||
+ | <div style="padding:10px;color:black;border:1px dashed #60DBFF;margin-top:5px;font-size:14px;"> | ||
+ | В результате проведенной работы была раскрыта практическая ценность программирования для физики. Вышеописанное демонстрирует возможности моделирования и расчетов физических явлений, что несомненно играет важную роль в развитии этой науки.<br> | ||
+ | Несмотря на то, что данная программа не занимает особых вычислительных ресурсов у системы, она довольно подробно и наглядно демонстрирует все преимущества используемой программной среды С++, и, на наш взгляд способна заинтересовать старшеклассников в дальнейшем развитии мира IT - технологий. | ||
+ | </div> | ||
<!--Полезные ресурсы--> | <!--Полезные ресурсы--> |
Текущая версия на 10:10, 19 декабря 2013
Содержание
- 1 Авторы и участники проекта
- 2 Тема исследования группы
- 3 Проблемный вопрос (вопрос для исследования)
- 4 Гипотеза исследования
- 5 Цели исследования
- 6 Результаты проведённого исследования
- 7 Постановка задачи
- 8 Аналитическое решение
- 9 Пробная модель
- 10 Итоговая программа
- 11 Вывод
- 12 Полезные ресурсы
- 13 Другие документы
Авторы и участники проекта
Тема исследования группы
Моделирование физических явлений с помощью программ в рамках проекта "Учимся программировать"
Проблемный вопрос (вопрос для исследования)
Как в вашей области используется программы?
Гипотеза исследования
Мы считаем что, профессия "программист" весьма востребована в современном информационном обществе. Программисты пользуются спросом во всех научных и социальных областях, в том числе и физике. Все научно-исследовательские институты пользуются услугами программистов для точного вычисления физических констант путем моделирования естественных процессов.К примеру на супер компьютерах была поставлена гипотеза существования "Базона Хикса", которая, в последствии, была успешно проверенна на большом адронном коллайдере.
Цели исследования
- В соответствии с проблемным вопросом выбрать физические явления, моделирование которых будет производится на программах, написанных на языке С++.
- Аналитически интерпретировать поставленную задачу.
- Выделить ключевые пункты моделируемого явления.
- Проанализировать полученные результаты и составить рабочую программу исследуемого явления.
Результаты проведённого исследования
Постановка задачи
Целью нашего исследования является проверка второго закона Кеплера: "Каждая планета движется в плоскости, проходящей через центр Солнца, причём за равные промежутки времени радиус-вектор, соединяющий Солнце и планету, описывает равные площади."
Применительное к нашей Солнечной системе, с этим законом связаны два понятия: перигелий — ближайшая к Солнцу точка орбиты, и афелий — наиболее удалённая точка орбиты. Таким образом, из второго закона Кеплера следует, что планета движется вокруг Солнца неравномерно, имея в перигелии большую линейную скорость, чем в афелии.
Наша экспериментальная модель будет представлять собой спутник, вращающийся вокруг Земли.
Аналитическое решение
Согласно доказательству второго закона Кеплера в аналитическом виде подберем необходимые численные методы, для вычисления соответствующих параметров в цифровом виде. Для этого наиболее подходящим решением является метод Рунге — Кутты четвёртого порядка:
Пробная модель
На данном этапе нам необходимо определиться со средой в которой будет написана наша программа. Наиболее подходящая по своей вычислительной мощи и объектно ориентированному подходу является среда Visual С++.
Для наглядности в нашей программе должна присутствовать и графическая часть, по этому важным параметром будет подключение библиотек MFC.
Создаем наш проект:
В программе Microsoft Visual Studio нажимаем "создать проект"
Далее появляется мастер создания проекта. Нам необходимо выбрать среду в которой будем программировать(Visual C++ с поддержкой MFC) и пройти дальнейшие рекомендации по выбору проекта. Так как мы не создаем особо сложный проект, нам будет достаточно одного документа.
Нажимаем кнопку готово и переходим непосредственно к созданию платформы и рабочего кода программы. Во вкладке "окно ресурсов" выбираем папку Dialog и элемент, который там находится. Заполняем его необходимыми элементами из панели Toolbar.
Двойным нажатием на элемент мастер направляет нас в раздел описания данного элемента. Здесь прописывается код, который должен исполняться при использовании данного элемента.
Итоговая программа
На данном этапе необходимо провести отладку программы: определить, все ли параметры работают корректно, нет ли каких либо ошибок. Добавляются (по мере необходимости) дополнительные параметры.
Проведя отладку, мы можем при помощи программы проверить, выполняется ли второй закон Кеплера.
Как видно из результатов, мы получили практически одинаковые отношения площадей, что говорит о правильной работе программы. Расхождения в пятом знаке после запятой объясняются неточностью используемых констант и погрешностями, возникающими при использовании итерационного метода.
Вывод
В результате проведенной работы была раскрыта практическая ценность программирования для физики. Вышеописанное демонстрирует возможности моделирования и расчетов физических явлений, что несомненно играет важную роль в развитии этой науки.
Несмотря на то, что данная программа не занимает особых вычислительных ресурсов у системы, она довольно подробно и наглядно демонстрирует все преимущества используемой программной среды С++, и, на наш взгляд способна заинтересовать старшеклассников в дальнейшем развитии мира IT - технологий.
Полезные ресурсы
Портал с большим количеством книг, справочников, примеров исходного кода, на языке С++
Основы программирования (алгоритмы, циклы, функции)
Ресурс состоит из видеороликов и практических занятий по С++, совмещенных с консультациями автора
Основы объектно-ориентированного программирования на С++
Учебник по вики
Сборник руководств по продуктам Microsoft Office