Методы разработки алгоритмов

Реферат

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

Принципы и методы разработки алгоритмов и программ

Операциональный подход

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

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

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

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

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

Операционный подход в программировании имеет недостатки:

  • запутанная структура программы;
  • непонятности, сложность в модификации, трудоемкость и высокая стоимость.

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

15 стр., 7246 слов

Конструктивно оперативная память ПК располагается на стандартных ...

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

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

Ветвление — это структура, обеспечивающая выбор между двумя альтернативами (эта структура называется еще развилка или ^ «ЕСЛИ — ТО — ИНАЧЕ »).

Цикл предусматривает повторное выполнение некоторого набора команд программы.

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

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

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

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

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

2. простота проектирования и последующей модификаций программы;

3. управляющие программы;

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

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

Новые методологии разработки программ

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

Само структурное программирование, наиболее отчетливо выраженное в языке Паскаль (Pascal), возникло в ходе развития процедурно-ориентированного подхода, заложенного в исторически первом из языков программирования — Фортране (Fortran).

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

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

6 стр., 2612 слов

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

... решение задачи Контрольное решение задачи и результат выполнения программы приведены на рис. 6. Рис. 6. Результат выполнения программы для одного из вариантов исходных данных ЗАКЛЮЧЕНИЕ В ходе выполнения курсовой работе ...

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

Декларативный подход в разработке компьютерных программ появился в начале 1970-х гг. Он не получил столь широкого применения как процедурный, поскольку был направлен на относительно узкий круг задач искусственного интеллекта. При его применении программист описывает свойства исходных данных, их взаимосвязи, свойства, которыми должен обладать результат, а не алгоритм получения результата. Разумеется, для получения результата этот алгоритм все равно нужен, но он должен порождаться автоматически той системой, которая поддерживает декларативно-ориентированный язык программирования. При логическом варианте такого подхода — прежде всего это относится к языку Пролог (Prolog) — задача описывается совокупностью фактов и правил в некотором формальном логическом языке, при функциональном варианте — в виде функциональных соотношений между фактами, например язык Лисп (Lisp).

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

Методы разработки алгоритмов

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

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

2. Метод подъема. Его суть заключается в следующей процедуре. Алгоритм начинается с принятия начального предположения или построения начального решения задачи. Затем начинается (насколько возможно) быстрое движение «вверх» от начального условия по направлению к лучшим решениям. Когда алгоритм достигает точки, из которой больше не возможно двигаться «наверх», он останавливается.

3. Программирование с отходом назад. Используется совместно с методом перебора, для избегания перебора всех возможных вариантов.

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

Жизненный цикл программного обеспечения

алгоритм программа компьютерный обеспечение

Жизненный цикл программного обеспечения включает в себя шесть этапов:

  • анализ требований,
  • определение спецификаций,
  • проектирование,
  • кодирование,
  • тестирование,
  • сопровождение.

— Анализ требований. При разработке программного обеспечения он исключительно важен. Ошибки, допущенные на этом этапе, даже при условии безупречного выполнения последующих этапов могут привести к тому, что разработанный программный продукт не будет соответствовать требованиям практики, сферы его применения. Для создания конкурентоспособных продуктов в ходе выполнения этого этапа должны быть получены четкие ответы на следующие вопросы:

4 стр., 1748 слов

CASE-технологии разработки программных систем

... CASE-технологий: преимущества и недостатки Различные статистические обзоры свидетельствуют сегодня об эффективности применения CASE-средств в процессе разработки программных систем. ... и содержимое документации; автоматическая генерация исходных кодов программ и т.д. - все это обеспечивает повышение ... о всех предполагаемых и выполненных изменениях. Для решения задач КУ применяются методы и средства ...

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

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

Проектирование.

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

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

Тестирование. На этом этапе производится всесторонняя проверка программ. Тестирование более подробно рассмотрено ниже.

Сопровождение. Это этап эксплуатации системы. Каким бы изощренным ни было тестирование программ, к сожалению, в больших программных комплексах чрезвычайно тяжело устранить абсолютно нее ошибки. Устранение обнаруженных при эксплуатации ошибок — первейшая задача этого этапа. Однако это далеко не все, что выполняется при сопровождении. Выполняемый в ходе сопровождения анализ опыта эксплуатации программы позволяет обнаруживать «узкие места» или неудачные проектные решения в тех или иных частях программного комплекса. В результате такого анализа может быть принято решение о проведении работ по совершенствованию разработанной системы. Кроме описанного выше сопровождение может включать в себя проведение консультаций, обучение пользователей системы, оперативное снабжение пользователей информацией о новых версиях системы и т.п. Качественное проведение этапа сопровождения в большой степени определяет коммерческий успех программного продукта.

Список литературы

[Электронный ресурс]//URL: https://inzhpro.ru/referat/metodyi-razrabotki-strukturyi-programmyi/

http://gendocs.ru