- •Раздел 9. Алгоритмизация и программирование
- •9.1. Алгоритмизация
- •9.1.1. Понятие алгоритма. Формы представления алгоритмов
- •9.1.2. Визуализация алгоритмов
- •9.1.3. Алгоритмы линейной структуры
- •9.1.4. Алгоритмы разветвленной структуры
- •9.1.5. Алгоритмы циклической структуры
- •9.1.6. Алгоритмы обработки одномерных массивов
- •9.1.7. Алгоритмы обработки двумерных массивов
Раздел 9. Алгоритмизация и программирование
9.1. Алгоритмизация
9.1.1. Понятие алгоритма. Формы представления алгоритмов
Алгоритм – это четкое описание последовательности действий, которые необходимо выполнить при решении задачи. Разработка алгоритма решения задачи – это разбиение задачи на последовательно выполняемые этапы.
Разработанный алгоритм можно записать несколькими способами:
- на естественном языке;
- в виде блок схемы.
Изображение на естественном языке. Словесно-формульное описание алгоритмов, т.е. с помощью слов и формул. Данное описание можно использовать перед созданием алгоритмов в виде блок-схемы, в случае сложного алгоритма.
Изображение в виде блок схемы. Блок-схемой называется графическое изображение алгоритма, когда отдельные его этапы создания изображаются при помощи различных геометрических символов, а связи между этапами его создания указываются с помощью стрелок, соединяющие эти символы. Символы сопровождаются надписями.
9.1.2. Визуализация алгоритмов
В схемах алгоритмов и программ применяются следующие условные графические обозначения, согласно ГОСТ 19.003-80 «Единая система программной документации. Схемы алгоритмов и программ. Обозначение условные графические (таблица № 9.1.).
Таблица № 9.1. Обозначения условные графические
Наименование |
Обозначение |
Функция |
1. Процесс |
|
Выполнение операций или группы операций, в результате, которых изменяется значение, форма представления или расположение данных |
2. Решение |
Выбор направления выполнения алгоритма или программы в зависимости от некоторых переменных условий | |
3. Предопределен-ный процесс |
Использование ранее созданных и отдельно описанных алгоритмов или программ | |
4. Модификация |
Выполнение операций, меняющих команды или группу команд, изменяющих программу | |
5. Ввод - вывод |
Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод) | |
6. Пуск-останов |
Начало, конец, прерывание процесса обработки данных или выполнения программы | |
7. Документ |
Ввод-вывод данных, носителем которых служит бумага |
9.1.3. Алгоритмы линейной структуры
Линейный алгоритм – это такой алгоритм, в котором все операции выполняются последовательно одна за другой (рис. 9.1).
пуск
останов
Рис. 9.1. Блок-схема алгоритма линейной структуры.
Пример 5.1. Дано: a, b, c - длины трех сторон треугольника.
Найти: S – площадь треугольника, Р – периметр треугольника.
Площадь треугольника равна , гдеr – полупериметр треугольника.
Блок-схема алгоритма решения задачи (рис.9.2.)
пуск
a,b,c
r=(a+b+c)/2
P=a+b+c
S=
S,P
останов
Рис. 9.2. Блок-схема алгоритмы нахождения площади треугольника и периметр
Пример 9.2.
Дано: a, b – длины двух катетов в прямоугольном треугольнике.
Найти: с – длину гипотенузы, S – площадь треугольника
Блок-схема алгоритма решения задачи (рис.9.3.).
пуск
a,b
С=
S=ab/2
S,c
останов
Рис. 9.3. Алгоритм нахождения гипотенузы и площади треугольника
Отладка алгоритмов линейной структуры
Алгоритм можно использовать только в том случае, если он верен. На практике практически всегда созданный алгоритм имеет ошибки, поэтому он требует «отладки» - исправлений.
Отладкой алгоритма называется процесс выявления и исправления ошибок в алгоритме. Для этого необходимо найти какой-то другой способ решения задачи, при котором в обеих случаях результат должен быть одинаков. Чаще всего это делается «вручную», т.е. расчет проводят не только согласно созданного алгоритма, но и с помощью подручных средств, например калькулятора.
В нашем случае, по составленному алгоритму, с помощью калькулятора, при одних и тех же исходных данных, находим площадь треугольника и периметр (рис. 9.2) и гипотенузу и площадь треугольника (рис. 9.3.).
Операции, совершаемые в алгоритме, должны совпадать с операциями в языке программирования. Последовательность операций должна соответствовать приоритетам их выполнения, функции, типы данных, обозначения.
Отладка алгоритмов линейной структуры совпадает с методами отладки, указанные выше.