- •Лабораторная работа № 2 Программирование алгоритмов линейной, ветвящейся и циклической структуры
- •Теоретические положения
- •Операторы присваивания и отношения
- •Условный оператор
- •Оператор переключатель
- •Оператор for
- •Оператор while
- •Оператор do…while
- •1. Задания по теме «Алгоритмы линейной структуры»
- •2. Задания по теме: «Ветвящиеся алгоритмы»
- •3. Задания по теме: "Циклические алгоритмы"
- •Варианты заданий
Оператор for
Оператор цикла for имеет следующий формат:
for ([ выражение инициализации ]; [ условное выражение ];[ выражение итерации ])
{
оператор;
...
}
Выражение инициализации используется для установки начального значения переменных, управляющих циклом. Условное выражение – это выражение, определяющее условие, при котором операторы цикла будут выполняться. Выражение итерации определяет изменения переменных, управляющих циклом после каждого его выполнения.
Схема выполнения оператора for:
1. Вычисляется выражение инициализации;
2. Вычисляется условное выражение;
3. Если значение условного выражения равно 1 (истина), выполняются операторы цикла. Операторы могут быть либо пустыми, либо простыми, либо составными;
4. Вычисляется выражение итерации;
5. Вновь вычисляется условное выражение;
6. Как только условное выражение становится равным нулю (ложным), управление передается на оператор, следующий за оператором for.
Пример:
#include<stdio.h>
main( )
{
int i;
for (i=0;i<10;i++)
printf(“ квадрат числа %d =%d\n”, i, i*i);
}
В этой программе вычисляются квадраты чисел от 0 до 9.
Существенно то, что проверка условия всегда выполняется в начале цикла. Это означает, что цикл может ни разу не выполниться, если условное выражение сразу окажется ложным.
Допускаются некоторые варианты оператора for. Можно использовать несколько переменных управляющих циклом.
Например:
for (int i=0; j=100; i<j; i++, j--);
{
оператор;
...
}
Этот цикл будет выполняться до тех пор, пока i<j.
Другим вариантом использования оператора for является бесконечный цикл. Для организации бесконечного цикла можно использовать пустое условное выражение в заголовке оператора for.
Пример простейшего бесконечного цикла:
for (;;) {операторы}
Для выхода из такого цикла обычно используется оператор break.
Так как по синтаксису языка Си оператор может быть пустым, тело оператора for также может быть пустым. Такой формат оператора может использоваться для организации задержки выполнения.
Например:
for (i=0; i<100000; i++);
Оператор while
Оператор цикла while имеет следующий формат:
while ( выражение )
{
оператор;
...
}
Выражение и операторы могут быть любыми допустимыми в языке Си.
Схема выполнения оператора while:
1. Вычисляется выражение;
2. Если выражение ложно (равно нулю), то тело оператора while не выполняется, а управление передается на следующий за while оператор;
3. Если выражение истинно (1), то тело оператора while выполняется;
4. Процесс повторяется с пункта 1.
Оператор while удобно использовать в тех случаях, когда тело цикла не всегда надо выполнять. Он заменяет необходимость отдельной проверки перед циклом.
Оператор do…while
Оператор цикла do используется в тех случаях, когда тело цикла должно выполниться хотя бы один раз.
Формат оператора do:
do
{
оператор;
...
}
while ( выражение );
Схема выполнения оператора do:
Выполняется оператор.
Вычисляется выражение.
Если выражение не равно нулю (истинно), то выполнение продолжается с пункта 1. Если выражение ложно, то управление передается следующему после while оператору программы.
Преждевременный выход из цикла может осуществляться при помощи оператора break. После использования оператора break управление передается следующему после цикла оператору программы. Оператор continue, в отличие от break, передает управление на следующую итерацию цикла.
Циклическая структура может быть реализована при помощи операторов if и goto. Однако этого делать нежелательно, так как используя оператор goto можно очень сильно запутать программу.
