Алгоритмы и формы их представления. Блок схемы алгоритмов

Автор работы: Пользователь скрыл имя, 18 Декабря 2012 в 22:33, курсовая работа

Краткое описание

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

Содержание

1 Понятие алгоритма и его характеристики.
2 Формы представления алгоритмов.
3 Основные алгоритмические структуры.
4. Структурное программирование.
5. Событийно-ориентированное программирование
6. Объектно-ориентированное программирование.
7. Список используемой литературы

Вложенные файлы: 1 файл

доклад алгоритмы.docx

— 110.46 Кб (Скачать файл)

 

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное образовательное  бюджетное учреждение

высшего профессионального  образования

 

Финансовый университет  при правительстве Российской Федерации

Financial University

under the government of the

Russian Federation

                                                

 

КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ

 

 

КУРСОВАЯ  РАБОТА

по дисциплине «Информатика»

на тему «Алгоритмы и формы их представления. Блок схемы алгоритмов»

 

 

 

 

 

 

 Исполнитель: 

Новожилова  Ирина Леонидовна

направление Экономика 

группа ФБ-ЭФ 119

№ зачетной книжки 125215

Руководитель:

Шмелев Вячеслав Викторович

 

 

 

 

 

Москва 2012

 

 

СОДЕРЖАНИЕ

 

1 Понятие алгоритма  и его характеристики.

2 Формы представления  алгоритмов.

3 Основные алгоритмические  структуры.

4. Структурное программирование.

5. Событийно-ориентированное  программирование

6. Объектно-ориентированное  программирование.

7.  Список используемой  литературы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Понятие  алгоритма и его характеристики

 

Подготовка задачи для решения на ЭВМ состоит  из нескольких этапов:

формулировка условия  задачи;

выбор метода ее решения (например, численного для математических задач);

разработка схемы  алгоритма;

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

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

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

Основные характеристики алгоритма: дискретность, определенность, результативность, массовость.

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Формы  представления алгоритмов

 

Существуют различные  формы представления алгоритмов:

словесное описание алгоритма на естественном языке (вербальная форма);

построчная запись алгоритма;

схема алгоритма;

запись на каком-либо языке программирования.

Рассмотрим особенности  первых двух форм на примере алгоритма  Евклида - нахождения наибольшего общего делителя (НОД) для двух целых положительных  чисел.

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

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

Построчная запись алгоритма - это запись на естественном языке, но с соблюдением некоторых  дополнительных правил:

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

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

Наиболее наглядный  способ представления алгоритмов - их изображение в виде схем - последовательности блоков, предписывающих выполнение определенных функций, и связей между ними. Внутри блоков указывается поясняющая информация, характеризующая выполняемые ими действия. Конфигурацию и размер блоков, а также порядок построения схем определяет ГОСТ 19002 и 19003.

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

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

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

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

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

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

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

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

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

 

 

 

 

3.Основные  алгоритмические структуры

 

К основным типам  алгоритмических структур относятся: линейная, разветвляющаяся и циклическая.

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

Например, составить  структурную схему алгоритма  для вычисления по формуле:

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

Циклическая структура. Очень часто встречаются процессы, когда решение задачи сводится к  многократному вычислению по одним  и тем же математическим зависимостям при различных входящих в них  величинах. Многократно повторяющиеся  участки этого вычислительного  процесса называют циклами, а сам  процесс - циклическим.

Циклическая разветвляющаяся  структура. РИС 19

 

 

 

 

 

 

 

 

 

4. Структурное  программирование

 

4.1. Разработка  алгоритмов «сверху - вниз»

 

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

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

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

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

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

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

Если технологию разработки алгоритмов «сверху - вниз » совместить с использованием только структурных схем, то получится новая  технология, которая называется структурным  программированием сверху - вниз, идея которого заключается в том, что  структура программы должна отражать структуру решаемой задачи, чтобы  алгоритм решения был ясно виден  из исходного текста. Для этого  надо иметь средства для создания программы не только с помощью трех простых операторов, но и с помощью средств, более точно отражающих конкретную структуру алгоритма. С этой целью в программирование введено понятие подпрограммы — набора операторов, выполняющих нужное действие и не зависящих от других частей исходного кода. Программа разбивается на множество мелких подпрограмм (занимающих до 50 операторов — критический порог для быстрого понимания цели подпрограммы), каждая из которых выполняет одно из действий, предусмотренных исходным заданием. Комбинируя эти подпрограммы, удается формировать итоговый алгоритм уже не из простых операторов, а из законченных блоков кода, имеющих определенную смысловую нагрузку, причем обращаться к таким блокам можно по названиям. Получается, что подпрограммы — это новые операторы или операции языка, определяемые программистом.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.2. Нисходящее  проектирование

 

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

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

Информация о работе Алгоритмы и формы их представления. Блок схемы алгоритмов