Каким свойствам характеризуется алгоритмам

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

Что такое алгоритм?

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

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

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

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

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

Это — не определение в математическом смысле слова, а, скорее, описание интуитивного понятия алгоритма, раскрывающее его сущность.

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

2. Что такое «Исполнитель алгоритма»?

Исполнитель алгоритма — это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом.

Исполнителя хаpактеpизуют:

  • сpеда;
  • элементаpные действия;
  • cистема команд;
  • отказы.

Сpеда (или обстановка) — это «место обитания» исполнителя. Напpимеp, для исполнителя Pобота из школьного учебника сpеда — это бесконечное клеточное поле. Стены и закpашенные клетки тоже часть сpеды. А их pасположение и положение самого Pобота задают конкpетное состояние среды.

Система команд. Каждый исполнитель может выполнять команды только из некотоpого стpого заданного списка — системы команд исполнителя. Для каждой команды должны быть заданы условия пpименимости (в каких состояниях сpеды может быть выполнена команда) и описаныpезультаты выполнения команды. Напpимеp, команда Pобота «ввеpх» может быть выполнена, если выше Pобота нет стены. Ее pезультат — смещение Pобота на одну клетку ввеpх.

После вызова команды исполнитель совеpшает соответствующее элементаpное действие.

Отказы исполнителя возникают, если команда вызывается п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итма.

Источник

Для алгоритма можно выделить семь характеризующих его параметров:
• совокупность возможных исходных данных;
• совокупность возможных результатов;
• совокупность возможных промежуточных результатов;
• правила начала;
• правило непосредственной переработки;
• правило окончания;
• правило получения результата;


Алгоритм имеет следующие свойства.

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

Определенность – выполнив очередную операцию, исполнитель должен то-чно знать, что ему делать дальше.

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

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

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

Пример. Всегда ли алгоритм дает точное решение? На простом примере алгоритмов де-ления в столбик и вычисления квадратного корня можно видеть, что, например, при вычи-слениях 20:3 и , мы получаем только приблизительное решение.

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

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

Для решения одного и того же класса задач существуют разные алгоритмы, разной сложности.
Большинство практических алгоритмов, с которыми работают программисты, являются полиномиальными. Но не всякая задача может быть решена за полиномиальное время. Некоторые решаются лишь за экспоненциальное, а некоторые вообще не могут быть решены никаким алгоритмом.
Имеется особый класс задач, называемый «NP-полными» задачами. Для этих задач не известны полиномиальные алгоритмы, однако и не доказано, что таких алгоритмов не существует. Для программиста знание о NP-полных зада-чах важно по следующей причине. Если для некоторой задачи удалось доказать, что она NP-полная, то есть основания считать ее практически неразрешимой. В этом случае лучше потратить время на построение приближенного алгоритма, чем продолжать искать быстрый алгоритм, решающий ее точно.

Можно сделать следующие замечания, касающиеся свойств алгоритмов:

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

Источник

ПОНЯТИЕ АЛГОРИТМА.
СВОЙСТВА АЛГОРИТМА. ВИДЫ АЛГОРИТМОВ. СПОСОБЫ ОПИСАНИЯ АЛГОРИТМОВ

Алгоритмом называется
точное и понятное предписаниe исполнителю совершить последовательность
действий, направленных на решение поставленной задачи. Слово «алгоритм»
происходит от имени математика Аль Хорезми, который сформулировал правила
выполнения арифметических действий. Первоначально под алгоритмом понимали
только правила выполнения четырех арифметических действий над числами.
В дальнейшем это понятие стали использовать вообще для обозначения последовательности
действий, приводящих к решению любой поставленной задачи. Говоря об алгоритме
вычислительного процесса, необходимо понимать, что объектами, к которым
применялся алгоритм, являются данные. Алгоритм решения вычислительной
задачи представляет собой совокупность правил преобразования исходных
данных в результатные.

Читайте также:  Какое свойство кода называется триплетностью

Основными свойствами
алгоритма являются:

  1. детерминированность
    (определенность). Предполагает получение однозначного результата вычислительного
    процecca при заданных исходных данных. Благодаря этому свойству процесс
    выполнения алгоритма носит механический характер;
  2. результативность.
    Указывает на наличие таких исходных данных, для которых реализуемый
    по заданному алгоритму вычислительный процесс должен через конечное
    число шагов остановиться и выдать искомый результат;
  3. массовость. Это
    свойство предполагает, что алгоритм должен быть пригоден для решения
    всех задач данного типа;
  4. дискретность.
    Означает расчлененность определяемого алгоритмом вычислительного процесса
    на отдельные этапы, возможность выполнения которых исполнителем (компьютером)
    не вызывает сомнений.

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

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

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

При всем многообразии
алгоритмов решения задач в них можно выделить три основных вида вычислительных
процессов:

  • линейный;
  • ветвящийся;
  • циклический.

Линейным
называется такой вычислительный процесс, при котором все этапы решения
задачи выполняются в естественном порядке следования записи этих этапов.

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

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

Источник

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

Исполнители алгоритмов (назначение, среда, режим работы, система команд).

Компьютер как формальный исполнитель алгоритмов (программ).

Цель урока:

  1. Дать понятие алгоритму и его свойствам.

  2. Воспитание умения слушать учителя.

  3. Развитие познавательного интереса.

План урока:

  1. Постановка цели урока.

  2. Проверка домашнего задания.

  3. Объяснение нового материала.

  4. Примеры алгоритмов.

  5. Домашняя работа.

  6. Подведение итогов урока.

Ход урока

I. Организация начала урока.

II. Актуализация знаний.

III. Постановка целей и задач.

IV. Объяснение нового материала.

V. Закрепление изученного на уроке.

VI. Информация о домашнем задании.

VII. Подведение итогов урока.

Объяснение нового материала.

Появление алгоритмов связывают с зарождением математики. Более 1000 лет назад (в 825 году) ученый из города Хорезма Абдулла (или Абу Джафар) Мухаммед бен Муса аль-Хорезми создал книгу по математике, в которой описал способы выполнения арифметических действий над многозначными числами. Само слово алгоритм возникло в Европе после перевода на латынь книги этого математика.

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

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

1. Достать ключ из кармана.
2. Вставить ключ в замочную скважину.
3. Повернуть ключ два раза против часовой стрелки.
4. Вынуть ключ.

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

Читайте также:  Какие свойства биссектрис треугольника

Свойства алгоритмов:

1. Дискретность (алгоритм должен состоять из конкретных действий, следующих в определенном порядке);
2. Детерминированность (любое действие должно быть строго и недвусмысленно определено в каждом случае);
3. Конечность (каждое действие и алгоритм в целом должны иметь возможность завершения);
4. Массовость (один и тот же алгоритм можно использовать с разными исходными данными);
5. Результативность (отсутствие ошибок, алгоритм должен приводить к правильному результату для всех допустимых входных значениях).

Виды алгоритмов:

1. Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке);
2. Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено задание);
3. Разветвляющий алгоритм (алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий) 
4. Вспомогательный алгоритм (алгоритм, который можно использовать в других алгоритмах, указав только его имя).

Для более наглядного представления алгоритма широко используется графическая форма — блок-схема, которая составляется из стандартных графических объектов.

Стадии создания алгоритма:

1. Алгоритм должен быть представлен в форме, понятной человеку, который его разрабатывает.
2. Алгоритм должен быть представлен в форме, понятной тому объекту (в том числе и человеку), который будет выполнять описанные в алгоритме действия.

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

Исполнитель — объект, который выполняет алгоритм.

Идеальными исполнителями являются машины, роботы, компьютеры…

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

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

Компьютер – автоматический исполнитель алгоритмов.

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

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

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

Пример №1.

Составьте алгоритм вычисления выражения

у=2х+в, х=5, в=5. На языке блок-схем:

На естественном языке:

1.х=5

2. В=5

3.у=2х+в

4. Напечатать у

Решение задач ЕГЭ А8

a = 9876
b = (a div 1000)*5 mod 10
a = (b*10)+a div 100

{div и mod – операции, вычисляющие результат деления нацело первого аргумента на второй и остаток от деления соответственно}

a = 9876
b = mod(div(a,1000)*5, 10)

a = (b*10)+div(a,100)

|div и mod – функции, вычисляющие результат деления нацело первого аргумента на второй и остаток от деления соответственно

1)

a = 148, b = 5

2)

a = 148, b = 16

3)

a = 4, b = 148

4)

a = 5, b = 45

  • Например, дано 2348 (mod или div) 100. Делим 2348 на 100. Получаем 23,48.

  • Справа от запятой mod,

  • слева div.

  • Приоритеты операций: *, /, DIV, MOD, +, -.

23, 48

divmod

Закрепление изученного на уроке.

b:= (adiv 10) + 14;
a:= (bmod 10) + 2;
{
div и mod – операции, вычисляющие результат деления нацело первого аргумента на второй и остаток от деления соответственно}

a:= 3 + 8*4
b:= div(a,10) + 14
a:= mod(b, 10) + 2
|d
iv и mod – функции, вычисляющие результат деления нацело первого аргумента на второй и остаток от деления соответственно

Информация о домашнем задании.

  • § 4.1 ; 4.2

  • Вопросы в конце параграфа

Подведение итогов урока.

Литература

  • Н.Д.Угринович «Информатика и ИКТ» для 11 класса

  • Л.З. Шауцукова Л.З. «Информатика» для 10-11класса

  • Материалы сайта: https://www.alleng.ru

  • А.Г. Гейн,  А.И. Сенокосов, Н.А. Юнерман «Информатика»

Источник