Сделать домашней|Добавить в избранное
 

Сайт, посвящен программированию,
исходникам разных программ и
известным алгоритмам

 
Исходники программ » Языки программирования » C/C++ » Операторы цикла for, do while, while в C++
ivi.ru [CPS]
на правах рекламы

Операторы цикла for, do while, while в C++

Автор: admin от 15-03-2012, 12:20

Пример № 1
Напишите программу, используя инструкцию for, чтобы она проверяла все числа в диапазоне от 2 до 20 и печатала результаты, каждый на отдельной строке.

Исходный код (иногда называют "листинг"):

#include <iostream.h>
#include <conio.h>

int main()
{
    clrscr();
    for( int i = 2; i < 21; i++ )
         cout << i << endl;
    getch();

    return 0;
}


Пример № 2
Напишите программу, используя инструкцию while, которая выводит таблицу значений функции у = x * | x | . Диапазон изменения аргумента от -4 до 4, шаг приращения аргумента 0,5.

Исходный код (иногда называют "листинг"):
#include <iostream.h>
#include <math.h>
#include <conio.h>
int main()
{
    float x = -4.0f;
    clrscr();
    while( x < 4.5f )
    {
        cout << "y(" << x << ") = " << x * fabs( x ) << endl;
        x += 0.5f;
    }
    getch();
return 0;
}


Пример № 3
Напишите программу, используя цикл do while, вычисляющую произведение и среднее геометрическое двух положительных чисел, которые вводятся с клавиатуры.

Исходный код (иногда называют "листинг"):
#include <iostream.h>
#include <math.h>
#include <conio.h>

int main()
{
    float a, b;
    clrscr();
    do
        cin >> a >> b;
    while( a <= 0.0f || b <= 0.0f );
        cout << "Product: " << a * b << endl;
        cout << "Average geometric: " << sqrt( a * b ) << endl;
getch();
return 0;
}


Теория:
Существуют разнообразные возможности применения цикла for:
1) можно применять операцию уменьшения для счета в порядке убывания вместо счета в порядке возрастания
for    (n=10;   n>0;   n-)
printf ("%d\n",n);

2) при желании можно вести счет двойками, десятками и т.д.
for   (n=2;   n<60;   n+=2)
printf ("%d\n",n);

3) можно вести подсчет при помощи символов, а не только чисел
for(ch='a';   ch<='z';   ch++)
printf ("Величина  кода ASCII  для  %с  равна   %d. \n" , ch, ch);

4) можно проверить выполнение некоторого произвольного условия, отличного от условия, налагаемого на число итераций
for   (num=l;   num*num*num<216;   num++)

5) можно сделать так, чтобы значение некоторой величины возрастало не в арифметической, а в геометрической прогрессии
for (n=l; n<1500; n*=3)
printf ("%d   \n",n);

6) в качестве третьего выражения можно использовать любое правильно составленное выражение; какое бы выражение вы ни указали, его значение будет меняться при каждой итерации
for (x=l; y<=75; y=5* (x++)+10)
printf ("%d, %d\n",x,y);

7) можно даже опустить одно или более выражений (но при этом нельзя опускать символы ";"); необходимо только включить в тело цикла несколько операторов, которые в конце концов приведут к завершению его работы
ans=2;
for (n=3;  ans<=25;)
ans=ans*n

8) Тело цикла
for (;;)
printf ("* \n");

будет выполняться бесконечное число раз, поскольку пустое условие всегда считается истинным;

9) первое выражение не обязательно должно инициализировать переменную; вместо этого, например, там мог бы стоять оператор printf () некоторого специального вида; необходимо помнить, что первое выражение вычисляется только один раз перед тем, как остальные части цикла начнут выполняться
for (printf ("Запоминайте введенные числа!\n"); num= =  6;)
scanf ("%d",&num);
printf ("Это как раз то, что я хочу!\n");

в этом фрагменте первое сообщение оказывается выведенным на печать один раз, осуществляется прием вводимых чисел до тех пор, пока не поступит число 6;

10) параметры, входящие в выражения, находящиеся в спецификации цикла, можно изменить при выполнении операций в теле цикла; предположим, например, что есть цикл со спецификацией следующего вида:
for (n=1; n<1000; n+=delta)

и если после нескольких итераций программа решает, что величина параметра delta слишком мала или велика, оператор if внутри цикла может изменить значение этого параметра (в диалоговой программе пользователь может изменить этот параметр в процессе выполнения цикла).

А также...
Символы "{" и "}" используются для объединения описаний и операторов в составной оператор, или блок, так что все конструкции, заключенные в фигурные скобки, оказываются синтаксически эквивалентными одному оператору. Tочка с запятой никогда не ставится после первой фигурной скобки, которая завершает блок.
Составной оператор - последовательность операторов, заключенная в фигурные скобки (при необходимости его используют в качестве "внутреннего" оператора в операторах ветвления и цикла). Он называется также "блоком". Блоки не могут быть вложенными.

 

Если вам нравится то, что мы пишем, пожалуйста, нажмите на интересующую вас рекламу сбоку, сверху, или сразу после статьи. Будет стимул писать лучше и чаще. Хорошего вам дня.

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

Комментарии:

Оставить комментарий