Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
09-09-2013_11-37-28 / 3-Понятие алгоритма, способы записи алгоритмов.pps
Скачиваний:
35
Добавлен:
02.06.2015
Размер:
991.74 Кб
Скачать

Свойства алгоритмов

Перечень наиболее важных

свойств алгоритма:

1.Элементарность (понятность) шагов.

2.Дискретность.

3.Определенность (детерминированность).

4.Конечность (финитность).

5.Массовость.

Дискретность – следующее важное свойство.

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

Можно считать, что шаги выполняются мгновенно в моменты времени t0, t1, t2,..., а между этими моментами ничего не происходит, обрабатываемые данные не изменяются.

11

Свойства алгоритмов

Перечень наиболее важных

свойств алгоритма:

1.Элементарность (понятность) шагов.

2.Дискретность.

3.Определенность

(детерминированность).

4.Конечность (финитность).

5.Массовость.

12

Определенность (детерминированность) алгоритма – это свойство, которое означает,

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

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

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

При этом для одного и того же набора входных данных результат выполнения алгоритма всегда будет одним и тем же.

Свойства алгоритмов

Перечень наиболее важных

свойств алгоритма:

1.Элементарность (понятность) шагов.

2.Дискретность.

3.Определенность (детерминированность).

4.Конечность (финитность).

5.Массовость.

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

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

13

Свойства алгоритмов

Перечень наиболее важных

свойств алгоритма:

1.Элементарность (понятность) шагов.

2.Дискретность.

3.Определенность (детерминированность).

4.Конечность (финитность).

5.Массовость.

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

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

14

Пример 1 анализа свойств алгоритма

Исходные данные – положительное число N, определяющее количество элементов массива A и целочисленные элементы A[1], A[2], . . . , A[N] массива A; значения всех чисел находятся в пределах непосредственно представимых в вычислительной машине.

Кроме исходных данных вводятся целочисленные переменные Max,

Min, i.

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

15

Пример 1 анализа свойств алгоритма

Действия алгоритма состоят в выполнении следующих шагов:

1.Установить значения Max = A[1], Min = A[1], i = 2.

2.Пока i <= N повторять шаг 3.

3.Если Max < A[i], то положить Max = A[i]. Если Min > A[i], то положить Min = A[i]. Увеличить i на 1.

4.Вывести результаты Max и Min.

16

Пример 1 анализа свойств

Проверим наличие основных свойств: 1. Дискретность очевидна.

17

Пример 1 анализа свойств

Проверим наличие основных свойств:

2. Элементарность шагов.

Шаг 1 содержит три оператора присваивания значений.

Вшаге 2 – одно сравнение чисел.

Вшаге 3 – два сравнения чисел, два оператора присваивания значений (выполняется каждый раз только одно из них), одно увеличение значения на единицу.

Шаг 4 – вывод на экран или на печать данных ограниченного объема.

Эти шаги понятны, могут быть записаны с использованием не только языка высокого уровня, но и машинных команд

процессора с традиционной архитектурой фон Неймана.

18

Пример 1 анализа свойств

Эти шаги понятны, могут быть записаны с использованием не только языка высокого уровня, но и машинных команд процессора с

традиционной архитектурой фон Неймана:

 

 

program P;

 

 

 

MOV

AX, A ; MAX

 

 

 

 

 

 

MOV

DX, A ; MIN

const N = 10;

 

 

 

MOV

CX,10 ; N=10

 

 

 

MOV

BX, Offset A + 2

var A: array [1..N] of integer;

 

 

 

 

 

LB:

CMP

AX, [BX]

Max, Min, I: integer;

 

 

 

JLE CM

 

 

 

 

MOV

AX, [BX]

Begin {Ввод массива…}

 

 

 

 

 

CM:

CMP

DX, [BX]

Max = A[1]; Min = A[1],

 

 

 

JGENEXT

DX, [BX]

for I := 2 to N do

 

 

 

MOV

 

 

NEXT:

ADD

BX,2

If Max < A[I] then Max := A[I]

 

 

 

LOOP

LB

else If Min > A[I] then Min := A[I]

 

 

 

MOV

MAX, AX

 

 

 

MOV

MIN, AX

writeln(…)

 

 

 

 

 

 

A

DW 2,2,3,4,5,7,5,9,8,1

 

 

MAX

DW ?

 

19 end.

 

 

 

 

 

MIN

DW ?

 

 

 

Пример 1 анализа свойств

3.Определенность. Каждый шаг и алгоритм в целом заканчивается определенным результатом; строго определена последовательность шагов.

20