Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Цикл с параметром for

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

Цикл с постусловием имеет вид:

do оператор while выражение;

Сначала выполняется простой или составной оператор, образующий тело цикла, а затем вычисляется выражение (оно должно иметь тип bool). Если выражение истинно, тело цикла выполняется еще раз и проверка повторяется. Цикл завершается, когда выражение станет равным false или в теле цикла будет выполнен какой-либо оператор передачи управления.

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

Пример программы с оператором цикла do while

using System;

namespace ConsoleApplicationl

{ class Classl

{ static void Main()

{

char answer;

do

{

Console.WriteLine("Купи слоника, а?");

answer = (char) Console.Read();

Console.ReadLine();

}

while (answer!= 'y');

} } }

Рассмотрим еще один пример применения цикла с постусловием — программу, определяющую корень уравнения cos(x) = x методом деления пополам с точностью 0,0001.

Исходные данные для этой задачи — точность, результат — число, представляю­щее собой корень уравнения. Оба значения имеют вещественный тип. Суть метода деления пополам очень проста. Задается интервал, в котором есть ровно один корень (следовательно, на концах этого интервала функция имеет значения разных знаков). Вычисляется значение функции в середине этого интервала. Если оно того же знака, что и значение на левом конце интервала, значит, корень находится в правой половине интервала, иначе — в левой. Процесс повторяется для найденной половины интервала до тех пор, пока его длина не станет меньше заданной точности.

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


//Вычисление корня нелинейного уравнения

using System;

namespace ConsoleApplicationl

{ class Classl

{ static void Main()

{

double x, left = 0, right = 1;

do

{

x = (left + right) / 2;

if ((Math.Cos(x) - x) * (Math.Cos(left) - left) < 0)

right = x;

else left = x;

}

while (Math.Abs(right - left) < le-4);

Console.WriteLine("Корень равен " + x);

} } }

Цикл с параметром имеет следующий формат:

for (инициализация; выражение; модификации) оператор;

Инициализация служит для объявления величин, используемых в цикле, и при­своения им начальных значений. В этой части можно записать несколько операторов, разделенных запятой, например:

for (int i = 0, j = 20;..

int k, m;

for (k = 1, m = 0;...

Областью действия переменных, объявленных в части инициализации цикла, яв­ляется цикл. Инициализация выполняется один раз в начале исполнения цикла.

Выражение типа bool определяет условие выполнения цикла: если его результат равен true, цикл выполняется. Цикл с параметром реализован как цикл с предусловием.

Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла. В части модификаций можно записать несколько операторов через запятую, например:

for (int i = 0, j = 20; i < 5 && j > 10; i++, j--)...

Простой или составной оператор представляет собой тело цикла. Любая из частей оператора for может быть опущена (но точки с запятой надо оставить на своих местах!).

Для примера вычислим сумму чисел от 1 до 100:

int s = 0;

for (int i = 1; i <= 100; i++) s += i;

Пример программы с оператором цикла for

//смотри ТЕКСТ ПРОГРАММЫ * из примера с циклом while

using System;

namespace ConsoleApplicationl

{ class Classl

{ static void Main()

{

double Xn = -2, Xk = 12, dX = 2, t= 2, y;

Console.WriteLine("| x | у |"; // заголовок таблицы

for (double x = Xn; x <= Xk; x += dX)

{

y=t;

if (x >= 0 && x < 10) у = t * x;

if (х >= 10) у = 2 * t;

Console.WriteLine("| {0,6} | {1,6} |", x, у); } } } }

Любой цикл while может быть приведен к эквивалентному ему циклу for и наоборот.

Например, два следующих цикла эквивалентны.

Цикл for:

for (bl; b2; bЗ) оператор;

Цикл while:

b1;

while (b2)

{

оператор;

b3;

}

<== предыдущая лекция | следующая лекция ==>
While ( выражение ) оператор | Рекомендации по выбору оператора цикла
Поделиться с друзьями:


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


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



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




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