Немного о компьютере

Типы алгоритмов. Типы алгоритмов — Гипермаркет знаний Какие типы алгоритмов существуют

Известны три типа алгоритмов – линейные, разветвляющиеся, циклические.

Линейный тип алгоритмов

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

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

Пример

Постановка задачи : вычислить площадь круга, если известен радиус.

Дано: R– радиус круга.

Найти: S– площадь круга.

Решение: S=3,14R 2

Словесная форма записи алгоритма

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

    Прочесть значение R.

    Умножить значение Rна 3,14.

    Умножить результат второго действия на значение R.

    Записать полученный результат как значение S.

На языке блок-схем – рис. 8

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

Решение задач не всегда можно представить в виде линейного алгоритма.

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

При графическом способе ветвление организуется с помощью логического элемента (ромб), имеющего один вход и два выхода. Назначение логического элемента – проверка заданного условия. В зависимости от выполнения (истинности) или невыполнения (ложности) проверяемого условия возможен выход соответственно на ветвь «Да» или «Нет».

Пример

Постановка задачи : вычислить
.

Дано : х – значение аргумента.

Найти : у – значение функции.

Решение:

y= x , если х  0

- x , если х<0

Блок-схема - см. рис. 9.

Словесное представление

На псевдокоде :

Прочесть значение х

Если х>0, то

Конец ветвления

Записать значение у

Выделяют полную и неполную условную конструкцию .

Циклический тип алгоритмов

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

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

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

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

    параметр цикла – величина, с изменением которой связано многократное выполнение цикла;

    начальное и конечное значение параметра цикла ;

    шаг цикла – это значение, на которое изменяется параметр цикла при каждом повторении.

Циклический алгоритм состоит из подготовки цикла, тела цикла, условия продолжения цикла .

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

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

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

Рассмотрим графическое представление циклического блока алгоритма (см. рис. 10).

Циклы могут быть с предусловием (когда условие проверяется перед началом тела цикла) и спостусловием (когда условие проверяется после первого прохождения тела цикла).

Цикл с постусловием

Цикл с предусловием

На практике наиболее распространены следующие формы представления алгоритмов:

· словесная (записи на естественном языке);

· графическая (изображения из графических символов);

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

· программная (тексты на языках программирования).

Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке. Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел.

Алгоритм может быть следующим:

· задать два числа;

· если числа равны, то взять любое из них в качестве ответа и остановиться, в

противном случае продолжить выполнение алгоритма;

· определить большее из чисел;

· заменить большее из чисел разностью большего и меньшего из чисел;

· повторить алгоритм с шага 2.

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

Словесный способ не имеет широкого распространения по следующим причинам:

· такие описания строго не формализуемы;

· страдают многословностью записей;

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

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

Такое графическое представление называется схемой алгоритма или блок-схемой.

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

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

1)Блок начало-конец

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

2) Блок действия

Выполнение одной или нескольких операций, обработка данных любого вида (изменение значения данных, формы представления, расположения). Внутри фигуры записывают непосредственно сами операции, например, операцию присваивания: a = 10*b + c


3) Логический блок

Отображает решение или функцию переключательного типа с одним входом и двумя или более альтернативными выходами, из которых только один может быть выбран после вычисления условий, определенных внутри этого элемента. Вход в элемент обозначается линией, входящей обычно в верхнюю вершину элемента. Если выходов два или три, то обычно каждый выход обозначается линией, выходящей из оставшихся вершин (боковых и нижней). Если выходов больше трех, то их следует показывать одной линией, выходящей из вершины (чаще нижней) элемента, которая затем разветвляется. Соответствующие результаты вычислений могут записываться рядом с линиями, отображающими эти пути. Примеры решения: в общем случае − сравнение (три выхода: >, <, =); в программировании − условные операторы if (два выхода: true, false) и case (множество выходов).

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

Типы алгоритмов

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

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

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

Аннотация: Алгоритм является базовым понятием для тех, кто хочет начать программировать на любом языке программирования. Любая задача может быть формализована алгоритмически. Чтобы понять, с чего начать, рассмотрим основные виды алгоритмов. Цель данной лекции – ознакомить студентов с понятием алгоритма; показать, что такая абстрактная вещь как алгоритм окружает нас в повседневной жизни.

Пример псевдокода:

алг Нахождение частного двух чисел начало вывод ("задайте делимое и делитель") ввод (делимое, делитель) если делитель ≠ 0 то частное = делимое / делитель вывод(частное) иначе вывод("нет решения") кон алг Нахождение частного двух чисел

В данном примере используется три переменные: делимое, делитель и частное. Делимое и делитель задаются исполнителем произвольными числами. Частное считается лишь в том случае, если делитель не равен нулю.

Графическая реализация алгоритма представляет собой блок-схему. Блок-схема состоит из блоков определенной формы, соединенных стрелками. Ответ при этом получает человек, который выполняет команды согласно блок-схеме. Более подробно о блок-схемах будет рассказано в Лекции 2.

Программная реализация алгоритма – это компьютерная программа, написанная на каком-либо алгоритмическом языке программирования, например: С++, Pascal, Basic и т.д. Программа состоит из команд определенного языка программирования. Отметим, что одна и та же блок-схема может быть реализована на разных языках программирования. Ответ при этом получает ЭВМ, а не человек. Более подробно о составлении программ на языке программирования С++ смотреть Лекцию 3.

Различают три основных вида алгоритмов:

  1. линейный алгоритм,
  2. разветвляющийся алгоритм,
  3. циклический алгоритм.

Линейный алгоритм – это алгоритм, в котором действия выполняются однократно и строго последовательно.

Самый простой пример реализации линейного алгоритма – путь из университета домой.

Словесный способ записи данного алгоритма:

  1. выйти из университета на остановку;
  2. подождать нужный автобус;
  3. сесть на нужный автобус;
  4. оплатить проезд;
  5. выйти на требуемой остановке;
  6. дойти до дома.

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

Сроки: 2 5 .09.201 4 г. Класс: 9 Д Преподаватель: Мамедов А.

Тема урока : «ТИПЫ АЛГОРИТМОВ. »

Вид урока : смешанный.

Цели урока: дать понятие командам, структурам алгоритмов и научить этапам решения задач на паскале.

СТРУКТУРА АЛГОРИТМОВ

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

возьмем дневник откроем нужную страницу выполним домашнее задание поставим дневник на место

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

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

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

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

если условие

то 1 -я серия иначе 2-я серия

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

В полном виде разветвляющегося алгоритма осуществляется выбор только одной серии из двух. Если высказывание истинно, тогда выполняется 1 -я серия, затем осуществляется переход к следующим операциям. Если высказывание ложно, то выполняется 2-я серия, только затем производятся следующие действия алгорит­ма. Итак, в зависимости от истинности или ложности высказывания выполняется 1 -я или 2-я серия.

Если алгоритм состоит из неполной формы команды раз­ветвления, то в случае выполнения условия выполняется "серия" и дальше продолжается выполнение алгоритма. Если условие не вы­полняется, то не выполняется ни одна команда из "серии", осуществляется действие перехода

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

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

вопросы для закрепления:

    В чем сходство и отличия между программой и алгоритмом?

    Перечислите свойства алгоритмов, выполняемых на компьютере.

    Какие способы описания алгоритмов вы знаете?

    Какими могут быть этапы решения задач на компьютере?

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

    Что вы знаете о линейных, разветвляющихся и циклических алгоритмах?

    Назовите итерационные циклы и их особенности.

Похожие публикации