Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие Функциональное и логическое программирование.docx
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
310 Кб
Скачать
☆

Процедурное (императивное, директивное) программирование.

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

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

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

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

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

Следование –это однозначная последовательность действий.

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

Цикл – повторение некоторой группы действий по условию.

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

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

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

– простота в составлении программ (необходимо знать только три базовые структуры – следование, ветвление, цикл);

– возможность разбиения на части (большую программу могут писать одновременно несколько исполнителей);

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

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

Объектно-ориентированное программирование.

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

В настоящее время объектно-ориентированное программирование является наиболее популярной технологией программирования. К этой группе относятся языки Visual Basic, Jawa, Object Pascal и Си++. Объектно-ориентированное программирование является развитием технологии алгоритмического программирования, которое представляет алгоритм в виде последовательности различных алгоритмических структур (линейная, ветвление, цикл), однако имеет свои характерные черты.

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

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

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

При таком подходе доступ к изменению свойств объекта возможен только через принадлежащие этому объекту методы. Методы «окружают» свойства объекта. Если говорить образно, то объекты – это существительные, свойства объекта – это прилагательные, а методы объекта – это глаголы.

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

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

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

– простота построения новых классов, использование механизма наследования;

– полиморфизм – возможность работать с объектами, абстрагируясь от их класса;

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

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