Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 03 / README.md
blob: 3b50fa73eded05eafa331e2f5f468cf039b865e1 (plain) (blame)
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


![enter image description here](https://i.ibb.co/7GgKR7k/Untitled-Diagram-1.png)
```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*