упражнение
№8
Цикъл
for
Най-мощният оператор за цикъл в С++ е оператора for. Този оператор се използва в случаите, в които броят на итерациите е предварително определен. Той прилича на оператора за цикъл с предусловие по това, че първо се проверява условието и ако то е вярно, се изпълнява тялото. Употребата му се подчинява на следният синтаксис:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
for(
начални
стойности
;
условие
за
изпълнение
на цикъла
;
изрази
)
тяло на цикъла![]()
Тялото
на цикъла
може да
съдържа
прост оператор,
блок-оператор
или празен
оператор (само
точка и
запетая).
Синтаксисът на цикъла for включва 3 елемента:
-
начални
стойности
-
задават се
начални
стойности на
променливи,
като отделните
изрази се
разделят със запетаи;
-
условие за
изпълнение
на цикъла
-
булев израз;
-
изрази
- (стъпка
на цикъла)
задават се
изрази за
изчисление,
като се
разделят със
запетаи;
G ВНИМАНИЕ! Всеки един от първите три елемента може да бъде пропуснат, но обикновените скоби и двете точки и запетаи са задължителни.
При изпълнение на цикъла for първо се изчисляват началните стойности (еднократно), след което се проверява условието (булевият израз има стойност 1) , ако е изпълнено(булевият израз има стойност 1) се пристъпва към изпълнение на тялото на цикъла. Изчисляват се изразите и отново се проверява условието. Ако условието не е изпълнено, управлението се предава на първия оператор след тялото на цикъла (фиг.1).

Пример:
Фрагмента
от програма,
изчисляващ
сумата на
числата от 1
до n може да
се запише по
няколко
начина:
І начин –
в трите
елемента на
цикъла for има по
един израз:
cout<<”n=”; coin>>n;
s=0;
for(Br=1;Br<=n;Br++)
s+=Br;
ІІ
начин – в
първи и трети
елемент на
цикъла for има по
два израза и
тялото на
цикъла е
празен
оператор:
cout<<”n=”; coin>>n;
for(s=0,Br=1;Br<=n;Br++,s+=Br)
;
ІІІ
начин - в
първи и трети
елемент на
цикъла for
няма изрази:
cout<<”n=”; coin>>n;
s=0;
Br=1;
for(;Br<=n;)
{ Br++;
s+=Br;
}
G ВНИМАНИЕ! Възможно е да се дефинира безкраен цикъл for:
for(;;)
тяло на цикъла
,
но в такъв случай трябва да се осигури напускане на цикъла при удовлетворяване на определено условие вътре в тялото на цикъла.
Пример
Тялото на
цикъла се
напуска при
въвеждане на
стойност 0 за
променливата
х.
s=0;
for(;;)
{
cout<<”x=”; coin>>x;
if
(x==0) break;
s+=x;
}

Зад.1 Да се напише програма, която намира сумата на целите числа от 1 до n, като n се въвежда от клавиатурата (1 £ n £ 30000). (т.1, задача 1)
Решение
Необходими са три променливи:
n - за
крайното
число;
i - за управляващата променлива на цикъла, като тя ще съдържа и текущото число, което ще се добавя;
s - за натрупване на сумата.
Преди да се започне сумирането, променливата s се нулира (s:=0). При всяко изпълнение на тялото на цикъла към старата сума се добавя новата стойност на i (s=s+i), след което стойността на i се намалява с 1. Цикълът се напуска, когато стойността на i стане равна на 0.
Блоковата схема на алгоритъма на тази задача е показана на фиг.2.
Ò
#include <iostream.h>
void main(void)
{
int i,n;
long int
s;
do{
cout<<”n=”; cin>>n;
}while
(n<1 || n>30000);
for(s=0,i=1;i<=n;i++)
s+=i;
cout<<”s=”<<s<<”\n”;
}
Зад.2 Да се напише програма, която въвежда n на брой числа от клавиатурата и намира тяхната сума (1 £ n £ 1000). (т.1, задача 3)
Зад.3
Да се напише
програма,
която
въвежда n на
брой числа от
клавиатурата
и намира
сумата само
на онези от
тях, които са
положителни (1
£ n £ 1000). ( т.1, задача 5)
Зад.4 Да се напише програма, която въвежда n на брой числа от клавиатурата и намира средноаритметичната стойност на онези от тях, които са положителни (1 £ n £ 1000). (т.1, задача 6)
Зад.5
Да се напише
програма,
която намира
произведението
на числата от
1 до n, като n
се въвежда от
клавиатурата (n £ 33). (т.1,
задача 2)
![]()
ЗАДАЧИ ЗА САМОСТОЯТЕЛНА РАБОТА
Œ Да се
напише
програма,
която
въвежда n(n£10) на
брой числа,
по-малки от 100, и
намира
тяхното
произведение.
Да се напише програма, която въвежда n на брой числа от клавиатурата и намира сумата на онези от тях, които са отрицателни.
Да се напише програма, която въвежда n(n£10) на брой числа, по-малки от 100, и намира произведението на онези от тях, които са различни от нула.
Да
се напише
програма,
която
въвежда n на брой
числа от
клавиатурата
и намира сумата
на онези от
тях, които са
по-големи от
дадено число к.
Да се напише програма, която въвежда n на брой числа от клавиатурата и намира средноаритметичната стойност на онези от тях, които са по-големи от предварително зададено число к.
‘ Да се напише програма, която въвежда n на брой числа от клавиатурата и намира средноаритметичната стойност на онези от тях, които са по-малки от дадено число к.
’ Да
се напише
програма,
която
въвежда n на брой
числа от
клавиатурата
и намира средноаритметичната
стойност на
онези от тях,
които са
по-малки от
дадено число u и
по-големи от дадено
число v (u>v).
“ Годишната лихва в една банка е Р%. Ако в началото на годината са внесени L лева, да се пресметне каква сума може да се изтегли след N години.