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

Лабораторный практикум


Тема № 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 / (y
2+1), иначе, если точка находится на окружности, ограничивающей круг, то вычислите значение функции

f
(x,y) =
у / (x-1), если же точка находится вне круга, то вычислите значение функции
f
(x,y) =
у+x.
№9

№10