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

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

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

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

Добавлен: 29.03.2023

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

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

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

ВВЕДЕНИЕ

Благодаря развитию информатики и её проникновению в различные отрасли народного хозяйства слово "алгoритм" стало часто встречающимся и наиболее употребляемым в бытовом плане понятием для широкого круга специалистов. Более того, с переходом к информационному обществу алгоритмы становятся одним из важнейших факторов цивилизации.

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

Термин алгоритм происходит от имени средневекового узбекского математика Аль-Хорезми, который еще в IX в. (825) дал правила выполнения четырех арифметических действий в десятичной системе счисления. Процесс выполнения арифметических действий был назван алгоризмом. С 1747 г. вместо слова алгоризм стали употреблять алгорисмус, смысл которого состоял в комбинировании четырех операций арифме­тического исчисления — сложения, вычитания, умножения, деления. К 1950 г. Алгорисмус стал алгоритмом. Смысл алгоритма чаще всего связывался с алгоритмами Евклида — процессами нахождения наибольшего общего делителя двух натуральных чисел, наибольшей общей меры двух отрезков и т.п. [2].

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

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


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

1. Алгоритм и его свойства

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

Понятие алгоритма близко к другим понятиям, таким, как метод (метод Гаусса решения систем линейных уравнений), способ (способ построения треугольника по трем сторонам с помощью циркуля и линейки) [1].

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

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

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

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

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


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

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

  1. Дискретность (от лат. Discretus – разделенный, прерывистый) – это свойство предполагает, что любой алгоритм должен состоять из последовательности шагов, следующих друг за другом.
  2. Детерминированность (от лат. Determinate – определенность, точность) - это свойство указывает, что любое действие в алгоритме должно быть строго и недвусмысленно определенно и описано для каждого случая.
  3. Массовость - свойство подразумевает, что один и тот же алгоритм может применяться для решения целого класса задач, отличающихся исходными данными.
  4. Результативность (конечность) состоит в том, что при точном исполнении всех команд алгоритма процесс решения задачи должен прекратиться за конечное число шагов и при этом должен быть получен определенный постановкой задачи ответ.
  5. Понятность означает, что алгоритм должен быть понятен исполнителю, и исполнитель должен быть в состоянии выполнить его команды. Следовательно, алгоритм нужно разрабатывать с ориентацией на определенного исполнителя, то есть в алгоритм можно включать команды только из системы команд данного исполнителя [7].

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

Первое правило – при построении алгоритма, прежде всего, необходимо задать множество объектов, с которыми будет работать алгоритм. Формализованное (закодированное) представление этих объектов носит название данных. Алгоритм приступает к работе с некоторым набором данных, которые называются входными, и в результате своей работы выдает данные, которые называются выходными. Таким образом, алгоритм преобразует входные данные в выходные. Это правило позволяет сразу отделить алгоритмы от «методов» и «способов». Пока мы не имеем формализованных входных данных, мы не можем построить алгоритм.


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

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

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

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

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

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

Рисунок 1 – Способы описания алгоритма

Табличная форма представления алгоритмов применяется только для линейных вычислительных алгоритмов. Ее пример — таблице 1.

Таблица 1

R, см

3,14 R, см

3,14∙R∙R, см2

1

3,14

3,14

2

6,28

12,56

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

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

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

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

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

Графическая форма представления (применима для алгоритмов всех типов) основана на замене (кодировании) типичных алгоритмических команд определенными геометрическими фигурами.


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

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

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

Программа описание структуры алгоритма на языке алгоритмического программирования.

Диаграмма Нэсси-Шнейдермана была предложена в сочетании со структурным программированием как средство борьбы с присущей схемам алгоритмов проблемой большого количества стрелок, отображающих передачу управления на другую часть программы (так называемого «спагетти-кода»). Эта диаграмма заменяет одномерное представление вложенных операторов двумерным. Тем не менее и в этом случае по мере роста сложности программного кода проявляются проблемы отображения, поскольку элементы диаграммы быстро становятся все меньше и меньше [4]