- •Лекция 15 Алгоритмизация и программирование Программирование
- •Параллельное программирование
- •Эвристическое программирование
- •Алгоритмическое программирование
- •Структурное программирование
- •Объектно-ориентированное программирование
- •Визуальное программирование
- •Процесс разработки
- •Основные определения
- •Понятие алгоритма
- •Языки программирования
- •Виды алгоритмов
- •Правила записи схем алгоритмов
Лекция 15 Алгоритмизация и программирование Программирование
Это совокупность процессов, связанных с разработкой программ и их реализацией. В широком смысле к указанным процессам относят все технические операции, необходимые для создания программ, включая анализ требовании, все стадии разработки, а также реализации в виде готового программного продукта. В узком смысле под программированием часто понимают только процессы выбора структуры, кодирования и тестирования программ.
Целью программирования является выполнение систематической последовательности действий для достижения автоматической обработки данных. Таким образом, технология разработки программного обеспечения или технология программирования терминологически обозначает совокупность процессов для создания программного продукта требуемой функциональности.
В зависимости от назначения и/или способа написания программ различают:
• Прикладное программирование – это разработка и отладка программ для конечных пользователей, например, бухгалтерских, обработки текстов и т.д.
• Системное программирование – разработка средств общего программного обеспечения, в том числе операционных систем, вспомогательных программ, пакетов программ общесистемного назначения, например, автоматизированных систем управления, систем управления базами данных и т.д.
Параллельное программирование
• Параллельное программирование – это разработка программ, обеспечивающих одновременное (параллельное) выполнение операций, связанных с обработкой данных.
• Процедурное (процедурно-ориентированное) программирование – метод программирования, в соответствии с которым программы пишутся как перечни последовательно выполняемых команд. При этом используется процедурно-
ориентированный язык программирования.
Эвристическое программирование
Метод программирования, основанный на моделировании мыслительной деятельности человека. Используется для решения задач, не имеющих строго формализованного алгоритма или связанных с неполнотой исходных данных.
Алгоритмическое программирование
Основная идея алгоритмического программирования – разбиение программ на последовательность модулей, каждый из которых выполняет одно или несколько действий. Единственное требование к модулю - чтобы его выполнение всегда начиналось с первой команды и всегда заканчивалось на самой последней (чтобы нельзя было попасть на команды модуля извне и передать управление из модуля на другие команды в обход заключительной).
Алгоритм на выбранном языке программирования записывается с помощью команд описания данных, вычисления значений и управления последовательностью выполнения программ.
Структурное программирование
Это метод написания программ небольшими независимыми частями – модулями, каждый из которых связан с какой-либо процедурой или функцией.
При создании средних по размеру приложений (несколько тысяч строк исходного текста) используется структурное программирование, идея которого заключается в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решения был ясно виден из исходного текста.
Для этого нужно иметь средства для создания программы не только с помощью трех простых операторов, но и с помощью средств, более точно отражающих конкретную структуру алгоритма.
С этой целью введено понятие подпрограммы – набора операторов, выполняющих нужное действие и не зависящее от других частей исходного текста. Программа разбивается на множество мелких подпрограмм, каждая из которых выполняет одно из действий, предусмотренных исходным заданием. Комбинируя эти подпрограммы, удается формировать итоговый алгоритм из законченных блоков кода, имеющих определенную смысловую нагрузку.
Декларативное программирование
Метод программирования, предназначенный для решения задач искусственного интеллекта. Программа описывает логическую структуру решения задач, указывая преимущественно, что «нужно сделать», не вдаваясь в детали «как это делается». Используются языки программирования типа Пролог.
Функциональное программирование
Это метод программирования, основанный на разбиении алгоритма решения задачи на отдельные функциональные модули, а также описании их связей и характера взаимодействия. Для данного вида программирования используются языки HOPE ML. Элементы функционального программирования реализуются также другими языками, например, Си.
Нисходящее проектирование
Наличие подпрограмм позволяет вести проектирование и разработку приложения сверху вниз – такой подход называется нисходящим проектированием.
Сначала выделяется несколько подпрограмм, решающих самые глобальные задачи, потом каждый из этих модулей детализируется на более низком уровне, разбиваясь на небольшое число других подпрограмм, пока вся задача не окажется реализованной.
Событийно-ориентированное программирование
С активным распространением системы Windows и появлением визуальных RAD-сред широкую популярность приобрел событийный подход к созданию программ – событийно-ориентированное программирование.
Идеология системы Windows основана на событиях. Структура программы, созданной с помощью событийного программирования следующая.
Главная часть представляет собой один бесконечный цикл, который опрашивает Windows, следя за тем, не появилось ли новое сообщение. При его обнаружении вызывается подпрограмма, ответственная за обработку соответствующего события.
События могут быть пользовательскими (возникающие в результате действий пользователей), системными (в ОС – сообщения от таймера) и программными, генерируемыми самой программой (например, обнаружена ошибка и ее надо обработать).