Программирование арифметических циклов



 

Для арифметического цикла заранее известно сколько раз выполняется тело цикла.

Задача №2.Дана последовательность целых чисел из n элементов. Найти среднее арифметическое этой последовательности.

#include <iostream.h>

#include <math.h>

void main()

{

int a,n,i;

double s=0; //инициализируем переменную начальным значением

cout<<"\nEnter n";

cin>>n; // вводим количество элементов в последовательности

    for(i=1;i<=n;i++)// цикл выполняется n раз

    {

         cout<<"\nEnter a";

         cin>>a; // вводим переменную

         s+=a;//добавляем значение переменной к сумме

    }

    s=s/n;//находим среднее арифметическое

    cout<<"\nсреднее арифметическое равно="<<s<<"\n";

}

 

Задача №3.Найти значение S=1+2+3+4+. . . +N

 

#include <iostream.h>

#include <math.h>

void main()

{

//описываем переменные и инициализируем s начальным значением

int n,i,s=0;

cout<<"\nEnter n";

cin>>n; // вводим количество элементов в последовательности

for(i=1; i<=n; i++)++)// цикл выполняется n раз

s+=i; //добавляем значение переменной к сумме

cout<<"\nS="<<s<<"\n";

}

Программирование итерационных циклов

 

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

Задача №5.Дана последовательность целых чисел, за которой следует 0. Найти минимальный элемент этой последовательности.

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

 

#include <iostream.h>

#include <math.h>

void main()

{

int a,min;

cout<<"\nEnter a";

cin>>a; //вводим первое число

min=a;//присваиваем переменной min начальное значение

while(a!=0)//цикл с предусловием

{

cout<<"\nEnter a";

cin>>a;//вводим следующее число

/*сравниваем с нулем, т. к. 0 не входит в последовательность

 и не может быть минимальным и с минимальным значением*/

if (a!=0&&a<min)

min=a; //запоминаем в min новое значение

}

cout<<"\nmin="<<min<<"\n";//вывод результата

}

Тесты:

a 2 55 -3 -10 0
min -10        

 

a 12 55 4 27 0
min 4        

 

a -6 -43 -15 -10 0
min -10        

 

Для решения этой же задачи можно написать программу с использованием цикла с постусловием.

 

#include <iostream.h>

#include <math.h>

void main()

{

int a,min;

cout<<"\nEnter a";

cin>>a; //вводим первое число

min=a;//присваиваем переменной min начальное значение

do //цикл с постусловием

{

cout<<"\nEnter a";

cin>>a;//вводим следующее число

if (a==0)break;// выход из цикла, если ввели 0

if (a<min)//сравниваем а с текущим min

min=a; //запоминаем в min новое значение

}

//бесконечный цикл, т. к. выход осуществляется с помощью break

while(1);

cout<<"\nmin="<<min<<"\n";//вывод результата

}

 

Эту же задачу можно решить с помощью цикла for:

 

#include <iostream.h>

#include <math.h>

void main()

{

int a,min;

cout<<"\nEnter a";

cin>>a; //вводим первое число

min=a;//присваиваем переменной min начальное значение

for(;a!=0;)//цикл используется как цикл с предусловием

{

cout<<"\nEnter a";

cin>>a;//вводим следующее число

/*сравниваем с нулем, т. к. 0 не входит в последовательность

 и не может быть минимальным и с минимальным значением*/

if (a!=0&&a<min)

min=a; //запоминаем в min новое значение

}

cout<<"\nmin="<<min<<"\n";//вывод результата

}

 

Задача №6. Найти сумму чисел Фибоначчи, меньших заданного числа Q. Числа Фибоначчи – это последовательность чисел: 1, 1, 2, 3, 5, 8, 13, …., т. е. каждое следующее число – это сумма двух предыдущих.

 

#include<iostream.h>

void main()

{

int a=1,//первое число

b=1,//второе число

s=2,//сумма чисел Фибоначчи

Q,

c;//следующее число

cout<<"\nEnter Q";

cin>>Q;//вводим число Q

if(Q<=0)cout<<"Error in Q";

else

//если Q=1, то сумма тоже будет 1 (первое число)

if(Q==1)s=1;

else

{

c=a+b;//вычисляем следующее число

while(c<Q)

{

    s+=c;//вычисляем сумму

    a=b;//меняем первое число на второе

    b=c;//меняем второе число на текущее

    c=a+b;//вычисляем текущее число Фибоначчи

}

    

}

cout<<"\nS="<<s<<"\n";//выводим результат

}

 

 

Тесты:

Q S
-1 Error in Q
0 Error in Q
1 1
2 2
10 20

 

 


Дата добавления: 2018-04-04; просмотров: 235;