Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Программирование C++ 2014n.docx
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
887 Кб
Скачать
☆

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

  1. Словесно-формульный. Описание алгоритма с помощью слов и формул на естественном языке.

Словесный способ не имеет широкого распространения по следующим причинам:

  • такие описания строго не формализуемы;

  • страдают многословностью записей;

  • допускают неоднозначность толкования отдельных предписаний. «Он встретил ее на поле с цветами».

Пример. Составить алгоритм начисления зарплаты согласно следующему правилу: если стаж работы сотрудника менее 5 лет, то зарплата 130 руб., при стаже работы от 5 до 15 лет – 180 руб., при стаже свыше 15 лет зарплата повышается с каждым годом на 10 руб.

Словесно-формульное описание алгоритма решения задачи:

1. Ввести ST, перейти к п. 2.

2. Если ST<5, то ZP:.=l30, перейти к п. 4, иначе — перейти к п. 3.

3. Если ST<15, то ZP:=180, перейти к п.4, иначе ZP:=180+(ST-15)10, перейти к п. 4.

4. Вывести (отпечатать) значение ZP, перейти к п. 5.

5. Вычисления прекратить.

  1. Табличный. Алгоритм представляется в форме таблицы и расчётных формул (физика, химия и т. д.).

  2. Структурограмма

  1. Синтаксическая диаграмма (формулы Бэкуса-Наура)

  1. Псевдокоды. Полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.

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

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

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

Примером псевдокода является школьный алгоритмический язык.

Алгоритмический язык – это средство для записи алгоритмов в аналитическом виде, промежуточном между записью алгоритма на естественном (чело­веческом) языке и записью на языке ЭВМ (языке программирования).

Запись алгоритма решения задачи примера 1 на алгоритмическом языке:

алг зарплата(цел. ST, вещ ZP)

арг ST

рез ZP

нач

если ST<5

то ZP:=150

иначе

если ST<=15

то ZP:=180

иначе ZP:=180+(ST-15)*10

все

все

кон

  1. Программный. Описание алгоритма с помощью языков программирования.

  2. Графический. Алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. Такое графическое представление называется схемой алгоритма или блок-схемой.

Блок-схема алгоритма представляет собой систему связанных геометрических фигур.

Правила построения блок-схем:

  1. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Для наглядности операции разного вида изображаются в схеме различными геометрическими фигурами.

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

  3. В схеме блоки стараются размещать сверху вниз, в порядке их выполнения.

  4. Все повороты соединительных линий выполняются под углом 90 градусов.

В таблице приведены наиболее часто употребляемые символы.  

Название

Обозначение и пример заполнения

Выполняемая функция (пояснение)

Начало/конец (вход/выход)

Начало или конец программы, вход или выход в подпрограмму

Блоки ввода/вывода

Ввод-вывод данных

Вывод данных на печатающее устройство

Блок вычислений

Арифметический блок определяет вычислительное действие или последовательность действий

Логический блок

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

Предопределенный процесс

Вычисления по стандартной или пользовательской подпрограмме

Блок модификации

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

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

Межстраничный соединитель

Указание связи между частями схемы, расположенной на разных страницах

Общие правила построения схемы алгоритма задачи:

1. Выявить исходные данные, результаты, назначить им имена.

2. Выбрать метод (порядок) решения задачи.

3. Разбить метод решения задачи на этапы (с учетом возможностей ЭВМ).

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

5. В полученной схеме при любом варианте вычислений:

а) предусмотреть выдачу результатов или сообщений об их отсутствии;

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

Эти правила и есть «Основные принципы алгоритмизации». Будем считать, что знание и применение настоящих «принципов» обязательно при составлении алгоритма любой задачи.

Типы алгоритмов:

  • структурированные;

  • неструктурированные (т.е. с нарушением структуры – с операторами безусловного перехода);

  • вспомогательные (используемые в составе других алгоритмов).

Виды алгоритмов:

  • линейный алгоритм;

  • алгоритм ветвления;

  • циклический алгоритм;

  • алгоритм с подпрограммами;

  • смешанные (т.е. содержащие и циклы, и ветвление, и функции).

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