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

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

Словесно-формульный способ записи алгоритмов.

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

Рассмотрим пример:

Пусть даны числа А, В, С. Найти число Н, равное большему из них.

Решение задачи можно получить, действуя следующим образом:

1. Вначале найдем большее из двух чисел, например А и В.

2. Если А ≥В, то примем Н=А, иначе (т.е. если А<В), примем Н=В.

3. Сравним теперь Н с С. Если Н≥С, то значение Н следует принять в качестве искомого результата. Если Н<С, то Н следует принять равным С.

Таким образом, в качестве результата получим величину Н, которая равна наибольшему из чисел А, В и С. В сущности, это уже и есть описание алгоритма решения задач.

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

1. Если А≥В, то принять Н=А и перейти к пункту 3. Иначе перейти к пункту 2.

2. Принять Н=В и перейти к следующему пункту.

3. Если Н≥С, то перейти к пункту 5, иначе перейти к следующему пункту.

4. Принять Н=С и перейти к пункту 5.

5. Стоп.

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

Графический способ записи алгоритмов.

Данный способ предполагает использование определенных графических символов - блоков. Для придания наглядности и единообразия схем алгоритмов все графические элементы стандартизированы (ГОСТ 19.003—80. Условные графические обозначения структурных схем алгоритмов и программ). Состав, наименование, обозначение основных обязательных графических символов и отображаемые ими функции в алгоритме должны соответствовать указанным в таблице. Размер а (ширина символа) должен выбираться из ряда 10, 15, 20 мм, b= 1.5* а (высота символа). Линии потока рекомендуется выполнять в два раза тоньше линий обводки блоков.

Стандартные графические элементы.

Наименование Обозначение блока Содержание
Процесс   Выполнение операции или группы операций, в результате которых изменяются значение, форма представления или расположения данных
Решение   Выбор направления выполнения алгоритма или программы в зависимости от некоторых переменных условий
Модификация   Выполнение операций, меняющих команды или группы команд, изменяющих программу
Предопределенный процесс   Использование ранее созданных и отдельно описанных алгоритмов или программ  
Ввод-вывод   Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод)  
Документ   Ввод-вывод данных, носителем которых служит бумага  
Линии потока   Указание на последовательность связей между символами  
Соединитель   Указание на связь между прерванными линиями потока, соединяющими символы  
Пуск-остановка   Начало, конец, прерывание процесса обработки данных или выполнения программы  
Комментарии   Связь между элементом схемы и пояснением  

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

В теории программирования доказано, что для записи сколько угодно сложного алгоритма достаточно следующих структур, называемых базовыми алгоритмическими структурами (БАС). К БАС относятся:

· следование;

· логическое условие;

· циклы.

БАС следование предполагает последовательное выполнение действий 1 и 2.

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

БАС логическое условие читается следующим образом: «если условие принимает значение истина, то выполняется действие 1, иначе действие 2».

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

Под циклом будем понимать многократное повторение одного или нескольких действий в соответствии с некоторым условием.

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

Циклы бывают трех видов:

· с предусловием;

· постусловием;

· фиксированным числом шагов.

Блок-схема цикла с предусловием выглядит следующим образом:

До тех пор, пока условие принимается значение «истина» выполняются операторы тела цикла. Если условие изначально принимает значение «ложь», то действия, входящие в тело цикла, не выполняются ни разу и управление передается следующему действию.

Для цикла с постусловием условие следует за телом. При этом цикл выполняется, пока условие принимает значении «ложь». Как только оно выполняется, цикл заканчивает работу. В отличие от цикла с предусловием, цикл с постусловием всегда выполняется как минимум один раз.

Цикл с фиксированным числом шагов является частным случаем циклов с пред- и постусловием.

Он всегда содержит специальную целочисленную переменную – счетчик, которая отсчитывает количество выполненных итераций. Значение счетчика меняется в интервале [n1, n2]. После каждой итерации значение счетчика увеличивается или уменьшается на величину шага h. Цикл заканчивает свою работу, как только счетчик достигнет определенного значения.

Представление алгоритмов в виде последовательности команд для ЭВМ.

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: