Вложение | Размер |
---|---|
miroshnik_nprk_2013.doc | 441.5 КБ |
Всероссийские юношеские чтения имени В.И.Вернадского
III Ямало-Ненецкий окружной тур
ЯНАО, Пуровский район, п.г.т. Уренгой, мкр.5, дом 53а
Компьютерная модель физических задач на объектно-ориентированном языке программирования.
Мирошник Антоний, ученик 11 класса
муниципального бюджетного общеобразовательного учреждения
«Средняя общеобразовательная школа № 2» пг.т. Уренгой Пуровского района
Замятина Ольга Валерьевна, учитель информатики
муниципального бюджетного общеобразовательного учреждения
«Средняя общеобразовательная школа № 2 п.г.т. Уренгой Пуровского района
Шмидт Наталья Александровна, учитель физики
муниципального бюджетного общеобразовательного учреждения
«Средняя общеобразовательная школа № 2» п.г.т. Уренгой Пуровского района
п.г.т. УРЕНГОЙ
2013 год
СОДЕРЖАНИЕ
Ведение
Процедурные языки программирования.
Визуальные объектно-ориентированные языки программирования.
Заключение.
Список литературы
Приложение
Компьютерная модель физических задач на объектно-ориентированном языке программирования.
Исполнитель: Мирошник Антоний, 11 класс, 17 лет, МБОУ «СОШ №2» п.г.т. Уренгой Пуровского района.
Руководители: Замятина Ольга Валерьевна, учитель информатики, МБОУ «СОШ №2» п.г.т. Уренгой Пуровского района.
Шмидт Наталья Александровна, учитель физики, МБОУ «СОШ №2» п.г.т. Уренгой Пуровского района.
ВВЕДЕНИЕ
В изучении физики значительное место занимают решение задач и физический эксперимент всех видов. Приведём известное высказывание Э. Ферми: «Человек знает физику, если он умеет решать задачи». Компьютерные технологии и здесь оказывают революционизирующее воздействие.
Развитие любой науки невозможно без создания теоретических и практических моделей.
Компьютерное моделирование, вычислительный эксперимент становится новым инструментом, методом научного познания, новой технологии из-за возрастающей необходимости перехода к исследованию сложных систем.
Познакомившись с моделями решения физических задач на уроках информатики, нами было обнаружено недостаточное количество физических моделей для решения задач по первому закону термодинамики.
Цель: создание компьютерной модели для решения задач по первому закону термодинамики.
Задачи:
Объект исследования – языки программирования как технология для создания компьютерных информационных моделей.
Предмет исследования: информационная компьютерная модель для решения физических задач.
Программное обеспечение:
- система программирования Pascal АВС;
- система программирования Microsoft Visual Basic.
КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ
Компьютерное моделировании - метод решения задачи анализа или синтеза сложной системы на основе использования ее компьютерной модели.
Суть компьютерного моделирования заключена в получении количественных и качественных результатов по имеющейся модели. Качественные выводы, получаемые по результатам анализа, позволяют обнаружить неизвестные раннее свойства сложной системы: ее структуру, динамику развития, устойчивость целостность и т.д. компьютерное моделирование для рождения новой информации использует любую информацию, которую можно актуализировать с помощью ПК.
Компьютерная модель сложной системы должна по возможности отображать все основные факторы и взаимосвязи, характеризующие реальные ситуации, критерии и ограничения. Модель должна быть универсальной, что бы по возможности описывать близкие по назначению объекты, и в тоже время достаточно простой. Что бы позволить выполнить необходимые исследования с разумными затратами.
Результативность компьютерной модели определяется качеством использованного программного обеспечения. Основные требования, предъявляемые к программам – это, конечно простота ввода и корректировки исходных данных, а также визуализация программирования (специальные программы, в которых реализуются удобные графические пользовательские возможности).
ПРОЦЕДУРНЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ.
С развитием языков программирования развивались и технологии, используемые при написании программного кода. Первые программы писались сплошным текстом. Это была простая последовательность команд, записанная в столбец. Все это выглядело приблизительно так:
Листинг 1. Текст линейной программы.
Начало программы
Команда 1
Команда 2
...
Команда N
Конец программы
Используя такой подход к программированию, возможность сделать что-либо была мала. Единственное, что было доступно программисту для создания логики в данном случае — это условные переходы. Под условным переходом понимается переход на какую-то команду при определенных условиях, которые сложились в процессе обработки данных на процессоре. Например:
Листинг 2. Пример условного перехода.
Если выполнено условие, то перейти на команду 1, иначе на команду 2
Команда 1
Команда 2
...
Команда N.
Это единственная логика, с помощью которой можно было выполнять определенные действия, зависящие от конкретных ситуаций, которые могут сложиться в процессе вычислений. Но программы оставались плоскими и неудобными, потому, что написать таким образом логику современных программ невозможно.
Взгляните на программу MS Word. В ней трудно представить себе линейность, потому что здесь как бы присутствует диалог с программой. Вы говорите, что вам надо, а она выполняет ваши действия. При линейном программировании можно создать только такую логику, при которой компьютер запрашивает определенные параметры (данные), и вы вводите их, а отступить от линейности, заложенной в такую логику, невозможно.
Следующим шагом стал процедурный подход. При этом подходе какой-то код программы мог объединяться в отдельные блоки (процедуры). После этого такой блок команд можно вызывать из любой части программы. Например:
Листинг 3. Процедурное программирование.
Начало процедуры 1
Команда 1 процедуры 1
…
Команда n процедуры 1
Конец процедуры 1
Начало программы
Команда 1
Команда 2
Если выполнено условие, то выполнить код процедуры 1.
Команда 3
Конец программы.
В результате появилась возможность использовать один и тот же код в одной программе неоднократно. Код программ стал более удобным и простым для понимания. Именно таким был отец Delphi — язык программирования Turbo/Borland Pascal, который со временем превратился в Object Pascal.
В процедуры можно передавать различные значения, заставляя их что-то рассчитывать. В процедуру можно поместить код каких-нибудь расчётов и определить параметры в виде переменных, которые используются в этом коде, а затем только передавать ей разные значения в качестве этих параметров. Процедуры остались и в наше время. Использование процедуры часто называют "Вызов процедуры". Это действительно так, т. е. процедура как бы вызывается.
ВИЗУАЛЬНЫЕ ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ.
В середине 80-х годов началась эпоха персональных компьютеров. Их выпускали миллионами, для них требовались десятки тысяч программ, и вдруг выяснилось, что один месяц работы квалифицированного программиста стоит не меньше, чем его компьютер. Тогда люди задумались, как сберечь время программиста, и языки программирования начали вновь изменяться.
Прежде всего, был введён принцип повторного использования кода. По этому принципу то, что было создано кем-то один раз, должно не пропадать, а накапливаться и как готовый блок переходить в труды других программистов. Такие блоки назвали объектами. При необходимости разработать новую программу берутся объекты от предыдущей программы и только перенастраиваются (подгоняются) под новые требования.
Неверное и вам случилось видеть в разных программах одинаковые по форме окна, похожие меню, одинаковые кнопки. Большинство программ работают с одними и теми же шрифтами. Всё это настраиваемые объекты. Первым языком объектно-ориентированного программирования стал язык СИ++(C++). Затем и у языка Паскаль появилась объектно-ориентированная версия – Object Pascal. Сегодня в мире много и других объектно-ориентированных языков программирования.
В 90-х годах в мире персональных компьютеров опять произошли важные изменения. Компьютеры приобрели графическое управление. Раньше ими в основном управляли с помощью клавиатуры: на ней набирали команды, с клавиатуры в компьютер вводили тексты программ. Разумеется, компьютеры и тогда могли воспроизводить на экране графические изображения, но это было именно умение, а не способ управления. Телевизор, например, прекрасно воспроизводит изображения, но способ управления им был и остаётся кнопочным.
В середине 90-х годов системы управления большинства компьютеров стали графическими. То, что мы видим на экране, это не просто картинки – многие из них служат графическими элементами управления – на них можно навести указатель мыши, щёлкнуть на её кнопке и компьютер ответит на этот управляющий сигнал.
С появлением графических систем управления компьютерами изменился и метод разработки программ. Он тоже стал графическим или, говоря по научному – визуальным. С помощью мыши можно выбирать готовые строительные блоки для будущих программ, а потом точно так же с помощью мыши настраивать их по своему вкусу. И лишь когда нам чего-то будет не хватать, придётся ввести команды с клавиатуры.
- А кто нам даёт те компоненты, из которых мы сможем что-то выбирать?
- Их предоставляют те самые системы визуального программирования.
В них входят обширные библиотеки компонентов – только выбирай. Ну, а если для каких-то целей мы и не найдём нужного компонента, есть ещё возможность установить дополнительные библиотеки. Нередко программисты, разрабатывающие новые компоненты, выставляют их в Интернете, где каждый желающий может их получить и использовать.
Таким образом, объектно-ориентированное программирование возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Для дальнейшего развития объектно-ориентированного программирования часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование).
Наиболее универсальными процедурными языками программирования признаны:
Бейсик (Basic);
Паскаль (Pascal);
СИ++ (C++).
За долгое время развития эти три языка стали не просто языками программирования, а целыми системами программирования. С их помощью можно не писать программы, а собирать их из готовых компонентов точно так же, как из компонентов детского конструктора собирают специальные игрушки.
Язык Basic превратился в систему программирования Visual Basic.
Язык Паскаль реализовался в систему Delphi.
Язык СИ++ реализован в нескольких системах. Две из них - Borland C++ Builder и Microsoft Visual C++.
ПЕРВЫЙ ЗАКОН ТЕРМОДИНАМИКИ
ПРИМЕНИТЕЛЬНО К ИЗОПРОЦЕССАМ
В давние времена люди пользовались в качестве орудий труда простыми машинами: рычагами, наклонной плоскостью и т.д. В течение тысячелетий работа с помощью этих машин совершалась за счет механической энергии ветра, падающей воды; чаще всего применялась энергия людей или животных.
Около 200 лет тому назад началось широкое применение в технике другого вида энергии - внутренней энергии. Сейчас около 80% используемой человечеством энергии – это внутренняя энергия топлива.
Раздел физики, изучающий, как внутренняя энергия используется для получения механической работы, называется термодинамикой. Термодинамика – это наука о тепловых явлениях, основанная на некоторых общих законах, относящихся к превращению энергии. Эти законы справедливы для всех тел независимо от их внутреннего строения.
Обычно при изменении объема газа работа совершается и за счет передачи ему какого-то количества теплоты от источника энергии, и за счет изменения внутренней энергии самого газа, которая при этом уменьшается. Закон сохранения энергии в этом случае можно записать в виде уравнения A = Q - ∆U или Q = A + ∆U.
Закону сохранения энергии присвоено особое название – первое начало термодинамики. Этот закон формулируется следующим образом: количество теплоты, переданное телу, равно сумме изменения его внутренней энергии и совершенной им работы. Применяя первый закон термодинамики к различным процессам, мы можем получить важные выводы о связи внутренней энергии, количества теплоты и работы в каждом из этих процессов.
В изобарном процессе давление остается величиной постоянной, тогда работа может выражаться формулой A=p(V2-V1). Поэтому первый закон термодинамики в этом случае может быть записан в виде Q= p(V2-V1) +∆U или Q= A+∆U.
В изотермическом процессе температура газа все время остается постоянной (равной температуре нагревателя), значит, и внутренняя энергия газа остается неизменной. T=const ∆U=0 A=Q.
В изохорном процессе газ нагревают в закрытом сосуде. Объем газа остаётся величиной постоянной, следовательно, работа в этом процессе не совершается. Тогда первый закон термодинамики будет иметь вид: Q=∆U, так как ∆V=0 A=0.
В адиабатном процессе нет теплообмена газа с окружающей средой. Первый закон термодинамики будет иметь вид ∆U= - A, т.к. Q=0
В процессе исследования моделей часто производится их визуализация. Для визуализации алгоритмов используются блок-схемы, чертежи, электрические схемы и т.д. В настоящее время широкое распространение получили компьютерные визуальные модели.
На визуальном объектно-ориентированном языке программирования можно спроектировать удобный графический интерфейс для решения физических задач.
Для решения задач на первый закон термодинамики можно использовать систему программирования Visual Basic.
ПРАКТИЧЕСКАЯ ЧАСТЬ. РАЗРАБОТКА КОМПЬЮТЕРНОЙ МОДЕЛИ ДЛЯ РЕШЕНИЯ ФИЗИЧЕСКИХ ЗАДАЧ
Сначала я составил блок-схему и написал программу на процедурном языке программирования для решения задач на нахождение количество теплоты через работу газа и изменение внутренней энергии.
Блок-схема:
Программа «gaz» рассчитывает количество теплоты (Q) полученное газом при изотермическом, изохорном, изобарном и адиабатном процессах по первому закону термодинамики. Вычисления организованы соответствующими функциями.
Листинг.
program gaz;
uses crt;
var a,u,Q:real; i:integer;
Function Izoterma(a:real):real;
begin Izoterma:=a;
end;
Function Izoxora(u:real):real;
begin Izoxora:=u;
end;
Function Izobara(u,a:real):real;
begin Izobara:=u+a;
end;
Function Adiabata(u,a:real):real;
begin Adiabata:=0;
end;
begin
clrscr;
read(u);read(a);
WriteLn('введите 1,если процесс изотермический');
WriteLn('введите 2,если процесс изохорный');
WriteLn('введите 3,если процесс изобарный');
WriteLn('введите 4,если процесс адиабатный');
ReadLn(i);
case i of
1:Writeln('Q=', Izoterma(a));
2:Writeln('Q=', Izoxora(u));
3: Writeln('Q=', Izobara(u,a));
4: Writeln('Q=', Adiabata(u,a));
end;
end.
Для визуализации модели решения задач выбрал язык программирования Visual Basic и написал программу. С помощью этой программы можно решать задачи из курса физики 10 класса по теме «Первый закон термодинамики».
Программа для расчета величин входящих в уравнение первого закона термодинамики, используя язык программирования Visual Basic.
Меню программы содержит:
Изопроцессы, где можно вычислить работу газа, количество теплоты и изменение внутренней энергии для каждого процесса.
Справочный материал, где можно получить справку о каждом процессе.
О программе, содержатся сведения об авторах программы и краткое руководство пользователя.
Выход осуществляет выход из программы.
ЗАКЛЮЧЕНИЕ
Освоить технологии компьютерного моделирования необходимо каждому школьнику. Так как в процессе работы над моделью необходимо изучить и систематизировать предметный теоретический материал по теме.
При разработке модели приходит понимание физических законов и сущности физических процессов, описанных в ней, развивается умение приводить данную задачу к конкретному виду, и далее использовать существующий для этого типа задач общий алгоритм действий.
Эту модель можно применять на уроках информатики для изучения технологий моделирования, физики для понимания последовательности действий решения задач по теме. Возможности поэтапного моделирования действий по написанию программы приводят к систематизации знаний и пониманию физических процессов.
СПИСОК ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ 1.
ЗАДАЧИ ПО ФИЗИКЕ ПО ТЕМЕ «ПЕРВЫЙ ЗАКОН ТЕРМОДИНАМИКИ»
Изобарный процесс (постоянный параметр - давление).
Изохорный процесс (постоянный параметр – объем).
Изотермический процесс (постоянный параметр - температура).
Адиабатный процесс (постоянный величина – количество теплоты).
ПРИЛОЖЕНИЕ 2.
ЛИСТИНГ ПРОГРАММЫ
Dim A, U, n, R, T, p, V, Q As Single
Private Sub A_izox_Click()
MsgBox "Работа газа равна 0", 0, "Ответ:"
End Sub
Private Sub Acherezpar_Click()
MsgBox "Работу газа можно найти через меню изобарного процесса", 0, "Ответ:"
End Sub
Private Sub A_nRT_izob_Click()
T = InputBox("Введите T", "Изменение температуры")
R = InputBox("Введите R", "Универсальная газовая постоянная")
n = InputBox("Введите n", "Количество вещества")
A = n * R * T
MsgBox "Работа равна" + Str(A) + " Дж", 0, "Ответ:"
End Sub
Private Sub A_pV_izob_Click()
p = InputBox("Введите p", "Давление газа")
V = InputBox("Введите V", "Изменение объема")
A = p * V
MsgBox "Работа равна" + Str(A) + " Дж", 0, "Ответ:"
End Sub
Private Sub A_Q_U_izob_Click()
Q = InputBox("Введите Q", "Количество теплоты")
U = InputBox("Введите U", "Изменение внутренней энергии газа")
A = Q - U
MsgBox "Работа равна" + Str(A) + " Дж", 0, "Ответ:"
End Sub
Private Sub Acherezpar_adiab_Click()
MsgBox "Работу газа можно найти через меню изобарного процесса", 0, "Ответ:"
End Sub
Private Sub Acherezpar_izot_Click()
MsgBox "Работу газа можно найти через меню изобарного процесса", 0, "Ответ:"
End Sub
Private Sub AcherezQ_izot_Click()
MsgBox "Работа газа равна количеству теплоты A=Q", 0, "Ответ:"
End Sub
Private Sub AcherezU_adiab_Click()
MsgBox "Работа газа равна изменению внутренней энергии со знаком минус A=-U", 0, "Ответ:"
End Sub
Private Sub Avtor_Click()
Form2.Show
End Sub
Private Sub Exit_Click()
End
End Sub
Private Sub Image1_Click()
CommonDialog1.ShowOpen
Image1.Picture = LoadPicture(CommonDialog1.FileName)
End Sub
Private Sub Polzovatel_Click()
Form3.Show
End Sub
Private Sub Q_Click()
MsgBox "Количество теплоты равно работе газа Q=A", 0, "Ответ:"
End Sub
Private Sub Q_0_izot_Click()
MsgBox "Изменение внутренней энергии =0", 0, "Ответ:"
End Sub
Private Sub Q_adiab_Click()
MsgBox "Количество теплоты равно 0", 0, "Ответ:"
End Sub
Private Sub Q_iz_Click()
A = InputBox("Введите A", "Работа газа")
U = InputBox("Введите U", "Изменение внутренней энергии газа")
Q = Val(A) + Val(U)
MsgBox "Количество теплоты равно" + Str(Q) + " Дж", 0, "Ответ:"
End Sub
Private Sub Q_izot_Click()
MsgBox "Количество теплоты равно работе газа Q=A", 0, "Ответ:"
End Sub
Private Sub Q_izox_Click()
MsgBox "Количество теплоты равно изменению внутренней энергии Q=U", 0, "Ответ:"
End Sub
Private Sub S_adiabata_Click()
Text1.Text = "В адиабатном процессе исключен теплообмен тела с окружающей средой. Q = 0 ==> U = -A."
End Sub
Private Sub S_izobara_Click()
Text1.Text = "В изобарном процессе (p=const) работа может быть выражена формулой A = P(V2 - V1). Поэтому первый закон термодинамики в этом случае может быть записан в виде Q = P(V2 - V1) + U или Q = A + U."
End Sub
Private Sub S_izoterma_Click()
Text1.Text = "В изотермическом процессе температура газа все время остается постоянной (равной температуре нагревателя), значит, и внутренняя энергия газа остается неизменной. T=const ==> U=0 ==> Q=A."
End Sub
Private Sub S_izoxora_Click()
Text1.Text = "При изохорном нагревании газ нагревают в закрытом сосуде. В этом процессе работа не совершается. изменение V=0 ==> A=0 ==> Q=U."
End Sub
Private Sub U_A_izob_Click()
A = InputBox("Введите A", "Работа газа")
U = (3 / 2) * A
MsgBox "Изменение внутренней энергии " + Str(U) + " Дж", 0, "Ответ:"
End Sub
Private Sub U_n_izob_Click()
n = InputBox("Введите n", "Количество вещества")
R = InputBox("Введите R", "Универсальная газовая постоянная")
T = InputBox("Введите T", "Изменение температуры")
U = (3 / 2) * n * R * T
MsgBox "Изменение внутренней энергии " + Str(U) + " Дж", 0, "Ответ:"
End Sub
Private Sub U_Q_A_izob_Click()
A = InputBox("Введите A", "Работа газа")
Q = InputBox("Введите Q", "Количество теплоты")
U = Val(Q) - Val(A)
MsgBox "Изменение внутренней энергии " + Str(U) + " Дж", 0, "Ответ:"
End Sub
Private Sub U_V_izob_Click()
p = InputBox("Введите p", "Давление газа")
V = InputBox("Введите V", "изменение объема")
U = (3 / 2) * p * V
MsgBox "Изменение внутренней энергии " + Str(U) + " Дж", 0, "Ответ:"
End Sub
Private Sub UcherezA_adiab_Click()
MsgBox "Изменение внутренней энергии равно работе газа со знаком минус U=-A", 0, "Ответ:"
End Sub
Private Sub Ucherezpar_adiab_Click()
MsgBox "Изменение внутренней энергии можно найти через меню изобарного процесса", 0, "Ответ:"
End Sub
Private Sub UcherezQ_izox_Click()
MsgBox "Изменение внутренней энергии равно количеству теплоты U=Q", 0, "Ответ:"
End Sub
Private Sub Ucherzpar_izox_Click()
MsgBox "Изменение внутренней энергии можно найти через меню изобарного процесса", 0, "Ответ:"
End Sub
Ах эта снежная зима
Как напиться обезьяне?
Цветение вишни в лунную ночь
Астрономы наблюдают за появлением планеты-младенца
Астрономический календарь. Ноябрь, 2018