Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Базовые алгоритмические конструкции




Различают три базовые алгоритмические структуры:

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

· ветвление,

· повторение.

Структура следование состоит из двух команд с указанной очередностью их выполнения и имеет вид:

<команда – предшественник>;

<команда – преемник>.

Такую структуру ещё называют линейным вычислительным процессом, в котором этапы вычислений выполняются в линейной последовательности и каждый этап выполняется только один раз. На схеме блоки размещаются сверху вниз в порядке их выполнения. Для таких процессов характерно, что направление вычислений не зависит от исходных данных или промежуточных результатов. В виде блок-схемы линейный вычислительный процесс можно представить следующим образом:

 

 

Структура типа ветвление в полной форме состоит из некоторого условия, проверяемого на истинность при выполнении структуры, команды, выполняемой при выполнении проверяемого условия, и команды, выполняемой при невыполнении условия.

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

Структура имеет вид

if <условие>

then <команда, выполняемая при выполнении условия>

else <команда, выполняемая при невыполнении условия>;.

 

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

.

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

Цикл с проверкой условия до исполнения действия (с предусловием). Действие может не исполниться ни одного раза.

Цикл с проверкой условия после исполнения действия (с постусловием). Действие обязательно исполнится хотя бы один раз.

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

Этот цикл выполняется по правилу: для начального значения переменной выполняются команды тела цикла по порядку и затем проверяется, превысило ли текущее значение переменной ее заданного конечного значения; если превысило – цикл заканчивается, иначе значение переменной увеличивается на единицу и снова повторяется тело цикла и т.д.

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

Для организации цикла необходимо предусмотреть:

· задание начального значения параметра цикла - переменной, которая будет изменяться при повторении цикла;

· изменение значения этой переменной перед каждым новым повторением цикла;

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

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

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

· последовательности двух или более операторов;

· выбора (ветвления);

· повторения (цикла).

Эти структуры, имеющие единственный вход и единственный выход допускают включение их во все линейные блоки («действия») в любых комбинациях.

Э. Дейкстра в 1975г. предложил отказаться от оператора безусловного перехода и ограничиться этими тремя конструкциями. Дональд Кнут продемонстрировал случаи, в которых оператор безусловного перехода (GOTO) оказывался полезным (например, выход из нескольких вложенных циклов) и подверг критике утверждение Э.Дейкстры. Академик В.М. Глушков обратил внимание на то, что структурированные программы можно рассматривать как формулы в некоторой алгебре. Зная правила преобразования выражений в такой алгебре, можно осуществлять глубокие формальные (и, следовательно, автоматизированные) преобразования программ.

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

Контрольные вопросы и задания

1. Дайте определение алгоритма, укажите его свойства.

2. Каковы способы записи алгоритмов?

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

4. Что такое алгоритмический язык и какими свойствами он должен обладать?




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 3207; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.