Способы описания алгоритмов
В настоящее время используются следующие способы описания алгоритмов:
- словесно-формульное описание алгоритма;
- псевдокод;
- табличный способ;
- языки программирования (программа);
- графический способ (блок-схема).
Словесно-формульное описание алгоритма представляет структуру алгоритма и содержание выполняемых действий средствами естественного языка, представлено ниже в тестовых заданиях с решениями 9.1 ÷ 9.6. Достоинства этого способа: общедоступность, возможность описывать алгоритм с любой степенью детализации. Недостаток этого способа – многословность, низкая наглядность, громоздкость, возможна неоднозначность толкования.
Тестовое задание 9.1.
Чему равны значения переменных а и b после выполнения следующего фрагмента алгоритма:
1) а = 3;
2) b = 7;
3) b = a;
4) a = b;
5) b = b*2
Ответы:
1) a = 3; b = 6
2) a = 14; b = 7
3) a = 7; b = 14
4) a = 6; b = 3
5) a = 3; b = 14
Решение.
Выполняем алгоритм последовательно по шагам:
1) а = 3;
2) b = 7;
3) b = a; знак равенства «=» в этом случае трактуется как знак присваивания «=:», следовательно, переменной b присваивается значение переменной а=3; т.е. переменная b примет значение b=3;
4) a=b; переменной а присваивается значение переменной b=3; следовательно, переменная а примет значение а =3;
5) b=b*2; переменной b присваивается значение b*2 (к этому моментупеременная b имеет значение b=3); следовательно, переменная b примет значение b= b·2=3·2=6.
Таким образом, в результате выполнения алгоритма переменные а и b примут значения a = 3 b = 6.
Тестовое задание 9.2.
Какие результаты будут получены в результате выполнения фрагмента алгоритма в каждом из следующих случаев: 1) x = 3; 2) x = 1 (от y решение не зависит):
1) ввести координаты точки x и y;
2) если x ≥ 2, то вывод «точка находится в области В» иначе вывод «точка находится в области А»?
Ответы:
1-й случай:
1) точка находится в области В;
2) точка находится в области А;
2-й случай:
1) точка находится в области А
2) точка находится в области В
Решение.
Выполняем алгоритм последовательно по шагам:
1-й случай − x = 3:
1) вводим координаты точки x = 3;
2) x ≥ 2? Подставляя значение x = 3, имеем 3 ≥ 2? Ответ: да, следовательно, выполняется вывод «точка находится в области В»;
2-й случай − x = 1:
1) вводим координаты точки x = 1;
2) x ≥ 2? Подставляя значение x = 1, имеем 1 ≥ 2? Ответ: нет, следовательно, выполняется вывод «точка находится в области А»;
Можно проиллюстрировать условие задачи рисунком 9.1.
Рис. 9.1. Рисунок, иллюстрирующий условие задания 9.2
Замечание. Тот же алгоритм можно записать следующим образом:
1) Ввести координаты точки x и y;
2) eсли x ≥ 2, то вывод «точка находится в области В», перейти к 4);
3) вывод «точка находится в области А».
4) вычисления прекратить.
В этом варианте, если условие x ≥ 2 не выполняется, то выполнение алгоритма переходит к следующему шагу, т.е. к 3-му шагу.
Тестовое задание 9.3.
Какие результаты будут получены в результате выполнения следующего фрагмента алгоритма?
1) i = 1;
2) вывод i;
3) i = i + 1;
4) если i ≤ 4, то перейти к 2)
5) прекратить вычисления.
Ответы:
1) 1 2 3 4;
2) 1 2 3 4 5;
3) 2 3 4 5;
4) 1 3 5 7;
5)
Тестовое задание 9.4.
Сколько раз при выполнении предыдущего задания будет повторена последовательность шагов 2), 3) и 4)?
1) 4;
2) 2;
3) 3;
4) 1.
Решение тестовых заданий 9.3 и 9.4.
Выполняем алгоритм последовательно по шагам:
1) i = 1; | |
2) вывод i, так как i=1, то выводится 1; 3) i = i+1, предыдущее значение i=1, следовательно, новое значение i=i+1=1+1=2; 4) i ≤ 4? Подставляя новое значение i=2, имеем 2<4. Ответ: да. Следовательно, после 4-го шага выполняем 2-й шаг; | |
2) вывод i, так как новое значение i=2, то выводится 2; 3) i=i+1, предыдущее значение i=2, следовательно, новое значение i=i+1=2+1=3; 4) i ≤ 4? Подставляя новое значение i=3, имеем 3<4, Ответ: да. Следовательно, после 4-го шага выполняем 2-й шаг; | |
2) вывод i, так как новое значение i=3, товыводится 3; 3) i=i+1, предыдущее значение i=3, следовательно, новое значение i=i+1=3+1=4; 4) i ≤ 4? Подставляя новое значение i=4, имеем 4 ≤ 4. Ответ: да. Так как 4 = 4, следовательно, после 4-го шага выполняем 2-й шаг; | |
2) вывод i, так как новое значение i=4, то выводится 4; 3) i=i+1, предыдущее значение i=4, следовательно, новое значение i=i+1=4+1=5; 4) i ≤ 5? Подставляя новое значение i=5, имеем 5 ≤ 4. Ответ: нет, так как 5>4, следовательно, после 4-го шага выполняем 5-й шаг; | |
5) прекращаем вычисления. |
При этом последовательность шагов 2), 3) и 4) будет повторена 4 раза.
Тестовое задание 9.5.
Какие результаты будут получены в результате выполнения следующего фрагмента алгоритма:
1) а = 15;
2) b = 4;
3) если а < b, то перейти к 6);
4) а = а-b;
5) перейти к 3);
6) вывод а.
Будет вывод числа:
1) 3;
2) 11;
3) 7;
4) -2.
Тестовое задание 9.6.
Сколько раз при выполнении предыдущего задания будет повторена последовательность шагов 3), 4) и 5)?
1) 3;
2) 2;
3) 1;
4) 4.
Решение тестовых заданий 9.5 и 9.6.
Выполняем алгоритм последовательно по шагам:
1) а = 15; 2) b = 4; | |
3) а <b? Подставляя значения a=15 и b=4, имеем 15<4? Ответ: нет. Следовательно, после 3-го шага выполняем 4-й шаг; 4) а = а-b. Подставляя значения a и b, имеем a=15-4=11; 5) перейти к 3), следовательно, после 5-го шага выполняем шаг 3); | |
3) а<b? Подставляя значения a и b, имеем 11<4? Ответ: нет. Следовательно, после 3-го шага выполняем 4-й шаг; 4) а = а-b. Подставляя значения a и b, имеем a=11-4=7; 5) перейти к 3), следовательно, после 5-го шага выполняем шаг 3); | |
3) а<b? Подставляя значения a и b, имеем 7<4? Ответ: нет. Следовательно, после 3-го шага выполняем 4-й шаг; 4) а = а-b. Подставляя значения a и b, имеем a=7-4=3; 5) перейти к 3), следовательно, после 5-го шага выполняем шаг 3); | |
3) а<b? Подставляя значения a и b, имеем 3<4? Ответ: да. Следовательно, после 3-го шага выполняем 6-й шаг; | |
6) вывод a; а на данном шаге имеет значение 3, следовательно, будет выведено число 3. |
При этом последовательность шагов 3), 4) и 5) будет повторена 3 раза.
Псевдокод – описание структуры алгоритма на естественном, частично формализованном языке, позволяющее выявить основные этапы решения задачи перед точной его записью на языке программирования. В псевдокоде используются некоторые формальные конструкции и общепринятая математическая символика. Строгих синтаксических правил для записи псевдокода не существует. Это облегчает запись алгоритма при проектировании и позволяет описать алгоритм, используя любой набор команд. Однако в псевдокоде обычно используются некоторые конструкции, присущие формальным языкам, что облегчает переход от псевдокода к записи алгоритма на языке программирования. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором используемых слов и конструкций.
Графический способ представления алгоритмов (блок-схема) – имеет ряд преимуществ благодаря визуальности и явному отображению процесса решения задачи. Алгоритмы, представленные графическими средствами, получили название визуальные алгоритмы.
При проектировании визуальных алгоритмов используют специальные графические символы.Результатом алгоритмизации решения задачи является блок-схема алгоритма, состоящая из некоторой последовательности графических блоков, связанных по управлению линиями (направлениями потока) со стрелками. В блоках записывается последовательность действий. Блоки могут нумероваться. Порядковые номера проставляются слева в верхней части символов. В пределах одной схемы рекомендуется изображать блоки одинаковых размеров. Для визуального представления алгоритмов обычно используют символы в соответствии с ГОСТ 19.701–90 «Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения» [1]. Наиболее часто употребляемые символы представлены в таблице 14.
Таблица 14