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

Понятие алгоритма является основным при составлении любого вида программ для ЭВМ. Программа для ЭВМ — алгоритм, оформленный специальным образом, конечная последовательность предписаний, определяющих процесс переработки входных данных в выходные.

Слово "Алгоритм" происходит от algorithmi - латинского написания имени аль-Хорезми, под которым в средневековой Европе знали величайшего математика из Хорезма (город в современном Узбекистане) Мухаммеда бен Мусу, жившего в 783-850 гг. В своей книге "Об индийском счете" он сформулировал правила записи натуральных чисел с помощью арабских цифр и правила действий над ними столбиком. В дальнейшем алгоритмом стали называть точное предписание, определяющее последовательность действий, обеспечивающую получение требуемого результата из исходных данных. Алгоритм может быть предназначен для выполнения его человеком или автоматическим устройством. Создание алгоритма, пусть даже самого простого, - процесс творческий. Он доступен исключительно живым существам, а долгое время считалось, что только человеку. Другое дело - реализация уже имеющегося алгоритма. Ее можно поручить субъекту или объекту, который не обязан вникать в существо дела, а возможно, и не способен его понять. Такой субъект или объект принято называть формальным исполнителем. Примером формального исполнителя может служить стиральная машина-автомат, которая неукоснительно исполняет предписанные ей действия, даже если вы забыли положить в нее порошок. Человек тоже может выступать в роли формального исполнителя, но в первую очередь формальными исполнителями являются различные автоматические устройства, и компьютер в том числе. Каждый алгоритм создается в расчете на вполне конкретного исполнителя. Те действия, которые может совершать исполнитель, называются его его допустимыми действиями. Совокупность допустимых действий образует систему команд исполнителя. Алгоритм должен содержать только те действия, которые допустимы для данного исполнителя.

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

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

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

Такими свойствами являются:

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

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

·     Результативность (конечность) - алгоритм должен приводить к решению задачи за конечное число шагов.

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

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

Словесная запись алгоритма. Словесная форма обычно используется для алгоритмов, ориентированных на исполнителя — человека. Команды алгоритма нумеруют, чтобы иметь возможность на них ссылаться. Приведем в качестве еще одного примера словесной формы записи алгоритма классический алгоритм Евклида для нахождения наибольшего общего делителя двух натуральных чисел:

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

Суть алгоритма Евклида можно представить следующими тремя этапами.

1. Нахождение остатка. Разделим m на n. Пусть остаток равен г:

0<г< n.

2. Проверка остатка на равенство нулю. Если г = О, вычисление кончается, n — искомое число.

3. Замена m ← n, n ← г. Повторить этап 1.

Пример

1. Даны m = 125, n = 75. Наши наибольший общий делитель.

1) 125: 75 = 1. Частное равно 1, остаток от деления равен 50,

2) Остаток от деления не равен 0. Проводим замену переменных:

m = 75, n = 50 и повторяем процесс,

1) 75: 50= 1, m = 25.

2) m = 50, n = 25, г = 0.

Повторяем процедуру.

1) 50:25= 2.

2) Остаток от деления равен 0, поэтому n = 25 является наибольшим общим делителем.

2. К отрезку АВ в точке М восстановить перпендикуляр. Алгоритм решения этой геометрической задачи может быть описан в виде четырех последовательных шагов (рис. 1).

1) Из произвольной точки О плоскости радиусом ОМ описать окружность, пересекающую отрезок АВ.

2) Отметить точку С пересечения окружности с отрезком АВ,

3) Найти точку D пересечения окружности с прямой ОС.

Рис. 1. Восстановление перпендикуляра к отрезку в данной точке

4) Соединить точку М и D.

Если строго выполнять все предписания, то будет получен однозначный ответ,

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

Для решения задачи можно разработать несколько алгоритмов. Каждый алгоритм создается в расчете на вполне конкретного исполнителя. Если планируется реализация алгоритма на машине, следует учитывать его приспособляемость к ЭВМ, простоту и время реализации на машине. Алгоритм должен быть разработан таким образом, чтобы исполнитель мог даже не вникать в смысл того, что он делает, и вместе с тем получать нужные результаты. Исполнение уже имеющегося алгоритма можно поручить субъекту или объекту, который не обязан вникать в существо дела, а возможно, и не способен его понять.

Описание алгоритма

Правила выполнения арифметических операций или геометрических построений представляют собой алгоритмы.

Указание формулы или последовательности формул, расчеты по которым нужно выполнить для получения результатов.

Пример

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

При заданных двух размерах (r — радиус основания и h — высота конуса) эта формула дает предписание исполнителю, как действовать, т. е. определены характер и последовательность действий.

Представление алгоритма в виде схемы.

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

Схема алгоритма — графическое представление хода решения задачи.

При выполнении схем алгоритмов и программ отдельные функции алгоритмов и программ (с учетом их детализации) отображаются в виде условных графических обозначений — символов (ГОСТ 19.003—80 и ГОСТ 19.002—80). В табл. 1 приведены основные символы, используемые в схемах алгоритмов. Схемы должны быть выполнены в форматах, установленных по ГОСТ 2.301—68.

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

При выполнении схем символам присваивают порядковые номера. Порядковый номер проставляют слева в верхней части символа в разрыве его контура. Символы соединяются прямыми линиями (линиями потока).

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

Записи внутри символа выполняются чертежным шрифтом по ГОСТ 2.304—81. Записи внутри символа или рядом с ним должны быть краткими. Символы применяются с учетом выполняемых функций.

Таблица 1. Основные символы для схем алгоритмов

Название символа   Обозначение и пример заполнения   Пояснение
Процесс

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

Решение

Проверка условий
Модификация

Начало цикла
  Предопределенный процесс  

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

Ввод-вывод

Ввод-вывод в общем виде
Пуск-останов

Начало, конец алгоритма,
вход и выход в подпрограмму

Документ

Вывод результатов на печать
№ п/п Графическое изображение элемента Описание элемента

1

а

b

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

2

 Данные – блок описания операции ввода/вы-вода данных, для которой не определено конкретное устройство.

3

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

4

· · ·

 Границы цикла - символ состоит из двух частей и определяет начало и конец цикла.

5

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

6

 Комментарий – содержит пояснение функции блока, с которым связан.

7

 Терминатор – обозначает начало и конец алгоритма.

8

 Линия потока – отображает потоки данных и управления в алгоритме.

9

 Соединитель – указание связи между прерванными линиями потока, связывающими блоки.


Пример описания алгоритма нахождения максимального из трех чисел XI, Х2, ХЗ с помощью схемы алгоритма представлен на рис. 2.

Графический метод описания алгоритма очень наглядный, но в случае сложного алгоритма схема получается громоздкой и это ее достоинство теряется. Использование схем алгоритмов значительно упрощает написание программ начинающими программистами.

 

Рис. 2 Схема алгоритма поиска Схема алгоритма Евклида максимального числа из трех чисел


Информация о работе «Решение задач с помощью ЭВМ»
Раздел: Информатика, программирование
Количество знаков с пробелами: 17151
Количество таблиц: 2
Количество изображений: 5

Похожие работы

Скачать
21375
0
1

... , чем больше скорость сжатия, тем меньше степень сжатия, и наоборот. Нахождение для любого входного файла программы наименьшего возможного размера, печатающей этот файл, является алгоритмически неразрешимой задачей, поэтому "идеальный" архиватор невозможен. 2. Матричный принцип печати   В конце семидесятых был изобретен первый компьютер, эта была довольно миниатюрная машина, которая занимала ...

Скачать
87494
0
1

... неподготовленный пользователь (в частности учащийся, с минимальным багажом знаний ПК), при запуске программы буквально за считанные минуты овладевает теми знаниями, требованиями необходимыми при работе с программой, что немаловажно при использовании компьютера при обучении математики. Курс ОИВТ в средней школе изучается в 10-11 классах, а если учесть, что программа написана для 5 или 6 класса, то ...

Скачать
17411
0
7

... точке приближенного решения, т. е. Последовательные приближения (4) строятся по формулам: , (9) где  – начальное приближение к точному решению . 4.5 Метод Зейделя на основе линеаризованного уравнения Итерационная формула для построения приближенного решения нелинейного уравнения (2) на основе линеаризованного уравнения (7) имеет вид: 4.6 Метод наискорейшего спуска Методы ...

Скачать
10247
2
4

... от продажи одной единицы продукции и расход сырья на ее производство, надо составить оптимальный производственны план, дающий максимальную прибыль. В работе мы решим эту задачу классическим симплекс методом, средствами Excel и графическим методом. Глава 1. Решение задачи классическим симплекс методом Коэффициенты целевой функции Переменные целевой функции Задача при ограничениях ...

0 комментариев


Наверх