Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
142
Добавлен:
21.04.2014
Размер:
41.47 Кб
Скачать

Разветвляющиеся и циклические алгоритмы. Команды ветвления и повторения

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

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

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

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

Алгоритм “Нахождение корней квадратного уравнения”

Внутр. перем.

A, B, C, D : вещ.

X1, X2 : вещ.

Начало

Ввод (А, В, С)

Если А=0 то

Вывод(‘Уравнение не является квадратным’)

Иначе

D:= B*B-4*A*C

Если D < 0 то

Вывод( ‘Корней нет’)

Иначе

X1:= (-B -√D)/(2*A)

X2:= (-B+ √D)/(2*A)

Вывод ( ‘X1 =’,X1,’X2 =’,X2).Конец

Выполнение алгоритма осуществляется в следующем порядке. После ввода значений коэффициентов производится проверка значения A. При А=0 уравнение становится линейным и дальнейшие действия не имеют смысла. Компьютер сообщает нам об этом, и выполнение алгоритма прекращается. Если значение А отлично от 0, производится вычисление дискриминанта, а затем – его проверка. При D<0 уравнение корней не имеет, о чем сообщается пользователю, и выполнение алгоритма опять должно прекратиться. В другом случае производится вычисление значений X1 и X2.

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

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

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

Пример конструкции "цикл - пока" в фрагменте алгоритма:

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

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

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

Цикл со счетчиком  записывается следующим образом:

Цикл  - для <сч> от <нач> до <кон>

тело - цикла

Кцикл

Здесь 

  • <сч> - имя переменной целого типа, выполняющей функции счетчика числа повторений тела цикла ( ее называют также счетчиком или параметром цикла);

  • < нач > -  целочисленное выражение, которое задает начальное значение счетчика цикла;

  • < кон > - целочисленное выражение, которое задает конечное значение счетчика цикла; при этом полагается, что с каждым повторением тела цикла значение счетчика изменяется ( увеличивается или уменьшается ) на единицу.

Изложим принцип выполнения цикла для случая, когда с каждым повторением тела цикла значение счетчика увеличивается на 1. 

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

Если это условие истинно, выполняется тело цикла. После этого значение счетчика увеличивается на 1, и производится возврат в начало цикла, где вновь проверяется соотношение текущего и конечного значений счетчика цикла. 

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

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

Соседние файлы в папке новая папка