выражение

advertisement
Лекция №5
Циклы
Цикл while
while (<выражение>)
<инструкция>
Пример:
while (i > 0) {
i--;
printf("%d\n", i);
}
Выражение
Да
Инструкция
Нет
Цикл do…while
do <инструкция>
while (<выражение>);
Пример:
do {
scanf("%d", &n);
} while (n == 0);
Инструкция
Нет
Выражение
Да
Цикл for
for (<выражение 1>;
<выражение 2>;
<выражение 3>)
<инструкция>
Выражение 1
Выражение 2?
Пример 1:
for (i = 0; i < 7; i++)
printf("%d", i);
Пример 2:
for (;;);
Да
Инструкция
Выражение 3
Нет
Цикл while

Задача: вычислить
xn
x x2
xk
e    1    ...   ...;
1! 2!
k!
n 0 n!
x
i = 2;
b = 1.0;
r = x;
while (r > eps || r < -eps)
{
b = b + r;
r = r * x / i;
i++;
}
Цикл do…while

Задача: вычислить
xn
x x2
xk
e    1    ...   ...;
1! 2!
k!
n 0 n!
x
i = 1;
b = 0.0;
r = 1.0;
do
{
b = b + r;
r = r * x / i;
i++;
} while (r > eps || r < -eps)
Цикл for

Задача: вычислить
b =
r =
for
{
b
r
}
n
2
k
x
x
x
x
e x    1    ...   ...;
1! 2!
k!
n 0 n!
1.0;
x;
(i = 2 ; r > eps || r < -eps; i++)
= b + r;
= r * x / i;
Цикл for

Задача: вычислить
n
2
k
x
x
x
x
e x    1    ...   ...;
1! 2!
k!
n 0 n!
for (i=2, b=1.0, r=x ; r > eps || r < -eps;
i++)
{
b = b + r;
r = r * x / i;
}
Цикл for

Задача: вычислить
n
2
k
x
x
x
x
e x    1    ...   ...;
1! 2!
k!
n 0 n!
for (i=2, b=1.0, r=x ; r > eps || r < -eps;
b = b + r, r = r * x / i, i++);
Инструкции break и continue
Инструкция break вызывает немедленный
выход из самого внутреннего из объемлющих
ее циклов
Инструкция continue вынуждает ближайший
объемлющий ее цикл (for, while или dowhile) начать следующий шаг итерации.
Инструкции break и continue
Пример использования break:
for (i = 0; i < 10; i++)
{
scanf("%d", &n);
if (n == 0) {
printf("Ошибка!\n");
break;
}
}
Пример использования continue:
i = 1;
while (i <= 10)
{
printf(“%d-е
число:",i);
scanf("%d", &n);
if (n == 0)
continue;
i++;
}
Массивы (arrays)
Индексные массивы
Индексный массив — структура данных,
предназначенная для хранения набора
единиц данных, каждая из которых
идентифицируется индексом или
набором индексов.
Массивы с одним индексом называют
одномерными, с двумя — двумерными и
т. д.
Объявление массива
Синтаксис:
<тип> <переменная>[<размер массива>]
Пример:
int a[10];
Определяет массив a размера 10, т. е. блок из 10 последовательных объектов типа int с именами a[0], a[1], ...,
a[9].
a:
a[0] a[1]
…
a[9]
Работа с массивами
Пример:
int a[10];
int i;
printf("Введите 10 значений");
for (i = 0; i < 10; i++)
scanf("%d", &a[i]);
int max = a[0];
int sum = a[0];
for (i = 1; i < 10; i++)
{
if (max < a[i]) max = a[i];
sum += a[i];
}
printf("Максимальное значение: %d. Среднее значение:
%.2f", max, sum / 10);
Инициализация массивов
int month[12];
month[0] = 31;
month[1] = 28;
month[2] = 31;
month[3] = 30;
month[4] = 31;
month[5] = 30;
month[6] = 31;
month[7] = 31;
month[8] = 30;
month[9] = 31;
month[10] = 30;
month[11] = 31;
int month[12] =
{31,28,31,30,31,30,31,
31,30,31,30,31};
Download