Современные технологии программирования (49017)

Посмотреть архив целиком








РЕФЕРАТ



ПО ИНФОРМАТИКЕ


Современные технологии программирования

СОДЕРЖАНИЕ


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

  1. шаги (предписания) нумеруются;

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

  1. типичными шагами являются чтение (ввод) данных; обработка данных (вычисления) по формулам; сообщение (вывод) результата; проверка условия; переход к шагу с номером N; конец вычислений.

Пример: [1] Чтение А, В

[2] Если А=В, идти к [8]

[3] Если А>В, идти к [6]

[4] В=В-А

[5] Идти к [2]

[6] А=А-В

[7] Идти к [2]

[8] НОД=А

[9] Запись НОД

[10] Конец

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

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


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

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

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

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

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

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

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

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

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


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


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

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

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



Вычисление по формуле представляет собой линейный вычислительный процесс. Исходные данные a, b, c, x. Cтруктурная схема алгоритма представлена на рис. 15.

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

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

Схема циклического процесса в общем виде приведена на рис.17.

В данной схеме блоки имеют следующее назначение:

1 - блок задания начального значения параметра цикла;

2 - тело цикла, то есть участок вычислительного процесса, который многократно повторяется;

3 - блок изменения параметра цикла;

4 - блок проверки условия выхода из цикла.



  1. Циклическая разветвляющаяся структура

Схема алгоритма циклического разветвляющегося процесса представлена на рис.19.


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


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


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

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

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






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