Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_лекции.doc
Скачиваний:
189
Добавлен:
21.02.2016
Размер:
7.02 Mб
Скачать

Глава 9. Алгоритмы. Алгоритмизация. Алгоритмические языки

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

Сущность алгоритма

Понятие алгоритма такое же основополагающее для информатики, как и понятие информации. Именно поэтому важно в нем разобраться, что и делает группа программистов на рис. 9.1.

Рис. 9. 1. Программисты, изучающие алгоритм

Название "алгоритм" произошло от латинской формы имени величайшего среднеазиатского математика Мухаммеда ибн Муса ал-Хорезми (Alhorithmi) – рис. 9.2, жившего в 783—850 гг. В своей книге "Об индийском счете" он изложил правила записи натуральных чисел с помощью арабских цифр и правила действий над ними "столбиком", знакомые теперь каждому школьнику. В XII веке эта книга была переведена на латынь и получила широкое распространение в Европе.

Рис. 9. 2. Мухаммеда ибн Муса аль-Хорезми

Алгоpитм — заранее заданное понятное и точное пpедписание возможному исполнителю совеpшить определенную последовательность действий для получения решения задачи за конечное число шагов.

Исполнитель алгоритма — это некоторая абстрактная или реальная система, способная выполнить действия, предписываемые алгоритмом. В информатике универсальным исполнителем алгоритмов является компьютер.

Основные свойства алгоритмов

1.   Понятность для исполнителя — исполнитель алгоритма должен понимать, как его выполнять. Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма.

2.   Дискpетность (прерывность, раздельность) — алгоpитм должен пpедставлять пpоцесс pешения задачи как последовательное выполнение пpостых (или pанее опpеделенных) шагов (этапов).

3.   Опpеделенность — каждое пpавило алгоpитма должно быть четким, однозначным и не оставлять места для пpоизвола. Благодаpя этому свойству выполнение алгоpитма носит механический хаpактеp и не тpебует никаких дополнительных указаний или сведений о pешаемой задаче.

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

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

9.2. Формы записи алгоритмов

Существуют множество различных форм записи алгоритмов. Это связано с тем, что каждый исполнитель алгоритмов "понимает" лишь такой алгоритм, который записан на его "языке" и по его правилам. Условно выделяют 4 формы записи алгоритмов:

  1. Словесно-пошаговая (текстовая).

  2. Табличная.

  3. Запись на алгоритмическом языке.

  4. Графическая форма записи (блок-схема).

Предваряя описание алгоритмов, следует рассмотреть команду "присваивание".

Рис. 9. 3. Оператор присваивания

Величина получает свое значение путем выполнения команды присваивания. Она обозначается знаком := (присвоить) и записывается следующим образом: ИМЯ ВЕЛИЧИНЫ :=ЗНАЧЕНИЕ (рис. 9.3).

Нельзя путать знак присваивания со знаком равенства, так, например, при выполнении следующей команды присваивания Z:=Z+1, величина Z станет равной  предыдущему значению Z, увеличенному на 1. Ясно, что использование в этой записи знака равенства недопустимо, так как никакое Z не равно Z+1.

После присваивания величине нового значения старое забывается.

Пример

Определите, чему станет равна величина F, после выполнения следующего ряда присвоений: F:=4; F:= F *5; F:= 10+F; F:= F / 3; F :=F-10.

Нам кажется, что в результате будет 0. Проверьте сами

  1. Словесно-пошаговая (текстовая) форма записи алгоритма

Алгоритм записывается в виде пронумерованных этапов его выполнения. Пример: Алгоритм сложения двух чисел (a и b).

  1. Спросить, чему равно число a.

  2. Спросить, чему равно число b.

  3. Сложить a и b, результат присвоить с.

  4. Сообщить результат с.

Словесный способ не имеет широкого распространения, так как такие описания:

  • Строго не формализуемы.

  • Страдают многословностью записей.

  • Допускают неоднозначность толкования отдельных предписаний.

  1. Табличная форма записи алгоритма

Это запись алгоритма в виде таблицы. Используемые таблицы могут быть различными. Для примера будем использовать упрощенную форму.

Порядок составления табличных алгоритмов:

  1. Переписать выражение так, как допустимо в информатике.

  2. Определить порядок действий.

  3. Ввести обозначения промежуточных результатов.

  4. Занести полученные действия в таблицу.

Табличная форма записи обычно используется в качестве вспомогательного средства проверки правильности написания алгоритма. Он четко не формализован.

Пример: Алгоритм вычисления R=2a +3b приведен в табл. 9.1.

Алгоритм вычисления

Таблица 9. 1

действия

Действие

Величина

Результат

1

2

1

*

2

a

k

2

*

3

b

u

3

+

k

u

R

  1. Запись на алгоритмическом языке11

Это запись алгоритма на специальном языке (в том числе и на языке программирования). Она осуществляется, строго следуя правилам того или иного алгоритмического языка.

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

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

Пример: Алгоритм вычисления значения выражения Y=z-a+2b. 

Четвертую (графическую) форму записи алгоритма рассмотрим более подробно.