# Оператори за цикъл ### Цикъл while ![enter image description here](https://i.ibb.co/7GgKR7k/Untitled-Diagram-1.png) ```c++ while() { 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(); ``` **Важно**: При do-while тялото се изпълнява поне веднъж! ### Оператор break Използва се преждевременно излизане от цикъл, преди той да е завършил изпълнението си по естествения си начин. ### Оператор continue Използва се, когато реализираният алгоритъм изисква пропускане на част от операторите или част от кода в тялото на даден цикъл.

Задачи

**Задача 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 1* *Вход: 60 30 Изход: 30 15 10 6 5 3 2 1* *Вход: 19 17 Изход: 1* **Задача 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, Изход:* *Вход: 1 20 Изход: 2 3 5 7 11 13 17 19* **Задача 5:** Да се напише програма, която приема цяло число и отпечатва дали е степен на 2-ката. *Вход: 1 , Изход: true* *Вход: 20 Изход: false* *Вход: 1024 Изход: true* **Задача 6:** Въвеждат се 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* **!!** Задачите надолу са за рисуване на конзолата. Във файла *drawing_examples.txt* има изходите като текст.**!!** **Задача 8:** Да се напише програма, която приема цяло положително число n и отпечатва следната пирамида от доларчета *Пример:* ![enter image description here](https://i.ibb.co/SNqW5YF/Capture.png) **Задача 9:** Да се напише програма, която приема цяло положително число n и отпечатва следната пирамида от числа (подравнена надясно) *Пример:* ![enter image description here](https://i.ibb.co/wyPfryz/Capture4.png) **Задача 10:** Да се напише програма, която приема цяло положително число n и отпечатва числата от 1 до n*n в спираловиден вид **(тип 1)* *Пример:* ![enter image description here](https://i.ibb.co/KF7TcH6/Capture6.png) **Задача 11:** Да се напише програма, която приема цяло положително число n и отпечатва числата от 1 до n*n в спираловиден вид **(тип 2)* *Пример:* ![enter image description here](https://i.ibb.co/hg0268B/Capture7.png) **Задача 12:** Да се напише програма, която приема цяло положително число n и отпечатва следната рамка *Пример:* ![enter image description here](https://i.ibb.co/vBjhsTj/Capture2.png) **Задача 13:** Да се напише програма, която приема цяло положително число n и отпечатва следната гира: *Пример:* ![enter image description here](https://i.ibb.co/Wcr1X4f/Capture5.png) **Задача 14:** Да се напише програма, която приема цяло положително число n и отпечатва следното дърво: *Пример:* ![enter image description here](https://i.ibb.co/bPBYHxV/Capture3.png) **Задача 15:** Да се напише програма, която приема цяло положително число n и отпечатва следната папионка: ![enter image description here](https://i.ibb.co/NKSPm4z/ddz.png) **Задача 16:** Да се напише програма, която приема цяло положително число n и отпечатва следния килим: ![enter image description here](https://i.ibb.co/c2w8Gwt/kilim.png) **Задача 17:** Да се напише програма, която приема цяло положително число n (n>=2) и след това n цели числа. Да се отпечатат най-голямато и второто по големина. *Вход: 10 9 1 4 5 10 99 34 0 44 1, Изход: 99 44* *Вход: 4 1 3 3 1, Изход: 3 3*