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

Интегрированные среды разработки программ (теории языков программирования)

Содержание:

ВВЕДЕНИЕ

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

Но использование большинства персональных компьютеров (ПК) на уровне машинного языка очень затруднительно, особенно касается это ввода-вывода.

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

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

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

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

Исходя с поставленной цели надо решить следующие задачи:

– рассмотреть теоретические источники литературы и историю возникновения языков программирования (ЯП);

  • рассмотреть классификацию ЯП;
  • раскрыть основные понятия языков программирования Java, С++, C#;
  • охарактеризовать интегрированные среды программирования;
  • создать приложение с использованием графических компонентов и языка программирования высокого уровня.

Объект исследования – это инструментальное программное обеспечения (ПО) ПК.

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

По мере развития разного рода вычислительной техники возникали различные методики программирования. На этапах создавался новый подход, что помогал программистам с растущим усложнением графических программ. Этим занимались Б.Стауструп, С.Прата, П.Голдинг и другие программисты.

Глава 1. ОСНОВЫ ТЕОРИИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ

1.1.История становления языков программирования

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

Это приводит к необходимости найти такие средства, которые позволят более просто налаживать общение человека и ПК. И такое средство найдено: различные языки и соответствующие им модули-трансляторы (системы программирования).[5]

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

Языки программирования условно можно разделять на языки высокого и языки низкого уровня программирования.

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

Рассмотрим краткую историю ЯП:

1801 год – ученый И. Жаккард с использованием перфокарт впервые вышивает сочетание «hello world» на куске ткани.

1842 год – первая женщина-программист А. Лавлейс пишет первую компьютерную программу. Через почти 160 лет архитекторы корпоративных программных продуктов переймут технику Ады при написании моделей программ и назовут метод UML.[10]

1936 год – А. Тьюринг изобрел теорию языков программирования и описал их основные аспекты.

1957 год – Дж. Бакус и фирма IBM изобретают язык программирования под названием Фортран.

1964 год – Дж. Кемни и То. Курц создают революционный на то время язык программирования Бейсик.

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

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

1983 год – Б. Страуструп на базе языка С, создает язык программирования С++.

1990 год. – группа разработчиков в составе П. Худака, Ф. Водлера, С. Пейтон-Джонса, Э. Катчера создает язык Хаскелл.

1996 год – Дж. Гослинг проектирует язык Java. Java - довольно типизированный объектно-ориентированный ЯП на основе классов, с современной сборкой мусора, одиночной диспетчеризацией, одиночным наследованием реализации , а также и множественным наследованием любых интерфейсов.

1.2. Классификации языков программирования

Процесс работы ПК заключается в выполнении разных инструкций, то есть перечня определённых команд в нужном порядке. Машинный вид информации, который состоит из 1 и 0, указывает, какое именно действие должен выполнять процессор.

Чтоб задать ПК перечень действий для выполнения, необходимо задать последовательность с двоичного кода. [15]

Программы, изображенные в так называемых машинных кодах, состоят с многих тысяч команд.

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

Но проще написать компьютер естественному языку, а работу по переводу в машинный код данной программы поручить ПК.

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

Все создатели языков толкуют понятие языка программирования по–своему. К самым популярным утверждениям, признаваемым абсолютным большинством программистов, относят:[6]

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

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

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

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

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

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

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

Всё это может служить хорошей почвой для создания новейших ЯП, которые отвечают всем задачам нынешнего времени и используют новые способы и парадигмы программирования, которые часто позволяют решать все актуальные проблемы.[17]

Но не смотря на огромное количество ЯП, только некоторые с них получили признание у программистов и известность.

При определении самых популярных ЯП воспользуемся данными компании «ITIOBE Software».

По информации фирмы «ITIOBE Software» самые популярные ЯП на апрель 2017 года представлены в таблице 1.

Таблица 1 – Рейтинг ЯП

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

Рейтинг

Последний официальный релиз

1

Java

17.99%

12.10.2014

2

C++

16.06%

16.11.2010

3

C

9.03%

22.06.2015

4

PHP

7.56%

22.05.2013

5

C#

6.63%

12.03.2014

6

Python

6.45%

04.05.2013

7

Visual Basic

5.12%

12.03.2014

8

Objective C

3.27%

28.07.2003

9

Perl

2.36%

12.03.2014

10

Delphi

2.16%

04.07.2011

Все такие языки очень разные, ведь каждый имеет своё уникальное назначение.

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

Первым шагом для проектирования языков, которые содержащих основные понятия, близкие человеку, стали такие языки, которые переводят разные символические обозначения в специальный машинный код (к примеру, Ассемблер).[4]

ЯП низкого уровня – язык программирования, что предназначен для определенного типа ПК и отражающий его машинный код; ЯП низкого уровня часто также называют машинно-ориентированными. Их сложно конвертировать для реализации на ПК с разными центральными микропроцессорами, а также довольно тяжело изучать, поскольку требуется хорошо знать принципы внутренней схемы ПК.[13]

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

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

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

Язык высокого уровня – ЯП предназначенный для удовлетворения разных требований программиста; он зависит не всегда от внутренних машинных кодов ПК любого типа.

Язык высокого уровня используют при решении проблем и их часто называют поэтому проблемно-ориентированными ЯП.

Каждая команда ЯП высокого уровня эквивалентна сразу нескольким командам, написанным в машинных кодах, поэтому такие программы, более компактны.[14]

ЯП высокого уровня являются очень приближенными к естественным классическим понятиям. Они также являются машинно-независимыми. С их распространением и развитием ПК наметился процесс по появлению специальных и универсальных ЯП.

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

Программа, что написана на непроцедурном ЯП, описывается, используя понятия: рекурсия, ветвление, подстановка.

Машинно-ориентированные ЯП – языки, наборы разных операторов и средства которые сильно зависят от ЭВМ (структуры памяти, внутреннего машинного языка и т.п.). Эти языки позволяют также использовать такие возможности:

  • высокое качество ПО;
  • предсказуемость объектного кода;
  • возможность для использования конкретных ресурсов;
  • для составления оптимальных программ нужно знать команды и особенности функционирования ЭВМ;
  • низкая скорость при программировании;
  • трудоемкость процесса составления ПО, плохо защищенного от ошибок;
  • невозможность использования программы, составленных на этих ЯП, на других ЭВМ.

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

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

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

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

Для удобства проектирования программных продуктов создаются также специальные интегрированные среды для программирования – это системы, что объединяют транслятор, редактор текстов, отладчик (к примеру, Turbo С). Получили распространение системы по визуальной разработке программ – это средства, при помощи которых можно создавать ПО путем визуального проектирования (например, С++ Builder).

Глава 2. ХАРАКТЕРИСТИКА СОВРЕМЕННЫХ ИНТЕГРИРОВАННЫХ СРЕД ПРОГРАММИРОВАНИЯ

2.1. Описание языка программирования С++ и среды C++ Builder

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

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

Б. Страуструп является создателем и разработчиком языка С++, создателем его транслятора. Он является авторитетным сотрудником научно-исследовательского центра AT&T в Нью-Джерси. Страуструп получил звание почетного магистра вычислительной техники в университете г.Арус (Дания), а докторское звание – в Кэмбриджском университете. [7]

Он специализируется в сфере операционных систем, разных распределенных систем, программирования, моделирования и также он является автором руководства по С++.

ЯП С++ безусловно многим обязан ЯП С[8], который сохраняется как его подмножество. Сохранены также свойственные Си средства для низкого уровня, что предназначались для решения задач системного программирования. [17]

Название С++, придумано Р. Маскитти в 1982 г. Оно показывает эволюционный характер нового языка С++. А обозначение «++» относится к инкременту операции наращивания.

Изначально С++ спроектировали для того, чтоб Страуструпу и его команде не надо было создавать программы на ассемблере или других языках низкого уровня. [13] Основным его предназначением стало сделать более приятным сам процесс программирования и упрощать его для отдельных программистов.

До некоторого времени вовсе не было определенного графика разработки языка С++. Реализация и документирование всех его средств шли полностью параллельно.

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

Примерно в 1985 году стало очевидно, что все работы по стандартизации ЯП С++ неизбежны и надо незамедлительно приступать к проектированию основ для нее.

Организация AT&T внесла свой вклад в данный этап работы. Больше ста представителей выполняли изучение и комментировали все современные аспекты языка, которые и стали современной версией по руководству и материалами стандарта С++.

При разработке С++ самым важным критерием была его простота. При возникновении вопросов, что упростить: руководство или же другую документацию, то выбирали первое. Огромное значение также придавали совместимости с ЯП Си, что и мешало удалить весь синтаксис.[1]

В ЯП С++ нет разных типов данных, а также операций высокого уровня. К примеру, не существует одного типа «матрица» с операциями обращения, или «строка» с операцией встроенной конкатенации.

Но когда пользователю понадобится подобный тип, то он может с легкостью определить его непосредственно в самом языке. Программирование в С++ сводится также к определению зависящих от типов и области написания программ. [20]

Язык С++ создавался и для использования его в традиционной среде, а именно в системе программирования С ОС Linux. Но есть уже обоснованные доводы по применению С++ в этой богатой программной среде. К примеру, развитые системы трансляции, а также динамическая загрузка и БД, можно успешно применять в Linux.

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

В С++ концепция модульности и контроля типов реализована намного полнее, нежели в ЯП С. Также, С++ может содержать некоторые усовершенствования, что стандартны для параметров функции-подстановки, функций, операции управления памятью, а также перегрузка имен функций и ссылочный тип. В ЯП С++ сохранены все возможности С для эффективной работы с разными объектами, которые могут отражать аппаратную "реальность".

Язык С++ в свое время проектировался в качестве объектно-ориентированного ЯП и поддержки абстракции в добавление к стилю С.

Почти каждый ЯП высокого уровня имеет для реализации своих программ разработанную для него IDE – интегрированную среду разработки: C# - Visual Studio, Java – NetBeansи Eclipse, C++ - C++ Builder. Эти среды предназначаются для использования ЯП в более сложных графических программах.

IDE C++ Builder – средство, выпущенное компанией Borland, для разработки приложений, которое дает возможность создавать оконные приложения с использованием языка C++, применяя при этом библиотеку VCL и среду разработки ЯП Delphi. [10]

C++ Builder – SDI-приложение, главное окно которого использует настраиваемую инструментальную панель, а также палитру компонентов (рисунок 1). [8]

Рисунок 1 – Внешний вид C++ Builder

Помимо этого, при начальном запуске C++ Builder также показаны окно инспектора объектов и форма для нового приложения.

Формы – это база приложений C++ Builder. При создании пользовательского интерфейса приложения надо добавить в окно начальной формы элементы для объектов C++ Builder, что называются компонентами. Все компоненты располагаются на специальной палитре, которая выполнена как панель с вкладками. [9]

Важной особенностью IDE C++ Builder является и то, что он дает возможность проектировать собственные компоненты, при этом настраивать всю палитру. Также есть хорошие возможности создавать различные версии палитр для разных проектов.[11]

Компоненты разделяют на визуальные и невизуальные. Визуальные появляются при выполнении (к примеру, кнопки, редактируемые поля). А невизуальные – отображаются лишь во время проектирования, и их не видно при выполнении программы, хотя все они обладают определенной степенью функциональности (к примеру, запуск таймера или открытие диалогового окна) [17](рисунок 2).

Рисунок 2 – Использование компонентов

Каждый компонент в IDE C++ Builder имеет 3 характеристики:

– события;

– свойства;

– методы.[19]

Если выбирать компонент на палитре, а потом добавить его в форму, то инспекторы объектов автоматически отобразят события и свойства, что могут использоваться с компонентом (рисунок 3). [14]

Рисунок 3 – Инспектор объектов

Свойства компонентов называют атрибутами, определяющими поведение его и внешний вид. Все различные свойства компонентов в столбце свойств принимают разные значение, которые часто устанавливаются по умолчанию. [19]

Свойство определенного компонента отображается на вкладке свойств. В то же время инспекторы объектов отображают опубликованные свойства компонентов. [6]

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

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

Страница событий в инспекторе объектов использует события, распознаваемые компонентами. Для каждого компонента имеется собственный перечень обработчиков. Так же в IDE C++ Builder можно создавать функции, которые называют обработчиками событий, и их связывают события с этими функциями. Создавая любой обработчик для события, программе поручают выполнить написанную функцию только в случае, если это событие произойдет.

Метод – это функция для связи с некоторым компонентом. Она объявляется частью компонента.

2.2. Описание языка программирования Java и среды NetBeans

Java – это язык программирования, что разработан компанией Sun Microsystems.

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

Сегодня технология Java достигает такого совершенства, что она предоставляет средства по превращении статических Web-страниц в полные интерактивные динамические документы, для создания распределенных вовсе не зависящих от платформ приложений.

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

Java – это не только сам ЯП, а и платформу для проектирования и исполнения приложений.

Изначально этот ЯП назывался Oak и разрабатывался Джеймсном Гослингом для программирования разных бытовых электронных устройств. Но, впоследствии его переименовали в Java и он стал использоваться для создания клиентских приложений или серверного программного обеспечения. ЯП назван в честь вида кофе Java, который любили некоторые программисты, поэтому на официальном логотипе ЯП изображена чашка с парящимся кофе. Существует также другая версия происхождения этого названия, а именно, Java – сленговое обозначение кофе с аллюзией на специальную кофе-машину, как пример некоторого бытового устройства, для выполнения программирования которых изначально ЯП и создавался.

Чтоб не связывать всю разработку ПО с конкретной платформой, Дж. Гослинг начал с использования расширения компилятора С++.

Но со временем, он понял, что только один С++, не сможет удовлетворить всем потребностям, как его ни расширяй. Поэтому к середине 1990 года был спроектирован язык Oak.

Программы на ЯП Java транслируются в специальный байт-код, выполняемый на виртуальной машине Java (JVM) – программой, что обрабатывает байтовый код и передает инструкции оборудованию в качестве интерпретатора.

Достоинство подобного метода выполнения программ находится в полной независимости этого байт-кода от ОС и оборудования, которое позволяет выполнять все Java-приложения на любых устройствах, для которого существует уже соответствующая виртуальная машина.

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

Всяческие операции, которые превышают уже установленные полномочия программ (к примеру, попытка несанкционированного доступа данным или соединения с ПК) вызывают немедленное прерывание программы.

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

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

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

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

Такие идеи нашли также выражение в общеязыковой инфраструктуре CLI.[1]

Основные возможности ЯП:[12]

  • богатый набор средств по фильтрации ввода/вывода;
  • автоматическое управление памятью;
  • унифицированный доступ к БД:
  • набор стандартных коллекций;
  • наличие разных классов, позволяющих выполнить HTTP-запросы;
  • параллельное выполнение программных продуктов.

По сравнению с другими средами IDE среда IDE NetBeans обеспечивает высококлассную комплексную поддержку новейших технологий Java и последних усовершенствований стандартов Java. Это первая бесплатная среда IDE, поддерживающая JDK 8, JDK 7, Java EE 7, включая соответствующие усовершенствования HTML5 и JavaFX 2. 

Благодаря постоянно совершенствующемуся редактору Java, разнообразным возможностям и широкому спектру инструментов, шаблонов и образцов, IDE NetBeans устанавливает стандарт разработки с помощью новейших готовых технологий (рисунок 4).

https://netbeans.org/images_www/v7/design/overview/image_code_editing.png

Рисунок 4 – Пример редактирования кода в NetBeans

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

Редактор поддерживает множество языков - от Java, C / C++, XML и HTML до PHP, Groovy, Javadoc, JavaScript и JSP. Редактор является расширяемым, поэтому можно подключить поддержку для множества других языков. 

2.3. Описание языка программирования C# и среды Visual Studio

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

Процесс написания приложения на ЯП С++ зачастую занимает намного больше времени, нежели разработка эквивалентного приложения, к примеру, на Visual Basic.

Уже сейчас существуют языки, которые увеличивающие продуктивность разработки вовсе за счет потери в самой гибкости, которая так привычна и очень необходима программистам на ЯП С/С++.

Традиционным средством по отладке программ на стадии выполнения разработки в C++ – это маркировка обширных частей программного кода директивами типа #ifdef и т.п.

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

Это очень упрощает работу, вместо того чтоб писать автоматизированный инструмент, что будет проверять все классы или интерфейсы, на то, является он действительно частью некоторого абстрактного бизнес-объекта, можно воспользоваться просто сообщениями основанными на локальных атрибутах объекта.[11]

ЯП C#, являясь последним с широко распространенных ЯП, должен впитать в себя полностью весь имеющийся опыт, вобрать лучшие стороны всех существующих ЯП, при этом являясь полностью созданным для работы в среде .NET.

Сама архитектура платформы .NET продиктовала ему объектно-ориентированную направленность. Но, это не является каким-то правилом, возможно создание разных компиляторов даже функциональных ЯП по .NET, а на эту тему также существуют специальные работы. [17]

Свой синтаксис ЯП C# во многом унаследовал с C++ и Java. Все разработчики, имеющие опыт по написанию приложений на таких языках, найдут в ЯП C# много знакомых параметров.

Но вместе с этим он является и во многом новаторским – атрибуты, делегаты, события, прекрасно вписанные в идеологию языка, прочно заняли свое место в сердцах многих .NET - разработчиков.

Их введение позволило применить принципиально новые приемы для программирования. [16]

Из вещей, что включены в спецификацию языка, хотя не являющихся чисто "программистскими" надо отметить возможность использование разных комментариев в формате языка XML.

Если комментарии отвечают описанной структуре, то компилятор по ним генерирует единый XML-файл для документации.

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

Обобщенный визуальный обзор Visual Studio приведен на снимке экрана ниже (рисунок 5). На нем показана среда Visual Studio с открытым проектом и несколькими окнами основных инструментов, которые вы, скорее всего, будете использовать.

Интегрированная среда разработки Visual Studio

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

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

Глава 3. СОЗДАНИЕ ГРАФИЧЕСКОГО ПРИЛОЖЕНИЕ С ПОМОЩЬЮ ЯП С++ BUILDER

3.1. Описание алгоритма программы

Рассмотрим методику разработки графической программы – алгоритма Крамера для вычисления корней СЛАУ.

Приведем описание алгоритма.[3]

Рассмотрим систему линейных уравнений и неизвестными, то есть, систему вида[18]

Обозначим с помощью матрицу:

.

Матрицу часто называют основной матрицей СЛАУ.

Пусть – это матрица-столбец неизвестных, а – матрица-столбец свободных членов:[10]

и .

Тогда систему можно записать так:

.

Данный метод применятся для выполнения решения СЛАУ, в которых число уравнений и число неизвестных совпадают и матрица системы – невырожденная.[2]

Если в СЛАУ число уравнений , а число неизвестных будет совпадать и , то такая система совместна и имеет только единственное решение: [1]

(),

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

Приведенные формулы называют формулами Крамера.

3.2.Создание графической программы

Написания графической программы состоит из этапов.

Первым шагом является разработка интерфейса программного продукта.[4]

Для этого откроем C++ Builder и создадим пустой проект с оконным интерфейсом.

После размещения визуальных компонентов на форме, их настройки с использованием окна Object Inspector, весь интерфейс программы примет вид (рисунок 4):[16]

Рисунок 4 – Интерфейс

Вторым этапом для проектирования является написание кода для компонентов (или их событий). Рассмотрим главные функции программы.

Кнопка с названием Автоматически заполнить имеет код:

{

int i1,j1;

{

for (i1=1;i1<=StrToInt(Edit1->Text);i1++)

for (j1=1;j1<=StrToInt(Edit1->Text);j1++)

{

StringGrid1->Cells[i1][j1]=rand()%30-2;StringGrid1->Cells[UpDown1->Position+2][j1]=rand()%30-2;

}

}

}

Функция предназначена для заполнения компонента StringGrid1, числовыми значениями с отрезка [-2; 29].

При этом при каждом нажатию на компонент UpDown1 увеличивается количество строк или столбцов, а также изменяется название столбцов и строк в таблице.

Нажав на кнопку Вычислить матрицу выполнится код:

int n1 = StrToInt(Edit1->Text);

float** a1 = mtx(n1);

for(int i1=1;i<UpDown1->Position+1;i1++

{

for(int j1=1;j1<UpDown1->Position+1;j1++)

a[i1-1][j1-1]=StrToFloat(StringGrid1->Cells[j1][i1]);

b[i1-1]=StrToFloat(StringGrid1->Cells[StringGrid1->ColCount-1][i1]);

}

float dd1 = det(a1,n1)

Edit14->Text=dd1;

if(dd1==0)

{

ShowMessage("Определитель = нулю");

return;

}

for(int i1=0;i1<n;i1++)

{

d[i1] = det(Swap(a1,b,i1,n1),n1);

x[i1] = d[i1]/dd1;

D[i1]->Text=FloatToStrF(d[i1],ffGeneral,6,4);

X[i1]->Text=FloatToStrF(x[i1],ffGeneral,6,4);

}

AnsiString s="",p;

del(a1,n1);

Этот код предназначен для вычисления корней методом Крамера.

Запустим программу на выполнение, введем размерность СЛАУ. В результате имеем (рисунок 5):

Рисунок 5 – Ввод данных

Далее нажимаем кнопку Вычислить матрицу. И в результате использования программы имеем следующий результат (рисунок 6):[7]

Рисунок 6 – Результат

При нажатии на Выход графическое приложение закроется.

В третьей главе описана практическая реализация метода Крамера для решения СЛАУ, детально рассмотрены основные теоретические элементы этого алгоритма, создан программный продукт в С++ Builder.

ЗАКЛЮЧЕНИЕ

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

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

Например, сегодня разные программисты комментируют свои созданные программы для объяснения, какие именно классы реализуют какой-то абстрактный бизнес-объект. К примеру, язык C# позволяет применять типизированные, расширяемые метаданные, что могут быть использованы к объекту.

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

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

В процессе написания курсовой работы были реализованы следующие задачи:

– рассмотреть теоретические источники литературы и историю возникновения языков программирования (ЯП);

  • рассмотреть классификацию ЯП;
  • раскрыть основные понятия языков программирования Java, С++, C#;
  • охарактеризовать интегрированные среды программирования;
  • создать приложение с использованием графических компонентов и языка программирования высокого уровня.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Бобровский С. Самоучитель програмирования на языке C++ в среде Borland C++ Builder М.: ИНФРА-М, 2014.–251 c.
  2. Бруно Бабэ. Просто и ясно о Borland C++: Пер. с англ. - Москва: БИНОМ, 2014. – 400с.
  3. Заварыкин В.М.. Основы информатики и вычислительной техники. — М.: Просвещение, М.: - 2015. 180 с.
  4. Задачи по программированию / С. А. Абрамов, Г. Г. Гнездилова, Е. Н. Капустина, М. И. Селюн. — М.: Наука, 2016. – 344 с.
  5. Зубов В. С. Программирование на языке С++. — М.: Информационно-издательский дом «Филинъ», 2013. – 452 с.
  6. 3yeв Е. А. Практическое программирование на языке С++. — М.: Радио и связь, 2014. – 406 с.
  7. Информатика. Задачник-практикум: В 2 т. / Под ред. И. Г. Семакина, Е.К.Хеннера. — М.: Лаборатория Базовых Знаний, 2013. – 182 с.
  8. Йенсен К. С++ — руководство для пользователей и описание языка. — М.: Мир, 2012. – 402 с.
  9. Касаткин В. Н. Информация. Алгоритмы. ЭВМ. — М.: Просвещение, 2015. – 210 с.
  10. Керниган Б. Язык программирования Си: Пер. с англ. — М.: Финансы и статистика, 2014. – 322 c.
  11. Культин Н.Б. Визуальное программирование.— СПб.: BHV — Санкт-Петербург, 2013. – 266 c.
  12. Культин Н.Б. С++ Buider в задачах и примерах – СПб.:БХВ-Петербург, 2012. – 336с.: ил.
  13. Лаптев В.В. C++. Экспресс-курс . М.: 2014.–322 с.
  14. Оллисон Ч. Философия С++. Практическое программирование. С.Петербург 2014. – 608 с.:ил.
  15. Послед Б.С. Borland C++ Builder 6. Разработка приложений баз. М.: 2013г. -360 г.
  16. Стенли Б. Липпман. C++ для начинающих: Пер. с англ. 2тт. - Москва: Унитех; Рязань: Гэлион, 2012. – 345с.
  17. Строуструп Б. Справочное руководство по языку C++ с комментариями: Пер. с англ. - Москва: Мир, 2012. – 445с.
  18. Технология разработки приложения на языке С++. Методическое указание к лабораторным работам для студентов первого курса специальности 080801.65 “Прикладная информатика”. МГУ. – М.: – 2013.–222 с.
  19. Холингворт Д. Учебник по программированию в среде С++ Builder 5. – Наука.–М.: 2015. –865 с.
  20. Юпашников A.M. Программирование в среде C++ Builder. — М.: МИФИ, 2014. – 360 c.