Студопедия — Три формы операторов цикла.В языке Си равноправно используются три разных оператора цикла, обозначаемых соответственно служебными словами while, for, do.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Три формы операторов цикла.В языке Си равноправно используются три разных оператора цикла, обозначаемых соответственно служебными словами while, for, do.






Цикл while (цикл с предусловием) имеет вид:

while (выражение_условие)

тело_цикла

В качестве выражения_условия чаще всего используется отношение или логическое выражение. Если оно истинно, т.е. не равно 0, то тело цикла выполняется до тех пор, пока выражение_условие не станет ложным.

Проверка истинности выражения осуществляется до каждого выполнения тела цикла. Таким образом, для заведомо ложного выраж-ния_условия тело цикла не выполнится ни разу. Выражение _условие может быть и арифметическим выражением. В этом случае цикл выполняется, пока значение выражения_условия не равно 0.

Цикл do (цикл с постусловием) имеет вид:

do

тел_ цикла

while (выражение_условие)\

Выражени_условие логическое или арифметическое, как и в цикле while. В цикле do тело цикла всегда выполняется по крайней мере один раз. После каждого выполнения тела цикла проверяется истинность выражения_условия (на равенство 0), и если оно ложно (т.е. равно 0), то цикл заканчивается. В противном случае тело цикла выполняется вновь.

Цикл for (называемый параметрическим) имеет вид:

for (выражение_1; выражение_условие; выражение_3)

тело_цикла

Первое и третье выражения в операторе for могут состоять из нескольких выражений, разделенных запятыми. Выражение_1 определяет действия, выполняемые до начала цикла, т.е. задает начальные условия для цикла; чаще всего это выражение присваивания. Выражение_условие - обычно логическое или арифметическое. Оно определяет условия окончания или продолжения цикла. Если оно истинно (т.е. не равно 0), то выполняется тело цикла, а затем вычисляется выражение _3. Выражение_3 обычно задает необходимые для следующей итерации изменения параметров или любых переменных тела цикла. После выполнения выражения_3 вычисляется истинность выражения_условия, и все повторяется... Таким образом, выражение_1 вычисляется только один раз, а выражение_условие и выражение_3 вычисляются после каждого выполнения тела цикла. Цикл продолжается до тех пор, пока не станет ложным выражение_условие. Любое из трех, любые два или все три выражения в операторе for могут отсутствовать, но разделяющие их символы ";" должны присутствовать всегда. Если отсутствует выражение_усповие, то считается, что оно истинно и нужны специальные средства для выхода из цикла.

Схемы организации циклов while, do и for даны на рисуке.

Проиллюстрируем особенности трех типов цикла на примере вычисления приближенного значения

для заданного значения х. Вычисления будем продолжать до тех пор, пока очередной член ряда остается больше заданной точности. Обозначим точность через eps, результат - b, очередной член ряда - г, номер члена ряда - i. Для получения i-ro члена ряда нужно (i-l)-йt член умножить на х и разделить на i, что позволяет исключить операцию возведения в степень и явное вычисление факториала. Опустив определения переменных, операторы ввода и проверки исходных данных, а также вывода результатов, запишем три фрагмента программ.

/* Цикл с предусловием */

i = 2;

b = 1.0;

r = х;

while(r > eps || r < -eps)

b=b+r; r=r*x/i;

i++;

}

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

/* Цикл с постусловием */

i=1;

b=0.0;

r=1.0;

do {

b-b+r;

r=r*x/i;

i++;

}

while(r >= eps || r <= -eps);

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

/* Параметрический цикл */

i=2;

d=1.0;

r=х;

for(; r > eps | | r < -eps;)

{

b=b+r;

r=r*x/i;

i=i+1;

}

Условие окончания параметрического цикла такое же, как и в цикле while.

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

for (i=2, b=l.0, r=х; r>eps || r<-eps;)

{

b=b+r;

r=r*x/i;

i=i+1;

}

В выражение_З можно включать операцию изменения счетчика членов ряда:

for(i=2, b=1.0, r=x; r>eps || r<-eps; i++)

{

b=b+r;

r=r*x/i;

}

Можно еще более усложнить заголовок, перенеся в него все исполнимые операторы тела цикла:

for (i=2, b=1.0, r=x; r>eps || r<-eps;

b+=r, r*=x/i, i++);

В данном случае тело цикла - пустой оператор. Для сокращения выражения_3 в нем использованы составные операции присваивания и операция ++.

 

Ход работы

 

1 По индивидуальному заданию преподавателя составить программу с различными вариантами применения операторов цикла: while, do… while, for. Предусмотреть дополнительные возможности выхода из циклов (операторы break, goto).

2 Набрать программу на компьютере, выявить и устранить ошибки.

3 Ознакомиться с работой операторов цикла в языке С.

4 Получить результаты работы программы.

5 Оформить отчет и сделать выводы о проделанной работе, изучив контрольные вопросы по теме.







Дата добавления: 2015-09-15; просмотров: 428. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Правила наложения мягкой бинтовой повязки 1. Во время наложения повязки больному (раненому) следует придать удобное положение: он должен удобно сидеть или лежать...

ТЕХНИКА ПОСЕВА, МЕТОДЫ ВЫДЕЛЕНИЯ ЧИСТЫХ КУЛЬТУР И КУЛЬТУРАЛЬНЫЕ СВОЙСТВА МИКРООРГАНИЗМОВ. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА БАКТЕРИЙ Цель занятия. Освоить технику посева микроорганизмов на плотные и жидкие питательные среды и методы выделения чис­тых бактериальных культур. Ознакомить студентов с основными культуральными характеристиками микроорганизмов и методами определения...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

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

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

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия