Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika.pdf
Скачиваний:
240
Добавлен:
26.03.2015
Размер:
6.48 Mб
Скачать

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

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

6.2. Принципы разработки алгоритмов и программ для решения прикладных задач

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

§присваивания;

§простейших арифметических операций;

§операций сравнения чисел;

§операторов безусловного и условного перехода;

§операторов вызова подпрограмм.

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

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

§программы было трудно читать даже опытным программистам;

§команды безусловного и условного перехода приводили к большой и запутан- ной структуре программы;

§уловки для повышения эффективности программы приводили к ее ненадежно- сти, трудностям в отладке и модификации.

Программировать процедурным методом было трудно и дорого.

6.2.2.Структурное программирование. В начале 1970-х гг. появился новый подход

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

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

241

§создавать программу несколькими программистами;

§упростить проектирование и последующую модификацию программы;

§упростить отладку программы;

§использовать готовые библиотеки программ.

Последняя компонента структурного программирования нисходящее проектирова- ние программ, основанное на идее уровней абстракции. Эти уровни становятся уровнями модулей в программе. На этапе проектирования строится схема иерархии, изображающая эти уровни. Такая иерархия позволяет разбивать общую программу на ряд подзадач, т. е. детали- зировать общую программу. На следующем этапе эти подзадачи в свою очередь разбиваются на еще более мелкие подчинённые подзадачи и т. д. до тех пор, пока не дойдут до уровня не- больших подзадач, требующих для решения небольших модулей объёмом в 3-5 строк. Такой

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

6.2.3. Функциональное программирование. Функциональное или аппликативное

программирование, являясь одним из двух видов декларативного подхода, не рассматривает память как хранилище знаний. В нем отсутствует понятие оператора присваивания, основной конструкцией является выражение. Язык программирования, построенный на функциональ- ных принципах, содержит следующие элементы:

§классы констант;

§набор базовых функций;

§правила построения новых функций из базовых;

§правила формирования выражений на основе вызова функций.

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

Первым языком, реализующим принципы функционального программирования, стал

Лисп (LISP – LISt Processing – обработка списков).

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

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

Логические программы имеют небольшое быстродействие, т. к. вычисление произво- дится методом проб и ошибок. Первым языком логического программирования является Пролог (PROLOG – PROgramming in LOGic – программирование в терминах логики).

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

242

Соседние файлы в предмете Информатика