Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы 1-3.doc
Скачиваний:
3
Добавлен:
19.09.2019
Размер:
339.46 Кб
Скачать

Разрабатываемый алгоритм должен обладать свойствами:

- массовостью, т.е. решать целый класс задач,

- однозначностью, т.е. при одинаковых исходных данных давать один результат,

- конечностью, т.е. получать результат за конечное число шагов.

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

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

Алгоритм линейной структуры – все действия выполняются последовательно, друг за другом.

Алгоритм разветвляющейся структуры – выбор действия в зависимости от выполнения некоторого логического условия.

Алгоритм циклической структуры – многократное повторение одних и тех же действий.

Способы записи алгоритма.

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

Начало или конец алгоритма.

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

Проверка условия и выбор направления выполнения алгоритма

Вычисление по подпрограмме.

Действие (последовательность действий)

Пример 1. Постановка задачи. Определить площадь треугольника по формуле Герона.

Математическая формулировка задачи.

Исходные данные – длины сторон треугольника a,b,c.

Промежуточные данные – p=(a+b+c)/2 полупериметр треугольника.

Конечный результат:

Блок-схема алгоритма решения задачи.

1) 2)

Нет

(a+b)>c И (a+c)>b И (b+c)>a

Вычисление p

Да

Вычисление p

Вычисление s

Вычисление s

В первой схеме сначала вычисляется величина p, а потом величина s, при вычислении которой используется p. Это позволяет избежать повторных вычислений одной и той же величины и уменьшает время решения задачи. Изменение расположения блоков приведет к невозможности решения задачи.

Данный алгоритм не проверяет, являются ли вводимые числовые данные сторонами треугольника (как известно, каждая сторона треугольника должна быть меньше суммы двух других сторон). Если будут введены некорректные данные, например, a=5, b=1, c=3, то алгоритм может дать абсурдный результат. Поэтому корректность работы алгоритма зависит от пользователя, который должен сам проверить, соответствуют ли числа свойству треугольника).

Можно изменить алгоритм и ввести эту проверку в блок-схему, тогда зависимость от исходных данных пропадает.

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