Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Основные структуры алгоритмов: сравнительный анализ и примеры их использования (Теоретические понятия алгоритмов)

Содержание:

Введение

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

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

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

Объектом курсовой работы является базовые алгоритмические структуры.

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

Согласно поставленной цели необходимо решить следующие задачи для ее достижения:

  • провести литературный обзор по основным понятиям алгоритмов;
  • рассмотреть и проанализировать базовые структуры алгоритмов;
  • привести примеры использования базовых структур алгоритмов.

1. Теоретические понятия алгоритмов

Современное формальное определение алгоритма было дано в 30 - 50-х гг. XX века в работах А. Тьюринга [9], А. Черча [10], Н. Винера [1], А.Н. Колмогорова [5].

Само слово «алгоритм» происходит от имени учёного Абу Абдуллах Мухаммеда ибн Муса аль-Хорезми. Около 825 г. он написал сочинение, в котором впервые дал описание придуманной в Индии позиционной десятичной системы счисления. К сожалению, арабский оригинал книги не сохранился. Аль-Хорезми сформулировал правила вычислений в новой системе и, вероятно, впервые использовал цифру 0 для обозначения пропущенной позиции в записи числа (её индийское название арабы перевели как as-sifr или просто sifr, отсюда такие слова, как «цифра» и «шифр») [8].

Алгоритм (процедура) - решение задач в виде точных последовательно выполняемых предписаний.

Это интуитивное определение сопровождается описанием интуитивных свойств (признаков) алгоритмов: эффективность, определенность, ко­нечность [6].

Эффективность - возможность исполнения предписаний за конеч­ное время.

Например, алгоритм - процедура, состоящая из "конечного числа команд, каждая из которых выполняется механически за фиксированное время и с фиксированными затратами" [4].

В теоретических подходах к построению строгого определения понятия алгоритма исторически выделились три основных направления. Первое направление связано с рассмотрением алгоритмов, позволяющих вычислить значение числовых функций, зависящих от целочисленных значений аргументов – такие функции получили название вычислимых. Понятие вычислимой функции не является строгим, как и понятие алгоритма. Однако, благодаря работам А.Черча, К.Геделя, С.Клини, была обоснована тождественность класса всюду определенных вычислимых функций с классом частично рекурсивных функций, который определяется строго.

Это позволило свести проблему алгоритмической разрешимости к доказательству возможности (или невозможности) построения рекурсивной функции, решающей задачу. Именно этим путем А.Черчу удалось доказать неразрешимость одной из проблем математической логики – исчисления истинности предикатов. Второе направление связано с машинной математикой.

Основная идея этого направления состоит в том, что алгоритмические процессы – это процессы, которые может совершать соответствующим образом построенная «машина». В соответствии с этой идеей ими были описаны в точных математических терминах довольно узкие классы машин, однако при этом было доказано, что посредством этих машин можно осуществлять или имитировать все алгоритмические процессы, которые фактически когда-либо описывались математиками. Данный подход развивался в работах Э. Поста и А.Тьюринга одновременно с упомянутым выше подходом. Доказательство алгоритмической разрешимости задачи сводится к доказательству существования машины, ее решающей. Третье направление связано с понятием нормальных алгоритмов. Введенным и разработанным российским математиком А.А.Марковым в начале 50-х гг. ХХ века.

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

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

– применение исполнителей, способных выполнять сложные команды;

– допустимость нестрогой формализации представления алгоритмов. Если исполнителем является человек. Человек обладает собственным мышлением и знаниями, опираясь на которые он может компенсировать неточности алгоритма, выполнить действия и добиться результата;

– расширение применимости понятия алгоритма на последовательность любых дискретных действий. По определению алгоритм должен быть обязательно связан с обработкой дискретной информации. Однако этот же термин используется и для обозначения действий по управлению исполнителем, напрямую не производящим преобразование информации [2].

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

Определенность - возможность точного математического определе­ния или формально описания содержания команд и последовательности их применения в этой процедуре.

Конечность - выполнение алгоритма при конкретных исходных дан­ных за конечное число шагов.

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

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

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

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

♦ алгоритмом называется предписание, определяющее порядок выполнения операций над данными с целью получения искомого результата[1];

♦ алгоритм – это точное предписание, которое задает вычислительный процесс (называемый в этом случае алгоритмическим процессом), начинающийся с произвольного исходного данного (из некоторой совокупности возможных для данного алгоритма исходных данных) и направленный на получение полностью определяемого этим исходным данным результата[2];

♦ алгоритм – это всякая система вычислений, выполняемых по строго определенным правилам, которая после какого-либо числа шагов заведомо приводит к решению поставленной задачи[3].

Любой алгоритм должен иметь следующие основные свойства:

- детерминированность (определенность) - через полную однозначность правил, установленных в алгоритме, применение алгоритма к одинаковым входным данным должно приводить к одинаковому результату;

- дискретность - процесс, определяется алгоритмом, можно разделить на отдельные элементарные этапы (шаги), каждый из которых называется шагом алгоритмического процесса или алгоритма;

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

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

Сущность алгоритмов состоит в следующих действиях, которые отражают ее свойства:

- Выделение законченных частей вычислительного процесса;

- Формальной записи каждого из них;

- Назначение детерминированного порядка выполнения выделенных частей;

- Проверки правильности выбранного алгоритма по реализации заданного метода вычислений.

Рассмотрим способ составления алгоритма на языке блок-схем.

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

Правила построения алгоритмов на языке блок-схем:

1. Блок-схема строится сверху вниз.

2. В любой блок-схеме имеется только один элемент, соответствующий началу алгоритма, и один элемент, соответствующий концу алгоритма.

3. Должен быть хотя бы один путь из начала блок-схемы к любому элементу.

4. Должен быть хотя бы один путь от каждого элемента блок-схемы в конец блок-схемы.

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

Таблица 1

Основные элементы для построения блок-схем

Обозначение

Описание обозначения

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

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

Модификация – организация циклических конструкций (начало цикла).

Предопределенный процесс – вычисление по подпрограмме, использование ранее созданных и описанных алгоритмов.

Начало-конец программы или вход и выход в подпрограммах.

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

Комментарий – пояснения, содержание подпрограмм.

2. Виды структур алгоритмов: сравнительный анализ

Основные структуры алгоритмов - это ограниченный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий [7]. Использование нескольких структур дает возможность строить разнообразные алгоритмы.

К основным структурам алгоритмов относятся [3]:

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

Рисунок 1 - Линейная структура алгоритма

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

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

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

Рисунок 2 - Виды разветвленной структуры алгоритмов

- циклическая, которая используется при необходимости выполнять некоторые действия несколько раз. Возможно исполнение цикла До, цикла Пока, цикла по параметру (рис. 3).

Рисунок 3 - Циклическая структура алгоритма

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

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

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

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

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

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

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

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

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

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

Алгоритм, который приписывает повторное выполнение действий, называется алгоритмом с повторением, или алгоритмом с циклом (циклический). Повторяющееся действие или группа действий называется телом цикла. Количество повторений тела цикла определяется поставленным условием, которое называется условием цикла. По результатам проверки условия осуществляется выбор: еще раз повторить тело цикла или перейти к другим действиям.

Циклический алгоритм состоит из следующих этапов:

1. Подготовка цикла – осуществление действий, которые связаны с исходными данными;

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

3. Условия продолжения цикла - действия, которые определяют необходимость дальнейшего выполнения тела цикла.

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

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

Например, в базовой структуре следования (рис. 4) функциональный блок Действие 1 может быть замещен разветвлением, а блок Действие 2 - повторением. Такое замещение можно продолжать дальше и дальше.

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

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

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

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

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

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

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

Действие 1

Действие 2

Рисунок 4 - Базовая структура следования

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

3. Примеры применения структур алгоритмов

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

Пример 1: Вычислите , где ; a=-7,25; b=2,05.

Линейная структура алгоритма (рис. 5):

конец

Вывод y

Ввод:

Ввод a, b

начало

Рисунок 5 - Линейная структура алгоритма

Код программы на языке Паскаль АБС.NET:

var x, y,a,b: real;

begin

a := readlnreal('a = ');

b := readlnreal('b = ');

y := sqrt((x*x+ sin(x)*sin(x))) / (power(4,x)+2);

x:= power(0.5,(a*a+1)*cos(b)*cos(b));

writeln('y = ', y)

end.

Результаты работы программы (рис. 6):

Рисунок 6 - Результат работы программы линейной структуры

Пример 2: Написать программу для нахождения значения y с использованием операторов IF (разветвленная структура алгоритмов). Выражения для вычисления значения выражений оформить.

Вычислить значение функции y для произвольного значений x .

Разветвленная структура алгоритма представлена на рисунке 7. Код программы на языке Паскаль АБС.NET:

var x:integer;

y:real;

begin

WriteLn('Введите Х');

ReadLn(x);

If (x<=3) and (x>=0) then

y:= x*x+1

else

If (x<0) and (x>3) then

y:= sin(3*x);

WriteLn(y);

end.

E:\Users\Люба\Pictures\Новый рисунок.png

Рисунок 7 - Пример разветвленной структуры алгоритма

Результаты работы программы представлены на рисунке 8.

Рисунок 8 - Результат работы программы разветвленной структуры алгоритма

Пример 3: Вычислить произведение первых N натуральных чисел, делящихся на К.

Циклическая структура алгоритма представлена на рисунке 9.

E:\Users\Люба\Desktop\Без названия (3).png

Рисунок 9 - Циклическая структура алгоритма

Код программы на языке Паскаль АБС.NET:

var summa, n, k, i:integer;

begin

write('N равно: ');

readln(n);

write('K равно: ');

readln(k);

for i:=1 to n do

begin

if i mod k = 0 then

summa:=summa+i;

end;

writeln('Сумма первых N чисел кратных K равна: ', summa);

end.

Результат программы представлен на рисунке 10.

Рисунок 10 - Результат работы циклической структуры алгоритма

Пример 4: Составить таблицу значений: , h=0,1.

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

Комбинированная структура представлена на рисунке 11. Код программы на языке Паскаль АБС.NET:

program v11;

var y, x: real;

begin

x:= -1;

while x<=1 do

begin

y:= sin (x)+(cos(x)/sin(x))-x;

writeln (x, ' | ',y:2:3);

x:=x+0.1;

end;

writeln;

writeln ('y=',y:2:3);

end.

Рисунок 11 - Комбинированная структура разветвляющегося и циклического алгоритмов

Результат работы программы представлен на рисунке 12.

Рисунок 12 - Результат работы программы

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

Разветвляющая структура алгоритма решения данной задачи представлена на рисунке 13.

Рисунок 13 - Разветвляющаяся алгоритмическая структура

Код программы на языке Паскаль АБС.NET:

Program P1;

Var x,y: real;

Begin

writeln;

writeln('Программа вводит значение

аргумента X и вычисляет значение функции Y');

writeln(' |x x>1.5');

writeln('Y= |2x^2*sqrt(abs(cos(2x))) 0<=x<=1.5');

writeln(' |exp(-cos(3x)) x<0');

writeln;

writeln('введите x= ');

readln(x);

If x>1.5 then

Y:=x

Else

If x>=0 then

y:=2*x*x*sqrt(abs(cos(2*x)))

Else

Y:=exp(-cos(3*x));

writeln('Y= ', y:7:3);

readln

end.

Результат работы программы представлен на рисунке 14.

Рисунок 14 - Результат работы программы

Пример 6: Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 – катет (a), 2 – гипотенуза (c), 3 – высота, опущенная на гипотенузу (h), 4 – площадь (S). Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке).

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

Комбинированная структура представлена на рисунке 15. Код программы на языке Паскаль АБС.NET:

program prog;

var

N:Integer;

X,a,c,h,S:Real;

begin

writeln;

Write('Введите номер элемента прямоугольного треугольника: ');

Readln(N);

Write('Введите длину элемента: ');

Readln(X);

Case N of

1: begin

a:=X;

c:=a*sqrt(2);

h:=c/2;

S:=c*h/2;

end;

2: begin

c:=X;

a:=c/sqrt(2);

h:=c/2;

S:=c*h/2;

end;

3: begin

h:=X;

c:=2*h;

a:=c/sqrt(2);

S:=c*h/2;

end;

4: begin

S:=X;

h:=Sqrt(S);

c:=2*h;

a:=c/sqrt(2);

end;

end;

Writeln('Длина катета равна: ',a,'; Гипотенуза равна: ',c,'; Высота опущенная на гипотенузу равна: ',h, 'Площадь равна',S);

end.

Рисунок 15 - Комбинированная структура разветвляющегося и циклического алгоритмов

Результат работы данной программы представлен на рисунке 16.

Рисунок 16 - Результат работы комбинации алгоритмических структур

Пример 7: Составить программу заданной обработки массива слов. В процессе обработки использовать множественных тип данных. Заполнение исходных данных – с клавиатуры. Исходный и обработанный массив выводить на экран. Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Элементами слов могут быть любые графические символы. В слове наименьшей длины удалить все гласные буквы и подсчитать их количество в этом слове.

Разветвляющая структура алгоритма решения данной задачи представлена на рисунке 17.

Рисунок 17 - Результат работы программы

Код программы на языке Паскаль АБС.NET:

program Project1;

const

//Множество гласных букв.

Da = [ //Русские. 'А', 'Е', 'Ё', 'И', 'О', 'У', 'Э', 'Ю', 'Я', 'Ы', 'а', 'е', 'ё', 'и', 'о', 'у', 'э', 'ю', 'я', 'ы', //Английские. 'A', 'E', 'I', 'O', 'U', 'Y', 'a', 'e', 'i', 'o', 'u', 'y' ];

M = 10;

var

S : String;

Arr : array[1..M] of String;

i, IMin, Cnt, LenW, LenA, CntA : Integer;

begin

writeln;

writeln(' Вариант № 11');

writeln;

repeat

Writeln('Задайте массив слов.

Ввод каждого слова завершайте нажатием');

Writeln('клавиши Enter.

Завершить ввод - пустая строка + Enter.');

Cnt := 0;

S := 'X';

while (Cnt < M) and (S <> '') do begin

Readln(S);

if S = '' then Continue;

Inc(Cnt);

Arr[Cnt] := S;

end;

if Cnt = 0 then begin

Writeln('Не введено ни одного слова.');

Writeln('Повторить - Enter.

Выход - любой символ + Enter.');

Readln(S);

Continue;

end;

IMin := 1;

LenA := Length(Arr[IMin]);

for i := 2 to Cnt do begin

LenW := Length(Arr[i]);

if LenW < LenA then begin

IMin := i;

LenA := LenW;

end;

end;

CntA := 0;

S := Arr[IMin];

for i := LenA downto 1 do begin

if S[i] in Da then begin

Inc(CntA);

Delete(S, i, 1);

end;

end;

Writeln('Самое короткое слово в массиве:');

Writeln('Слово: "', Arr[IMin], '"');

Writeln('Индекс: ', IMin);

Writeln('Длина: ', LenA);

if CntA > 0 then begin

Writeln('Количество гласных букв: ', CntA);

Writeln('В слове удалены все гласные буквы.');

end else

Writeln('В слове нет гласных букв.');

Writeln('Слово после обработки: ', S);

Writeln('Повторить - Enter. Выход - любой символ + Enter.');

Readln(S);

until S <> '';

end.

Заключение

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

Были решены следующие задачи:

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

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

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

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

Список использованной литературы

  1. Biemond J. et al. A pel-recursive Wiener-based displacement estimation algorithm //Signal Processing. – 1987. – Т. 13. – №. 4. – С. 399-412.
  2. Баков А. А. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ: ОПРЕДЕЛЕНИЕ ПОНЯТИЯ АЛГОРИТМ //Вестник Московского городского педагогического университета. Серия: Информатика и информатизация образования. – 2008. – №. 16. – С. 26-28.
  3. Безусова, Т. А. Теория алгоритмов. Основные подходы к формализации алгоритма [Электронный ресурс] : учебное пособие / Т. А. Безусова. — Электрон. текстовые данные. — Соликамск : Соликамский государственный педагогический институт, 2011. — 63 c. — 2227-8397. — Режим доступа: http://www.iprbookshop.ru/47905.html
  4. Богоутдинов Д. Г. Алгоритмы: понятие, свойства, виды. Словесная форма представления алгоритмов //МИФ-2. – 2005. – №. 3.
  5. Колмагоров А. Н., Успенский В. А. К определению алгоритма //Успехи математических наук. – 1958.
  6. Крупский В. Н., Плиско В. Е. Теория алгоритмов //М.: Academia. – 2009.
  7. Левитин А. В. Алгоритмы: введение в разработку и анализ. – Издательский дом Вильямс, 2006.
  8. Поляков, В. И. Основы теории алгоритмов [Электронный ресурс]: учебное пособие по дисциплине «Математическая логика и теория алгоритмов» / В. И. Поляков, В. И. Скорубский. — Электрон. текстовые данные. — СПб. : Университет ИТМО, 2012. — 50 c. — 2227-8397. — Режим доступа: http://www.iprbookshop.ru/67504.html
  9. Тьюринг А. М. МОЖЕТ ЛИ МАШИНА МЫСЛИТЬ? //Точки над Ё. – 2014. – №. 4. – С. 90-138.
  10. Черч А. Математика и логика //Математическая логика и ее применение. М. – 1965. – С. 209-215.
  1. Матюшков Л. П., Лихтарович А. А. Основы машинной математики: Пособие для учителя. – Народная асвета, 1988.

  2. Успенский В. А. Алгоритм //Философская энциклопедия. – 1977. – Т. 1.

  3. Kolmogorov A. N. Preservation of conditionally periodic movements with small change in the Hamilton function //Stochastic Behavior in Classical and Quantum Hamiltonian Systems. – Springer, Berlin, Heidelberg, 1979. – С. 51-56.