Программирование на Cи




Содержание:
  • Циклические действия. Цикл с условием for.
  • Пример вычисления факториала.

  • Циклические действия. Цикл с условием for.

    Циклические действия в языках программирования, это многократные повторения (итерации) каких либо действий или команд. Циклы подразделяются на циклы с заданным числом повторений и циклы прекращающиеся по какому ни будь условию. К циклам с заданным числом повторений (условием) относится цикл for. В языке Си цикл for организуется по следующей схеме:
    for (условие) действие; где условием является запись начального и конечного значения счётчика цикла, а так же условие для наращивания значений счётчика. В качестве счётчика используется переменная числового типа.
    Рассмотрим пример организации цикла:
    int n;
    for (n=1; n<=10; n++) printf("%d\n",n);
    В этой записи, в качестве счётчика используется переменная n целого типа. В цикле переменной n присваивается начальное значение единица n=1; затем задаётся логическое условие повторения цикла, в нашем случае цикл будет повторяться пока переменная n меньше либо равна 10. Далее задаётся формула наращения счётчика, в нашем случае с каждой итерацией цикла счётчик n будет увеличиваться на единицу n++. Далее, за скобками идёт действие, которое нужно выполнять в цикле, в нашем случае, это вывод на экран значений счётчика n при каждой итерации.
    Полностью программа будет выглядеть так:

    #include <stdio.h>
    void main()
    {
       int n;
       clrscr();
       for (n=1; n<=10; n++) printf("%d\n",n);
    }

    Результатом работы программы будет вертикальный список значений счётчика n:



    Для того, что бы цикл мог выполнять несколько действий, эти действия следует заключить в фигурные скобки, например:

    #include <stdio.h>
    void main()
    {
       int n;
       clrscr();
       for (n=1; n<=10; n++)
       {
       printf("Iteration: ");
       printf("%d\n",n);
       }
    }
    Результат выполнения программы с несколькими действиями в цикле:



    В качестве счётчика цикла могут быть переменные не только целого, но и вещественного типа. Так же, формула приращения цикла может быть любой. Например, заменим тип переменной n на float, а приращение значения n сделаем 0.5.

    #include <stdio.h>
    void main()
    {
       float n;
       clrscr();
       for (n=1; n<=4; n=n+0.5)
       {
       printf("Iteration: ");
       printf("%f\n",n);
       }
    }
    Результатом работы этой программы будет список дробных значений n:



    Формула приращений счётчика цикла может иметь как положительное приращение (как в нашем случае), так и отрицательное приращение - цикл будет работать на уменьшение счётчика. Для этого достаточно изменить условие (диапазон) значений цикла и формулу приращения счётчика. Например, в нашей программе "развернём" счётчик в обратную сторону:
    #include <stdio.h>
    void main()
    {
       float n;
       clrscr();
       for (n=4; n>=1; n=n-0.5)
       {
       printf("Iteration: ");
       printf("%f\n",n);
       }
    }
    Результат работы этой программы будет такой:




    Пример программы по вычислению факториала числа.
    По определению: факториалом числа q является ряд 1 * 2 * 3 * : q-1 * q.
    Если q = 0, то факториал 0 = 1.
    Создадим программу где значение q будем вводить с клавиатуры, а значение факториала (переменная fact) , будет вычисляться в цикле, повторяющемся от 1 до q.

    #include <stdio.h>
    void main()
    {
       float fact;
       int n,q;
       clrscr();
    /* Вводим с клавиатуры значение q */
       printf("Vvedi q: ");
       scanf("%d",&q);
    /* Проверяем введённое значение q и если оно равно 0 то ...*/
       if (q==0) printf("Factorial = 1");
    /* Если q не равно 0 то создаём цикл и в цикле вычисляем факториал fact*/
       else
       {
       fact = 1;
       for (n=1; n<=q; n++) fact=fact * n;
    /* Выводим полученное значение факториала на экран*/
       printf("Factorial=%f",fact);
       }
    }
    Результат работы программы при q=0:



    Результат работы программы при q не равном 0:







    Яндекс.Метрика    ©Гуков Константин Михайлович 2006 - 2013     Почта: juvel@mail.ru