Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

В.3. Базовые фрагменты схем алгоритмов

 

В теоретическом плане [3] СА – это ориентированный граф (совокуп-ность вершин и связей между ними), вершины которого могут быть одного из трёх типов (рис. В.1):

· функциональная (используется для представления функции f: X→Y, т. е. арифметического выражения);

· предикатная (используется для представления предиката p: X→{FALSE (ложь), TRUE (истина)}, т. е. логического выражения, опреде-ляющего управление по одной из возможных ветвей);

· объединяющая (реализует передачу управления от одной из двух входных ветвей к одной выходной ветви).

Отметим, что в практике объединяющие вершины не выделяются (они ясны по умолчанию).

Из данных вершин графа составлены (рис. В.2) простейшие струк-туры управления вычислительным процессом (базовые фрагменты СА). Здесь В интерпретируется как булево выражение, а S1 и S2 – как прог-раммные операторы (процедуры). Схема на рис. В.2,а называется компо-зицией (следованием) и записывается в виде S1; S2. Схема на рис. В.2,б называется альтернативой (выбором) и записывается в виде if B then S1 else S2; в частном случае S2=Æ получается часто используемый сокращён-ный оператор if B then S1. Схема на рис. В.2,в[3] называется итерацией (циклом или повторением); получили распространение 3 частных случая:

1) S2 = Æ. Этому случаю соответствует оператор while B do S1.

2) S1 = Æ. Этому случаю соответствует оператор do S2 while B или, в эквивалентной форме, оператор repeat S2 until .

3)

 
 

S1 = S2 = Æ. Схема вырождается в ждущую вершину (ждущие вершины используются в СА процессов, управляющих событиями).

Теоретически было показано [3], что любая СА может быть сос-тавлена путём суперпозиции базовых фрагментов СА, изображённых на рис. В.2 (теорема Дейкстра). Поскольку каждый из базовых фрагментов имеет один вход и один выход, то у любой СА, составленной из этих фрагментов, также будет один вход и один выход. СА, в которой используются только базовые фрагменты, называется структурированной. Этот же принцип (один вход и один выход) лежит в основе структурного программирования.

 
 

Итак, совокупность трёх структур управления процессом вычислений достаточна для построения любой СА. Но СА, полученная путём суперпо-зиции этих структур, не обязательно будет простейшей или наиболее естественной. Поэтому в практике допускается некоторое расширение базового набора структур управления. Например, в некоторых случаях удобнее использовать оператор множественного выбора (типа caseof).

Допускается также преждевременный выход из цикла – операторы while…do и repeat…until, аккуратное применение оператора goto и др. Во всех этих случаях выдерживается основной принцип управления про-цессом вычислений – структура СА должна иметь один вход и один выход.

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

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

В гл. 1 рассматриваются соответствующие примеры.

Контрольные вопросы

1. В каких случаях вычислительный процесс не является алгоритмом?

2. В чём суть проблемы алгоритмической неразрешимости? Почему проблема алгоритмической неразрешимости более трудная, чем проблема алгоритмической разрешимости?

3 Из чего следует необходимость уточнения понятия алгоритма? Каковы подходы к его уточнению?

4. Какие виды обработки данных знаете Вы?

5. Каковы формы представления алгоритмов? Что у них общего и чем они отличаются?

6. Какие основные блоки, используемые в СА, Вы знаете?

7. Какова последовательность действий при решении задачи на ЭВМ?

8. Что такое структуры управления вычислительным процессом? Как они связаны с базовыми фрагментами СА?

9. Какие виды вычислительных процессов и алгоритмов Вы знаете?

10. Чем отличается тестирование программы от её отладки?

11. Как Вы понимаете неоднозначность СА? Что означает термин ²интерпретация² СА?

 


[1] Диофантово уравнение имеет вид xn + yn = zn, где n – целое. Требуется найти целочисленное решение для произвольного n. Найти такое решение в общем виде не удаётся.

 

[2] Существует теорема о том, что для раскраски любого планарного графа необходимо не более чем 4 краски. Однако доказать эту теорему в общем виде не удаётся.

[3] Строго говоря, схема рис. В.2,в не является структурой управления, так как использует оператор goto.

<== предыдущая лекция | следующая лекция ==>
В.2. Виды вычислений и алгоритмов | Автоматизированное рабочее место пользователя
Поделиться с друзьями:


Дата добавления: 2014-01-14; Просмотров: 982; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.