- •Обзорные лекции по курсу
- •Арифметические операции
- •Int main()
- •Int main ()
- •Логические операции
- •Операторы сравнения
- •Int main ()
- •If(проверяемое_условие)
- •Int main ()
- •Int main()
- •If(проверяемое_условие)
- •Int main()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main()
- •Int.Main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main ()
- •Int main()
- •If(проверяемое_условие)
- •Int main ()
- •If(проверяемое_условие)
- •If(проверяемое_условие)
Int main()
{
int Sum = 0;
for(int i=10; i<20; i++)
Sum += i;
cout « "Сумма составит: " « Sum;
return 0;
}
Как видно из примера, при инициализации был объявлен счетчик i, с начальным значением 10, увеличивающийся с каждой итерацией на единицу. Тело цикла в данном случае состоит из одного единственного оператора, добавляющего к результируюшей величине Sum значение счетчика i в данной итерации.
Следующий фрагмент иллюстрирует применение оператора запятая" в цикле for:
for(int i=10, j=2; i<20; i++, j=i+17)
{……
}
Таким обратом, первоначально инициализируются переменные i и j, а затем при каждой из 10-ти итераций будет вычисляться новое значение переменной j.
Теперь введем в программу задержку по времени на 500 циклов с использованием оператора for. В каждом новом цикле будет уменьшаться на единицу значение целочисленной переменной dl и выполняться пустой оператор до тех пор, пока переменная delay не примет нулевое значение.
#include <iostream.h>
Int.Main ()
{
int dl;
// Начало вычислений
...
// Задержка 500 циклов
for(dl=500; dl>0; dl--);
// Пустой оператор, ничего делать
// не надо!
// Продолжение вычислений
...
return 0;
}
Пример вычисления факториала демонстрирует использование в качестве тела цикла блочного оператора, хотя приведенный текст не является самым рациональным способом вычисления факториала (в дальнейшем будет рассмотрена более эффективная реализация).
#include <iostream.h>
Int main ()
{
int a = 0;
unsigned long fact = 1;
cout « "Введите целое число: ";
cin » a;
if((a >= 0) && (a < 33))
{
for(int i=l; i<=a; i++)
{
if(a != 0)
fact *= i;
else
fact = 1;
}
cout « fact « '\n';
fact = 1;
}
return 0;
}
В примере пользователю предлагается ввести целое число от 0 до 33. В организованном далее цикле от единицы до введенного числа производится собственно вычисление факториала.
Циклы while
Оператор цикла while выполняет оператор или блок операторов до тех пор, пока проверочное условие (выражение) остается истинным. Он имеет следующий синтаксис:
while(выражение)
оператор или_блок операторов // тело цикла
Если выражение представляет собой константу с истинным значением, тело цикла будет выполняться всегда и, следовательно, мы имеем дело с бесконечным циклом. Цикл также окажется бесконечным, когда условие, определенное в выражении изначально, истинно и нигде далее в теле цикла не изменяется. Если же проверочное условие возвращает ложное значение, осуществится выход из цикла и тело оператора while будет пропущено.
Довольно часто в качестве выражения используется оператор присваивания. Так как при этом возвращается некоторое число, в операторе while фактически производится сравнение полученного значения с нулем (следует напомнить, что ноль — эквивалент ложного значения) с дальнейшим принятием решения о выходе из цикла либо его продолжении
Как и для оператора for, если в цикле должны синхронно изменяться несколько переменных, которые зависят от переменной цикла, вычисление их значений можно поместить в проверочное выражение оператора while, воспользовавшись оператором "запятая".
Приведенный ниже пример показывает использование оператора цикла while для представления десятичного числа в двоичном виде.
#include <iostream.h>