Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Топ:
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Интересное:
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Дисциплины:
2017-10-16 | 197 |
5.00
из
|
Заказать работу |
Директивная программа предписывает, как достичь результата, пошагово описывая действия. Таким образом, структурная программа описывает, как получить результат.
В структурном программировании от входных данных полностью зависит последовательность выполнения команд. В директивном программировании возникла концепция локализации части кода в подпрограммы (функции, процедуры, методы), с последующим их вызовом из разных мест основной программы. При вызове в подпрограмму могут передаваться какие-либо данные в виде аргументов, а подпрограмма, в свою очередь, может возвращать в главную программу результат (т.е. полученные в ходе ее выполнения данные).
Типичными представителями структурной парадигмы являются языки Fortran, Pascal, C.
Такой подход удобно применять при решении хорошо формализованных задач, где важна скорость выполнения программы, а ее объем не превышает нескольких тысяч строк исходного кода.
Объектно-ориентированное программирование
В этом подходе особое внимание уделяется данным, которые представляются в программе в виде объектов. Объекты взаимодействуют между собой с помощью механизма передачи сообщений. Задача программиста — реализовать такие объекты, при взаимодействии которых можно будет получать желаемый результат.
ООП призвано решать более сложные и объемные задачи по сравнению с директивным программированием.
В основе ООП лежат следующие понятия:
1. Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя.
2. Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс — потомком, наследником или производным классом.
3. Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Все объекты являются экземплярами классов, которые по отношению друг к другу могут выступать в роли родитель-потомок. Классы-потомки наследуют свойства родительского класса.
Типичные представители объектно-ориентированных языков: С++, Java, Python.
Объектно-ориентированный подход целесообразно применять при решении задач для сложной предметной области, которую легче описать не набором стандартных типов данных, а через ее сущности (которые и будут являться кандидатами для создания классов). При этом происходит некоторый спад производительности программы (не всегда заметный).
Функциональное и логическое программирование
Декларативная программа заявляет (декларирует), что должно быть достигнуто в качестве цели. Важным является точная формулировка задачи. Программист не задает алгоритм для ее решения.
Функциональное программирование основано на математическом понятии функции, которая не изменяет свое окружение; это отличие функционального программирования от функций в структурных языках. Функциональная программа состоит из совокупности определений функций, которые в свою очередь представляют собой вызовы других функций и предложений, управляющих последовательностью вызовов. Каждая функция возвращает некоторое значение в вызвавшую его функцию, вычисление которой после этого продолжается; этот процесс повторяется до тех пор, пока не будет достигнут результат.
Типичные представители функциональных языков: List, Haskell.
В логическом программировании программы выражены в виде формул математической логики, и решение задачи достигается путем вывода логических следствий из них.
Наиболее известным представителем логических языков является Prolog.
Декларативный подход целесообразно применять в тех случаях, когда непонятно, как именно достичь результата, но точно известно, что нужно получить. Большое распространение эта парадигма получила при решении задач, связанных с искусственным интеллектом: с ее помощью реализованы различные экспертные системы.
Выбор парадигмы
Универсальной парадигмы программирования не существует, по большому счету, она и не нужна. Выбор же того или иного способа реализации программного обеспечения зависит от совокупности различных факторов:
– сложности описания предметной области;
– требований к скорости разработки и/или скорости работы программы;
– требований переносимости (кроссплатформенности) или же наоборот, оптимизации под единственную платформу;
– сложности используемых алгоритмов;
– подхода к решению задачи («что сделать» или «как сделать»).
Можно одну и ту же задачу решить с использованием различных парадигм или их комбинации. Выбор, на наш взгляд, должен осуществляться с учетом «естественности» применения того или иного подхода для решения конкретной задачи. Так, например, вряд ли кто-то будет писать программы для численного решения дифференциальных уравнений с использованием декларативных методов или реализовывать интеллектуальную систему на основе структурного подхода.
Литература
1. Лазарев Д. Презентация: Лучше один раз увидеть! — М.: Альпина Паблишер, 2011. — 142 с.
2. Феличи Дж. Типографика: Шрифт, верстка, дизайн. — Санкт-Петербург: БХВ-Петербург, 2004. — 496 с.
3. Рудер Э. Типографика. — М.: Таллер, 1998. — 232 с.
4. Балдин Е.М. Компьютерная типография LaTeX. — Санкт-Петербург: БХВ-Петербург, 2008. — 304 с.
5. Официальный учебный курс Adobe InDesign CS4 +CD = Adobe InDesign CS4 Classroom in a Book. — М.: Эксмо, 2009. — 464 с.
6. Ландэ Д.В., Снарский А.А., Безсуднов И.В. Интернетика: Навигация в сложных сетях: модели и алгоритмы. — M.: Либроком, 2009. — 264 с.
7. Ландэ Д.В. Поиск знаний в Internet. — М.: Диалектика, 2005. — 272 с.
8. Колисниченко Д.Н. Поисковые системы и продвижение сайтов в Интернете. — М.: Диалектика, 2007. — 272 с.
9. Братищенко В.В. Проектирование информационных систем. — Иркутск: Изд-во БГУЭП, 2004. — 84 с.
10. Брукс Ф. Мифический человеко-месяц или как создаются программные системы. — Санкт-Петербург: Символ-Плюс, 1999. — 304 с.
11. Себеста Р.В. Основные концепции языков программирования. — М.: Вильямс. — 672 с.
12. Роганов Е.А. Основы информатики и программирования: Учебное пособие. — М.: МГИУ, 2001. — 315 с.
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!