, : if, : Top


4 Цикл for

Очень часто возникает необходимость выполнить одну и ту же последовательность действий несколько раз: например, для вычисления выражения an необходимо выполнить умножение на величину a n-1 раз. Для этого используются циклы. В данном листочке речь пойдет о цикле for.

Рассмотрим задачу вычисления суммы всех натуральных чисел от 1 до n. Для этого заведем переменную s и к ней будем прибавлять значение переменной i, где i будет принимать все значения от 1 до n. На языке C++ это можно сделать при помощи цикла for следующим образом:

     int n, s=0, i;
     cin>>n;
     for (i=1; i<=n; ++i)
     {
         s=s+i;
     }
     cout<<s<<endl;

В этом примере последовательность инструкций в блоке, то есть инструкция s=s+i будет выполнена многократно для всех значений переменной i от 1 до n, то есть в результате переменная s будет равна сумме всех натуральных чисел от 1 до n.

При использовании цикла for необходимо задать три параметра (в круглых скобках через точку с запятой).

Первый параметр – начальное значение переменной, задается в виде присваивания переменной значения, в нашем случае i=1.

Второй параметр – конечное значение переменной, задается в виде условия на значение переменной. Цикл будет исполняться, пока условие истинно, в нашем случае условие i<=n означает, что переменная i будет принимать значения до n включительно.

Третий параметр – шаг изменения переменной. Запись ++i означает, что переменная i будет увеличиваться на 1 с каждым новым исполнением цикла, запись --i – уменьшаться.

В нашем примере мы могли бы сделать цикл, в котором переменная i принимала бы все значения от n до 1, уменьшаясь при этом: for(i=n; i>0; --i).

Если хочется, чтобы значение переменной в цикле менялось не на 1, а на большую величину, то это можно сделать, например, так: i=i+2.

Упражнения

  1. (A) По данному натуральному n вычислите сумму 12+22+...+n2.
  2. (B) По данному натуральном n вычислите сумму 13+23+...+n3.
  3. (C) По данному натуральном n вычислите сумму 1×2+2×3+...+(n-1)×n.
  4. (D) По данным числам a и b выведите на экран все четные числа от a до b включительно. Например, при вводе 1 и 10 программа должна вывести 2 4 6 8 10.
  5. (E) По данному числу n вычислите значение n!.
  6. (F) По данным натуральным n и k вычислите значение Cnk=n!/(k!(n-k)!) (число сочетаний из n элементов по k).
  7. (G) По данному действительному числу a и натуральному n вычислите величину an. Программа считывает значение a и n и выводит an.
  8. (H) По данному натуральному n вычислите сумму 1+(1+2)+(1+2+3)+...+(1+2+...+n).
  9. (I) По данному числу n вычислите сумму 1+1/22+1/32+...+1/n2. Как вы думаете, к чему приближается эта сумма с увеличением n?
  10. (J) По данному числу n вычислите сумму 4(1-1/3+1/5-1/7+...+(-1)n/(2n+1)). Как вы думаете, к чему будет приближаться эта сумма с увеличением n?
  11. (K) По данному действительному числу a и натуральному n вычислите сумму 1+a+a2+...+an не используя формулу суммы геометрической прогрессии. Время работы программы должно быть пропорционально n. Затем решите эту задачу по формуле суммы геометрической прогрессии и сдайте ее в тестирующую систему.
  12. (L) Дано 10 целых чисел. Вычислите их сумму. Например, при вводе чисел 1 2 3 4 5 6 7 8 9 10 программа должна вывести 55.
  13. (M) Дано несколько чисел. Вычислите их сумму.

    Сначала вводится количество чисел N. Затем вводится N целых чисел, программа должна вывести их сумму.

    Например, при вводе 3 1 20 300 программа должна вывести 321.

  14. (N) Найдите и выведите все двузначные числа, которые равны удвоенному произведению своих цифр. Указание: организуйте цикл, в котором переменная i принимает значения от 10 до 99, проверьте, равна ли i удвоенному произведению своих цифр.
  15. (O) Квадрат трехзначного числа оканчивается тремя цифрами, равными этому числу. Найдите и выведите все такие числа.