Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
78
Добавлен:
15.06.2014
Размер:
508.93 Кб
Скачать

Алгоритм

"алгоритм" (algorithm)

ал-Хорезми (из Хорезма) 1Х веке

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

Алгоритм обладает следующими свойствами:

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

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

3.Связность

4.Конечность

5.Результативность

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

7.Эффективность

1

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

1)Словесно-формульная запись на естественном языке;

2)Схемы алгоритмов (СА)

3)Специальные языки ( алгоритмические языки и

псевдокоды )

Пример. Найти наименьшее из трех чисел А, В и С. Словесная форма записи алгоритма

1.Ввести числа А, В, С.

2.Присвоить MIN=A (значение 1-го числа)

3.Сравнить MIN>B? Если "да", то выполнить присваивание

MIN=B

(иначе останется MIN=A)

4. Сравнить MIN>C? Если "Да", то присвоить MIN=C, иначе перейти к следующему шагу

5. Вывести на печать значение, полученное под именем MIN.

Конец. (Прекратить решение задачи)

ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем. М. 1991 (см. приложение 1 МУ).

2

Следует избегать пересечение линий

Пример:

А>В

Сравнение

 

А и В

А=В

Выражение

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

 

3

 

4

 

5

 

 

 

 

 

 

 

 

А <В

 

 

Логич.

 

 

 

Нет

выражение

 

 

Да

Значение

выражения

12

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

5

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

В=2а,

 

 

 

 

 

 

 

 

А:b=2:3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

Графические обозначения в СА (ГОСТ 19.701-90)

Символ

Наименование

Назначение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Данные

Символ отображает данные,

 

 

 

 

 

 

носитель данных не определен

 

 

 

 

 

 

Процесс

Отображает функцию обработки

 

 

 

 

 

 

данных: (выполнение отдельной

 

 

 

 

 

 

 

операции или группы операций).

 

 

 

 

 

 

 

 

 

 

 

 

 

Предопределен

Отображает предопределённый

 

 

 

 

 

 

 

 

 

 

 

 

процесс, состоящий из одной или

 

 

 

 

 

 

ный процесс

нескольких операций программы,

 

 

 

 

 

 

 

 

 

 

 

 

 

которые определены в другом

 

 

 

 

 

 

 

месте (подпрограмме, модуле)

 

 

 

 

 

 

Подготовка

Отражает инициализацию и моди-

 

 

 

 

 

 

 

фикацию параметра для управ-

 

 

 

 

 

 

 

ления циклом со счетчиком

 

 

 

 

 

 

Решение

Отображает функцию

 

 

 

 

 

 

переключательного типа, имеющую

 

 

 

 

 

 

 

один вход и ряд альтернативных

 

 

 

 

 

 

 

выходов, один из которых может

 

 

 

 

 

 

 

быть активизирован после

 

 

 

 

 

 

 

вычисления условия внутри символа

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

Граница цикла

Состоит из двух частей: начала и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

конца цикла. Обе части имеют

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

один и тот же идентификатор.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Изменение значения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

идентификатора, условия для

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выполнения или завершения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

помещаются внутри символов в

 

 

 

 

 

 

 

 

 

 

 

 

 

Соединитель

начале или конце

 

 

 

 

 

 

 

 

 

 

 

 

 

Используется для обрыва линии и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

продолжения её в другом месте.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Должен содержать уникальное

 

 

 

 

 

 

 

 

 

 

 

 

 

Терминатор

обозначение

 

 

 

 

 

 

 

 

 

 

 

 

 

Определяет начало и конец

 

 

 

 

 

 

 

 

 

 

 

 

 

 

структурной схемы алгоритма

 

 

 

 

 

 

 

 

 

 

 

 

 

 

программы или подпрограммы.

 

 

 

 

 

 

 

 

 

 

 

 

 

Комментарий

Используется для добавления

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пояснительных записей.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Связывается с символом или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

группой символов, обведённых

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пунктиром

 

 

 

 

 

 

 

 

 

 

 

 

 

Основная

Отображает последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

линия

выполнения действий в алгоритме

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

АЛГОРИТМЫ

 

Линейные

Разветвляющиеся

Циклические

Линейный алгоритм - алгоритм, в котором результат получается

путем однократного выполнения одной последовательности

действий при любых исходных данных

Начало

Пример: Построить СА вычисления

 

 

 

 

 

функции z tg(Ax B)

Ввод

А, В, х

2(B Ax)

 

 

 

 

 

 

 

 

 

 

В циклических алгоритмах решение

y=Ax -B

 

 

 

 

 

 

 

 

 

 

 

задачи сводится к многократному

 

 

 

 

 

z

 

tgy

 

 

повторению некоторой

 

 

 

2y

 

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

 

 

 

 

 

 

 

(некоторых участков алгоритма, которые

 

 

 

 

 

Печать

называются циклами)

z

 

 

 

 

 

Конец

6

Разветвляющийся алгоритм

 

 

 

 

Начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

предусматривает выбор одной из

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ввод

 

 

 

 

 

нескольких возможных

 

 

 

 

А,В,С

 

 

 

 

 

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

 

нет

 

 

 

 

 

 

 

 

да

 

 

 

 

 

 

 

 

 

зависимости от значений исходных

 

 

А>В

 

 

 

 

 

 

 

 

 

 

 

данных или промежуточных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Min=A

 

 

 

 

 

 

 

 

 

Min=B

 

 

 

 

 

 

 

 

 

результатов).

 

 

 

 

 

 

 

 

 

 

 

Min>C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нахождение наименьшего из трех чисел

 

 

 

 

нет

 

 

 

 

 

 

 

 

 

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА IF

 

 

 

 

Min=C

 

 

 

 

 

Структура условного оператора в полной форме:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вывод

 

 

 

 

 

IF <условие> THEN <оператор1>

 

 

 

 

 

 

 

 

 

(Если)

(то)

 

 

 

 

Min

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ELSE <оператор2>;

 

 

 

 

Конец

 

 

 

 

 

 

(иначе) - зарезервированные слова.

 

 

 

 

 

 

 

 

 

 

<Условие> - выражение логического типа : истина (TRUE) или

Пример. Найти min из 2 чисел

ложь (FALSE).

 

IF a>b THEN min:=b ELSE min:=a ;

 

Сокращенная форма условного оператора:

 

IF <условие> THEN <оператор>;

7

Пример. Найти min из 3 чисел

IF a>b THEN min:=b ELSE min:=a ; IF min>c THEN min:=c ;

При применении вложенных условных операторов действует правило: любая встретившаяся часть ELSE соответствует ближайшей к ней "сверху“ части THEN:

IF <условие1> THEN

IF <условие2> THEN

IF <условие3> THEN <оператор3>

ELSE <оператор4>

ELSE <оператор2>

ELSE <оператор1>;

Пример: Для

 

 

х4

при х 3

 

 

y= х3

3 < х 5

 

 

 

х2

5 < х 10

if x<=3

then

 

х

х > 10

y=x*x*x*x

{ exp(4*(ln(x)) }

else if x <=5

then

y=x*x*x

 

 

 

else if

x<=10 then y=x*x

 

 

else y=x;

8

 

 

 

 

Пустой оператор

Составной оператор

BEGIN <оператор1>; <оператор2>;

...;

END; <операторN>

Для составного оператора допускается любая глубина вложенности.

BEGIN

BEGIN

...

BEGIN

...

END;

END... Перед END ";" не ставится (это как скобка) END.

Пример.

BEGIN

s:=0; r:=r+2;

END;

22:; В этом фрагменте 4 (2 ;) оператора.

9

END; {Конец Case}

Опеpатоp выбоpа CASE

CASE <ключ_выбора> OF {Выбор} {из}

<константа_выбора1>:<оператор1>; <константа_выбора2>:<оператор2>;

. . . <константа_выбораN>:<операторN> ELSE <оператор>

{иначе}

Пpимеp: Выполнить операцию в зависимости от введенного

 

символа.

 

 

 

VAR operation: char;

 

 

 

 

x, y, z:real;

 

 

 

BEGIN read(x,y);

 

 

 

 

read(operation);

 

 

 

 

CASE operation OF

'+': z:= x+y;

 

 

 

 

 

 

 

 

'-': z:= x-y;

 

 

 

 

'*': z:= x*y;

 

 

 

 

'/': z:= x/y;

 

 

END; ...

ELSE write('нет такой опеpации')

 

 

 

 

 

Пример: CASE <ключ> OF

 

 

END.

 

1:<оператор1>;

 

 

 

2,3:<оператор2>;

 

 

 

4..6:<оператор3>

 

END;

ELSE <оператор>

10

 

 

 

Соседние файлы в папке Секретные файлы Шафеевой))