Пятница, 11.07.2025, 04:27
KORCHEMINFOO
Приветствую Вас Гость | RSS
Меню сайта
ВАЖНО!!!
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

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

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

 


Свойства алгоритма:
  • определенность – в каждый момент исполнения алгоритма исполнитель всегда точно знает, что он должен делать;
  • дискретность - прежде, чем выполнить определенное действие, надо выполнить предыдущее;
  • массовость - по одному и тому же алгоритму решаются однотипные задачи и неоднократно;
  • понятность - алгоритм строится для конкретного исполнителя (класса исполнителей) и должен быть ему понятен. В то же время исполнитель не обязательно должен понимать, по каким правилам строился алгоритм, в чем заключается смысл исполняемых инструкций. Должны быть понятны только сами инструкции;
  • результативность - алгоритм всегда должен приводить к результату.
Формы записей алгоритмов

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

 

Рис. 1.1. Основные элементы блок-схем

 

Указанные на рис. 1.1 геометрические фигуры интерпретируются так:

Прямоугольник -- любая последовательность действий; внутри прямоугольника записываются формулы или словесное описание выполняемых действий;

Ромб -- блок проверки условия; так как любое условие может быть только истинно или ложно, у блока 1 вход и 2 выхода, соответствующие действиям, выполняемым в случаях, когда условие истинно и когда оно ложно. Выходы подписывают символами "+" и "-", "да" и "нет", "1" и "0" и т. п.

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

Лист с разрывом -- блок вывода данных. Внутри блока указывается, какие данные или сообщения программа выводит для представления пользователю;

Закругленные прямоугольники -- необязательные блоки начала и конца программы, внутри блоков обычно указываются ключевые слова "нач" и "кон" соответственно;

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


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

·       нач      -- начало программы;

·       кон      -- конец программы;

·       если ... то ...иначе  -- проверка условия;

·       ввод  -- ввод данных;

·       вывод  -- вывод данных;

·       для ... от .. до ... нц ... кц     -- цикл со счетчиком (нц -- начало цикла, кц -- конец);

·       пока ... нц ...кц         -- цикл с предусловием;

·       нц ... кц ... пока        -- цикл с постусловием.


Программная форма  (на языке программирования):

Program myprog;

Var

X,Y,Z:integer;

Begin

WriteLn (‘Введите два числа’);

Read (x,y);

Z:=x*y;

WriteLn (‘Результат:’,z);

End.





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

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

Линейная последовательность шагов
Группа шагов алгоритма, всегда выполняемых последовательно друг за другом без каких-либо условий, называется линейной последовательностью. Если весь алгоритм представляет собой линейную последовательность шагов, то его называют линейным.

На рисунке изображена блок-схема линейного алгоритма, состоящего из двух шагов.

^ Язык блок-схем 

Алгоритмический язык 



нач


действие 1

действие 2
...................

кон 


 



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

На рисунке приведена блок-схема ветвления

^ Язык блок-схем 

Алгоритмический язык 




если условие 

то 
действия 1 
иначе 
действия 2 

все 


Если условие истинно, то будет выполнено только действие1, в противном случае будет выполнено только действие2.


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

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

Если при истинности условия цикл завершается, то такое условие называется условием завершения цикла. В этом случае цикл продолжается до тех пор, пока условие цикла не станет истинным.

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





^ Блок-схема цикла с предусловием продолжения 

Блок-схема цикла с постусловием завершения 

Тело цикла с постусловием всегда выполнится хотя бы один раз.





Цикл типа Пока 

 

Цикл типа Для 

 

нц пока условие 
тело цикла (последовательность действий)
кц 

нц для от i1 до i2 
тело цикла (последовательность действий)
кц 


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

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

ВетвлениеЛинейный
Программа, которая находит наибольшее из трех чиселпрограмма вычисляет площадь прямоугольника
Program maximal;
var a,b,c,d:word;
begin
write ('a,b,c'');
read (a,b,c);
if a>b then d:=a
else d:=b; 
if c>d tnen d:=c then
writeln ('
наибольшее',d);
end. 
Program ploshad;
var a,b,s:word;
begin
write('a=');
read (a); 
write ('b='); 
read (b);
s:=a*b;
writeln
 ('площадь прямоугольника', s);
end.

Copyright MyCorp © 2025Сайт создан в системе uCoz