Оператор цикла типа do while

Форма записи реализует цикл с постусловием и имеет вид:

do

{

оператор_1;

......

 оператор_n;

}

while (<выражение >);

 

Схема работы такого цикла:

- сначала выполняется оператор;

- затем проверяется условие;

- если условие является истина (true), выполняется оператор, и снова проверяется условие и т.д.

- когда условие станет ошибочной (false) цикл завершает работу.

Такой цикл называют циклом с постусловием.

Пример 3.14. Составить фрагмент программы с использованием оператора типа do... while для задачи с предварительным условием.

Текст фрагмента программы.

do

y = sqrt (fabs (x)) – x*x;

printf (“x=%.1f y=%.3f\n”, x, y);

if (y > 0) k ++;

x+ = 0.1;

while (x<=2);

printf (“k=%d\n”,k);

Пример 3.15. Найти приближенное значение

 по итерационной формуле:

k=0, 1,

Вычисления прекратить, когда | yk+1- yk|<e

Пусть p=7,     y0=1;     уk            у1,    уk +1       у2,

r=| yk+1- yk|

  x, eps  –  ввести при выполнении программы.

 

void main()

{

int n=0, p=7;

float y1=1, y2, eps, x, r;

printf (“Введите значение x, eps\n”);

scanf(“%f%f”, &x, &eps);

do

{

y2= (1/p)*((p–1)*y1+x/pow(y1,(p-1)));

n++;

r=fabs(y2-y1);

y1=y2;

}

while(r>=eps);

printf(“Приближенное значение у=%f,eps=%e\n”,

                                   y2,eps);

printf(“Количество итераций n = %d \n”, n);

}

3.8.3 Оператор цикла типа for

Форма записи имеет следующий вид:

for(выражение1;выражение2;выражение3)

оператор;

или с составным оператором в теле цикла

for(выражение1;выражение2;выражение3)

    {оператор_1;

    .........

      оператор_М;

     }

где выражение1 – задаёт начальное значение параметру цикла, а также может задавать начальные значения другим переменным, например:

for(t=-5,s=0,p=1;...)     

t – параметр цикла 

s и p переменные, которые перед началом цикла надо обнулить или обединичить.

выражение2 – логическое выражение, которое задаёт условие окончания работы цикла

for (…; t<=10;…)

                 или (…; t>=-5 && t<=10; …)

выражение3 – задаёт изменение параметру цикла, а также может при необходимости задавать изменения другим переменным

for (...;...; t=t+0.5)

   или (...;...; t+ =0.5, s+ =y, p* =y)

    Схема работы такого цикла:

- сначала выполняется выражение1,

- потом проверяется выражение2,

- если оно истинно, то выполняются операторы цикла,

- выполняются выражение3,

- снова проверяется выражение2 и т.д.

- если выражение2 ложно, цикл заканчивается.

Пример 3.16:Условие что и для предыдущих типов циклов:  

 вычислить выражение y=√|x|-x2 для -2 ≤ x ≤ 2 с Δx = 0.1;

  .......

float x, y;

int k;

for (x=-2, k=0; x<=2; x+=0.1)

y=sqrt(fabs(x))-x*x;

printf (“x=.... “, x, y);

if (y>0) k++;

}

printf (“k=.... “, k);

}

 

        


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: