Циклы. Циклы. Циклы

Содержание

Слайд 2

// n - данное неотрицательное число, тип - int label3.Text =

// n - данное неотрицательное число, тип - int
label3.Text

= "";
for (int i = 0; i < 5; i++)
{
int x = n % 8;
n = n / 8;
label3.Text = Convert.ToString(x) + label3.Text;
}

Что делает эта программа?

// n - данное неотрицательное число, тип - int
label3.Text = "";
for (; n != 0;)
{
int x = n % 8;
n = n / 8;
label3.Text = Convert.ToString(x) + label3.Text;
}

Слайд 3

Цикл for – цикл с предусловием (условие проверяется перед выполнением первой


Цикл for – цикл с предусловием (условие проверяется перед выполнением первой

итерации цикла)

«Расшифровка» цикла for

for (int i = 1; условие; i++)
{
что-то-тут;
что-то-там;
}
что-то-после-цикла;

Присвоить i единицу
Если условие неверно, перейти к шагу Z
что-то-тут
что-то-там
Увеличить i на единицу
Если условие неверно, перейти к шагу Z
что-то-тут
что-то-там
Увеличить i на единицу
Если условие неверно, перейти к шагу Z

Z. что-то-после-цикла

Слайд 4

Пример: Дополнительные условия выхода for (int i = 1; условие1; i++)


Пример:

Дополнительные условия выхода

for (int i = 1; условие1; i++)
{
что-то-тут;
if

(условие2)
break;
что-то-там;
}

Присвоить i единицу
Если условие1 неверно, перейти к Z
что-то-тут
Если условие2 верно, перейти к Z
что-то-там
Увеличить i на единицу
Если условие1 неверно, перейти к Z
что-то-тут
Если условие2 верно, перейти к Z
что-то-там
Увеличить i на единицу
Если условие1 неверно, перейти к Z

Z. что-то-после-цикла

for (int i = 1; i<=N; i++)
{
что-то-тут;
if (точность < 0.00001)
break;
что-то-там;
}

Слайд 5

У листа бумаги a×b отрезают по углам четыре квадрата со стороной

У листа бумаги a×b отрезают по углам четыре квадрата со стороной

h. Полученную крестообразную выкройку сворачивают в коробочку (параллелепипед).
При каком h коробочка будет иметь максимальный объём?

Задача про коробочку. Численное решение

double dh = a/2/9999;
double V, h, Vmax = 0, hbest = 0;
for (int i = 0; i < 10000; i++)
{
h = dh * i;
V = (a-2*h)*(b-2*h)*h;
if (V > Vmax)
{
Vmax = V;
hbest = h;
}
}
label3.Text = Convert.ToString(Vmax);
label5.Text = Convert.ToString(hbest);

ДоДеЛкА

double dh = a/2/9999;
double V, h, Vmax = 0, hbest = 0;
for (int i = 0; i < 10000; i++)
{
h = dh * i;
V = (a-2*h)*(b-2*h)*h;
if (V < Vmax)
break;
Vmax = V;
hbest = h;
}
label3.Text = Convert.ToString(Vmax);
label5.Text = Convert.ToString(hbest);

Слайд 6

// вычисление факториала числа n double f = 1; for (int

// вычисление факториала числа n
double f = 1;
for (int i =

1; i <= n; i++)
f = f * i;
label3.Text = Convert.ToString(f);

double sum = 1;
double f = 1;
for (int i = 1; i <= n; i++)
{
f = f * i;
sum = sum + 1 / f;
}
label3.Text = Convert.ToString(sum);

Вычисление числа Эйлера

 

double sum = 1;
double f = 1;
for (int i = 1; i <= n; i++)
{
f = f * i;
double t = 1 / f;
if (t < 0.000001)
break;
sum = sum + t;
}
label3.Text = Convert.ToString(sum);

double sum = 1;
double f = 1;
int i;
for (i = 1; i <= n; i++)
{
f = f * i;
double t = 1 / f;
if (t < 0.000001)
break;
sum = sum + t;
}
label3.Text = Convert.ToString(sum);
label5.Text = Convert.ToString(i);

Слайд 7

История из жизни Молодой программист не вышел на работу. Коллеги забеспокоились

История из жизни

Молодой программист не вышел на работу. Коллеги забеспокоились и

решили его навестить дома…
Взломав дверь, программиста обнаружили в ванной, полысевшего, синюшного, едва живого. В руке он сжимал пустую бутылку из-под шампуня.
На этикетке было написано: «Нанести небольшое количество шампуня на голову. Помассировать. Смыть. Повторить».
Следующая тема – бесконечные циклы.
Слайд 8

Пример: Зачем нужны бесконечные циклы? for (int i = 1; условие1;


Пример:

Зачем нужны бесконечные циклы?

for (int i = 1; условие1; i++)
{
что-то-тут;

if (условие2)
break;
что-то-там;
}

for (;;)
{

if (точность < 0.00001)
break;

}

for (int i = 1; 123<456; i++)
{
что-то-тут;
if (условие2)
break;
что-то-там;
}

for (int i = 1; ; i++)
{
что-то-тут;
if (условие2)
break;
что-то-там;
}

пустое место

for (;;)
{
что-то-тут;
if (условие2)
break;
что-то-там;
}

Слайд 9

Перевод в другую систему счисления // n - данное неотрицательное число

Перевод в другую систему счисления

// n - данное неотрицательное число

label3.Text = "";
for (; n != 0;)
{
int x = n % 8;
n = n / 8;
label3.Text = Convert.ToString(x) + label3.Text;
}

ДоДеЛкА

// n - данное неотрицательное число
label3.Text = "";
for (;;)
{
int x = n % 8;
n = n / 8;
label3.Text = Convert.ToString(x) + label3.Text;
if (n == 0)
break;
}

предусловие (не годится)

постусловие

Слайд 10

Вычисление числа π с заданной точностью // eps – заданная точность

Вычисление числа π с заданной точностью

 

// eps – заданная точность
double sum

= 1;
int z = -1;
int i;
for (i = 1; ; i++)
{
double t = 1.0/(2*i+1);
if (t < eps)
break;
sum = sum + z * t;
z = -z;
}
sum = 4*sum;
label3.Text = Convert.ToString(sum);
label5.Text = Convert.ToString(i);