Применение компьютерного программирования в моделировании физических процессовая работа

XIX Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Применение компьютерного программирования в моделировании физических процессовая работа

Матюхов К.А. 1
1МБОУ Одинцовская гимназия № 13
Старкова Г.В. 1
1МБОУ Одинцовская гимназия № 13
Автор работы награжден дипломом победителя II степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

  1. Языки программирования для компьютерных сетей.

В 90-ые годы XX в. в связи с бурным развитием Интернета были созданы языки, обеспечивающие межплатформенную совместимость. На подключенных к Интернету компьютерах с различными ОС (Windows, Linux, Mac OS и др.) могли выполняться одни и те же программы. Исходная программа компилируется в промежуточный код, который исполняется на компьютере встроенной в браузер виртуальной машиной:

язык Java - объектно-ориентированный язык был разработан фирмой Sun Microsystems для создания сетевого программного обеспечения (1995);

язык JavaScript – язык сценариев Web-страниц (компания Netscape; 1995)

  1. Языки программирования на платформе .NET.

Интегрированная среда программирования Visual Studio .Net, разработанная корпорацией Microsoft, позволяет создавать приложения на различных языках объектно-ориентированного программирования, в том числе:

наязыке Visual Basic .Net ( наоснове Visual Basic) - 2003 г.;

на языке Visual C# (С-шарп) – на основе языков С++ и J – 2003 г.;

на языке Visual J# (J-шарп) – на основе Java и JavaScript – 2003 г.

Для того, чтобы процессор мог выполнить программу, данные должны быть загружены в оперативную память. Необходимо, чтобы в ОП была размещена программа-транслятор, автоматически переводящая с языка программирования в машинные коды. Трансляторы бывают двух типов: интерпретаторы и компиляторы. Интерпретатор – программа, которая обеспечивает последовательный перевод операторов программы с одновременным их выполнением. Достоинством интерпретатора является удобство отладки (поиск ошибок), недостатком – малая скорость выполнения. Компилятор переводит весь текст программы на машинный язык и сохраняет его в исполнимом файле (обычно с расширением .exe).

Языки программирования

Язык программирования — это набор формальных правил, по которым пишут программы. Как и в любом естественном языке, тут есть лексика — слова, функции и операторы, из которых по правилам синтаксиса составляются выражения. От естественных языков они отличаются ограниченным числом “слов” и очень строгими правилами записи команд (операторов). Поэтому при применении их по назначению они не допускают свободного толкования выражений, характерного для естественного языка.

Программа – это алгоритм, записанный на языке программирования. Программа – последовательность команд. Языки программирования – искусственные языки: существует правила записи операторов (команд) языка – синтаксис языка. У каждого языка синтаксис записи свой.

Языки программирования подразделяются на несколько уровней детализации:

  • машинные

  • машинно-ориентированные (ассемблеры)

  • машинно-независимые (языки высокого уровня)

Если язык программирования ориентирован на конкретный тип процессора, то

Он называется языком программирования низкого уровня, что значит не то, что он плохой, а то, что его операторы близки к машинному коду.

У каждого языка есть свой синтаксис. Синтаксис — это правила построения фраз, позволяющие определить, правильно или неправильно написана та или иная фраза. Синтаксис языка — это как грамматика в других языках (лекических). Также, как и в других нормальных языках, в языках программирования присутствует свой алфавит. В языках программирования алфавит - это фиксированный для данного языка набор основных символов, т.е. букв алфавита, из которых должен состоять любой текст на этом языке — никакие другие символы в тексте не допускаются.

Разнообразие типов задач привело к тому, что на сегодняшний день разработано несколько сотен алгоритмических языков. Каждый язык предназначен для выполнения конкретных типов задач. Например, для создания мобильных приложений используются такие языки как: Java, JavaScript, Разновидности C и не так часто Python.

C и его разновидности

  • Си [C] - Многоцелевой язык программирования высокого уровня, разработанный Деннисом Ритчи в начале 1970-х гг. на базе языка BCPL. Используется на мини-ЭВМ и ПЭВМ. Является базовым языком операционной системы Unix, однако применяется и вне этой системы, для написания быстродействующих и эффективных программных продуктов, включая и операционные системы. Для IBM PC имеется ряд популярных версий языка Си, в том числе - Turbo C (фирмы Borland), Microsoft C и Quick C (фирмы Microsoft), а также Zortech C (фирмы Symantec). Многие из указанных версий обеспечивают также работу с Си и Си++.

Язык Си разрабатывался как язык системного программирования, для которого можно создать однопроходный компилятор. Стандартная библиотека также невелика. Как следствие данных факторов — компиляторы разрабатываются сравнительно легко[2]. Поэтому данный язык доступен на самых различных платформах. К тому же, несмотря на свою низкоуровневую природу, язык ориентирован на переносимость. Программы, соответствующие стандарту языка, могут компилироваться под различные архитектуры компьютеров.

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

  • C++ - Язык программирования высокого уровня, созданный Бьярном Страустрапом на базе языка Си. Является его расширенной версией, реализующей принципы объектно-ориентированного программирования. Используется для создания сложных программ. Для IBM PC наиболее популярной является система Turbo C++ фирмы Borland (США).

C# (C Sharp) – “Си Шарп”: объектно-ориентированный язык программирования, о разработке которого в 2000 г. объявила фирма Microsoft. По своему характеру он напоминает языки C++ и Java и предназначен для разработчиков программ, использующих языки C и С++ для того, чтобы они могли более эффективно создавать интернет-приложения. Указывается, что C # будет тесно интегрирован с языком XML.

Для написания свой программы я решил использовать C#. На данном языке я написал три программы демонстрирующие возможности языка C#.

2. Написание программ на “C

2.1. Демонстрация программы ООП

В основу написанной мной программы был выбран язык C# поскольку имеет достаточный набор функциональных инструментов для поставленной мною задачи.

В ходе изучения данного языка мною были глубоко изучены навыки ООП программирования, основанному на классах и объектах, что отличалось от языка Python, который я также широко применяю в программах, которые создаются мною в рамках самостоятельного изучения языка. Нельзя не заметить также схожесть языка программирования Python и C#, это связано с тем что сам язык программирования Python был написан на С, а C# является его разновидностью.

Во время изучения языка C# я написал несколько программ. Первая из них демонстрирует принцип работы ООП программирования, а также принципы наследования классов, интерфейсы и параметры. Данная программа при запуске демонстрирует список работников, их заработную плату, должность, стаж работы сотрудника в компании, год рождения и возраст. Почти все перечисленные параметры были рассчитаны внутри класса абстрактного класса Worker. Есть также ещё два класса, это класс OrdinaryEmployee и Head. Данные классы наследуют абстрактный класс Worker добавляя некоторые параметры. Каждому из этих классов (кроме класса Worker т.к. он абстрактный) соответствует свой интерфейс, это интерфейсы IOrdinaryEmplyee и IHead. В главном классе Program находится метод main (). Он является главным методом, с него начинает выполнятся программа.

Алгоритм действия данной программы следующий:

1)Выполнение метода main ()

2)Инициализация классов ()

3)Добавление созданных объектов класса в массив.

4)Перебор данного массива циклом foreach ()

5)Обработка ошибок в случае из возникновения.

6)Вывод содержимого массива в консоль приложения.

2.2. Написание моделирующей программы

В дальнейшем мной была создана программа для моделирования нагрузок

На мост практическое применение данной программы заключается в том, что она позволяет визуализировать физические явления, которые при обычном физическом строительстве моста или создании макета моста (заменяет макет моста) которые очень ресурс затратные, но основным применением данной программы является применение её в учебных заведениях при проведении лабораторных работ. Которая позволяет. Увидеть проявления таких законов физики и их зависимости как: воздействие гравитации, силы натяжения, и предельная нагрузка на разрыв. Данная программа была создана на языке C# с использованием программы Unity.

Структура программы

Структура данной программы состоит из следующих директорий: “Assets, Scripts, Sprites, Scenes, Samples, Render, Prefabs, Materials”.

В каждых из них содержатся файлы, соответствующие их названиям. Соответственно в директории Scripts находятся скрипты на C#, а в Sprites находятся все спрайты проекта. Спрайт - это 2D-изображение, используемое в видеоиграх или зачастую в других программах. Таким образом я создал по скрипту для каждого объекта в программе и прописал логику их поведения в соответствующим им скриптам. Интерфейс программы я реализовал в объекте Canvas (холст – обычно случит в программе объектом для отрисовки). Места крепления моста я реализовал в виде больших жёлтых точек, которые изначально расположены по краям утёсов. Сами утёсы являются специальным объектом окружения, форму которого можно менять и настраивать в зависимости от цели программы. Также в программе представлено три вида испытания моста: испытание машиной (по мосту проедет машина), камнем и велосипедом. Это нужно для проверки нагрузки на мост предметами разной массой. Таким образом можно будет определить сколько объектов определённого типа может выдержать мост одновременно или для какого вида транспорта он предназначен. Также можно настроить некоторые константы проекта в специальном меню реализованном с мощью дополнительного объекта холста и объекта меню в нём. Так можно настроить гравитацию (можно даже сделать отрицательной), силу разрыва у точек опоры и крепления моста, скорость объектов для испытаний и лимит длины разных материалов для балок. Всего в программе представлено два материала для строительства и укрепления моста, это дерево и бетонная дорога. Степень нагрузки всех материалов можно понять с помощь их индикации красным цветом. При слишком большой нагрузке на них, превышающий лимит разрыва, указанный в настройках, крепление, соединяющее два элемента моста будет разорвано. Индикация материалов красным цветом реализовано с помощью шейдера, который путём расчёта нагрузки устанавливает яркость и прозрачность красного цвета. Сам расчёт проводится внутри класса Bar, который соответствует элементу моста.

Все объекты программы

«2. Этап – Построение Моста»

«3. Испытание моста»

Главный класс Programm.cs

Заключение

В ходе проведённой работы была создана программа на языке программирования C#, которая наглядно продемонстрировала, что физические процессы могут быть смоделированы машинным кодом, и программа может быть применена в качестве визуализации законов физики при лабораторных работах. Проанализированы источники данных, такие как интернет ресурсы, в ходе работы систематизирована информация по истории формирования языков программирования, вплоть до появления высокоуровневых языков в современной интерпретации.

Основываясь на вышесказанном можно сделать вывод, что цель, поставленная в начале работы достигнута, задачи решены, практическая часть реализована, программа работает без ошибок.

Просмотров работы: 16