Способы описания алгоритмов

 

В настоящее время используются следующие способы описания алгоритмов:

- словесно-формульное описание алгоритма;

- псевдокод;

- табличный способ;

- языки программирования (программа);

- графический способ (блок-схема).

Словесно-формульное описание алгоритма представляет структуру алгоритма и содержание выполняемых действий средствами естественного языка, представлено ниже в тестовых заданиях с решениями 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