1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
# Оператори за цикъл
### Цикъл while

```c++
while(<condition>)
{
body...
}
```
Пример с **Алгоритъмът на Евклид**:
```c++
n = 16, k = 24
<24, 16> 24 % 16 = 8
<16, 8> 16 % 8 = 0
<8, 0>
=> gcd(16,24) = 8
```
### Цикъл for
```c++
for(int i = 0; i <= 300; i+=2)
{
//body
}
```
Структурата на for-циклите включва:
1. инициализационен блок
2. условие на цикъла
3. команди за обновяване на водещите променливи
4. Тяло на цикъла
### Цикъл do-while
_Do-while_ конструкцията е подобна _while_ цикъла, но с тази разлика, че условието е зададено в края т.е. проверката се прави след като се изпълни тялото на цикъла.
```c++
do
{
//body
} while(<condition>);
```
**Важно**: При do-while тялото се изпълнява поне веднъж!
### Оператор break
Използва се преждевременно излизане от цикъл, преди той да е завършил изпълнението си по естествения си начин.
### Оператор continue
Използва се, когато реализираният алгоритъм изисква пропускане на част от операторите или част от кода в тялото на даден цикъл.
<h3>Задачи</h3>
**Задача 1:** Да се напише програма, която приема поток от числа. Числата се събират, докато не се въведе числото 0. Тогава трябва да се отпечата акумулираният резултат и да програмта да приключи.
*Вход: 1 2 3 4 5 6 0, Изход: 21*
*Вход: 9 9 1 0, Изход: 19*
*Вход: 5 4 3 0 Изход: 12*
**Задача 2:** Да се напише програма, която приема 2 числа. Да се отпечатат всички общи делители сортиран наобратно.
*Вход: 28 21, Изход: 7 3 1*
*Вход: 60 30 Изход: 30 15 10 5 3 1*
*Вход: 5 4 3 0 Изход: 12*
**Задача 3:** Да се напише програма, която приема число и премахва среднaта цифра , ако числото има нечетен брой цифри или премахва средните две цифри, ако числото има четен брой цифри. След това да се отпечата числото увеличено с 1-ца.
*Вход: 1234, Изход: 14, 15*
*Вход: 123 Изход: 13, 14*
*Вход: 51234 Изход: 5134, 5135*
*Вход: 5 Изход: 0, 1*
**Задача 4:** Да се напише програма, която приема 2 числa - a и b и отпечатва всички прости числа в интервала [a, b].
*Вход: 10 20, Изход: 11, 13, 17, 19*
*Вход: 20 1 Изход: 2, 3, 5, 7, 11, 13, 17 19*
*Вход: 1 20 Изход: 2 3 5 7 11 13 17 19*
**Задача 5:** Да се напише програма, която приема цяло число и отпечатва дали е степен на 2-ката.
*Вход: 1 , Изход: true*
*Вход: 20 Изход: false*
*Вход: 1024 Изход: true*
**Задача 6:** Да се напише програма, която приема цяло положително число n и отпечатва числата от 1 до n*n в спираловиден вид.
*Вход:
4
Изход:
1 2 3 4
8 7 6 5
9 10 11 12
16 15 14 13*
**Задача 7:** Въвеждат се 5 цели числа - a,b,c,d, e.
Разглеждаме полинома f(x) = a * x^4 + b * x^3 + c* x^2 + d * x + e.
Отпечатайте всички цели решения на f(x) >= 0 където x e в интервала [-100, 100]
*Вход: -1 4 0 8 1 , Изход: -1 0 2 3*
*Вход: 0 0 -1 5 -6 Изход: 2 3*
|