SlideShare una empresa de Scribd logo
1 de 53
Курс по програмиране на C#
Занятие №2
Конзолен вход и изход. Условни преходи. Цикли

2013
Съдържание
•
•
•
•
•
•

Конзолни приложения
Въвеждане на данни от конзолата
Извеждане на данни на конзолата
Условия
Условни преходи
Цикли
Конзолни приложения
• Какво е „конзола“?
– Съвкупността от физически устройства за въвеждане и
визуализиране на информация
– Историческо начало и наследство
– Конзола в Microsoft Windows
Конзолни приложения
• Какво е „конзолно приложение“?
– Взаимодействието с потребителя се осъществява през конзолата
– Удобни за автоматизирани операции
– Прости програми – удобни за навлизане в разработката на
съответния език
– Неудобни за употреба от потребители (в общия случай)
Конзолни приложения
• Конзолни приложения в .NET
– Проектен шаблон Console Application
– Класът System.Console
Въвеждане на данни от конзолата
• Прочитане на един символ
• Прочитане на цял ред
• Прочитане на клавиш или
комбинация от клавиши
• Изчакване до натискане на клавиш

// прочитане на един символ
int i = Console.Read();
char c = Convert.ToChar(i);
// прочитане на цял ред
string line = Console.ReadLine();
// прочитане на клавиш
ConsoleKeyInfo key =
Console.ReadKey();
// изчакване до натискане на
// произволен клавиш
Console.ReadKey();
// изчакване до натискане на Enter
Console.ReadLine();
Въвеждане на данни от конзолата - демо
// Демонстрация
Въвеждане на данни от конзолата
•
•
•
•

Въвеждане на цяло число
Въвеждане на дробно число
Въвеждане на дата
Въвеждане на булева стойност

// въвеждане на цяло число
int integer =
int.Parse(Console.ReadLine());
// въвеждане на дробно число
double real =
double.Parse(Console.ReadLine());
// въвеждане на дата
DateTime date = DateTime.Parse(
Console.ReadLine());
// въвеждане на булева стойност
bool boolean =
bool.Parse(Console.ReadLine());
Въвеждане на данни от конзолата - демо
// Демонстрация
Извеждане на данни на конзолата
• Извеждане на низ
• Извеждане на число
• Извеждане на други примитивни
типове данни
• Извеждане на произволен обект
• Преминаване на нов ред

// извеждане на низ
Console.Write("Hello World!");
// извеждане на число
Console.Write(3.14159265359d);
// извеждане на булева стойност
Console.Write(true);
// извежане на произволен обект
object obj = DateTime.Now;
Console.Write(obj);
// преминаване на нов ред
Console.WriteLine();
// нов ред след извеждане на стойност
Console.WriteLine(42);
Извеждане на данни на конзолата - демо
// Демонстрация
Извеждане на данни на конзолата
• Извеждане на една или повече
стойности с помощта на
форматиращ низ
• Подравняване
• Форматиране на числа
• Форматиране на дати

// извеждане с форматиращ низ
string name = "Peter";
Console.WriteLine("Hello, {0}", name);
// подравняване
Console.WriteLine("Views: {0,5}", 335);
Console.WriteLine("Users: {0,5}", 13);
// форматиране на цяло число
Console.WriteLine("Number: {0:d5}", 3);
// форматиране на дробно число
Console.WriteLine("Pi: {0:f4}", Math.PI);
// форматиране на датa
Console.WriteLine(
"Date: {0:dd-MM-yyyy}", DateTime.Now);
Извеждане на данни на конзолата - демо
// Демонстрация
Условия
• Какво е „условие“?
–
–
–
–

Израз с булев резултат
Булеви променливи, константи и литерали
Сравнения
Логически операции
Условия
• Сравнения
–
–
–
–
–
–

Равенство
Неравенство
По-малко
По-малко или равно
По-голямо
По-голямо или равно

// равенство
bool b1 = (s == "Hello");
// неравенство
bool b2 = (s != "World");
// по-малко
bool b3 = (x < 14);
// по-малко или равно
bool b4 = (y <= 0);
// по-голямо
bool b5 = (x > 5);
// по-голямо или равно
bool b6 = (y >= 20);
Условия
• Логически операции
–
–
–
–

Отрицание (логическо „не“)
Конюнкция (логическо „и“)
Дизюнкция (логическо „или“)
Изключваща дизюнкция (изключващо
„или“)

// отрицание ("не")
bool b7 = !b2;
// конюнкция ("и")
bool b8 = (b3 && b5);
// дизюнкция ("или")
bool b9 = (b4 || b6);
// изключваща дизюнкция
// (изключващо "или")
bool b10 = (b8 ^ b9);
Условия
• Закони на Де Морган
– Двойно отрицание
– Отрицание на конюнкцията
– Отрицание на дизюнкцията

• „Мързеливо“ пресмятане на
условията

// закон за двойното отрицание
!(!b1) == b1
// закон за отрицание на конюнкцията
!(b3 && b5) == (!b3 || !b5)
// закон за отрицание на дизюнкцията
!(b4 || b6) == (!b4 && !b6)
// "мързеливо" пресмятане
(false && b3 /* && ... */) == false
(true || b4 /* || ... */) == true
Условия - демо
// Демонстрация
Условни преходи
• Какво е „условен преход“?
– Конструкция на езика за програмиране
– Позволява изпълнението или неизпълнението на операции в
зависимост от условие
– Необходими за реално приложими програми
Условни преходи
• Конструкция за условен преход if
– Условие
– Блок от операции
– Ако условието е изпълнено, се
изпълняват съжденията в блока след if
– В противен случай не се изпълнява
нищо

// условен преход с едноредов блок
string line = Console.ReadLine();
if (line == "hi")
Console.WriteLine("Hello!");
// условен преход с многоредов блок
Console.WriteLine("What's your name?");
line = Console.ReadLine();
if (line != string.Empty)
{
Console.WriteLine(
"Hello, {0}!", line);
Console.WriteLine(
"Nice to meet you!");
}
Конструкция за условен преход if - демо
// Демонстрация
Условни преходи
• Конструкция за условен преход
if…else
Условие
Блок от операции при вярно условие
Блок от операции при грешно условие
Ако условието е изпълнено, се
изпълняват съжденията в блока след if
– В противен случай се изпълняват
съжденията в блока след else
–
–
–
–

// условен преход с else
Console.Write("Are you a girl (y/n)?");
string line = Console.ReadLine();
if (line == "y")
{
Console.WriteLine(
"You probably have long hair.");
}
else
{
Console.WriteLine(
"Let's watch football.");
}
Конструкция за условен преход if…else - демо
// Демонстрация
Условни преходи
• Вложени конструкции за условен
преход
– Блокът с операции на конструкция за
условен преход може да съдържа
друга конструкция за условен преход

// вложени условни преходи
Console.WriteLine("Tell me an integer.");
int n = int.Parse(Console.ReadLine());
if (n > 0)
{
if (n % 2 == 0)
Console.WriteLine("It's even.");
else
Console.WriteLine("It's odd.");
}
else
{
Console.WriteLine(
"It's not positive.");
}
Условни преходи
• Вложени конструкции за условен
преход
– Често прилаган подход: if…else if…else
if…else if…

// Поредица от if...else if...
Console.WriteLine(
"Tell me another integer.");
int x = int.Parse(Console.ReadLine());
if (x > 0)
Console.WriteLine("It is positive.");
else if (x < 0)
Console.WriteLine("It is negative.");
else
Console.WriteLine("It is zero.");
Вложени конструкции за условен преход - демо
// Демонстрация
Условни преходи
• Конструкция switch-case
– Сравнение на израз с няколко различни константи
– Прави кода по-четим и по-лесен за поддръжка
Условни преходи
• Конструкция switch-case
– Израз, който се сравнява
– Поредица от секции с константа и
съждения, които да бъдат изпълнени
при съвпадение
– Задължително прекратяване на
изпълнението във всяка секция – break
– Секции с повече от една константа
– Секция по подразбиране – при липса
на съвпадение с никоя от константите

// Конструкция switch-case
Console.Write(
"Do you like programming (y/n)?");
string line = Console.ReadLine();
switch (line)
{
case "y":
Console.WriteLine("Great!");
break;
case "n":
case "N":
Console.WriteLine("Awww. :(");
break;
default:
Console.WriteLine(
"Make up your mind!");
break;
}
Конструкция switch-case - демо
// Демонстрация
Условни преходи
• Условен тернарен оператор
– Резултат: една от две възможни стойности според това дали е
изпълнено условие
– Прави кода по-кратък, четим и лесен за поддръжка
Условни преходи
• Условен тернарен оператор

// условен тернарен оператор
Console.WriteLine(
– Условие
"What's your surname?");
– Стойност ако условието е изпълнено
string surname = Console.ReadLine();
– Стойност ако условието не е изпълнено Console.WriteLine(
"What's your gender (m/f)?");
string line = Console.ReadLine();
string title =
(line == "m" ? "Mr" : "Ms");
Console.WriteLine(
"Greetings, {0} {1}.",
title, surname);
Условен тернарен оператор - демо
// Демонстрация
Цикли
• Какво е „цикъл“?
– Конструкция на езика за програмиране
– Позволява многократното изпълнение на една и съща поредица от
операции
– Итерация – еднократно изпълнение на операциите в цикъла
– Условие за преустановяване на цикъла
– Необходими за реално приложими програми
Цикли
• Видове цикли
–
–
–
–

Цикли с предусловие
Цикли с постусловие
Крайни цикли
Безкрайни цикли
Цикли
• Цикъл с предусловие while
– Условие
– Блок от операции
– Условието се проверява преди
изпълнението на итерацията
– Нула или повече итерации

// цикъл с предусловие while
Console.WriteLine(
"Commencing countdown.");
int counter = 10;
while (counter > 0)
{
Console.WriteLine(
"{0}!", counter);
counter--;
}
Console.WriteLine("Launch!");
Цикъл с предусловие while - демо
// Демонстрация
Цикли
• Цикъл с постусловие do…while
– Блок от операции
– Условие
– Условието се проверява след
изпълнението на итерацията
– Една или повече итерации

// цикъл с постусловие do...while
int age;
do
{
Console.WriteLine(
"How old are you?");
age = int.Parse(
Console.ReadLine());
}
while (age <= 0);
Цикъл с постусловие do…while - демо
// Демонстрация
Цикли
• Цикъл for
Инициализация на брояча
Условие
Инкрементиране на брояча
Блок с операции
Условието се проверява преди
изпълнението на итерацията
– Инкрементирането се изпълнява след
изпълнението на итерацията
– Нула или повече итерации
–
–
–
–
–

// цикъл for
Console.WriteLine(
"Tell me a positive integer.");
int top = int.Parse(Console.ReadLine());
Console.WriteLine(
"The integers from 1 to {0} are:",
top);
for (int i = 1; i <= top; i++)
{
Console.WriteLine(i);
}
Цикъл for - демо
// Демонстрация
Цикли
• Цикъл foreach
Променлива за елемент
Изброима колекция от елементи
Блок с операции
Цикълът продължава докато има
неизброени елементи в колекцията
– Нула или повече итерации
–
–
–
–

// цикъл foreach
Console.WriteLine("Tell me a word.");
string word = Console.ReadLine();
Console.WriteLine(
"The word split into characters:");
foreach (char c in word)
{
Console.WriteLine(c);
}
Цикъл foreach - демо
// Демонстрация
Цикли
• Управление на циклите
– Прекратяване на текущата итерация –
continue
– Прекратяване на цикъла – break

// управление на циклите
for (int i = 0; i < 100; i++)
{
if (i % 3 == 0)
continue;
Console.WriteLine(i);
if (i == 10)
break;
}
Управление на циклите - демо
// Демонстрация
Цикли
• Безкрайни цикли
– Условие, което винаги е истина
– Разчита се на прекратяване на цикъла
чрез break
– Опасност от „зацикляне“ на
програмата
– Могат да се реализират като крайни
цикли
– Понякога правят кода по-прост

// "безкраен" цикъл
while (true)
{
Console.WriteLine(
"The current time is {0}",
DateTime.Now.TimeOfDay);
Console.WriteLine(
"Type 'exit' to exit.");
string line = Console.ReadLine();
if (line == "exit")
break;
}
Безкрайни цикли - демо
// Демонстрация
Цикли
• Вложени цикли

// вложени цикли
for (int i = 1; i < 10; i++)
– Блокът с операции на цикъл може да
{
съдържа друг цикъл
for (int j = i; j < 10; j++)
– Във всяка итерация на външния цикъл се
{
изпълнява целият вътрешен цикъл
Console.Write("{0,2}", j);
}
Console.WriteLine();
}
Вложени цикли - демо
// Демонстрация
Задачи за упражнение
• Създайте програма, в която се въвежда година (цяло
положително число) и се извежда съобщение дали тя е
високосна или не.
• Създайте програма, в която се въвежда дробно число и
след това то се извежда с избран от потребителя брой
знаци след десетичната запетая.
• Създайте програма, в която въвежда се цяло положително
число и се извежда съобщение дали то е просто или не.
• Създайте програма, в която се въвежда цяло положително
число и се извеждат всички прости числа, по-малки или
равни на него.
Задачи за упражнение
• Създайте програма, в която се въвежда цяло
неотрицателно число n и се извежда факториелът му (n!).
• Създайте програма, в която се въвежда цяло положително
число n и се извежда n-тото по ред число от редицата на
Фибоначи.
• Създайте програма, в която се въвеждат коефициентите на
квадратно уравнение и се намират неговите решения, като
се разгледат всички случаи.
• Създайте програма, в която се въвежда поредица от оценки
(дробни числа между 2 и 6) на ученици и се извежда
средният успех на класа.
Задачи за упражнение
• Създайте конзолно приложение-калкулатор, в което
потребителят избира аритметична операция (събиране,
изваждане, умножение, деление), въвежда двата операнда
(дробни числа) и получава резултата; изпълнението да
продължи до избиране на опция за изход вместо
аритметична операция.
• Създайте проста текстово-базирана приключенска игра, в
която потребителят въвежда текстови команди и след всяка
команда получава описание на резултата от нея.
Въпроси?
Благодаря!
• Александър Далемски
– sasho@david.bg
– Skype: musasho
– https://facebook.com/adalemski

• ДАВИД академия
–
–
–
–

acad@david.bg
http://acad.david.bg/
@david_academy
https://facebook.com/DavidAcademy

Más contenido relacionado

La actualidad más candente

Училищен курс по програмиране на C# (2013/2014), занятие №7
Училищен курс по програмиране на C# (2013/2014), занятие №7Училищен курс по програмиране на C# (2013/2014), занятие №7
Училищен курс по програмиране на C# (2013/2014), занятие №7DAVID Academy
 
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)DAVID Academy
 
Училищен курс по програмиране на C# (2013/2014), занятие №12
Училищен курс по програмиране на C# (2013/2014), занятие №12Училищен курс по програмиране на C# (2013/2014), занятие №12
Училищен курс по програмиране на C# (2013/2014), занятие №12DAVID Academy
 
Училищен курс по програмиране на C# (2013/2014), занятие №11
Училищен курс по програмиране на C# (2013/2014), занятие №11Училищен курс по програмиране на C# (2013/2014), занятие №11
Училищен курс по програмиране на C# (2013/2014), занятие №11DAVID Academy
 
Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)
Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)
Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)DAVID Academy
 
Курс по програмиране на C# 2013 - 2. Конзолен вход и изход. Условни преходи. ...
Курс по програмиране на C# 2013 - 2. Конзолен вход и изход. Условни преходи. ...Курс по програмиране на C# 2013 - 2. Конзолен вход и изход. Условни преходи. ...
Курс по програмиране на C# 2013 - 2. Конзолен вход и изход. Условни преходи. ...DAVID Academy
 
Курс по уеб програмиране (2015), занятие №1 - HTML
Курс по уеб програмиране (2015), занятие №1 - HTMLКурс по уеб програмиране (2015), занятие №1 - HTML
Курс по уеб програмиране (2015), занятие №1 - HTMLDAVID Academy
 
Училищен курс по програмиране на C# (2013/2014), занятие №3
Училищен курс по програмиране на C# (2013/2014), занятие №3Училищен курс по програмиране на C# (2013/2014), занятие №3
Училищен курс по програмиране на C# (2013/2014), занятие №3DAVID Academy
 
Основни структури за управление на изчислителния процес
Основни структури за управление на изчислителния процесОсновни структури за управление на изчислителния процес
Основни структури за управление на изчислителния процесAtelier for robotics
 
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...DAVID Academy
 
Курс по уеб програмиране (2015), занятие №2 - CSS
Курс по уеб програмиране (2015), занятие №2 - CSSКурс по уеб програмиране (2015), занятие №2 - CSS
Курс по уеб програмиране (2015), занятие №2 - CSSDAVID Academy
 
JDK 1.5 New Features
JDK 1.5 New FeaturesJDK 1.5 New Features
JDK 1.5 New FeaturesSvetlin Nakov
 
Училищен курс по програмиране на C# (2013/2014), занятие №9
Училищен курс по програмиране на C# (2013/2014), занятие №9Училищен курс по програмиране на C# (2013/2014), занятие №9
Училищен курс по програмиране на C# (2013/2014), занятие №9DAVID Academy
 
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)DAVID Academy
 
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...DAVID Academy
 
Динамична памет (оператори new и delete) в C++
Динамична памет (оператори new и delete) в C++Динамична памет (оператори new и delete) в C++
Динамична памет (оператори new и delete) в C++Georgi Mirchev
 
видове алгоритми
видове алгоритмивидове алгоритми
видове алгоритмиmtrad
 

La actualidad más candente (19)

Училищен курс по програмиране на C# (2013/2014), занятие №7
Училищен курс по програмиране на C# (2013/2014), занятие №7Училищен курс по програмиране на C# (2013/2014), занятие №7
Училищен курс по програмиране на C# (2013/2014), занятие №7
 
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
 
Училищен курс по програмиране на C# (2013/2014), занятие №12
Училищен курс по програмиране на C# (2013/2014), занятие №12Училищен курс по програмиране на C# (2013/2014), занятие №12
Училищен курс по програмиране на C# (2013/2014), занятие №12
 
Училищен курс по програмиране на C# (2013/2014), занятие №11
Училищен курс по програмиране на C# (2013/2014), занятие №11Училищен курс по програмиране на C# (2013/2014), занятие №11
Училищен курс по програмиране на C# (2013/2014), занятие №11
 
Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)
Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)
Курс по уеб програмиране (2014), занятие №4 - JavaScript (част 2/2)
 
Курс по програмиране на C# 2013 - 2. Конзолен вход и изход. Условни преходи. ...
Курс по програмиране на C# 2013 - 2. Конзолен вход и изход. Условни преходи. ...Курс по програмиране на C# 2013 - 2. Конзолен вход и изход. Условни преходи. ...
Курс по програмиране на C# 2013 - 2. Конзолен вход и изход. Условни преходи. ...
 
Курс по уеб програмиране (2015), занятие №1 - HTML
Курс по уеб програмиране (2015), занятие №1 - HTMLКурс по уеб програмиране (2015), занятие №1 - HTML
Курс по уеб програмиране (2015), занятие №1 - HTML
 
Училищен курс по програмиране на C# (2013/2014), занятие №3
Училищен курс по програмиране на C# (2013/2014), занятие №3Училищен курс по програмиране на C# (2013/2014), занятие №3
Училищен курс по програмиране на C# (2013/2014), занятие №3
 
Основни структури за управление на изчислителния процес
Основни структури за управление на изчислителния процесОсновни структури за управление на изчислителния процес
Основни структури за управление на изчислителния процес
 
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...
 
Курс по уеб програмиране (2015), занятие №2 - CSS
Курс по уеб програмиране (2015), занятие №2 - CSSКурс по уеб програмиране (2015), занятие №2 - CSS
Курс по уеб програмиране (2015), занятие №2 - CSS
 
Въведение в Perl
Въведение в PerlВъведение в Perl
Въведение в Perl
 
JDK 1.5 New Features
JDK 1.5 New FeaturesJDK 1.5 New Features
JDK 1.5 New Features
 
Училищен курс по програмиране на C# (2013/2014), занятие №9
Училищен курс по програмиране на C# (2013/2014), занятие №9Училищен курс по програмиране на C# (2013/2014), занятие №9
Училищен курс по програмиране на C# (2013/2014), занятие №9
 
Въведение в Python
Въведение в PythonВъведение в Python
Въведение в Python
 
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
 
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...
 
Динамична памет (оператори new и delete) в C++
Динамична памет (оператори new и delete) в C++Динамична памет (оператори new и delete) в C++
Динамична памет (оператори new и delete) в C++
 
видове алгоритми
видове алгоритмивидове алгоритми
видове алгоритми
 

Destacado

Курс по уеб програмиране (2014), занятие №2 - CSS
Курс по уеб програмиране (2014), занятие №2 - CSSКурс по уеб програмиране (2014), занятие №2 - CSS
Курс по уеб програмиране (2014), занятие №2 - CSSDAVID Academy
 
Информационни технологи за V клас, изд. Булвест 2000
Информационни технологи за V клас, изд. Булвест 2000Информационни технологи за V клас, изд. Булвест 2000
Информационни технологи за V клас, изд. Булвест 2000Ангел Ангелов
 
Помагало по география за 6 клас
Помагало по география за 6 класПомагало по география за 6 клас
Помагало по география за 6 класDani Hranov
 
Годишно обобщение по география и икономика - 5 клас
Годишно обобщение по география и икономика - 5 класГодишно обобщение по география и икономика - 5 клас
Годишно обобщение по география и икономика - 5 класMilena Petkova
 
събиране на десетични дроби. свойства
събиране на десетични дроби. свойствасъбиране на десетични дроби. свойства
събиране на десетични дроби. свойстваliageorg
 
деление на дд задачи
деление на дд задачиделение на дд задачи
деление на дд задачиliageorg
 
Училищен курс по програмиране на C# (2013/2014) - Упражнения
Училищен курс по програмиране на C# (2013/2014) - УпражненияУчилищен курс по програмиране на C# (2013/2014) - Упражнения
Училищен курс по програмиране на C# (2013/2014) - УпражненияDAVID Academy
 
събиране и изваждане на дд
събиране и изваждане на ддсъбиране и изваждане на дд
събиране и изваждане на ддliageorg
 
четене и сравняване на десетични дроби
четене и сравняване на десетични дробичетене и сравняване на десетични дроби
четене и сравняване на десетични дробиliageorg
 
всички действия с дд
всички действия с ддвсички действия с дд
всички действия с ддliageorg
 
умножение на десетични дроби
умножение на десетични дробиумножение на десетични дроби
умножение на десетични дробиliageorg
 
фигури
фигурифигури
фигуриliageorg
 
5 клас урок 19 НОВА ПРОГРАМА
5 клас урок 19 НОВА ПРОГРАМА5 клас урок 19 НОВА ПРОГРАМА
5 клас урок 19 НОВА ПРОГРАМАЮлія Артюх
 
Програмирането със C sharp
Програмирането със C sharpПрограмирането със C sharp
Програмирането със C sharpJulian Sapoundjiev
 

Destacado (17)

Лице
ЛицеЛице
Лице
 
Курс по уеб програмиране (2014), занятие №2 - CSS
Курс по уеб програмиране (2014), занятие №2 - CSSКурс по уеб програмиране (2014), занятие №2 - CSS
Курс по уеб програмиране (2014), занятие №2 - CSS
 
OOP 1 - 5
OOP 1 - 5OOP 1 - 5
OOP 1 - 5
 
Информационни технологи за V клас, изд. Булвест 2000
Информационни технологи за V клас, изд. Булвест 2000Информационни технологи за V клас, изд. Булвест 2000
Информационни технологи за V клас, изд. Булвест 2000
 
История на лакомствата1
История на лакомствата1История на лакомствата1
История на лакомствата1
 
Помагало по география за 6 клас
Помагало по география за 6 класПомагало по география за 6 клас
Помагало по география за 6 клас
 
Годишно обобщение по география и икономика - 5 клас
Годишно обобщение по география и икономика - 5 класГодишно обобщение по география и икономика - 5 клас
Годишно обобщение по география и икономика - 5 клас
 
събиране на десетични дроби. свойства
събиране на десетични дроби. свойствасъбиране на десетични дроби. свойства
събиране на десетични дроби. свойства
 
деление на дд задачи
деление на дд задачиделение на дд задачи
деление на дд задачи
 
Училищен курс по програмиране на C# (2013/2014) - Упражнения
Училищен курс по програмиране на C# (2013/2014) - УпражненияУчилищен курс по програмиране на C# (2013/2014) - Упражнения
Училищен курс по програмиране на C# (2013/2014) - Упражнения
 
събиране и изваждане на дд
събиране и изваждане на ддсъбиране и изваждане на дд
събиране и изваждане на дд
 
четене и сравняване на десетични дроби
четене и сравняване на десетични дробичетене и сравняване на десетични дроби
четене и сравняване на десетични дроби
 
всички действия с дд
всички действия с ддвсички действия с дд
всички действия с дд
 
умножение на десетични дроби
умножение на десетични дробиумножение на десетични дроби
умножение на десетични дроби
 
фигури
фигурифигури
фигури
 
5 клас урок 19 НОВА ПРОГРАМА
5 клас урок 19 НОВА ПРОГРАМА5 клас урок 19 НОВА ПРОГРАМА
5 клас урок 19 НОВА ПРОГРАМА
 
Програмирането със C sharp
Програмирането със C sharpПрограмирането със C sharp
Програмирането със C sharp
 

Similar a Училищен курс по програмиране на C# (2013/2014), занятие №2

Svetlin Nakov - .NET Framework Overview
Svetlin Nakov - .NET Framework OverviewSvetlin Nakov - .NET Framework Overview
Svetlin Nakov - .NET Framework OverviewSvetlin Nakov
 
Демо урок по програмиране със Светлин Наков
Демо урок по програмиране със Светлин НаковДемо урок по програмиране със Светлин Наков
Демо урок по програмиране със Светлин НаковSvetlin Nakov
 
10 Minutes Coding Lesson by Svetlin Nakov (April 2021)
10 Minutes Coding Lesson by Svetlin Nakov (April 2021)10 Minutes Coding Lesson by Svetlin Nakov (April 2021)
10 Minutes Coding Lesson by Svetlin Nakov (April 2021)Svetlin Nakov
 
Memory problems in .NET apps
Memory problems in .NET appsMemory problems in .NET apps
Memory problems in .NET appsBorislav Ivanov
 
2022 TurnovoConf MySQL за начинаещи.pptx
2022 TurnovoConf MySQL за начинаещи.pptx2022 TurnovoConf MySQL за начинаещи.pptx
2022 TurnovoConf MySQL за начинаещи.pptxGeorgi Kodinov
 
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функцииКурс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функцииDAVID Academy
 
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5stelf
 
[Dev.bg] CI from scratch with Jenkins
[Dev.bg] CI from scratch with Jenkins[Dev.bg] CI from scratch with Jenkins
[Dev.bg] CI from scratch with JenkinsBorislav Traykov
 
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQLКурс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQLDAVID Academy
 
Nakov - .NET Framework Overview + Security
Nakov - .NET Framework Overview +  SecurityNakov - .NET Framework Overview +  Security
Nakov - .NET Framework Overview + SecuritySvetlin Nakov
 
High Quality Code Introduction
High Quality Code IntroductionHigh Quality Code Introduction
High Quality Code IntroductionSvetlin Nakov
 
Nakov High Quality Code
Nakov High Quality CodeNakov High Quality Code
Nakov High Quality CodeSvetlin Nakov
 
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...DAVID Academy
 
Presentation on SOLID design principles
Presentation on SOLID design principlesPresentation on SOLID design principles
Presentation on SOLID design principlesKostadin Golev
 
JavaScript - езикът с много приложения
JavaScript - езикът с много приложенияJavaScript - езикът с много приложения
JavaScript - езикът с много приложенияStefan Krastev
 

Similar a Училищен курс по програмиране на C# (2013/2014), занятие №2 (20)

C++ OpenFest 2015
C++ OpenFest 2015C++ OpenFest 2015
C++ OpenFest 2015
 
Svetlin Nakov - .NET Framework Overview
Svetlin Nakov - .NET Framework OverviewSvetlin Nakov - .NET Framework Overview
Svetlin Nakov - .NET Framework Overview
 
Демо урок по програмиране със Светлин Наков
Демо урок по програмиране със Светлин НаковДемо урок по програмиране със Светлин Наков
Демо урок по програмиране със Светлин Наков
 
10 Minutes Coding Lesson by Svetlin Nakov (April 2021)
10 Minutes Coding Lesson by Svetlin Nakov (April 2021)10 Minutes Coding Lesson by Svetlin Nakov (April 2021)
10 Minutes Coding Lesson by Svetlin Nakov (April 2021)
 
Memory problems in .NET apps
Memory problems in .NET appsMemory problems in .NET apps
Memory problems in .NET apps
 
Стар проект на Благо?!
Стар проект на Благо?!Стар проект на Благо?!
Стар проект на Благо?!
 
2022 TurnovoConf MySQL за начинаещи.pptx
2022 TurnovoConf MySQL за начинаещи.pptx2022 TurnovoConf MySQL за начинаещи.pptx
2022 TurnovoConf MySQL за начинаещи.pptx
 
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функцииКурс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
 
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
 
[Dev.bg] CI from scratch with Jenkins
[Dev.bg] CI from scratch with Jenkins[Dev.bg] CI from scratch with Jenkins
[Dev.bg] CI from scratch with Jenkins
 
Cross compiling
Cross compilingCross compiling
Cross compiling
 
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQLКурс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
Курс по информационни технологии (2013) - 3. ADO.NET, LINQ to SQL
 
WordPress Security
WordPress SecurityWordPress Security
WordPress Security
 
Nakov - .NET Framework Overview + Security
Nakov - .NET Framework Overview +  SecurityNakov - .NET Framework Overview +  Security
Nakov - .NET Framework Overview + Security
 
Writing tests in Go
Writing tests in GoWriting tests in Go
Writing tests in Go
 
High Quality Code Introduction
High Quality Code IntroductionHigh Quality Code Introduction
High Quality Code Introduction
 
Nakov High Quality Code
Nakov High Quality CodeNakov High Quality Code
Nakov High Quality Code
 
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...
 
Presentation on SOLID design principles
Presentation on SOLID design principlesPresentation on SOLID design principles
Presentation on SOLID design principles
 
JavaScript - езикът с много приложения
JavaScript - езикът с много приложенияJavaScript - езикът с много приложения
JavaScript - езикът с много приложения
 

Más de DAVID Academy

Курс по уеб програмиране (2014), занятие №1 - HTML
Курс по уеб програмиране (2014), занятие №1 - HTMLКурс по уеб програмиране (2014), занятие №1 - HTML
Курс по уеб програмиране (2014), занятие №1 - HTMLDAVID Academy
 
Училищен курс по програмиране на C# (2013/2014) - Помагало
Училищен курс по програмиране на C# (2013/2014) - ПомагалоУчилищен курс по програмиране на C# (2013/2014) - Помагало
Училищен курс по програмиране на C# (2013/2014) - ПомагалоDAVID Academy
 
Курс по информационни технологии (2013) - 5. HTTP & Web Services
Курс по информационни технологии (2013) - 5. HTTP & Web ServicesКурс по информационни технологии (2013) - 5. HTTP & Web Services
Курс по информационни технологии (2013) - 5. HTTP & Web ServicesDAVID Academy
 
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET FrameworkКурс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET FrameworkDAVID Academy
 
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...DAVID Academy
 
Курс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. ПредставянеКурс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. ПредставянеDAVID Academy
 
Курс по информационни технологии (2013) - Помагало
Курс по информационни технологии (2013) - ПомагалоКурс по информационни технологии (2013) - Помагало
Курс по информационни технологии (2013) - ПомагалоDAVID Academy
 
Курс по програмиране на C# (2013) - Упражнения
Курс по програмиране на C# (2013) - УпражненияКурс по програмиране на C# (2013) - Упражнения
Курс по програмиране на C# (2013) - УпражненияDAVID Academy
 

Más de DAVID Academy (8)

Курс по уеб програмиране (2014), занятие №1 - HTML
Курс по уеб програмиране (2014), занятие №1 - HTMLКурс по уеб програмиране (2014), занятие №1 - HTML
Курс по уеб програмиране (2014), занятие №1 - HTML
 
Училищен курс по програмиране на C# (2013/2014) - Помагало
Училищен курс по програмиране на C# (2013/2014) - ПомагалоУчилищен курс по програмиране на C# (2013/2014) - Помагало
Училищен курс по програмиране на C# (2013/2014) - Помагало
 
Курс по информационни технологии (2013) - 5. HTTP & Web Services
Курс по информационни технологии (2013) - 5. HTTP & Web ServicesКурс по информационни технологии (2013) - 5. HTTP & Web Services
Курс по информационни технологии (2013) - 5. HTTP & Web Services
 
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET FrameworkКурс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
 
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
 
Курс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. ПредставянеКурс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. Представяне
 
Курс по информационни технологии (2013) - Помагало
Курс по информационни технологии (2013) - ПомагалоКурс по информационни технологии (2013) - Помагало
Курс по информационни технологии (2013) - Помагало
 
Курс по програмиране на C# (2013) - Упражнения
Курс по програмиране на C# (2013) - УпражненияКурс по програмиране на C# (2013) - Упражнения
Курс по програмиране на C# (2013) - Упражнения
 

Училищен курс по програмиране на C# (2013/2014), занятие №2

  • 1. Курс по програмиране на C# Занятие №2 Конзолен вход и изход. Условни преходи. Цикли 2013
  • 2. Съдържание • • • • • • Конзолни приложения Въвеждане на данни от конзолата Извеждане на данни на конзолата Условия Условни преходи Цикли
  • 3. Конзолни приложения • Какво е „конзола“? – Съвкупността от физически устройства за въвеждане и визуализиране на информация – Историческо начало и наследство – Конзола в Microsoft Windows
  • 4. Конзолни приложения • Какво е „конзолно приложение“? – Взаимодействието с потребителя се осъществява през конзолата – Удобни за автоматизирани операции – Прости програми – удобни за навлизане в разработката на съответния език – Неудобни за употреба от потребители (в общия случай)
  • 5. Конзолни приложения • Конзолни приложения в .NET – Проектен шаблон Console Application – Класът System.Console
  • 6. Въвеждане на данни от конзолата • Прочитане на един символ • Прочитане на цял ред • Прочитане на клавиш или комбинация от клавиши • Изчакване до натискане на клавиш // прочитане на един символ int i = Console.Read(); char c = Convert.ToChar(i); // прочитане на цял ред string line = Console.ReadLine(); // прочитане на клавиш ConsoleKeyInfo key = Console.ReadKey(); // изчакване до натискане на // произволен клавиш Console.ReadKey(); // изчакване до натискане на Enter Console.ReadLine();
  • 7. Въвеждане на данни от конзолата - демо // Демонстрация
  • 8. Въвеждане на данни от конзолата • • • • Въвеждане на цяло число Въвеждане на дробно число Въвеждане на дата Въвеждане на булева стойност // въвеждане на цяло число int integer = int.Parse(Console.ReadLine()); // въвеждане на дробно число double real = double.Parse(Console.ReadLine()); // въвеждане на дата DateTime date = DateTime.Parse( Console.ReadLine()); // въвеждане на булева стойност bool boolean = bool.Parse(Console.ReadLine());
  • 9. Въвеждане на данни от конзолата - демо // Демонстрация
  • 10. Извеждане на данни на конзолата • Извеждане на низ • Извеждане на число • Извеждане на други примитивни типове данни • Извеждане на произволен обект • Преминаване на нов ред // извеждане на низ Console.Write("Hello World!"); // извеждане на число Console.Write(3.14159265359d); // извеждане на булева стойност Console.Write(true); // извежане на произволен обект object obj = DateTime.Now; Console.Write(obj); // преминаване на нов ред Console.WriteLine(); // нов ред след извеждане на стойност Console.WriteLine(42);
  • 11. Извеждане на данни на конзолата - демо // Демонстрация
  • 12. Извеждане на данни на конзолата • Извеждане на една или повече стойности с помощта на форматиращ низ • Подравняване • Форматиране на числа • Форматиране на дати // извеждане с форматиращ низ string name = "Peter"; Console.WriteLine("Hello, {0}", name); // подравняване Console.WriteLine("Views: {0,5}", 335); Console.WriteLine("Users: {0,5}", 13); // форматиране на цяло число Console.WriteLine("Number: {0:d5}", 3); // форматиране на дробно число Console.WriteLine("Pi: {0:f4}", Math.PI); // форматиране на датa Console.WriteLine( "Date: {0:dd-MM-yyyy}", DateTime.Now);
  • 13. Извеждане на данни на конзолата - демо // Демонстрация
  • 14. Условия • Какво е „условие“? – – – – Израз с булев резултат Булеви променливи, константи и литерали Сравнения Логически операции
  • 15. Условия • Сравнения – – – – – – Равенство Неравенство По-малко По-малко или равно По-голямо По-голямо или равно // равенство bool b1 = (s == "Hello"); // неравенство bool b2 = (s != "World"); // по-малко bool b3 = (x < 14); // по-малко или равно bool b4 = (y <= 0); // по-голямо bool b5 = (x > 5); // по-голямо или равно bool b6 = (y >= 20);
  • 16. Условия • Логически операции – – – – Отрицание (логическо „не“) Конюнкция (логическо „и“) Дизюнкция (логическо „или“) Изключваща дизюнкция (изключващо „или“) // отрицание ("не") bool b7 = !b2; // конюнкция ("и") bool b8 = (b3 && b5); // дизюнкция ("или") bool b9 = (b4 || b6); // изключваща дизюнкция // (изключващо "или") bool b10 = (b8 ^ b9);
  • 17. Условия • Закони на Де Морган – Двойно отрицание – Отрицание на конюнкцията – Отрицание на дизюнкцията • „Мързеливо“ пресмятане на условията // закон за двойното отрицание !(!b1) == b1 // закон за отрицание на конюнкцията !(b3 && b5) == (!b3 || !b5) // закон за отрицание на дизюнкцията !(b4 || b6) == (!b4 && !b6) // "мързеливо" пресмятане (false && b3 /* && ... */) == false (true || b4 /* || ... */) == true
  • 18. Условия - демо // Демонстрация
  • 19. Условни преходи • Какво е „условен преход“? – Конструкция на езика за програмиране – Позволява изпълнението или неизпълнението на операции в зависимост от условие – Необходими за реално приложими програми
  • 20. Условни преходи • Конструкция за условен преход if – Условие – Блок от операции – Ако условието е изпълнено, се изпълняват съжденията в блока след if – В противен случай не се изпълнява нищо // условен преход с едноредов блок string line = Console.ReadLine(); if (line == "hi") Console.WriteLine("Hello!"); // условен преход с многоредов блок Console.WriteLine("What's your name?"); line = Console.ReadLine(); if (line != string.Empty) { Console.WriteLine( "Hello, {0}!", line); Console.WriteLine( "Nice to meet you!"); }
  • 21. Конструкция за условен преход if - демо // Демонстрация
  • 22. Условни преходи • Конструкция за условен преход if…else Условие Блок от операции при вярно условие Блок от операции при грешно условие Ако условието е изпълнено, се изпълняват съжденията в блока след if – В противен случай се изпълняват съжденията в блока след else – – – – // условен преход с else Console.Write("Are you a girl (y/n)?"); string line = Console.ReadLine(); if (line == "y") { Console.WriteLine( "You probably have long hair."); } else { Console.WriteLine( "Let's watch football."); }
  • 23. Конструкция за условен преход if…else - демо // Демонстрация
  • 24. Условни преходи • Вложени конструкции за условен преход – Блокът с операции на конструкция за условен преход може да съдържа друга конструкция за условен преход // вложени условни преходи Console.WriteLine("Tell me an integer."); int n = int.Parse(Console.ReadLine()); if (n > 0) { if (n % 2 == 0) Console.WriteLine("It's even."); else Console.WriteLine("It's odd."); } else { Console.WriteLine( "It's not positive."); }
  • 25. Условни преходи • Вложени конструкции за условен преход – Често прилаган подход: if…else if…else if…else if… // Поредица от if...else if... Console.WriteLine( "Tell me another integer."); int x = int.Parse(Console.ReadLine()); if (x > 0) Console.WriteLine("It is positive."); else if (x < 0) Console.WriteLine("It is negative."); else Console.WriteLine("It is zero.");
  • 26. Вложени конструкции за условен преход - демо // Демонстрация
  • 27. Условни преходи • Конструкция switch-case – Сравнение на израз с няколко различни константи – Прави кода по-четим и по-лесен за поддръжка
  • 28. Условни преходи • Конструкция switch-case – Израз, който се сравнява – Поредица от секции с константа и съждения, които да бъдат изпълнени при съвпадение – Задължително прекратяване на изпълнението във всяка секция – break – Секции с повече от една константа – Секция по подразбиране – при липса на съвпадение с никоя от константите // Конструкция switch-case Console.Write( "Do you like programming (y/n)?"); string line = Console.ReadLine(); switch (line) { case "y": Console.WriteLine("Great!"); break; case "n": case "N": Console.WriteLine("Awww. :("); break; default: Console.WriteLine( "Make up your mind!"); break; }
  • 29. Конструкция switch-case - демо // Демонстрация
  • 30. Условни преходи • Условен тернарен оператор – Резултат: една от две възможни стойности според това дали е изпълнено условие – Прави кода по-кратък, четим и лесен за поддръжка
  • 31. Условни преходи • Условен тернарен оператор // условен тернарен оператор Console.WriteLine( – Условие "What's your surname?"); – Стойност ако условието е изпълнено string surname = Console.ReadLine(); – Стойност ако условието не е изпълнено Console.WriteLine( "What's your gender (m/f)?"); string line = Console.ReadLine(); string title = (line == "m" ? "Mr" : "Ms"); Console.WriteLine( "Greetings, {0} {1}.", title, surname);
  • 32. Условен тернарен оператор - демо // Демонстрация
  • 33. Цикли • Какво е „цикъл“? – Конструкция на езика за програмиране – Позволява многократното изпълнение на една и съща поредица от операции – Итерация – еднократно изпълнение на операциите в цикъла – Условие за преустановяване на цикъла – Необходими за реално приложими програми
  • 34. Цикли • Видове цикли – – – – Цикли с предусловие Цикли с постусловие Крайни цикли Безкрайни цикли
  • 35. Цикли • Цикъл с предусловие while – Условие – Блок от операции – Условието се проверява преди изпълнението на итерацията – Нула или повече итерации // цикъл с предусловие while Console.WriteLine( "Commencing countdown."); int counter = 10; while (counter > 0) { Console.WriteLine( "{0}!", counter); counter--; } Console.WriteLine("Launch!");
  • 36. Цикъл с предусловие while - демо // Демонстрация
  • 37. Цикли • Цикъл с постусловие do…while – Блок от операции – Условие – Условието се проверява след изпълнението на итерацията – Една или повече итерации // цикъл с постусловие do...while int age; do { Console.WriteLine( "How old are you?"); age = int.Parse( Console.ReadLine()); } while (age <= 0);
  • 38. Цикъл с постусловие do…while - демо // Демонстрация
  • 39. Цикли • Цикъл for Инициализация на брояча Условие Инкрементиране на брояча Блок с операции Условието се проверява преди изпълнението на итерацията – Инкрементирането се изпълнява след изпълнението на итерацията – Нула или повече итерации – – – – – // цикъл for Console.WriteLine( "Tell me a positive integer."); int top = int.Parse(Console.ReadLine()); Console.WriteLine( "The integers from 1 to {0} are:", top); for (int i = 1; i <= top; i++) { Console.WriteLine(i); }
  • 40. Цикъл for - демо // Демонстрация
  • 41. Цикли • Цикъл foreach Променлива за елемент Изброима колекция от елементи Блок с операции Цикълът продължава докато има неизброени елементи в колекцията – Нула или повече итерации – – – – // цикъл foreach Console.WriteLine("Tell me a word."); string word = Console.ReadLine(); Console.WriteLine( "The word split into characters:"); foreach (char c in word) { Console.WriteLine(c); }
  • 42. Цикъл foreach - демо // Демонстрация
  • 43. Цикли • Управление на циклите – Прекратяване на текущата итерация – continue – Прекратяване на цикъла – break // управление на циклите for (int i = 0; i < 100; i++) { if (i % 3 == 0) continue; Console.WriteLine(i); if (i == 10) break; }
  • 44. Управление на циклите - демо // Демонстрация
  • 45. Цикли • Безкрайни цикли – Условие, което винаги е истина – Разчита се на прекратяване на цикъла чрез break – Опасност от „зацикляне“ на програмата – Могат да се реализират като крайни цикли – Понякога правят кода по-прост // "безкраен" цикъл while (true) { Console.WriteLine( "The current time is {0}", DateTime.Now.TimeOfDay); Console.WriteLine( "Type 'exit' to exit."); string line = Console.ReadLine(); if (line == "exit") break; }
  • 46. Безкрайни цикли - демо // Демонстрация
  • 47. Цикли • Вложени цикли // вложени цикли for (int i = 1; i < 10; i++) – Блокът с операции на цикъл може да { съдържа друг цикъл for (int j = i; j < 10; j++) – Във всяка итерация на външния цикъл се { изпълнява целият вътрешен цикъл Console.Write("{0,2}", j); } Console.WriteLine(); }
  • 48. Вложени цикли - демо // Демонстрация
  • 49. Задачи за упражнение • Създайте програма, в която се въвежда година (цяло положително число) и се извежда съобщение дали тя е високосна или не. • Създайте програма, в която се въвежда дробно число и след това то се извежда с избран от потребителя брой знаци след десетичната запетая. • Създайте програма, в която въвежда се цяло положително число и се извежда съобщение дали то е просто или не. • Създайте програма, в която се въвежда цяло положително число и се извеждат всички прости числа, по-малки или равни на него.
  • 50. Задачи за упражнение • Създайте програма, в която се въвежда цяло неотрицателно число n и се извежда факториелът му (n!). • Създайте програма, в която се въвежда цяло положително число n и се извежда n-тото по ред число от редицата на Фибоначи. • Създайте програма, в която се въвеждат коефициентите на квадратно уравнение и се намират неговите решения, като се разгледат всички случаи. • Създайте програма, в която се въвежда поредица от оценки (дробни числа между 2 и 6) на ученици и се извежда средният успех на класа.
  • 51. Задачи за упражнение • Създайте конзолно приложение-калкулатор, в което потребителят избира аритметична операция (събиране, изваждане, умножение, деление), въвежда двата операнда (дробни числа) и получава резултата; изпълнението да продължи до избиране на опция за изход вместо аритметична операция. • Създайте проста текстово-базирана приключенска игра, в която потребителят въвежда текстови команди и след всяка команда получава описание на резултата от нея.
  • 53. Благодаря! • Александър Далемски – sasho@david.bg – Skype: musasho – https://facebook.com/adalemski • ДАВИД академия – – – – acad@david.bg http://acad.david.bg/ @david_academy https://facebook.com/DavidAcademy