Программирование процессов с циклической структурой
Цель работы: овладение практическими навыками разработки алгоритмов и программ с циклической структурой на языках Turbo Pascal и Си/С++:
1. Изучить синтаксис операторов цикла.
2. Рассмотреть циклические конструкции: циклы с предусловием и постусловием, циклы с параметром.
3. Научиться составлять циклические программы.
Теоретический материал
Операторы цикла
Циклом называется многократно исполняемый участок алгоритма (программы). Соответственно циклический алгоритм — это алгоритм, содержащий циклы.
Различают два типа циклов: с известным числом повторений и с неизвестным числом повторений. При этом в обоих случаях имеется в виду число повторений на стадии разработки алгоритма.
Существует 3 типа циклических структур:
· Цикл с предусловием;
· Цикл с послеусловием;
· Цикл с параметром;
Иначе данные структуры называют циклами типа «Пока», «До», «Для».
Любой цикл состоит из тела цикла, то есть тех операторов, которые выполняются несколько раз, начальных установок, модификации параметра цикла и проверки условия продолжения выполнения цикла (рис. 4.1).
Один проход цикла называется итерацией. Проверка условия выполняется на каждой итерации либо до тела цикла (тогда говорят о цикле с предусловием), либо после тела цикла (цикл с постусловием). Разница между ними состоит в том, что тело цикла с постусловием всегда выполняется хотя бы один раз, после чего проверяется, надо ли его выполнять еще раз. Проверка необходимости выполнения цикла с предусловием делается до тела цикла, поэтому возможно, что он не выполнится ни разу.
Рис. 4.1
Переменные, изменяющиеся в теле цикла и используемые при проверке условия продолжения, называются параметрами цикла. Целочисленные параметры цикла, изменяющиеся с постоянным шагом на каждой итерации, называются счетчиками цикла.
Начальные установки могут явно не присутствовать в программе, их смысл состоит в том, чтобы до входа в цикл задать значения переменным, которые в нем используются.
Цикл завершается, если условие его продолжения не выполняется. Возможно принудительное завершение как текущей итерации, так и цикла в целом. Для этого служат операторы break, continue, return и goto (см. л.р. № 3). Передавать управление извне внутрь цикла не рекомендуется.
Циклы в Си/С++
В Си/C++ есть три разных оператора цикла — while, do while и for.
Цикл с предусловием (while)
Цикл с предусловием реализует структурную схему, приведенную на рис. 4.1.(а).
Синтаксис:
while (УсловиеВыполнения)
{
// Инструкции цикла (тело цикла)
}
Выражение УсловиеВыполнения определяет условие повторения тела цикла, представленного простым или составным оператором. Выполнение оператора начинается с вычисления выражения. Если оно истинно (не равно false), выполняется оператор цикла.
Если при первой проверке выражение равно false, цикл не выполнится ни разу. Тип выражения должен быть арифметическим или приводимым к нему.
Выражение вычисляется перед каждой итерацией цикла.
Пример 1. Программа печатает таблицу значений функции f = х^2+1 во введенном диапазоне.
# include <iostream.h> # include <math.h> # include <conio.h> void main (){ clrscr(); float n,k,d; cout <<"VVedite nachalo, konec i shag izmeneniy"; cin >> n>>k>>d; float i=n; while (i<=k) { cout<<" "<<(pow(i,2)+1); i=i+d;} getch(); } |
Распространенный прием программирования — организация бесконечного цикла с заголовком while (true) либо while (1) и принудительным выходом из тела цикла по выполнению какого-либо условия.
В круглых скобках после ключевого слова while можно вводить описание переменной.
Областью ее действия является цикл: while (int х = 0){ ... / * область действия х */ }