Сумма натуральных чисел в С++
Основу программы составляет оператор цикла for(i=1;i<=n;i++),
который содержит в первом блоке команду инициализации индексной переменной i=1 с начальным единичным значением. Второй
блок - проверяемое условие i<=n. Это означает, что оператор цикла выполняется до тех пор, пока индексная переменная i не превышает значения переменной n (значение переменной предварительно вводится с клавиатуры). В третьем блоке указана инструкция i++, в силу чего значение индексной переменной увеличивается на единицу. Наконец, в основном блоке оператора цикла (в фигурных скобках) использована команда s+=i, которой
на каждом шаге целочисленная переменная s (начальное нулевое значение) увеличивается значение индексной переменной х.
Некоторые (а то и все) блоки в круглых скобках после ключевого слова if могут быть пустыми. При написании программы допускается использовать и несколько иной синтаксис вызова оператора цикла.
По сравнению с предыдущим случаем, индексная переменная i при объявлении получает начальное значение 1, а в операторе цикла отсутствует первый блок (блок инициализации) В частности, оператор цикла имеет вид for(;i < =n;i++) В этом случае необходимости в первом блоке инициализации значений нет, поскольку такая инициализация для индексной переменной выполнена при ее объявлении Еще один пример реализации оператора цикла для вычисления суммы натуральных чисел представлен ниже
В инструкции for(;i<=n;) отсутствуют как первый, так и третий блоки Команда изменения на единицу значения индексной переменной вынесена в основной блок оператора цикла В принципе, можно отказаться и от блока с условием выполнения цикла Соответствующий программный код представлен ниже:
Хотя инструкция for(;;) выглядит довольно странно, тем не менее функциональность программного кода такая же, как и в предыдущих случаях. Однако теперь, поскольку все три блока в круглых скобках после инструкции for отсутствуют, инициализацию, изменение значения индексной переменной и проверку условия необходимо реализовывать при объявлении переменных, до начала оператора цикла и в основном блоке оператора цикла. Причем пользователь должен самостоятельно предусмотреть возможность завершения оператора цикла. В данном случае цикл будет завершен благодаря инструкции if(i>n) break; в основном блоке оператора for(). Как только значение переменной х превысит значение п, будет выполнен оператор Ьгеак, в результате чего выполнение оператора цикла будет завершено.
Если блок в for-операторе содержит несколько команд они разделяются запятой. Более того, в операторе цикла for в блоке инициализации можно объявлять переменные. Используя эти свойства оператора цикла for, часто добиваются значительного сокращения программного кода. В следующем коде приведен пример программы с вычислением суммы натуральных чисел.
#includeusing namespace std; int main(){ int n,i,s=0; cout << "Enter number n="; cin>>n; for(i=1;i < =n;i++){ s+=i; } cout << "Sum of natural numbers is: " << s << "\n"; return 0; }
#includeusing namespace std; int main(){ int n,i=1,s=0; cout << "Enter number n="; cin >> n; for(;i < =n;i++){ s+=i; } cout << "Sum of natural numbers is: " << s << "\n"; return 0; }
#includeusing namespace std; int main(){ int n,i=1,s=0; cout << "Enter number n="; cin>>n; for(;i < =n;){ s+=i; i++; } cout << "Sum of natural numbers is: " << s << "\n"; return 0; }
#includeusing namespace std; int main(){ int n,i=1,s=0; cout << "Enter number n="; cin >> n; for(;;){ s+=i; i++; if(i > n) break; } cout << "Sum of natural numbers is: " << s << "\n"; return 0; }
Если блок в for-операторе содержит несколько команд они разделяются запятой. Более того, в операторе цикла for в блоке инициализации можно объявлять переменные. Используя эти свойства оператора цикла for, часто добиваются значительного сокращения программного кода. В следующем коде приведен пример программы с вычислением суммы натуральных чисел.
#includeusing namespace std; int main(){ int n; cout << "Enter number n="; cin>>n; for(int i=1, s=0;i < =n;s+=i++); cout << "Sum of natural numbers is: " << s << "\n"; return 0; }