Файл: Алгоритмизация как обязательный этап разработки программы..pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 27.04.2023

Просмотров: 266

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

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

Люди всегда стремились облегчить свой труд с помощью механизмов и машин, а на данном витке развития цивилизации, машин «умных». Сегодня все больше и больше бытовых приборов способны самостоятельно выполнять различного рода задачи, принимая решения. Такими способностями в наше время может похвастаться даже лампочка, не говоря о гораздо более умных системах, таких как «умный дом», частью которого она - лампочка, может являться. «Умные» машины успешно применяются во всех сферах деятельности человека от сельского хозяйства до космонавтики, и в основе любой из них стоит алгоритм!

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

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

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

1.Алгоритмизация

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


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

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

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

Алгори́тм (лат. algorithmi — от арабского имени математика Аль-Хорезми) — конечная совокупность точно заданных правил решения произвольного класса задач или набор инструкций, описывающих порядок действий исполнителя для решения некоторой задачи.

В повседневности алгоритмы применимы к самым разным реальным объектам – персоналу, оборудованию. Состояние его должно быть таким, чтобы возложенные в соответствии с программой операций функции исполнялись бы успешно, качественно, без сбоев. Учитывать это важно при формулировании инструкций. Так, если речь идет о каком-либо оборудовании, его нужно предварительно собрать, почистить, протестировать, только после этого ознакомить персонал с правилами использования и начать применять инструкцию в деле.


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

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

Алгоритм решения задачи должен обладать рядом свойств:

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

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

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

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

Формализoванность – предписания алгоритма должны быть записаны на некотором формальном (искусственном) языке.

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

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

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


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

Гибкие алгоритмы: например вероятностный или стoхастический – дает программу решения задачи несколькими путями или способами, приводящими к вероятному достижению результата; эвристический алгоритм (в переводе с греческого слова «эврика») – это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений.

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

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

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

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

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

Если внимательно изучить основы алгоритмизации, можно найти подробное описание всех типов последовательностей действий. Разберем их детальнее. Линейная предполагает наличие четкой последовательности по шагам: есть первая операция, вторая и так далее. Отклонения от схемы не допускаются, вариантов корректировки не предусмотрено. Ветвление – возможность несколько корректировать последовательность. Для этого формулируются условия, решаемые в ходе предыдущих операций (одной или нескольких). Ветвление – это не переход к уже прошедшей ранее операции, а лишь выбор одного из путей продолжения последовательности. Цикл практически идентичен ветвлению, но позволяет возвращаться к операции, уже пройденной в ходе исполнения алгоритма. Наконец, в основах информатики рассматривается смешанный вариант последовательности алгоритмизованных действий. В таком будут участки линейные, циклические, ветвления – все возможные формы. Если программа, алгоритм являются сложными, можно с уверенностью говорить, что они принадлежат именно к такой форме, ее просто невозможно избежать. Причем сложность – понятие очень и очень растяжимое. То, что для обычного человека кажется элементарной задачей, при формулировании ее в виде алгоритма может превратиться длительную последовательность действий разного плана и характера. Задача алгоритмиста – учитывать все возможные состояния всех включенных в систему объектов.


1.2.Способы описания алгоритмов.

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

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

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

Блок-схема – описание структуры алгоритма с помощью геометрических фигур с линиями-связями, показывающими порядок выполнения отдельных инструкций. Этот способ имеет ряд преимуществ. Благодаря наглядности, он обеспечивает «читаемость» алгоритма и явно отображает порядок выполнения отдельных команд. В блок-схеме каждой формальной конструкции соответствует определенная геометрическая фигура или связанная линиями совокупность фигур. На этом описание структуры алгоритма остановимся и подробнее рассмотрим некоторые основные конструкции, использующиеся для построения блок-схем алгоритмов программ, регламентированные ГОСТ 1.701-90.