- •Понятие алгоритма и его свойства
- •Детерминированность. Процесс применения правил к исходным данным (путь решения задачи) определен однозначно или по другому - каждый шаг однозначно определяется состоянием системы
- •Формальность - инструкции алгоритма могут выполняться формально (бездумно)
- •Определение алгоритма на основе рекурсивных функций
- •Определение алгоритма на основе абстрактных автоматов (машины Тьюринга)
- •Правила выполнения соединений
- •Линейный алгоритм
- •Разветвляющийся алгоритм
- •Циклический алгоритм
- •Гост 19.701-90;
- •Объекты алгоритма
- •Разработать алгоритм задачи: «ввести два числа, найти их среднее арифметическое, выдать результат» Разработать алгоритм задачи: «ввести два числа, найти среднее геометрическое, выдать результат»
- •Вставить пропущенный текст в программу определения количества нечетных чисел в последовательности, вводимой с клавиатуры до тех пор, пока не будет введена единица.
- •Ввести X
- •Конец пока
Правила выполнения соединений
1. Потоки данных или потоки управления в схемах показываются линиями. Направление потока слева направо и сверху вниз считается стандартным. В случаях, когда внести большую ясность в схеме (например, при соединениях), на линии используются стрелки. Если поток имеет направление, отличное от стандартного, стрелки должны указывать это направление.
2. В схемах следует избегать пересечения линий. Пересекающиеся линии не имеют логической связи между собой, поэтому изменения направления в точках пересечения не допускаются.
П ример.
3 . Две или более входящие линии могут объединяться в одну исходящую линию. Если две или более линии объединяются в одну линию, место объединения должно быть смещено.
4. Линии в схемах должны подходить к символу либо слева, либо сверху, а исходить либо справа, либо снизу. Линии должны быть направлены к центру символа.
5. При необходимости линии в схемах следует разрывать для избежания излишних пересечений или слишком длинных линий, а также, если схема состоит из нескольких страниц. Соединитель в начале разрыва называется внешним соединителем, а соединитель в конце разрыва – внутренним соединителем.
6. Ссылки к страницам могут быть приведены совместно с символом комментария для их соединителей.
Пример.
Внешний соединитель Внутренний соединитель
Блок «прерывание» имеет одну линию.
Основная часть блоков имеет две линии, определяющие вход и выход.
Блок модификации имеет четыре линии
Псевдокоды – (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.) - это упрощенный язык программирования.
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. Он занимает промежуточное место между естественным и формальным языками.
С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.
В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.
Псевдокоды позволяют понимать друг друга двум различным категориям специалистов: постановщикам (разработчикам алгоритмов) и программистам, которые переводят алгоритмы, разработанные постановщиками, в программы.
Запись алгоритма псевдокодами гарантирует его реализацию в виде программы.
К псевдокодам можно отнести алгоритмический язык в русской нотации, который изучается в школьных курсах предмета "Основы информатики "При структурно-стилизованном способе задания алгоритмов используется набор типовых конструкций, которые представляют собой определенные предписания.
Например алгоритм вычисления корней квадратного уравнения, записанный на псевдокоде:
алг Корни квадратного уравнения (вещ A, вещ B, вещ C)
арг (A, B, C)
рез X1, X2
нач вещ D D:= BB - 4AC
если D>0 то X1:=(-B+sqrt(D))
X2:=(-B - sqrt(D))
все
кон
Пример показывает, что структурно-стилизованный способ весьма близок к словесно-формульному способу описания.
Базовые алгоритмы
Практически любой сложный алгоритм можно представить собой комбинацией трех типов базовых структур: линейного, разветвляющегося и циклического.
Если объем текста, помещаемого внутри символа, превышает его размеры, следует использовать символ комментария.
Если использование символов комментария может запутать или разрушить ход схемы, следует поместить текст комментария на отдельном листе и давать перекрестную ссылку на символ.