340 likes | 443 Views
Цикли. Повтаряне на един и същ код многократно. Ивелин Давидов . Ivelin.davidov@gmail.com. Съдържание на темата. Какво е цикъл? Видове цикли while цикли do-while цикли for цикли foreach цикли Вложени цикли . Какво е цикъл.
E N D
Цикли Повтаряне на един и същ код многократно Ивелин Давидов Ivelin.davidov@gmail.com
Съдържание на темата • Какво е цикъл? • Видове цикли • while цикли • do-while цикли • for цикли • foreach цикли • Вложени цикли
Какво е цикъл • Цикъл (loop) е основна конструкция в програмирането, позволяваща многократно изпълнение на дадено парче сорс код • Може да изпълни парче код фиксиран брой пъти • Може да изпълни парче код, докато дадено условие е изпълнено • Може да изпълни парче код за всеки елемент на дадена колекция • Безкраен се нарича цикил, който никога не приключва изпълнението си
while цикъл Изпълнявай парче код, докато дадено условие е изпълнено
while цикъл • Най-простият цикъл • Условието е израз, връщащ булев (bool) резултат– true или false • Докато резултатът е true, тялото на цикъла се изпълнява while (условие) { тяло на цикъла;}
Как работи false Условие true Тяло на цикъла
while цикъл пример • Какво ще изведе този код в конзолата? int counter = 0; while (counter < 10) { Console.WriteLine("Number : {0}", counter); counter++; }
while цикъл Демонстрации
do-whileцикъл пример • Тялото на цикъла се изпълнява няколко пъти • Докато условието връща true • Цикълът се изпълнява поне веднъж do { тяло на цикъла; } while (условие);
Как работи Тяло на цикъла true Условие false
Do-while цикли Демонстрации
for цикъл • Състои се от • Инициализация • Булево условие • Команда за обновяване на водещата променлива • Тяло на цикъла for (инициализация; условие; ъпдейт) { тяло на цикъла;}
for цикъл - инициализация • Изпълнява се само веднъж, когато цикълът започва • Най-често се използва, за да декларираме брояч for (int i = 0; условие; ъпдейт) { тяло на цикъла;}
for цикъл – булево условие • Проверява се преди всяка итерация на цикъла • Ако резултатът е trueтялото се изпълнява • Ако резултатът е falseтялото на цикъла се пропуска for (int num = 0;num < 10; ъпдейт) { тяло на цикъла;}
for цикъл – ъпдейт • Изпълнява се след всяка итерация на циъкла • Използва се, за да увеличава стойността на брояча for (int num = 0;num < 10; num++) { тяло на цикъла;}
for цикли Демонстрации
foreach цикъл • Обходжа всеки елемент от колекция • elementе променлива, която взима една по една всички стойности на колекцията • collectionможе да е List, масив, или друга група от елементи с един и същи тип foreach (Type element in collection){ statements;}
foreach цикъл • Горният пример обхожда масива с градове и ги принтира string[] towns = new string[] { “Sofia", “Plovdiv", “Varna", “Burgas", “Ruse" }; foreach (string town in towns) { Console.WriteLine(town); }
foreach цикъл Демонстрации
Вложени цикли • Конструкция от цикъл, който има в тялото си друг цикъл се нарича вложени цикли for (инициализация; условие; ъпдейт) { for (инициализация; условие; ъпдейт) { тяло на цикъла; } … }
Вложени цикли Демонстрации
Упражнения • Напишете програма, която принтира всички числа от 1 до N. Числото N да се чете от конзолата.Пр: N = 51 2 3 4 5 • Напишете програма, която принтира всички числа от 1 до N, които не се делят на 2 и 7 едновременно. • Пр: N= 301 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
Упражнения • Напишете програма, която чете от конзолата N числа и принтира най-малкото и най-голямото от тях.Примерен вход: N = 5->3 9 11 -5 2Примерен изход: Max=11, Min= -5 • Да се намери сумата на положителните числа от дадена редица с N елемента.Примерен вход: N = 4, -> 3 -6 5 1Примерен изход: 10 • Напишете програмя, кяото изчислява N!/K! за дадени N и K (1<N<K).Примерен вход: N=5, K=3, Изход: 20
Упражнения • Напишете програма, която прочита от конзолата число N и изчислява сумата на първите N числа на Фибоначи • 0, 1, 1, 2, 3, 5, 8, 13, 21 ... • Всяко число от редицата на Фибоначи е сума на предходните 2 елемента (с изключение на първия) • Дадена е редица с N елемента. Да се определи най-малкото положително число от редицата.Пр. N = 7-9 5 2 -4 12 9 -1
Упражнения • Напишете програма, която намира най-малкото общо кратно на две числаПримерен вход: 12 и 9 Примерен изход: 36 • Да се принтират всички щастливи четирицифрени числа.Едно четирицифрено число ABCD е щастливо, когато A + D = B + C
Упражнения • Напишете програма, която изчислява най-големият общ делител на две числаa и b.Примерен вход: a=18, b=84, Изход: 6 • Решете предходната задача използвайки алгоритъмът на Евклид. • Напишете програма, която число число N и принтира на матрица като долу показаната: N=3 N=4
Упражнения • Напишете програма, която принтира имената на всички карти от тесте с 52 карти.1спатия2 спатия3 спатия....Поп спатияАсо спатия1 каро2 каро.....Асо пика