Файл: Основные понятия объектно-ориентированного программирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.05.2023

Просмотров: 1693

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

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

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

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

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

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

Целью работы является рассмотрения принципов объектно-ориентированного программирования на языке С++.

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

– рассмотреть основные определения и классификацию языков программирования;

– охарактеризовать объектно-ориентированный язык программирования С++;

  • рассмотреть принципы объектно-ориентированного программирования;
  • рассмотреть применение шаблонных классов в С++;
  • создать программный продукт, который демонстрирует использование принципов ООП.

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

Предмет исследования – объектно-ориентированные языки программирования.

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

1.ОСНОВНЫЕ ПОНЯТИЯ О ЯЗЫКАХ ПРОГРАММИРОВАНИЯ


Основы теории языков программирования

Рассмотрим понятия языка программирования.

Языком программирования называется система обозначений, которая служит для точного описания алгоритмов или инструкций программ для ЭВМ. Стоит отметить, что языки программирования – это искусственные языки. Они отличаются от естественных языков ограниченным числом служебных слов и строгими правилами записи операторов (команд). При их применении по назначению
не допускается свободное толкование выражений (что характерно для естественных языков).[10]

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

Основные требования, которые предъявляются к языкам программирования, следующие:

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

– наглядность – это использование в языке программирования уже существующих символов, которые хорошо известны и понятны как пользователям ЭВМ, так и программистам;[2]

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

– гибкость - возможность удобного и несложного описания распространенных методов математических вычислений с помощью набора изобразительных средств конкретного языка программирования;[1]

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

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

Со времени создания первых ЭВМ человечество придумало более 2,5 тысяч языков программирования. Их число пополняется каждый год новыми, зачастую специализированными, языками. Некоторыми из них умеет пользоваться лишь небольшое число разработчиков, другие – известны миллионам людей. Профессиональные разработчики иногда применяют более десятка различных языков программирования в своей работе.[7]


Машинный вид команды программы, состоящий из символов «0»
и «1», указывает, какое действие должен выполнять центральный процессор. Значит для того, чтобы задать ЭВМ последовательность инструкций, которые ему надо выполнить, нужно описать последовательность двоичных кодов для соответствующих команд.

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

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

Рассмотрим краткую поэтапную историю языков программирования.

  1. Машинный язык (начало 50-х годов XX ст.). Программы
    на машинном языке являлись очень длинными последовательностями двоечных цифр и машинно-зависимыми (для каждой ЭВМ нужно было составлять свою программу, которая подходила бы под ее архитектуру).[6]
  2. Ассемблер (середина 50-ых годов XX ст.). Вместо написание программ на бинарном коде программисты могли пользоваться операторами языка Ассемблер (ADD, MOV, SUB и прочими), которые похожи на аббревиатуры английских слов. Программы на этом языке также являются машинно-зависимыми. В тот период для преобразования написанного кода в машинный использовался компилятор – специальная программа для перевода инструкций Ассемблера в машинный код.
  3. Языки типа Fortran.[4]

С конца 50-ых гг. XX ст. начали создаваться первые машинно-независимые языки программирования, но для каждого из них были разработаны компиляторы.

Примерами таких языков являются:

– FORTRAN – для технических и научных расчетов;

– COBOL – для коммерческих приложений;

– BASIC – универсальный язык для начинающих.

  1. Алгоритмические языки программирования. [10]

С конца 70-ых г. XX ст. начали создаваться такие языки программирования, что позволяли перейти программисту к структурному программированию (применение операторов выбора, ветвления, цикла и отказ от использования операторов перехода (например, goto). К таким языкам относятся:

– Pascal;

–Си.

  1. Языки объектно-ориентированного направления.

В основу таких языков положены программные структуры, которые объединяют методы и данные их обработки. В объектно-ориентированных языках сохранялись алгоритмические методы программирования. Для них разработаны IDE - интегрированные среды программирования, которые позволяли визуально проектировать графический интерфейс приложений. К языкам рассматриваемого этапа относяться: [2]


– С++ – усовершенствование алгоритмического языка Си;

– Object Pascal – создан на основе Pascal.

– Visual Basic – для создания приложений с оконным интерфейсом для ОС Windows.

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

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

– Java - объектно-ориентированный язык, разработан для создания сетевого ПО;

– JavaScript – язык сценариев для Web-страниц.

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

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

– Visual Basic .Net;

– C# и J;

– Visual J#.

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

Все языки программирования классифицируются по четырём основным признакам: процедурные, объектно-ориентированные, логические
и функциональные. [2]

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

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

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

К объектно-ориентированным языкам программирования относятся

языки, в которых функции и переменные группируются в специальные конструкции – классы. Благодаря этому программисты достигают более высокого уровня структуризации программ. Экземпляры, порождённые от созданных классов, вызывают методы (процедуры или функции), которые меняют некоторые свойства (переменные) объектов. С формальной стороны объектно-ориентированный метод написания программ основан на процедурной модели. [7]


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

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

  • возможность использования определенных аппаратных ресурсов;
  • высокое качество программ (скорость выполнения и компактность);
  • предсказуемость заказов памяти и объектного кода;
  • трудоемкость составления программ;
  • для составления эффективно работающих программ необходимо знать перечень команд и особенности архитектуры данной ЭВМ; [9]
  • низкая скорость программирования;
  • невозможность использования программ на ЭВМ других типов.

Машинно-независимые языки – средство описания алгоритмов задач
и информации, которые подлежат обработке. Их удобно использовать для широкого круга программистов, они не требуют знания особенностей архитектуры ЭВМ
и ВС.[7]

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

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

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

– Алгол, Фортран – языки для решения математических задач;

– Слэнг, Simula – для моделирования процессов;

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

Универсальные языки создаются для широкого круга заданий: научных, коммерческих, моделирования и т.д. Самый первый универсальный язык разработан фирмой IBM – Алгол-68. Он позволяет выполнять работу с разрядами, символами, числами с плавающей и фиксированной запятой, имеет систему операторов управления форматам. Язык учитывает возможности прерывания, имеет соответствующие для этого операторы. Так же предусмотрена возможность параллельного программирования. [7]