Добавлен: 31.03.2023
Просмотров: 71
Скачиваний: 1
Некоторые считают, что алгоритмизация – это в первую очередь процесс переформатирования данных в более упорядоченный вид. Сперва исследуется исходная ситуация, анализируется сопровождающая ее информация, документация, особенности, пожелания. Одновременно с этим алгоритмизация – это вполне четкая и ограниченная по масштабу задача создания инструкций. Она имеет свои сложности и особенности.
Принято говорить о таких объектах, которые могут совершать действия, а также тех, над которыми таковые производятся. Для каждого объекта характерно некоторое определенное состояние и возможность перехода между ними. Знание полного набора атрибутики позволяет создать корректный и точный алгоритм, который будет работать, не требуя дополнительных действий, за исключением уже вписанных в программу.
Ключевое условие, первое, которое проверяется применительно к объекту – присутствие его именно в таком состоянии, которое допускает исполнение предусмотренных алгоритмом функций. В случае если объект не прошел предварительную подготовку, он неисправен, не подходит (словом, любое препятствие), состояние становится неработоспособным, следовательно, действия, предписанные алгоритмом, не могут выполняться.
В повседневности алгоритмы применимы к самым разным реальным объектам – персоналу, оборудованию. Состояние его должно быть таким, чтобы возложенные в соответствии с программой операций функции исполнялись бы успешно, качественно, без сбоев. Учитывать это важно при формулировании инструкций. Так, если речь идет о каком-либо оборудовании, его нужно предварительно собрать, почистить, протестировать, только после этого ознакомить персонал с правилами использования и начать применять инструкцию в деле.
Применительно к машинному алгоритму ситуация сходная, разве что в качестве объекта будут выступать устройства, а сами шаги обычно должны быть более детальными, дабы аппарат смог правильно их интерпретировать и исполнить. При этом последовательность должна быть предельно четкой, иначе агрегат просто не сможет догадаться – ведь это не человек, обладающий волей, интуицией, способностью рассуждать на примере уже полученного опыта [8].
Важное понятие – алгоритмизация обучения. Оно предполагает составление такой последовательности действий, которая поможет научить целевой объект (машину или человека) исполнять заданные операции. В качестве начального этапа рассматривается состояние полного отсутствия знаний и представлений о целевом объекте. Алгоритм обучения должен содержать такую последовательность операций, которая позволит получить объекту представление о процессе, полезную информацию, применяемую дальше на практике. Формулирование сложных и эффективных алгоритмов обучения в последнее время стало особенной областью внимания передовых умов нашего мира в силу повышения интереса к искусственному интеллекту и обучаемости машин.
Алгоритм обучения начинается с рассмотрения простейших задач. Если предстоит работа с людьми, то даются поручения, которые позволяют освоить базовые понятия и процессы системы. Постепенно задачи усложняются, и в какой-то момент объекты алгоритма обучения могут не просто с легкостью решать поставленные перед ними задачи, но и учить других – особенно актуально это, конечно, применительно к людям.
Глава 2 Основные алгоритмические конструкции в программировании
Для создания любых программ необходимы основные алгоритмические конструкции. Следование является наиболее простым вариантом решения задач. Его можно использовать, например, для работы с однотипными примерами. Существуют и другие типы: ветвление и цикл. О них будет рассказано в данной статье. Но сперва нужно понять, что же собой представляет алгоритм в целом.
Слово «алгоритм» пошло от латинского algoritmi. Что же оно означает? Аутентичное слово произошло от имени математика, деятельность которого пришлась на IX век. Благодаря трактату аль-Хорезми человечество смогло познакомиться с основным типом алгоритмической конструкции и вообще с общим понятием [6].
Ранее была принята форма написания слова – «алгорифм». Сейчас она используется лишь в некоторых случаях.
Алгоритм – процесс, который означает изменение исходных данных, происходящее в виде дискретных шагов. С этим понятием каждый человек сталкивается в жизни, кем бы он ни был. Алгоритмами вполне можно назвать приготовление чая или пищи, умножение или сложение, решение уравнений и т. д. Вся бытовая техника, чей процесс работы автоматизирован, функционирует за счет четких шагов, прописанных в памяти процессора. Такие алгоритмы называются бытовыми. Есть и другие типы. Рассмотрим их.
2.1 Виды алгоритмов
Основные алгоритмические конструкции разбиваются на несколько типов, о которых и будет идти речь в данном подпункте. Какие они бывают?
1.Информационные. Такие алгоритмы работают с большим количеством данных, но сам объем процесса их обработки маленький по длине и несложный.
2.Управляющие. Работа таких алгоритмов связана с информацией, которая предоставляется от того или иного источника. После ее получения отправляются специальные сигналы, гарантирующие работу устройств.
3.Вычислительные. В отличие от информационных алгоритмов, описываемые работают с маленькими объемами данных, но производят большой процесс работы.
По сути, алгоритмом является точная до мельчайших подробностей инструкция. Однако не все такие данные можно назвать описываемым понятием. Чтобы понять, алгоритм инструкция или нет, следует ее проверить на наличие определенных свойств.
Все основные алгоритмические конструкции должны иметь действия, которые им «подчиняются». Рассмотрим этот вопрос более подробно.
Если полностью отследить работу алгоритмов и их свойства, можно увидеть, что необязательно понимать их составляющие, достаточно четко соответствовать плану. Верный результат будет получен, даже если просто механически придерживаться нужных действий. Из этого можно сделать вывод, что из-за отсутствия смысла в осознании действий, алгоритм вполне реально отдать на реализацию ЭВМ. Иными словами, для автоматизированных устройств необходимо наличие данного процесса.
Какие же свойства должны иметь основные алгоритмические конструкции для максимально точной работы?
1.Понятность. Каждая команда должна быть максимально понятна выполняемому объекту. Вроде бы ничего легче, чем, например, нарисовать точку в центре, нет, но пока не будет прописана команда, которая позволит выполнить действие, сделать это не удастся.
2.Результативность. Что подразумевает данное свойство? Обязательное получение результата. Алгоритм не может не привести к какому-то ответу. Из-за ошибки можно получить не тот результат, который был желаемым, но все же он будет. Более того, ответ должен быть получен через определенное число шагов.
3.Массовость. Любой алгоритм должен быть применимым к какому-то классу задач. Между собой они могут различаться исходными данными.
4.Определенность. Каждое действие должно иметь лишь одно значение и не давать возможности для производной расшифровки. В идеале, сколько бы программа ни запускалась, результат должен быть одним и тем же всегда.
5.Дискретность. Алгоритм – последовательное выполнение шагов. Каждый шаг является командой, пропускать или добавлять новые нельзя [11].
6.Корректность. Любой алгоритм, применимый к какому-нибудь роду задач, должен быть правильным для всех. В программировании часто появляются проблемы не в написании шагов, которое зачастую не требует много времени, а в выполнении их для различного рода вопросов. Поэтому важным этапом будет отладка алгоритма. Могут в этом помочь и основные алгоритмические конструкции, повторение которых позволит добиться лучших результатов.
Если говорить о способах записи алгоритмов, то следует выделить следующие:
•Словесный. Иными словами, на языке, которым удобно изъясняться составляющему.
•Табличный. По логике вещей, алгоритм записывается в таблицы и, как правило, используется в качестве вспомогательного элемента.
•Формульно-словесный. В основу взят словесный способ изъяснения, но в такие действия также записываются математические формулы или символы.
•Графический. Такой алгоритм записан на специальном языке блок-схем.
Следует пояснить последний пункт. Что собой представляет блок-схема? Это линейный или нелинейный алгоритм, шаги которого записаны с помощью специальных блоков. Они имеют свою конфигурацию, назначение и функцию. В случае такого описания, алгоритм записывается блок-схемами, которые связаны между собой линиями. В них необходимо дополнительно записать то или иное действие (шаг).
2.2 Алгоритмические конструкции
Некоторые утверждают, что алгоритмы имеют не 3 вида, а 4. Основные алгоритмические конструкции: линейные, разветвляющиеся, циклические. С чем связано такое заблуждение, непонятно. Однако для простого решения сложных проблем ЭВМ использует алгоритмы этих трех достаточно больших групп. Рассмотрим их.
1.Линейный. Такой вычислительный процесс получил данное название за счет того, что все действия выполняются в линейной последовательности, при этом каждый шаг выполняется не более одного раза. Если рассматривать схему задачи, то блоки в ней размещаются один под другим в зависимости от порядкового номера выполнения. Линейные алгоритмы работают таким образом, что от исходных данных не меняется направление и смысл действий. Такой способ решения подойдет для вычисления суммы или разности, площади фигуры или ее периметра и т. п. Основным типом алгоритмической конструкции является именно он.
2.Разветвляющийся. Этот вычислительный процесс подразумевает наличие логического выражения (далее ЛВ) и выбора условия (ветви «ложь» и «правда»). В каждом случае реализуется лишь одна из двух и более команд. Нет задач и не может быть, в которых будут выполнены еще и другие варианты. Если в алгоритме две ветви, он простой, если больше двух – сложный. Причем последний процесс легко представляется за счет первого. Основным типом алгоритмической конструкции является как первый пункт, так и второй. Следующий вид тоже входит в этот список.
3.Циклический. В таком алгоритме обязательно будет элемент, повторяющийся многократно, при этом используются разные исходные данные. Иными словами, такой процесс называется циклом.
Нужно заметить, что все основные алгоритмические конструкции (следование, ветвление, цикл) взаимосвязаны друг с другом, хотя и могут использоваться отдельно.
Создание циклов и их виды
•Счетчик цикла. Это переменная, которая задает начальное значение, и при повторении действия она будет изменяться. Обязательно она должна входить в алгоритм. Основные алгоритмические конструкции циклового типа работать без нее не будут.
•Смена показателя вышеописанных данных перед новым повторением самого цикла.
•Проверка условия, чтобы ЭВМ решила, следует ли снова «прокручивать» цикл или больше в этом нет нужды.
Циклы могут быть детерминированными и итерационными. Первые представляют собой повтор действий с уже известным количеством повторений. Итерационный цикл – тот, который повторяется неопределенное количество раз, пока условие не станет правдой или ложью [7].
Базовый алгоритм
Стоит запомнить то, что к основным алгоритмическим конструкциям не относится базовый алгоритм. Что он собой представляет? Данное понятие уже давно не встречается в современной литературе, однако это не значит, что его и вовсе больше не существует. Учитывая, что в решении задач может встретиться несколько ветвлений или повторений, можно выделить следующее заключение. Основные алгоритмические конструкции (линейные, разветвляющие, циклические) являются базовыми. По сути, они представляют собою «структурную единицу» каждой так называемой инструкции.
Линейные алгоритмы
Как уже понятно из вышенаписанного, алгоритмы бывают линейные и нелинейные. Рассмотрим первый вариант. Почему он так называется? Все предельно просто. Дело в том, что все действия, которые воспроизводятся в алгоритме, имеют четко последовательное выполнение, все шаги выполняются строго друг за другом. Как правило, такие задачи небольшие и имеют низкий уровень сложности.
Примером линейного алгоритма может быть процесс приготовления чая:
1.Налить воды в чайник.
2.Поставить чайник на плиту закипать.
3.Взять чашку.
4.Насыпать в чашку чай.
5.Добавить сахар.
6.После кипения налить в чашку кипяток.
7.Взять ложку.
8.Перемешать сахар.
Программирование основных алгоритмических конструкций - достаточно тяжелое дело, но если речь идет о линейных алгоритмах, то зачастую реализовать их очень легко.
Разветвляющиеся алгоритмы
Как понять, что алгоритм является разветвляющимся? Достаточно убедиться в наличии выбора из двух или более вариантов действия, в зависимости от выполнения или невыполнения условия. Каждый путь называется ветвью.