• Главная
  • Блог
  • Пользователи
  • Форум
  • Литературное творчество
  • Музыкальное творчество
  • Научно-техническое творчество
  • Художественно-прикладное творчество

Компьютерная модель физических задач на объектно-ориентированном языке программирования.

Опубликовано Шмидт Наталья Александровна вкл 21.03.2016 - 17:13
Автор: 
Мирошник Антоний
В изучении физики значительное место занимают решение задач и физический эксперимент всех видов. Приведём известное высказывание Э. Ферми: «Человек знает физику, если он умеет решать задачи». Компьютерные технологии и здесь оказывают революционизирующее воздействие. Развитие любой науки невозможно без создания теоретических и практических моделей. Компьютерное моделирование, вычислительный эксперимент становится новым инструментом, методом научного познания, новой технологии из-за возрастающей необходимости перехода к исследованию сложных систем.

Скачать:

ВложениеРазмер
Microsoft Office document icon miroshnik_nprk_2013.doc308 КБ

Предварительный просмотр:

Всероссийские юношеские чтения имени В.И.Вернадского

II Ямало-Ненецкий окружной тур

ЯНАО, Пуровский район, п.г.т. Уренгой, мкр.5, дом 53а

Компьютерная модель  физических задач на процедурном и объектно-ориентированном языках программирования.

Мирошник Антоний,  ученица 11 б класса

муниципального бюджетного общеобразовательного учреждения

«Средняя общеобразовательная школа № 2» пг.т. Уренгой Пуровского района

        Замятина Ольга Валерьевна, учитель информатики

муниципального бюджетного общеобразовательного учреждения

«Средняя общеобразовательная школа № 2 п.г.т. Уренгой Пуровского района

Шмидт Наталья Александровна, учитель физики

муниципального бюджетного общеобразовательного учреждения

«Средняя общеобразовательная школа № 2» п.г.т. Уренгой Пуровского района

 

п.г.т. УРЕНГОЙ

2013 год 

                     


План

  1. О процедурных языках программирования.
  2. О визуальных объектно-ориентированных языках программирования.
  3. Пример. Решение задачи «Сумма» с использованием процедурного языка программирования и объектно-ориентированного языка программирования. Выводы.
  4. Теория по теме «Первое начало термодинамики применительно к изопроцессам».
  5. Алгоритм расчета количество теплоты, сообщенного газу в зависимости от изопроцесса. Визуализация алгоритма - блок-схема с использованием редактора блок-схем. Листинги программ на процедурном и объектно-ориентированном языках программирования.
  6. Представление проекта «Первое начало термодинамики применительно к изопроцессам». Подбор задач по теме. Визуализация физического смысла и решение задач в представленном проекте.

Введение

Актуальность

Обзор литературы

Цель работы: изучить языки программирования и

выбор задач по 1 закону термодинамики

выбор приемлемого языка программирования длЯ решения задач по перв закону

Задачи:

Цель:

создание компьютерной модели для  решения задач по первому закону термодинамики.

Задачи:

  1. Изучить литературу по теме.
  2. Сравнить технологии решения задач с использованием процедурного  и объектно-ориентированного подходов.

  1. Программировать элементарные задачи и провести анализ результатов.

  1. Изучить теорию по теме «Первое начало термодинамики применительно к изопроцессам».

  1. Разработать алгоритм решения физической задачи. Визуализировать алгоритм в виде блок-схемы с использованием редактора блок-схем.

  1. Создание компьютерной модели в системе объектно-ориентированного программирования.

  1. Использование полученной модели для решения физических задач.

Объект исследования:

Предмет исследования:

Гипотеза: нарушение функционального с


  1. О процедурных языках программирования.

С развитием языков программирования развивались и технологии, используемые при написании программного кода. Первые программы писались сплошным текстом. Это была простая последовательность команд, записанная в столбец. Все это выглядело приблизительно так:

Листинг 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.

   В процедуры можно передавать различные значения, заставляя их что-то рассчитывать. В процедуру можно поместить код каких-нибудь расчётов и определить параметры в виде переменных, которые используются в этом коде, а затем только передавать ей разные значения в качестве этих параметров. Процедуры остались и в наше время. Использование процедуры часто называют "Вызов процедуры". Это действительно так, т. е. процедура как бы вызывается.

  1. О визуальных объектно-ориентированных языках программирования.

В середине 80-х годов началась эпоха персональных компьютеров. Их выпускали миллионами, для них требовались десятки тысяч программ, и вдруг выяснилось, что один месяц работы квалифицированного программиста стоит не меньше, чем его компьютер. Тогда люди задумались, как сберечь время программиста, и языки программирования начали вновь изменяться.

Прежде всего, был введён принцип повторного использования кода. По этому принципу то, что было создано кем-то один раз, должно не пропадать, а накапливаться и как готовый блок переходить в труды других программистов. Такие блоки назвали объектами. При необходимости разработать новую программу берутся объекты от предыдущей программы и только перенастраиваются (подгоняются) под новые требования.

Неверное и вам случилось видеть в разных программах одинаковые по форме окна, похожие меню, одинаковые кнопки. Большинство программ работают с одними и теми же шрифтами. Всё это настраиваемые объекты. Первым языком объектно-ориентированного программирования стал язык СИ++(C++). Затем и у языка Паскаль появилась объектно-ориентированная версия – Object Pascal. Сегодня в мире много и других объектно-ориентированных языков программирования.

В 90-х годах в мире персональных компьютеров опять произошли важные изменения. Компьютеры приобрели графическое управление. Раньше ими в основном управляли с помощью клавиатуры: на ней набирали команды, с клавиатуры в компьютер вводили тексты программ. Разумеется, компьютеры и тогда могли воспроизводить на экране графические изображения, но это было именно умение, а не способ управления. Телевизор, например, прекрасно воспроизводит изображения, но способ управления им был и остаётся кнопочным.

В середине 90-х годов системы управления большинства компьютеров стали графическими. То, что мы видим на экране, это не просто картинки – многие из них служат графическими элементами управления – на них можно навести указатель мыши, щёлкнуть на её кнопке и компьютер ответит на этот управляющий сигнал.

С появлением графических систем управления компьютерами изменился и метод разработки программ. Он тоже стал графическим или, говоря по научному – визуальным. С помощью мыши можно выбирать готовые строительные блоки для будущих программ, а потом точно так же с помощью мыши настраивать их по своему вкусу. И лишь когда нам чего-то будет не хватать, придётся ввести команды с клавиатуры.

- А кто нам даёт те компоненты, из которых мы сможем что-то выбирать?

- Их предоставляют те самые системы визуального программирования.

В них входят обширные библиотеки компонентов – только выбирай. Ну, а если для каких-то целей мы и не найдём нужного компонента, есть ещё возможность установить дополнительные библиотеки. Нередко программисты, разрабатывающие новые компоненты, выставляют их в Интернете, где каждый желающий может их получить и использовать.

Таким образом, объектно-ориентированное программирование возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Для дальнейшего развития объектно-ориентированного программирования часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование).

Наиболее универсальными процедурными языками программирования признаны:

        Бейсик (Basic);

        Паскаль (Pascal);

        СИ++ (C++).

За долгое время развития эти три языка стали не просто языками программирования, а целыми системами программирования. С их помощью можно не писать программы, а собирать их из готовых компонентов точно так же, как из компонентов детского конструктора собирают специальные игрушки.

Так, язык Basic превратился в систему программирования Visual Basic. Язык Паскаль реализовался в систему Delphi, а язык СИ++ реализован в нескольких системах. Две из них -  Borland C++ Builder и Microsoft Visual C++.

  1. Пример. Решение задачи «Сумма» с использованием процедурного языка программирования и объектно-ориентированного языка программирования. Выводы.

Решать задачи, например задачи ЕГЭ, удобней на процедурном языке, так как в основном нужно создать алгоритм или выполнить пошагово предложенный в задаче алгоритм.  КАКОЙ ЯЗЫК

Визуализировать решение удобно на объектно-ориентированном языке. Так как на нем можно спроектировать удобный графический интерфейс.

Пример. Задача. С клавиатуры вводятся 2 числа. Вывести на экран их сумму. Рассмотрим два подхода к программированию задачи «Сумма». В объектном подходе предусмотрены 3 способа визуализации ответа:

- вывод на форму;

- вывод в текстовое поле

- вывод с помощью диалоговых панелей.

Листинг 1.

program Sum;

  var a,b,c:integer;

begin

  write('введите первое число: ');

    readln(a);

  write('введите второе число: ');

    readln(b);

     c:=a+b;

  writeln('сумма двух чисел  равна: ', c);

end.

Листинг 2.

Dim a, b, c As Byte

Private Sub Command1_Click()

a = InputBox("Сообщите значение А")

b = InputBox("Сообщите значение В")

c = Val(a) + Val(b)

Form1.Print "Сумма равна", c

End Sub

Private Sub Command2_Click()

a = InputBox("Сообщите значение А")

b = InputBox("Сообщите значение В")

c = Val(a) + Val(b)

Text1.Text = c

End Sub

Private Sub Command3_Click()

a = InputBox("Сообщите значение А")

b = InputBox("Сообщите значение В")

c = Val(a) + Val(b)

c = MsgBox("Сумма равна " + Str(c))

End Sub

Private Sub Command4_Click()

End

End Sub

  1. Теория по теме «Первое начало термодинамики применительно к изопроцессам».

В давние времена люди пользовались в качестве орудий труда простыми машинами: рычагами, наклонной плоскостью и т.д. В течение тысячелетий работа с помощью этих машин совершалась за счет механической энергии ветра, падающей воды; чаще всего применялась энергия людей или животных. Около 200 лет тому назад началось широкое применение в технике другого вида энергии  - внутренней энергии. Сейчас около 80% используемой человечеством энергии – это внутренняя энергия топлива. Раздел физики, изучающий, как внутренняя энергия используется для получения механической работы, называется термодинамикой. Термодинамика – это наука о тепловых явлениях, основанная на некоторых общих законах, относящихся к превращению энергии. Эти законы справедливы для всех тел независимо от их внутреннего строения.

Обычно при изменении объема газа работа совершается  и за счет передачи ему какого-то количества  теплоты от источника энергии, и за счет изменения внутренней энергии самого газа, которая при этом уменьшается. Закон сохранения энергии в этом случае можно записать в виде уравнения A = Q - ∆U или Q = A + ∆U.

 Закону сохранения энергии присвоено особое название – первое начало термодинамики. Этот закон формулируется следующим образом: количество теплоты, переданное телу, равно сумме изменения его внутренней энергии и совершенной им работы. Применяя первый закон термодинамики к различным процессам, мы можем получить важные выводы о связи внутренней энергии, количества теплоты и работы в каждом из этих процессов.

В изотермическом процессе температура газа все время остается постоянной (равной температуре нагревателя), значит,  и внутренняя энергия газа остается неизменной. T=const  ∆U=0A=Q.

В изохорном процессе газ нагревают в закрытом сосуде. В этом процессе работа не совершается. ∆V=0A=0Q=∆U.

В  изобарном процессе (p=const) работа может быть выражена  формулой A=p(V2-V1). Поэтому первый закон термодинамики в этом случае может быть записан в виде Q= p(V2-V1) +∆U или Q= A+∆U.

В адиабатном процессе исключен теплообмен тела с окружающей средой. Q=0∆U=-A.

  1. Алгоритм расчета количество теплоты, сообщенное газу в зависимости от изопроцесса. Визуализация алгоритма (блок-схема) с использованием редактора блок-схем. Листинги программ на процедурном и объектно-ориентированном языках программирования.

Я написал программу для расчета количества теплоты в изопроцессах по формуле первого закона термодинамики.

Блок-схема алгоритма решения задачи.

Программа «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.

Визуализация задачи выполнена в проекте «Первый закон термодинамики применительно к изопроцессам.

Листинг.

Dim A, U, Q As Single

Private Sub Adiabata_Click()

Q = 0

Text2.Text = Q

End Sub

Private Sub Command1_Click()

Text1.Text = " В изотермическом процессе температура газа все время остается постоянной (равной температуре нагревателя), значит,  и внутренняя энергия газа остается неизменной. T=const  ∆U=0A=Q."

End Sub

Private Sub Command2_Click()

Text1.Text = "В изохорном процессе газ нагревают в закрытом сосуде. В этом процессе работа не совершается. ∆V=0A=0Q=∆U.”

End Sub

Private Sub Command3_Click()

Text1.Text = " В изобарном процессе (p=const) работа может быть выражена  формулой A=p(V2-V1). Поэтому первый закон термодинамики в этом случае может быть записан в виде Q= p(V2-V1) +∆U или Q= A+∆U."

End Sub

Private Sub Command4_Click()

Text1.Text = " В адиабатном процессе исключен теплообмен тела с окружающей средой. Q=0∆U=-A."

End Sub

Private Sub Image1_Click()

CommonDialog1.ShowOpen

Image1.Picture = LoadPicture(CommonDialog1.FileName)

End Sub

Private Sub Izobara_Click()

A = InputBox("введите A")

U = InputBox("введите U")

Q = A + U

Text2.Text = Q

End Sub

Private Sub Izoterma_Click()

A = InputBox("введите A")

Q = A

Text2.Text = Q

End Sub

Private Sub Izoxora_Click()

U = InputBox("введите U")

Q = U

Text2.Text = Q

End Sub

  1. Представление проекта «Первое начало термодинамики применительно к изопроцессам». Подбор задач по теме. Визуализация физического смысла и решение задач в представленном проекте.

Изобарный процесс

  1. Идеальный газ при изобарном процессе совершил работу 300 Дж, при этом внутренняя энергия газа уменьшилась на 200 Дж. Найти количество теплоты, которое получил газ.  Q=дельта U+ A штрих. Ответ: 100 Дж
  2. Для изобарного нагревания газа, количество вещества которого 400 моль, на 300К ему сообщили количество теплоты 5,4 МДж. Определите работу газа и изменение его внутренней энергии.

Ответ:

  1. Изотермический процесс: получил 300 Дж;
  2. Изохорный процесс: отдал 300 Дж;
  3. Изобарный процесс: не отдал и не получил теплоту;
  4. Адиабатный процесс: количество теплоты равно 0 Дж.


Использованная литература.

  1. Информатика 10 профиль
  2. Книги по физике
  3. Программирование на паскале толстый учебник.
  4. С.Симонович, Г.Евсеев «Занимательное программирование Visual Basic» Москва «АСТ-ПРЕСС КНИГА» 2004.
  5. Дополнительные материалы и оборудование:

- система программирования Pascal АВС;

- система программирования Microsoft VB;

- мультимедийная презентация.


Поделиться:

Ель

Как напиться обезьяне?

Груз обид

Снежный всадник

Как нарисовать лимон акварелью