Цикли

32
Цикли Повтаряне на един и същ код многократно Ивелин Давидов [email protected]

description

Цикли. Повтаряне на един и същ код многократно. Ивелин Давидов. [email protected]. Съдържание на темата. Какво е цикъл? Видове цикли while цикли do-while цикли for цикли foreach цикли Вложени цикли. Какво е цикъл. - PowerPoint PPT Presentation

Transcript of Цикли

Page 1: Цикли

ЦиклиПовтаряне на един и същ код

многократно

Ивелин Давидов[email protected]

Page 2: Цикли

2

Съдържание на темата

Какво е цикъл? Видове цикли

while цикли

do-while цикли

for цикли

foreach цикли

Вложени цикли

Page 3: Цикли

3

Какво е цикъл Цикъл (loop) е основна конструкция в

програмирането, позволяваща многократно изпълнение на дадено парче сорс код Може да изпълни парче код фиксиран брой

пъти Може да изпълни парче код, докато дадено

условие е изпълнено Може да изпълни парче код за всеки елемент

на дадена колекция

Безкраен се нарича цикил, който никога не приключва изпълнението си

Page 4: Цикли

Изпълнявай парче код, докато дадено условие е изпълнено

while цикъл

Page 5: Цикли

5

while цикъл Най-простият цикъл

while (условие){ тяло на цикъла;}

Условието е израз, връщащ булев (bool) резултат – true или false

Докато резултатът е true, тялото на цикъла се изпълнява

Page 6: Цикли

6

Как работи

Условие

Тяло на цикъла

false

true

Page 7: Цикли

7

while цикъл пример

Какво ще изведе този код в конзолата?

int counter = 0;while (counter < 10){ Console.WriteLine("Number : {0}", counter); counter++;}

Page 8: Цикли

Демонстрации

while цикъл

Page 9: Цикли

do-while цикъл

Page 10: Цикли

10

do-while цикъл пример

Тялото на цикъла се изпълнява няколко пъти Докато условието връща true

Цикълът се изпълнява поне веднъж

do{ тяло на цикъла;}while (условие);

Page 11: Цикли

11

Как работи

Условие

Тяло на цикъла

true

false

Page 12: Цикли

Демонстрации

Do-while цикли

Page 13: Цикли

for цикли

Page 14: Цикли

14

for цикъл

Състои се от Инициализация

Булево условие

Команда за обновяване на водещата променлива

Тяло на цикъла

for (инициализация; условие; ъпдейт){ тяло на цикъла;}

Page 15: Цикли

15

for цикъл - инициализация

Изпълнява се само веднъж, когато цикълът започва

Най-често се използва, за да декларираме брояч

for (int i = 0; условие; ъпдейт){ тяло на цикъла;}

Page 16: Цикли

16

for цикъл – булево условие

Проверява се преди всяка итерация на цикъла Ако резултатът е true тялото се изпълнява

Ако резултатът е false тялото на цикъла се пропуска

for (int num = 0; num < 10 ; ъпдейт){ тяло на цикъла;}

Page 17: Цикли

17

for цикъл – ъпдейт

Изпълнява се след всяка итерация на циъкла

Използва се, за да увеличава стойността на брояча

for (int num = 0; num < 10 ; num++){ тяло на цикъла;}

Page 18: Цикли

Демонстрации

for цикли

Page 19: Цикли

foreach цикли

Page 20: Цикли

20

foreach цикъл

Обходжа всеки елемент от колекция element е променлива, която взима една по

една всички стойности на колекцията

collection може да е List, масив, или друга група от елементи с един и същи тип

foreach (Type element in collection){ statements;}

Page 21: Цикли

21

foreach цикъл

Горният пример обхожда масива с градове и ги принтира

string[] towns = new string[] { “Sofia", “Plovdiv", “Varna", “Burgas", “Ruse" };foreach (string town in towns){ Console.WriteLine(town);}

Page 22: Цикли

Демонстрации

foreach цикъл

Page 23: Цикли

Вложени цикли

Page 24: Цикли

24

Вложени цикли

Конструкция от цикъл, който има в тялото си друг цикъл се нарича вложени цикли

for (инициализация; условие; ъпдейт){ for (инициализация; условие; ъпдейт) { тяло на цикъла; } …}

Page 25: Цикли

Демонстрации

Вложени цикли

Page 26: Цикли

Въпроси?

Page 27: Цикли

27

Упражнения1. Напишете програма, която принтира всички

числа от 1 до N. Числото N да се чете от конзолата.Пр: N = 51 2 3 4 5

2. Напишете програма, която принтира всички числа от 1 до N, които не се делят на 2 и 7 едновременно. Пр: N= 30

1 2 3 4 5 6 7 8 9 10 11 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30

Page 28: Цикли

28

Упражнения

3. Напишете програма, която чете от конзолата N числа и принтира най-малкото и най-голямото от тях.Примерен вход: N = 5 -> 3 9 11 -5 2Примерен изход: Max=11, Min= -5

4. Да се намери сумата на положителните числа от дадена редица с N елемента.Примерен вход: N = 4, -> 3 -6 5 1Примерен изход: 10

5. Напишете програмя, кяото изчислява N!/K! за дадени N и K (1<N<K).Примерен вход: N=5, K=3, Изход: 20

Page 29: Цикли

29

Упражнения6. Напишете програма, която прочита от

конзолата число N и изчислява сумата на първите N числа на Фибоначи 0, 1, 1, 2, 3, 5, 8, 13, 21 ... Всяко число от редицата на Фибоначи е сума на

предходните 2 елемента (с изключение на първия)

7. Дадена е редица с N елемента. Да се оп ре де ли най-малкото по ло жи тел но чис ло от редицата.Пр. N = 7-9 5 2 -4 12 9 -1

Page 30: Цикли

30

Упражнения8. Напишете програма, която намира най-

малкото общо кратно на две числаПримерен вход: 12 и 9 Примерен изход: 36

9.Да се принтират всички щастливи четирицифрени числа.Едно четирицифрено число ABCD е щастливо, когато A + D = B + C

Page 31: Цикли

31

Упражнения10. Напишете програма, която изчислява най-

големият общ делител на две числа a и b.Примерен вход: a=18, b=84, Изход: 6

11. Решете предходната задача използвайки алгоритъмът на Евклид.

12. Напишете програма, която число число N и принтира на матрица като долу показаната:

1 2 32 3 44 5 6

1 2 3 45 6 7 89 10 11 1213 14 15 16

N=3 N=4

Page 32: Цикли

32

Упражнения13. Напишете програма, която принтира

имената на всички карти от тесте с 52 карти.1 спатия2 спатия3 спатия....Поп спатияАсо спатия1 каро2 каро.....Асо пика