Сумма натуральных чисел в С++

Основу программы составляет оператор цикла for(i=1;i<=n;i++), который содержит в первом блоке команду инициализации индексной переменной i=1 с начальным единичным значением. Второй блок - проверяемое условие i<=n. Это означает, что оператор цикла вы­полняется до тех пор, пока индексная переменная i не превышает значения переменной n (значение переменной предварительно вводится с клавиату­ры). В третьем блоке указана инструкция i++, в силу чего значение индексной переменной увеличивается на единицу. Наконец, в основном блоке опе­ратора цикла (в фигурных скобках) использована команда s+=i, которой на каждом шаге целочисленная переменная s (начальное нулевое значение) увеличивается значение индексной переменной х.
#include 
using 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;
}
Некоторые (а то и все) блоки в круглых скобках после ключевого слова if могут быть пустыми. При написании программы допускается использовать и несколько иной синтаксис вызова оператора цикла.
#include 
using 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;
}
По сравнению с предыдущим случаем, индексная переменная i при объявлении получает начальное значение 1, а в операторе цикла отсутствует первый блок (блок инициализации) В частности, оператор цикла имеет вид for(;i < =n;i++) В этом случае необходимости в первом блоке ини­циализации значений нет, поскольку такая инициализация для индексной пере­менной выполнена при ее объявлении Еще один пример реализации оператора цикла для вычисления суммы натуральных чисел представлен ниже
#include 
using 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;
}
В инструкции for(;i<=n;) отсутствуют как первый, так и третий блоки Команда изменения на единицу значения индексной переменной вынесена в основной блок оператора цикла В принципе, можно отказаться и от блока с условием выполнения цикла Соответствующий программный код пред­ставлен ниже:
#include 
using 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 отсутствуют, инициализацию, из­менение значения индексной переменной и проверку условия необходимо реализовывать при объявлении переменных, до начала оператора цикла и в основном блоке оператора цикла. Причем пользователь должен самосто­ятельно предусмотреть возможность завершения оператора цикла. В данном случае цикл будет завершен благодаря инструкции if(i>n) break; в основном блоке оператора for(). Как только значение переменной х пре­высит значение п, будет выполнен оператор Ьгеак, в результате чего выполнение оператора цикла будет завершено.

Если блок в for-операторе содержит несколько команд они разделяются запятой. Более того, в операторе цикла for в блоке инициализации можно объяв­лять переменные. Используя эти свойства оператора цикла for, часто доби­ваются значительного сокращения программного кода. В следующем коде приведен пример программы с вычислением суммы натуральных чисел.
#include 
using 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;
}
Онлайн всего: 1
Гостей: 1
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте