Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

«Система программирования»

Содержание:

ВВЕДЕНИЕ

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

Все языки программирования можно разделить на языки низкого уровня и языки высокого уровня. К языкам низкого уровня относят например Assembler, а к языкам высокого уровня например С++, С#, Java и т.д.

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

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

Изучение программирования в свою очередь влечет необходимость изучения или ознакомления со смежными дисциплинами и науками:

- теория алгоритмов;

- компьютерная графика;

- системный анализ

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

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

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

Основными задачами данной работы является:

  1. Анализ литературы по избранной теме
  2. Анализ существующих языков программирования
  3. Описание основных существующих систем программирования
  4. Пример реализации проекта с помощью любой из систем программирования

ОБЩИЕ ПОНЯТИЯ СИСТЕМ ПРОГРАММИРОВАНИЯ

    1. Определение системы программирования

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

На сегодняшний день есть представление о следующем традиционном составе системы программирования(рис. 1):

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

- отладчик;

- средства редактирования программ;

- сопровождающая документация;

- библиотеки подпрограмм;

- трансляторы.

Рисунок 1 – Состав системы программирования

Это минимум, который позволяет достаточно эффективно вести процесс создания программ.

При изучении систем программирования следует также различать следующие понятия:

  1. Программный инструмент – программа, которая используется для поддержки разработки программных продуктов. Например, отладчик, который позволяет программисту проводить тестирование и исправление ошибок.
  2. Утилита – программа, которая предоставляет общие функции(копирование файлов, подготовка текстов, организацию ссылок и т.д.).
  3. Библиотеки процедур – набор процедур различного назначения, которые существенно упрощают разработку приложений. Например, библиотека функций ввода-вывода или математических функций.
    1. Классификация систем программирования

Классификацию систем программирования можно провести по ориентации на поддержку процессов, по функциональной ориентации, по категориям и по предоставляемому интерфейсу.

Классификация по ориентации на поддержку процессов:

1. Инструменты поддержки технологических процессов:

- инструменты, поддерживающие определенный технологический процесс;

- универсальные инструменты, которые можно использовать в нескольких технологических процессах;

2. Инструментальные системы разработки и сопровождения программных продуктов:

- инструментальные среды программирования;

- средства автоматизации разработки программ;

- интегрированные среды и репозитории проекта;

3. Инструменты поддержки коллективной разработки.

Еще одну классификацию можно провести с помощью функциональной ориентации систем программирования.

Функциональная классификация:

  1. Редакторы, что поддерживают формирование программных документов
  2. Анализаторы, которые производят:

- обработку документов, осуществляют различные виды контроля, выявляют определенные свойства;

- динамический анализ программ;

3. Преобразователи, что позволяют:

- автоматически приводить документы к другой форме представления;

- синтезировать какой-либо документ из отдельных частей;

4. Инструменты поддержки процесса выполнения программы, которые позволяют исполнять:

- описания процессов или отдельных частей, в виде отличном от машинного кода;

- машинный код с дополнительными методами его интерпретации;

Классификация систем по категориям определяет их уровень интегрированности и включает следующие:

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

Системы программирования поддерживают или делятся на такие, что имеют следующие интерфейсы:

  1. Интерфейс командной строки
  2. Графический пользовательский интерфейс

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

    1. Существующие языки программирования

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

Существуют такие языки программирования:

- Pascal/Delphi;

- Basic;

- C/C++;

- C#;

- Java;

- Swift;

- Go;

- PHP;

- Python;

- JavaScript;

- Kotlin;

- Ruby;

- Rust;

- и другие.

Можно детальнее рассмотреть некоторые из них.

C++. Был создан, как альтернатива С, и сразу же стал популярным. Одним из известных проектов, созданным на С++, можно назвать Google Chrome. Также такими являются проекты Adobe и Amazon. Данный язык программирования остается востребованным до сегодняшнего дня. Он имеет достаточно мощные инструменты разработки и может быть использован, с некоторой адаптацией, в различных сферах: игры, банки, связь, платежные система, микроконтроллерные системы и многое другое.

С#. Разработанный компанией Microsoft. Этот язык программирования используется для разработки приложений на платформе С#. Это объектно-ориентированный язык, на нем разрабатывают приложения, основанные на .NET Frameworks. И если данная область является вашей, то этот язык – лучший выбор в создании приложений для данной платформы. Также, этот язык – рекомендованный для использования при разработке игр на всем известном движке Unity. С использованием сторонних компонентов, например инструмента Xamarin, этот язык позволяет писать и под мобильный платформы Android и iOS.

Java. Один из практичных языков для изучения. Множество компаний использует этот язык для разработки бэкэнд-систем и десктопных приложений. В этом языке в некотором роде достигнута кроссплатформенность благодаря виртуальной машине Java. В этом язык, как и во многих других, используется принцип ООП. Данный язык является нативным решением для разработки под мобильную платформу Android.

Python. За этим языком будущее. Данный язык достаточно прост в понимании и использовании, его постепенно вводят в учебную программу. Очень весомой причиной для изучения Python есть – нейронные сети. Данный язык программирования имеет достаточное количество библиотек, ориентированных на нейронные сети. Также этот язык является достаточно компактным.

PHP. 80% сайтов с посещаемостью свыше 10 млн. используют этот язык. Этот язык – проверенный временем инструмент для использования в веб-разработке. Это довольно простой язык с открытым исходным кодом, хорошей поддержкой многих баз данных, а также многочисленными инструментами и различными направлениями для использования.

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

Рисунок 2 – Процентное соотношение предложений по языкам на фриланс-бирже

Swift. Это нативный язык для разработки приложений под iOS и Mas OS. Большую роль в становлении данного языка оказало влияние на него таких языков, как Python и Ruby.

Kotlin. Он стремительно развивается и обладает рядом преимуществ: совместимость с Java, поддерживается Google, лаконичность языка программирование, с каждым днем растет общество разработчиков. Вполне возможно, что в ближайшем времени приложения для Android платформы будут писаться только на этом языке.

В итоге можно обобщить, что языки высокого уровня достаточно популярны и удобные в использовании. Они позволяют разрабатывать под все на сегодня существующие платформы. Например на рис.2 отображена популярность некоторых языков в виде их процентного соотношения по свободным проектам на фриланс бирже Upwork.

СОВРЕМЕННЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ

    1. Краткий обзор существующих систем программирования

В этом параграфе рассмотрим кратко некоторые из существующих систем программирования, а именно:

- Eclipse;

- Visual Studio;

- Dev-C++;

- NetBeans;

- Qt Creator;

- IntelliJ IDEA;

- Delphi;

- Lazarus;

Eclipse. Свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation. Eclipse служит в первую очередь платформой для разработки расширений, чем он и завоевал популярность: любой разработчик может расширить Eclipse своими модулями. Уже существуют Java Development Tools (JDT), C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM, и средства для языков Ada (GNATbench, Hibachi), COBOL, FORTRAN, PHP, X10 (X10DT) и пр. от различных разработчиков. Множество расширений дополняет среду Eclipse диспетчерами для работы с базами данных, серверами приложений и др.

Visual Studio. Линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ,поддерживаемых Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET Compact Framework и Silverlight.

Dev-C++. Свободная интегрированная среда разработки приложений для языков программирования С/С++. В дистрибутив входит компилятор MiniGW.

NetBeans IDE. Свободная интегрированная среда разработки приложений на языках программирования Java, Python, PHP, JavaScript, C, C++ и многих других. Последние версии поддерживают рефакторинг, профилирование, выделение синтаксических конструкций цветом, поддержка множества предопределенных шаблонов кода.

Qt Creator. Кроссплатформенная свободная IDE для разработки на С и С++. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса.

IntelliJ IDEA. Интегрированная среда разработки программного обеспечения для многих языков программирования, в частности Java, JavaScript, Python, Ruby, Kotlin, PHP, C, C++ и других, разработанная компанией JetBrains. У данной компании существуют и отельные продукты для многих из этих языков, которые базируются на IntelliJ IDEA, например: RubyMine, PyCharm, PhpStorm, CLion.

Delphi. Интегрированная среда разработки ПО для Microsoft Windows, Mac OS, iOS и Android на языке Delphi (ранее носившем название Object Pascal), созданная первоначально фирмой Borland и на данный момент принадлежащая и разрабатываемая Embarcadero Technologies. Embarcadero Delphi является частью пакета Embarcadero RAD Studio и поставляется в пяти редакциях: Starter, Professional, Enterprise, Ultimate и Architect.

Lazarus. Открытая среда разработки программного обеспечения на языке Object Pascal для компилятора Free Pascal. Интегрированная среда разработки предоставляет возможность кроссплатформенной разработки приложений в Delphi-подобном окружении.

Для дальнейшей работы выберем некоторые из систем программирование для более детального рассмотрения, а именно:

- Delphi;

- Microsoft Visual Studio;

-Jet Brains PyCharm;

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

    1. Delphi

Среда предназначена для быстрой (RAD) разработки прикладного ПО для операционных систем Windows, Mac OS X, а также iOS и Android. Благодаря уникальной совокупности простоты языка и генерации машинного кода позволяет непосредственно, и, при желании, достаточно низкоуровнево взаимодействовать с операционной системой, а также с библиотеками, написанными на C/C++.

Созданные программы независимы от стороннего ПО, как то Microsoft .NET Framework или Java Virtual Machine. Выделение и освобождение памяти управляется в основном пользовательским кодом, что, с одной стороны, ужесточает требования к качеству кода, а с другой — делает возможным создание сложных приложений с высокими требованиями к отзывчивости (работа в реальном времени).

В кросс-компиляторах для мобильных платформ предусмотрен автоматический подсчёт ссылок на объекты, облегчающий задачу управления их временем жизни. Ниже приведен примера интерфейса Delphi(рис.3).

Рисунок 3 – Интерфейс среды разработки Delphi

Delphi состоит из следующих основных составных частей:

  1. Дизайнер форм
  2. Окно редактора исходного кода
  3. Палитра компонентов
  4. Инспектор объектов
  5. Справочник

Есть, конечно, и другие важные составляющие Delphi, вроде линейки инструментов, системного меню и многие другие, нужные Вам для точной настройки программы и среды программирования.

Программисты на Delphi проводят большинство времени переключаясь между Дизайнером Форм и Окном Редактора Исходного Текста (которое для краткости называют Редактор).

Дизайнер Форм в Delphi интуитивно понятен и прост в использовании. Дизайнер Форм первоначально состоит из одного пустого окна, которое Вы заполняете всевозможными объектами, выбранными на Палитре Компонентов.

Палитра Компонент (см. рис.3) позволяет Вам выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент просто первый раз щелкните мышкой на один из объектов и потом второй раз - на Дизайнере Форм. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши.

Палитра Компонент(рис.4) использует постраничную группировку объектов. Внизу Палитры находится набор закладок - Standard, Additional, Dialogs и т.д. Если Вы щелкнете мышью на одну из закладок, то Вы можете перейти на следующую страницу Палитры Компонент. Принцип разбиения на страницы широко используется в среде программирования Delphi и его легко можно использовать в своей программе. (На странице Additional есть компоненты для организации страниц с закладками сверху и снизу).

Рисунок 4 – Палитра компонентов Delphi

В дополнение к инструментам, обсуждавшимся выше, существуют пять средств, поставляемых вместе с Delphi. Эти инструментальные средства:

  • встроенный отладчик;
  • внешний отладчик(поставляется отдельно);
  • компилятор командной строки;
  • WinSight;
  • WinSpector;

Отладчик позволяет Вам пройти пошагово по исходному тексту программы, выполняя по одной строке за раз, и открыть просмотровое окно (Watch), в котором будут отражаться текущие значения переменных программы.

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

Внешний компилятор, называется DCC.EXE, полезен, в основном, если Вы хотите скомпилировать приложение перед отладкой его во внешнем отладчике. Большинство программистов, наверняка, посчитают, то гораздо проще компилировать в среде Delphi, нежели пытаться создать программу из командной строки. 

WinSight и WinSpector интересны преимущественно для опытных программистов в Windows. Это не значит, что начинающий не должен их запускать и экспериментировать с ними по своему усмотрению. Но эти инструменты вторичны и используются для узких технических целей.

Из этих двух инструментов WinSight определенно более полезен. Основная его функция - позволить Вам наблюдать за системой сообщений Windows. Хотя Delphi делает много для того, чтобы спрятать сложные детали данной системы сообщений от неопытных пользователей, тем не менее Windows является операционной системой, управляемой событиями. Почти все главные и второстепенные события в среде Windows принимают форму сообщений, которые рассылаются с большой интенсивностью среди различными окнами на экране. Delphi дает Вам полный доступ к сообщениям Windows и позволяет отвечать на них, как только будет нужно. В результате, опытным пользователям WinSight становится просто необходим.

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

    1. Microsoft Visual Studio

Интегрированная среда разработки Visual Studio — это оригинальная среда запуска, которая позволяет редактировать, отлаживать и создавать код, а затем публиковать приложения. Интегрированная среда разработки (IDE) — это многофункциональная программа, которую можно использовать для различных аспектов разработки программного обеспечения. Помимо стандартного редактора и отладчика, которые существуют в большинстве сред IDE, Visual Studio включает в себя компиляторы, средства выполнения кода, графические конструкторы и многие другие функции для упрощения процесса разработки программного обеспечения.

Visual Studio включает один или несколько компонентов из следующих:

- Visual Basic .NET;

- Visual C++;

- Visual C#;

- Visual F#;

- Microsoft SQL Server или Microsoft SQL Server Express;

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

Например существуют языковые дополнения:

- Ада;

- CodeDrive для разработки ActionScript 3 приложений;

- Boo;

- Oxygene;

- Phalanger для сборки приложений ASP.NET при помощи PHP;

- VS.php для сборки PHP-приложений;

- Python за счет Python Tools;

На рис.5 показана среда Visual Studio с открытыми проектом и несколькими окнами основных инструментов, которые вам, скорее всего, понадобятся:

- Обозреватель решений позволяет просматривать файлы кода, перемещаться по ним и управлять ими. Обозреватель решений позволяет упорядочить код путем объединения файлов в решения и проекты.

- В окне редактора отображается содержимое файла. Здесь можно редактировать код или разрабатывать пользовательский интерфейс, например окно с кнопками или текстовые поля.

- Team Explorer позволяет отслеживать рабочие элементы и использовать код совместно с другими пользователями с помощью технологий управления версиями, например таких как Git.

Рисунок 5 – Интерфейс Visual Studio

IntelliSense — это набор функций, отображающих сведения о коде непосредственно в редакторе и в некоторых случаях автоматически создающих небольшие отрывки кода. По сути, это базовая документация, встроенная в редактор, с которой вам не приходится искать информацию где-то еще. Функции IntelliSense зависят от языка. Дополнительные сведения см. в руководствах по IntelliSense для C#, IntelliSense для Visual C++, IntelliSense для JavaScript и IntelliSense для Visual Basic. 

На рисунке 6 показано, как IntelliSense отображает список членов.

Рисунок 6 – Пример использования IntelliSense

    1. Jet Brains PyCharm

PyCharm — интегрированная среда разработки для языка программирования Python. Предоставляет средства для анализа кода, графический отладчик, инструмент для запуска юнит-тестов и поддерживает веб-разработку на Django. PyCharm разработана компанией JetBrains на основе IntelliJ IDEA.

PyCharm это кросс-платформенная среда разработки, которая совместима с: Windows, MacOS, Linux. PyCharm Community Edition(бесплатная версия) находится под лицензией Apache License, а PyCharm Professional Edition(платная версия) является проприетарным ПО.

Возможности данной среды программирования:

  • Статический анализ кода, подсветка синтаксиса и ошибок;
  • Навигация по проекту и исходному коду: отображение файловой структуры проекта, быстрый переход между файлами, классами, методами и использованиями методов;
  • Рефакторинг: переименование, извлечение метода, введение переменной, введение константы, подъём и спуск метода и т. д.;
  • Инструменты для веб-разработки с использованием фреймворка Django;
  • Встроенный отладчик для Python;
  • Встроенные инструменты для юнит-тестирования;
  • Разработка с использованием Google App Engine;
  • Поддержка систем контроля версий: общий пользовательский интерфейс для Mercurial, Git, Subversion, Perforce и CVS с поддержкой списков изменений и слияния;

Пользователи могут сами писать свои плагины, тем самым расширять возможности PyCharm. Некоторые плагины из других JetBrains IDE могут работать с PyCharm. Существует более тысячи плагинов совместимых с PyCharm.

На рис.7 наведен интерфейс PyCharm.

Рисунок 7 - Интерфейс PyCharm

Интерфейс PyCharm включает в себя следующие компоненты:

  1. Project Tool Window. Панель инструментов проекта. В этом окне отображаются файлы вашего проекта.
  2. PyCharm Editor. Редактор PyCharm. Находится с правой стороны, где вы пишете свой код. В нем есть вкладки для удобной навигации между открытыми файлами.
  3. Navigation Bar. Панель навигации. Находится над редактором, позволяет быстро запускать и отлаживать ваше приложение, а также выполнять процедуры контроля версий VCS.
  4. Left gutter. Левый столбец, вертикальная полоса рядом с редактором, показывает брекпоинты и обеспечивает удобный способ перехода по иерархии кода. Он также отображает номера строк и историюVCS.
  5. Right gutter. Правый столбец, справа от редактора. PyCharm постоянно контролирует качество вашего кода и постоянно показывает результаты проверки в правом столбце: ошибки, предупреждения и т.д. Индикатор в правом верхнем углу показывает общий статус проверки кода для всего файла.
  6. PyCharm Tool Windows. Панель инструментов PyCharm. Это специальные окна, прикрепленные к низу и сторонам рабочей области, которые обеспечивают доступ к типичным задачам, таким как управление проектами, поиск и навигация по исходному коду, интеграция с системами контроля версий и т.д.
  7. Status Bar.  Строка состояния. Указывает состояние вашего проекта и показывает различные предупреждения и информационные сообщения.

Автозаполнение кода ( Auto-Completing Code) - отличная экономия времени, независимо от типа файла, с которым вы работаете. Завершение работает по мере ввода и завершения любого имени мгновенно(рис.8).

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

Рисунок 8 – Автозаполнение кода

    1. Пример реализации проекта с помощью системы программирования

Для демонстрации реализации проекта было выбрано среду программирования PyCharm от JetBrains и соответствующий ей язык программирования Python.

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

- есть работа с массивами и сложные вычисления в массиве;

- есть работа с файлами;

- реализован графический интерфейс;

- программа будет самообучаться опираясь на полученный результат при каждом прогнозировании;

Входные данные:

- количество комнат;

- площадь, м2;

- этаж;

- наличие лифта;

Выходные данные:

- спрогнозированная цена квартиры, тыс.руб.;

В первую очередь нужно запустить среду разработки PyCharm и создать новый проект(рис.9).

Для этого выберем File->New Project.

Рисунок 9 – Окно создания проекта

Дальше в окне создания проекта выберем путь к его месторасположению на диске. В результате было получено окно пустого проекта(рис.10).

Следующим шагом будет добавление в проект исполняемого файла в котором в дальнейшем будет располагаться наш код(рис.11).

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

Рисунок 10 – Окно нового пустого проекта

Рисунок 11 – Добавление нового файлав проект

Полный листинг кода программы приведен в Приложении А.

Блок-схема алгоритма нашей программы приведена ниже на рис.12.

Рисунок 12 – Блок-схема алгоритма нашей программы

Изначальная выборка находится в файле database.txt, содержание которого показано в Приложении Б. В процессе работы программа самообучается и добавляет в этот файл полученные при расчете результаты.

В процессе разработки постоянно использовалось автозаполнение(рис.13).

Рисунок 13 – Автозаполнение в реальном проекте

А также например встроенные средства отладки. Для этого необходимо возле определенной строчки кода установать маркер остановки программы и запустить программу в режиме «Debug»(рис.14). В результате при выполнении, как только программа заходит в место, где был поставлен маркер, выполнение программы останавливается и мы можем видеть отладочную информацию, содержание переменных и т.д. А также можно по шагово выполнять программу далее и смотреть, как в итоге будут меняться переменные и состояние нашего ПО(рис.15).

Рисунок 14 – Запуск режима отладки

Рисунок 15 – Окно отладки остановленной программы

Как можно увидеть на рис.15 нижняя часть окна заполненна отладочной информацией и возможными вариантами действий, что были описанны ранее.

Также PyCharm предоставляет возможности не выходя из него использовать терминал или консоль операционной системы, что является очень удобным(рис.16).

Рисунок 16 – Встроенные возможноси использования консоли(терминала)

Или например использовать консоль интерпретатора Python. Эта возможность очень удобная, так как можно быстро проверить определенные участки кода и идеи, и уже потом без всяких ошибок внести это в код проекта. Пример такого случая приведен на рис. 17.

Рисунок 17 – Использование консоли Python

На рис. 17 можно увидеть, что при проверке каких то команд в консоли Python, в правой части этого окна мы видим, что то похожее на отладочную информацию.

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

ЗАКЛЮЧЕНИЕ

В данной курсовой работе на тему «Системы программирования» было сделано следующее:

- проанализировано литературу по избранной теме;

- рассмотрено существующие языкы программирования;

- рассмотрено основные существующие системы программирования;

- приведен пример реализации проекта с помощью JetBrains PyCharm и языка программирования Python;

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

В процессе разработки такого ПО были рассмотрено использование следующих инструментов и процессов системы программирования JetBrains PyCharm:

- создание проекта;

- добавление файлов в проект;

- инструменты автозаполнения;

- режим отладки;

- встроенные возможности терминала(консоли) операционной системы;

- встроенная консоль интерпретатора Python;

Помимо использованных инструментов были обнаружены и многие другие, как например интеграция с системой контроля версий Git или подобными.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Источники на русском языке

1. Марк Саммерфилд. Python на практике. — Перевод с английского. — М.: ДМК Пресс, 2014. — 338 с.

2. Сузи Р. А. Создание приложений с графическим интерфейсом пользователя // Язык программирования Python: Учебное пособие. — М.: Интуит, Бином. Лаборатория знаний, 2006. — 328 с.

3. Информатика: Базовый курс/ Симонович С.В. и др. – СПб.: Питер, 2001. – 640 с.

4. Угринович Н. Информатика и информационные технологии. Учебник для 10 – 11 классов. 4-е изд. – М.: Бином. Лаборатория знаний, 2007. – 511с.

5. Черпаков И.В. Основы программирования. Учебник и практикум. ISBN:978-5-9916-9983-9  Москва : Издательство Юрайт, 2018. — 219 с. 

Источники на иностранных языках

6. John E. Grayson. Python and Tkinter Programming. — Manning Publications, 1999. — 658 p.

7. Ivan Van Laningham. Teach Yourself Python in 24 Hours. Sams, 2000

Электронные ресурсы

8. Краткий обзор языка Python [Электронный ресурс]. URL: http://www.helloworld.ru/texts/comp/lang/python/python2/index.htm

9. Сравнение языков программирования относительно работы на фриланс-бирже [Электронный ресурс]. URL: https://www.pvsm.ru/java/118107

10. Актуальность изучения современных языков программирования [Электронный ресурс]. URL: https://scienceproblems.ru/aktualnost-izuchenija-sovremennyh-jazykov.html

11. Системный подход в технологии программирования. Системы программирования.[Электронный ресурс]. URL:

http://bourabai.kz/alg/system5.htm#5.1.2.2

12. PyCharm. Инструкция по началу работы. [Электронный ресурс]. URL: https://py-charm.blogspot.com/2017/09/blog-post.html

13. Документация по Visual Studio. [Электронный ресурс]. URL: https://docs.microsoft.com/ru-ru/visualstudio/ide/?view=vs-2019

14. Среда программирования Delphi. [Электронный ресурс]. URL: http://citforum.ru/programming/32less/les11.shtml#12

ПРИЛОЖЕНИЕ А

Листинг исходного кода разработанного примера example.py:

import tkinter as tk

from tkinter import ttk

from tkinter import *

import numpy

path = r'E:\MY\PyCharmExample\database.txt'

y = []

x = []

def file_input():

global x, y

f = open(path, 'r')

for i_line, line in enumerate(f):

temp = line.strip(',\n')

temp = temp.split(',')

if i_line == 0:

y = [int(item) for item in temp]

else:

x.append([int(item) for item in temp])

f.close()

def file_add_values():

global x, y

f = open(path, 'w')

for temp in y:

f.write(str(temp)+',')

f.write('\n')

for arr in x:

for temp in arr:

f.write(str(temp)+',')

f.write('\n')

f.close()

def resultBtn():

global lift_value

global result_label

global room_field, square_field, floor_field

global x, y

x_temp = x

x_temp = numpy.column_stack(x_temp+[[1]*len(x_temp[0])])

w = numpy.linalg.lstsq(x_temp, y)[0]

x0 = int(room_field.get())

x1 = int(square_field.get())

x2 = int(floor_field.get())

x3 = lift_value.get()

y_result = int(w[0]*x0+x1*w[1]+x2*w[2]+x3*w[3]+w[4])

y.append(y_result)

x[0].append(x0)

x[1].append(x1)

x[2].append(x2)

x[3].append(x3)

file_add_values()

result_label.configure(text = 'Спрогнозированная цена: '+str(y_result))

def clearBtn():

global result_label

global room_field, square_field, floor_field, lift_value

room_field.delete(0,END)

square_field.delete(0, END)

floor_field.delete(0, END)

room_field.delete(0, END)

lift_value = 0

result_label.configure(text = 'Спрогнозированная цена: ')

app = tk.Tk()

app.title("Прогнозирование цены на квартиру")

room_label = ttk.Label(app, text='Количество комнат: ')

room_label.grid(row=0, column=0)

square_label = ttk.Label(app, text='Площадь, м2: ')

square_label.grid(row=1, column=0)

floor_label = ttk.Label(app, text='Этаж: ')

floor_label.grid(row=2, column=0)

lift_label = ttk.Label(app, text='Лифт: ')

lift_label.grid(row=3, column=0)

room_field = ttk.Entry(app, width=25)

room_field.grid(row=0, column=1)

square_field = ttk.Entry(app, width=25)

square_field.grid(row=1, column=1)

floor_field = ttk.Entry(app, width=25)

floor_field.grid(row=2, column=1)

lift_value = tk.IntVar()

lift_value.set(0)

lift_field = ttk.Checkbutton(app, variable=lift_value)

lift_field.grid(row=3, column=1)

result_btn = ttk.Button(app, text='Рассчитать цену', width=25, command=resultBtn)

result_btn.grid(row=4, column=0)

clear_btn = ttk.Button(app, text='Очистить', width=25, command=clearBtn)

clear_btn.grid(row=4, column=1)

result_label = ttk.Label(app, text='Спрогнозированная цена: ')

result_label.grid(row=5, column=0)

file_input()

app.mainloop()

ПРИЛОЖЕНИЕ Б

Содержимое файла изначальной обучающей выборки database.txt:

3600,3300,2100,2350,1250,2250,4900,3250

4,3,2,2,1,1,3,4

71,66,42,48,25,36,89,72

9,1,3,4,4,3,1,7

1,0,0,0,0,1,1,1