Какими свойствами является алгоритм
Valera
Высший разум
(218914)
8 лет назад
Свойства алгоритма
Алгоритм обладает следующими свойствами:
1. Дискретность. Это свойство состоит в том, что алгоритм должен представлять процесс решения задачи как последовательное выполнение простых шагов. При этом для выполнения каждого шага алгоритма требуется конечный отрезок времени, т. е. преобразование исходных данных в результат осуществляется во времени дискретно.
2. Определенность. Каждое правило алгоритма должно быть четким, однозначным.
3. Результативность. Алгоритм должен приводить к решению за конечное число шагов.
4. Массовость. Алгоритм решения задачи разрабатывается в общем виде, т. е. он должен быть применим для некоторого класса задач, различающихся лишь исходными данными.
5. Правильность. Алгоритм правильный, если его выполнение дает правильные результаты решения поставленной задачи.
SerGo
Высший разум
(101320)
8 лет назад
• Дискретность (прерывность, раздельность) – алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов. Каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.
• Определенность – каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.
• Понятность алгоритма — алгоритм, составленный для конкретного исполнителя, должен включать только те команды, которые входят в его систему команд.
• Результативность (конечность) – алгоритм должен приводить к решению задачи за конечное число шагов.
• Массовость – алгоритм решения задачи разрабатывается в общем виде, то есть, он должен быть применим для некоторого класса задач, различающихся только исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма.
Свойства алгоритма
Евгенний Парфенюк
Ученик
(153)
1 месяц назад
Дискретность (прерывность, раздельность) – алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов. Каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.
• Определенность – каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.
• Понятность алгоритма — алгоритм, составленный для конкретного исполнителя, должен включать только те команды, которые входят в его систему команд.
• Результативность (конечность) – алгоритм должен приводить к решению задачи за конечное число шагов.
• Массовость – алгоритм решения задачи разрабатывается в общем виде, то есть, он должен быть применим для некоторого класса задач, различающихся только исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма.
I. Дискретность
Одним из таких свойств является дискретность. Под дискретностью понимается то, что алгоритм состоит из описания последовательности шагов обработки, организованный таким образом, что в начальный момент задаётся исходная ситуация, а после каждого следующего шага ситуация преобразуется на основе данных, полученные в предшествующие шаги обработки. Дискретность алгоритма означает, что он исполняется по шагам: каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.
II. Определённость
Другое свойство принято называть определённостью. Оно означает, что на каждом шаге однозначно определено преобразование объектов среды исполнителя, полученных на предшествующих шагах алгоритма.
К примеру, в одном из кулинарных рецептов сказано:
Слегка потрясите, чтобы смесь стала комковатой. Подогрейте коньяк в маленькой кастрюльке и влейте её в смесь.
Формальному исполнителю здесь неясно, требуется ли трясти смесь, пока она вся не станет комом, и какой всё-таки величины кастрюля. Большая или маленькая? И до какой температуры надо подогреть коньяк. Так что такой алгоритм любому исполнителю выполнить довольно трудно, практически невозможно. Можно сказать, что в алгоритме не должны присутствовать не определённые слова: немного, чуть-чуть, слегка и т. д.
III. Результативность
Третье свойство — результативность алгоритма. Это свойство подразумевает, что каждый шаг (и алгоритм в целом) после своего завершения даёт среду, в которой все имеющиеся объекты однозначно определены. Если это по каким — либо причинам невозможно, то алгоритм должен сообщать, что решение задачи не существует.
К примеру, в инструкции по применению лекарства от кашля сказано:
Если врач не прописал, то принимать 3-4 раза в день по 15-20 капель, лучше всего в горячей сладкой воде.
Здесь не определено, например, когда должен заканчиваться алгоритм — когда кашель пройдет или когда лекарство закончиться. Свойство результативности обычно подразумевает конечность алгоритма, т. е. завершение его работы за конечное число шагов (при этом количество шагов может быть заранее не известным и различным для разных исходных данных) .
IV. Понятность
Надо сказать, что алгоритм должен быть понятен не только автору, но и исполнителю. Если мы предложим исполнителю, например утюгу постирать одежду, то он никогда этого не сделает, потому, что не поймет, т. к. такой программы в нём не заложено. Или, например, если мы предложим какому-нибудь мальчику испечь торт то у него, как правило, ни чего не получится, потому что этого они делать не умеют. Но если мы составим подробный алгоритм работы, разобьем его на элементарные шаги, такие, что он без труда поймёт и сможет выполнить каждый шаг, то он сможет успешно испечь любой торт. Каждый шаг алгоритма обязательно представляет собой какое-либо допустимое действие исполнителя. Это свойство алгоритма называют понятностью.
V. Массовость
Наконец, еще одно свойство алгоритма — массовость. Оно означает, что имеется некоторое множество данных, которые могут обрабатываться алгоритмом, или данный алгоритм может быть применен для решения любой задачи одного типа. Массовость алгоритма тесно связанна с понятностью, в качестве примера можно разобрать пример с тортом, и сказать, что чем подробнее будет описан алгоритм приготовления, тем больше вероятности, что торт будет испечен. Также в качестве примера можно взять руководство по эксплуатации электрических приборов, инструкции и т. д. , чем полнее изложен алгоритм работы с приборами, тем легче нам с вами будет в нем разобраться. С точки зрения практической ценность алгоритмов важно, что бы множество допустимых исходных данных было достаточно большим, как правило, практическая ценность алгоритма не велика, если его можно использовать только один раз.
Аннотация: Алгоритм является базовым понятием для тех, кто хочет начать программировать на любом языке программирования. Любая задача может быть формализована алгоритмически. Чтобы понять, с чего начать, рассмотрим основные виды алгоритмов.
Цель данной лекции – ознакомить студентов с понятием алгоритма; показать, что такая абстрактная вещь как алгоритм окружает нас в повседневной жизни.
Существует несколько определений понятия алгоритма. Приведем два самых распространенных.
Алгоритм – последовательность чётко определенных действий, выполнение которых ведёт к решению задачи. Алгоритм, записанный на языке машины, есть программа решения задачи.
Алгоритм – это совокупность действий, приводящих к достижению результата за конечное число шагов.
Вообще говоря, первое определение не передает полноты смысла понятия алгоритм. Используемое слово «последовательность» сужает данное понятие, т.к. действия не обязательно должны следовать друг за другом – они могут повторяться или содержать условие.
Свойства алгоритмов:
- Дискретность (от лат. discretus — разделенный, прерывистый) – это разбиение алгоритма на ряд отдельных законченных действий (шагов).
- Детерминированность (от лат. determinate — определенность, точность) — любое действие алгоритма должно быть строго и недвусмысленно определено в каждом случае. Например, алгоритм проезда к другу, если к остановке подходят автобусы разных маршрутов, то в алгоритме должен быть указан конкретный номер маршрута 5. Кроме того, необходимо указать точное количество остановок, которое надо проехать, скажем, три.
- Конечность – каждое действие в отдельности и алгоритм в целом должны иметь возможность завершения.
- Массовость – один и тот же алгоритм можно использовать с разными исходными данными.
- Результативность – алгоритм должен приводить к достоверному решению.
Основная цель алгоритмизации – составление алгоритмов для ЭВМ с дальнейшим решением задачи на ЭВМ.
Примеры алгоритма:
- Любой прибор, купленный в магазине, снабжается инструкцией по его использованию. Данная инструкция и является алгоритмом для правильной эксплуатации прибора.
- Каждый шофер должен знать правила дорожного движения. Правила дорожного движения однозначно регламентируют поведение каждого участника движения. Зная эти правила, шофер должен действовать по определенному алгоритму.
- Массовый выпуск автомобилей стал возможен только тогда, когда был придуман порядок сборки машины на конвейере. Определенный порядок сборки автомобилей – это набор действий, в результате которых получается автомобиль.
Существует несколько способов записи алгоритмов. На практике наиболее распространены следующие формы представления алгоритмов:
- словесная (запись на естественном языке);
- псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);
- графическая (изображения из графических символов – блок-схема);
- программная (тексты на языках программирования – код программы).
Рассмотрим подробно каждый вариант записи алгоритмов на примере следующей задачи. Требуется найти частное двух чисел.
Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке. Ответ при этом получает человек, который выполняет команды согласно словесной записи.
Пример словесной записи:
- задать два числа, являющиеся делимым и делителем;
- проверить, равняется ли делитель нулю;
- если делитель не равен нулю, то найти частное, записать его в ответ;
- если делитель равен нулю, то в ответ записать «нет решения».
Словесный способ не имеет широкого распространения, так как такие описания: строго не формализуемы; страдают многословностью записей; допускают неоднозначность толкования отдельных предписаний.
Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи. В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. Ответ при этом получает человек, который выполняет команды согласно псевдокоду.
Приведем основные управляющие структуры псевдокода в табл. 1.1.
Название структуры | Псевдокод |
---|---|
Присваивание | переменная = число |
Ввод | ввод(переменная) |
Вывод | вывод(переменная) вывод(«фраза») |
Ветвление | если условие то действие1 иначе действие2 |
Повторение | пока условие начало пока действие конец пока |
Пример псевдокода:
начало
вывод («задайте делимое и делитель»)
ввод (делимое, делитель)
если делитель ≠ 0
то частное = делимое / делитель
вывод(частное)
иначе вывод(«нет решения»)
кон алг Нахождение частного двух чисел
В данном примере используется три переменные: делимое, делитель и частное. Делимое и делитель задаются исполнителем произвольными числами. Частное считается лишь в том случае, если делитель не равен нулю.
Графическая реализация алгоритма представляет собой блок-схему. Блок-схема состоит из блоков определенной формы, соединенных стрелками. Ответ при этом получает человек, который выполняет команды согласно блок-схеме. Более подробно о блок-схемах будет рассказано в Лекции 2.
Программная реализация алгоритма – это компьютерная программа, написанная на каком-либо алгоритмическом языке программирования, например: С++, Pascal, Basic и т.д. Программа состоит из команд определенного языка программирования. Отметим, что одна и та же блок-схема может быть реализована на разных языках программирования. Ответ при этом получает ЭВМ, а не человек. Более подробно о составлении программ на языке программирования С++ смотреть Лекцию 3.
Различают три основных вида алгоритмов:
- линейный алгоритм,
- разветвляющийся алгоритм,
- циклический алгоритм.
Линейный алгоритм – это алгоритм, в котором действия выполняются однократно и строго последовательно.
Самый простой пример реализации линейного алгоритма – путь из университета домой.
Словесный способ записи данного алгоритма:
- выйти из университета на остановку;
- подождать нужный автобус;
- сесть на нужный автобус;
- оплатить проезд;
- выйти на требуемой остановке;
- дойти до дома.
Очевидно, что данный пример относится к линейному алгоритму, т.к. все действия следуют одно за другим, без условий и повторений.
Разветвляющийся алгоритм – это алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий.
Самый простой пример реализации разветвляющегося алгоритма – если на улице идет дождь, то необходимо взять зонт, иначе не брать зонт с собой.
Приведенный выше пример псевдокода по нахождению частного двух чисел также относится к разветвляющемуся алгоритму.
Циклический алгоритм – это алгоритм, команды которого повторяются некое количество раз подряд.
Самый простой пример реализации циклического алгоритма – при чтении книги будут повторяться одни и те же действия: прочитать страницу, перелистнуть и т.д.
Более подробно о линейном, разветвляющемся и циклическом алгоритмах смотреть Лекцию 2.
Краткие итоги
Любая задача может быть разбита на элементарные действия. Для любой математической задачи или ситуации из жизни можно составить алгоритм решения. Алгоритм может быть описан словесно, псевдокодом, графически или программно. Задача всегда решается с помощью базовых типов алгоритма – линейного, разветвляющегося или циклического.
Вопросы
- Что такое алгоритм?
- В чем состоит задача алгоритмизации?
- Какими свойствами обладает алгоритм?
- Какие виды алгоритма бывают?
Упражнения
- Составьте алгоритмы по походу в магазин за яблоками. Используйте линейный и разветвляющийся алгоритмы. Реализуйте их словесно.
- Составьте алгоритм по нахождению корней квадратного уравнения через дискриминант. Используйте разветвляющийся алгоритм. Реализуйте его псевдокодом.
Тест по теме «Алгоритм и его свойства»
Вариант 1
1. Алгоритм – это:
а) набор команд для компьютера;
б) отражение предметного мира с помощью знаков и сигналов, предназначенное для конкретного исполнителя;
в) понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение поставленной цели;
г) инструкция по технике безопасности.
2. Свойство алгоритма дискретность означает:
а) что команды должны следовать последовательно друг за другом;
б) что каждая команда должна быть описана в расчете на конкретного исполнителя;
в) разбиение алгоритма на конечное число простых шагов;
г) строгое движение как вверх, так и вниз.
3. На кого рассчитан алгоритм, написанный на естественном языке?
а) на человека;
б) на компьютер;
в) на робота;
г) на всех одновременно.
4. Каким способом не может быть задан алгоритм?
а) словесным;
б) формульным;
в) графическим;
г) на языке программирования.
5. Алгоритм называется циклическим, если:
а)он составлен так, что его выполнение предполагает
многократное повторение одних и тех же действий;
б) ход его выполнения зависит от истинности тех или иных условий;
в) его команды выполняются в порядке их естественного следования друг за другом независимо от каких-либо условий;
г) он составлен роботом.
6. Алгоритм включает в себя ветвление, если:
а) его команды выполняются в порядке их естественного следования друг за другом независимо от каких-либо условий;
б) он составлен так, что его выполнение предполагает многократное повторение одних и тех же действий;
в) он представим в табличной форме;
г) ход его выполнения зависит от истинности тех или иных условий.
7. К какому виду алгоритмов можно отнести алгоритм, представленный на схеме?
а) циклический с постусловием;
б) циклический с предусловием;
в) разветвляющийся с полным ветвлением;
г) разветвляющийся с неполным ветвлением.
8. Верно ли, что алгоритм – это план решения задачи?
а) да;
б) нет;
в) иногда;
г) не всегда.
9. Вставьте пропущенное слово
Структура алгоритма, все команды которого выполняются по очереди только один раз, называется………………..
10. Информацию, изложенную на доступном для получателя языке, называют:
а) полной;
б) актуальной;
в) достоверной;
г) понятной.
Тест по теме «Алгоритм и его свойства»
Вариант 2
1. Какой из документов является алгоритмом?
а) правила техники безопасности;
б) инструкция по приготовлению пищи;
в) расписание движения поездов;
г) список книг в школьной библиотеке.
2. Свойство алгоритма массовость означает:
а) что алгоритм должен обеспечивать возможность его применения для решения однотипных задач;
б) что каждая команда должна быть описана в расчете на конкретного исполнителя;
в) разбиение алгоритма на конечное число простых шагов;
г) использование любым исполнителем.
3. Назовите основное свойство алгоритма, которое обеспечивает получение результата после конечного числа шагов:
а) дискретность;
б) однозначность;
в) массовость;
г) результативность.
4. Графическое представление алгоритма – это:
а) способ представления алгоритма с помощью геометрических фигур;
б) схематичное изображение в произвольной форме;
в) представление алгоритма в форме таблиц;
г) представление алгоритма в виде графика.
5. Алгоритм структуры «ветвление» предусматривает…
а) выбор условий;
б) выбор алгоритмов;
в) выбор команд (действий);
г) выбор исполнителя.
6. Свойством алгоритма является:
а) цикличность;
б) возможность выполнения алгоритма в обратном порядке;
в) результативность;
г) возможность изменения последовательности выполнения команд.
7. К какому виду алгоритмов можно отнести алгоритм, представленный на схеме?
а) циклический с постусловием;
б) циклический с предусловием;
в) разветвляющийся с полным ветвлением;
г) разветвляющийся с неполным ветвлением.
8. Верно ли, что дрессированные животные могут быть исполнителями алгоритмов?
а) да;
б) нет;
в) иногда;
г) не всегда.
9. Вставьте пропущенное слово
Форма организаций действий, при которой выполнение одной и той же последовательности команд повторяется, пока выполняется некоторое заранее установленное условие, называется……………………….
10. Информацию, не зависящую от личного мнения, называют:
а) актуальной;
б) объективной;
в) полезной;
г) понятной.
Тест по теме «Алгоритм и его свойства»
Вариант 3
1. Линейный алгоритм – это:
а) способ представления алгоритма с помощью геометрических фигур;
б) набор команд, которые выполняются последовательно друг за другом;
в) понятное и точное предписание исполнителю для выполнения различных действий;
г) строгое движение как вверх, так и вниз.
2. Свойство алгоритма определённость означает:
а) что команды должны следовать последовательно друг за другом;
б) разбиение алгоритма на конечное число простых шагов;
в) использование любым исполнителем;
г) состоит в совпадении получаемых результатов независимо от пользователя и применяемых технических средств.
3. Человек или какое-либо устройство, исполняющее алгоритм называется:
а) автоматом;
б) исполнителем;
в) управляющим человеком или устройством;
г) роботом.
4. Алгоритм называется циклическим, если:
а)он составлен так, что его выполнение предполагает многократное повторение одних и тех же действий;
б) ход его выполнения зависит от истинности тех или иных условий;
в) его команды выполняются в порядке их естественного следования друг за другом независимо от каких-либо условий;
г) он состоит только из одних символов.
5. Алгоритм, записанный на специальном языке, понятном компьютеру, — на языке программирования, называется…
а) компьютерная среда ;
б) программа;
в) система команд исполнителя ;
г) блок-схема.
6. Свойство алгоритма, заключающееся в том, что каждое действие и алгоритм в целом должны иметь возможность завершения, называется…
а) дискретность;
б) конечность;
в) результативность;
г) массовость.
7. К какому виду алгоритмов можно отнести алгоритм, представленный на схеме?
а) циклический с постусловием;
б) циклический с предусловием;
в) разветвляющийся с полным ветвлением;
г) разветвляющийся с неполным ветвлением.
8. Верно ли, что актуальность является свойством алгоритма?
а) да;
б) нет;
в) иногда;
г) не всегда.
9. Вставьте пропущенное слово
Форма организаций действий, при которой в зависимости от выполнения некоторого условия совершается одна или другая последовательность шагов, называется…………….
10.Информацию, существенную и важную в настоящий момент, называют:
Б) актуальной;
В) достоверной;
Г) объективной;
Д) полной.
Тест по теме «Алгоритм и его свойства»
Вариант 4
1. В расчете на кого должен строиться алгоритм?
а) в расчете на компьютер;
б) в расчете на умственные способности товарища;
в) в расчете на конкретного исполнителя;
г) на всех одновременно.
2. Свойство алгоритма результативность означает:
а) что каждая команда должна быть описана в расчете на конкретного исполнителя;
б) что выполнение всех команд алгоритма должно привести к определенному результату;
в) что алгоритм должен состоять из команд, однозначно понимаемых исполнителем;
г) разбиение алгоритма на конечное число простых шагов.
3. Какое из понятий не является свойством алгоритма?
а) цикличность;
б) массовость;
в) конечность;
г) дискретность.
4. Графическое представление алгоритма – это:
а) способ представления алгоритма с помощью геометрических фигур;
б) схематичное изображение в произвольной форме;
в) представление алгоритма в форме таблиц;
г) представление алгоритма в виде графика.
5. Какой тип алгоритмической структуры необходимо применить, если последовательность команд выполняется или не выполняется в зависимости от условия
а) цикл;
б) ветвление;
в) линейный;
г) смешанный.
6. Свойство алгоритма, заключающиеся в том, что алгоритм должен состоять из конкретных действий, следующих в определенном порядке, называется…
а) определённость;
б) массовость;
в) результативность;
г) дискретность.
7. К какому виду алгоритмов можно отнести алгоритм, представленный на схеме?
а) циклический с постусловием;
б) циклический с предусловием;
в) разветвляющийся с полным ветвлением;
г) разветвляющийся с неполным ветвлением.
8.Верно ли, что дискретность является свойством алгоритма?
а) да;
б) нет;
в) иногда;
г) не всегда.
9. Вставьте пропущенное слово
Конечная последовательность шагов в решении задачи, приводящая от исходных данных к требуемому результату, называется ………….
10. Информацию, достаточную для решения поставленной задачи, называют:
а) актуальной;
б) полной;
в) достоверной;
г) понятной.
ЭТАЛОН ОТВЕТОВ К ТЕСТУ
«АЛГОРИТМ И ЕГО СВОЙСТВА»
вопроса
Вариант
№1
Вариант
№ 2
Вариант
№ 3
Вариант 4
1
в
б
б
в
2
в
а
г
б
3
а
г
б
а
4
г
а
а
а
5
а
а
б
б
6
г
в
б
а
7
в
б
г
а
8
а
а
б
а
9
линейным
циклом
ветвлением
алгоритмом
10
г
в
б
б