Алгоритмы обработки данных
Коднянко В.А.
Лабораторный
практикум

Тема № 1
Линейный
и разветвляющийся алгоритмы
Алгоритм – это инструкция по переработке исходных данных в результат за
конечное число шагов (действий).
Наряду с
понятием алгоритма используют термин алгоритмизация, под которой
понимают совокупность приемов и способов составления алгоритмов решения
алгоритмических задач.
В рамках
данной темы ниже рассмотрено решение двух алгоритмических задач и их
представление с использованием линейного алгоритма и
разветвляющегося алгоритма. Оба алгоритма будут представлены при помощи:
а) словесного пошагового описания и б) при помощи блок-схем.
Каждый из этих способов представления алгоритмов имеет и достоинства
и недостатки. Словесный способ отличается многословностью и отсутствием
наглядности, но дает возможность более понятно описать отдельные действия.
Главное достоинство графического способа - его наглядность, иногда при
необходимости отдельные операции можно комментировать в словесной форме.
Для
разработки блок-схем линейных и разветвляющихся алгоритмов нам потребуются
элементы (блоки), представленные в таблице 1.
Таблица 1
Название |
Элемент (блок) |
Комментарий |
Терминатор |
 |
Отображает вход во внешнюю среду и выход из внешней среды
(начало или конец схемы программы, алгоритма) |
Процесс |
 |
Вычислительное действие или
последовательность вычислительных действий |
Решение |
 |
Проверка условия |
Документ |
 |
Отображает
данные, представленные на носителе в удобочитаемой форме.
Будет использоваться нами как символ вывода данных |
Карта |
 |
Отображает данные, представленные на носителе в виде
карты (перфокарты, магнитные карты и др.).
Будет использоваться нами как символ ввода данных |
Данные |
 |
Может использоваться для ввода/вывода данных как
альтернатива двум предыдущим элементам |
Комментарий |
 |
Используют для добавления комментариев
или пояснительных записей |
Линии |
 |
Линии горизонтальных и вертикальных потоков,
предназначенные для связей между элементами блок-схемы |
Слияние |
 |
Слияние линий потоков |
|
Блок-схемы
будем создавать при помощи программы Microsoft Visio.
Студент должен создать при помощи данной программы блок-схемы этих двух
алгоритмов.
1. Линейный алгоритм
Рассмотрим задачу.
Вычислить периметр Р и площадь S квадрата со стороной длины
A.
1.1. Пошаговый словесный алгоритм
Шаг 1.
Начало.
Шаг 2. Присвоить переменной А значение,
равное длине стороны квадрата.
Шаг 3. Вычислить периметр
Р и площадь S квадрата по формулам
P = 4*A, S = A*A.
Шаг 4. Вывести значения
переменных А, Р, S.
Шаг 5. Конец.
1.2. Блок-схема алгоритма
Блок-схема
алгоритма представлена на рис. 1.
Рис. 1. Линейный алгоритм решения
задачи
Описание алгоритма.
Блок-схема
представленного на рис. 1 алгоритма состоит из 5-ти блоков. После запуска
алгоритма (блок 1) в блоке 2 в переменную А необходимо ввести значение,
численно равное длине стороны квадрата. Далее с использованием этого
значения в блоке 3 по формулам производится вычисление периметра
P и площади S
квадрата. В блоке 4 выводятся исходные данные и результаты расчета. В блоке
5 алгоритм заканчивает работу.
Создание
блок-схемы алгоритма при помощи программы Microsoft
Visio.
Запустите программу Visio и выберите
категорию шаблонов "Блок-схема". Среди готовых шаблонов двойным
щелчком выберите шаблон "Простая блок-схема". Теперь программа готова
к работе. Вид ее окна показан на рис. 1.

Рис. 1. Окно программы
Visio
При создании
чертежа блок-схемы выберите слева в перечне нужную фигуру и перетащите ее в
правую часть окна с сеткой. Для ввода текста в фигуру дважды щелкните на
ней. При этом программа перейдет в режим редактирования текста внутри
фигуры. Введите или отредактируйте текст.
Для
соединения фигур линиями тока используйте инструмент "Соединительная
линия", который находится на панели инструментов в верхней части окна.
Если необходимо выбрать направление соединительной линии, то используйте
список "Концы линий". Для отмены режима соединения щелкните на кнопке
"Указатель".
Сохраняйте
чертеж в формате Visio .vsd. Например, для
данного алгоритма можно использовать имя LinAlg.vsd.
Для того, чтобы вставить готовую блок-схему в документ
Microsoft Word сначала следует с помощью
команды Сохранить как... сохранить схему в
виде рисунка. Желательные форматы рисунка
- растровые форматы .png,
.gif, .jpg или векторные форматы .wmf,
.emf. Теперь
рисунок можно вставить а документ Word.
Для вставки рисунка в документ Word
векторные форматы предпочтительны, ибо они не подвержены пикселизации.
В других применениях предпочтительными могут оказаться растровые
форматы.
2. Разветвляющийся алгоритм
Задача.
Составить алгоритм вычисления значения функции

2.1. Пошаговый словесный алгоритм
Шаг 1.
Начало.
Шаг 2. Присвоить переменным x, y
числовые значения.
Шаг 3. Вычислить
z = x + y2.
Шаг 4. Если z = 0,
то перейти к шагу 8.
Шаг 5. Вычислить
f = sin(x+y)/z.
Шаг 6. Вывести x, y, f.
Шаг 7. Перейти к
шагу 9.
Шаг 8. Вывести сообщение "Вычисления
невозможны (деление на нуль)".
Шаг 9. Конец.
2.2. Блок-схема алгоритма
Блок-схема
алгоритма представлена на рис. 2.
Рис. 2. Блок-схема разветвляющегося
алгоритма
Описание алгоритма.
Блок-схема
представленного на рис. 2 алгоритма состоит из 8-ми блоков. После запуска
алгоритма (блок 1) в блоке 2 в переменные x,y
необходимо ввести значения аргументов функции f(x,y).
Далее в блоке 3 следует вычислить значение z
знаменателя функции. Поскольку вычисления
можно производить только при ненулевом знаменателе, то в блоке 4
производится проверка выполнения условия z = 0.
Далее происходит ветвление алгоритма по блоку 4. Если
указанное условие не выполнилось, то вычислять можно и по левой ветви в
блоке 5 вычисляется значение функции, затем в блоке 6 выводятся исходные
данные и результат - значение функции. В противном случае по правой ветви в
блоке 7 выводится информационное сообщение о невозможности вычислений. В
обоих случаях алгоритм заканчивает работу в блоке 8.
Создайте
блок-схему разветвляющегося
алгоритма, показанного на рис. 2, при помощи программы
Microsoft Visio.
3.
Индивидуальные задания
Откройте документ Word. Добавьте в
него разработанные Вами алгоритмы общей части данной работы.
Разработайте словесный и
графический алгоритмы по своему индивидуальному варианту вычисления значений
функций f и
g. Опишите
блок-схему своего алгоритма.
Варианты
индивидуальных заданий приведены в таблице 2.
Таблица 2
№1 |

|
№2 |

|
№3 |
 |
№4 |

|
№5 |

|
№6 |
Если z
> 5, то
вычислите значение функции
f (x,y) = x / (y+1), иначе вычислите
значение функции
f (x,y)
= у / (x+2). |
№7 |
Если x =
y, то вычислите значение
функции
f (x,y) = (x-y) / (x+y),
иначе вычислите значение функции
f (x,y) = (x+у)
/ (x-y). |
№8 |
Если точка
(x, y) находится в круге
радиуса 1 с центром в начале системы координат, то вычислите
значение функции
f (x,y) = x / (y2+1),
иначе, если точка находится на
окружности, ограничивающей круг, то вычислите значение функции
f (x,y) = у / (x-1),
если же точка находится вне круга, то вычислите значение функции
f (x,y) = у+x. |
№9 |

|
№10 |
 |
|