Операторы условия, цикла, функции

Содержание

Слайд 2

Функция

Повторно используемая часть кода
Функция имеет имя
Функция имеет ни одного, один или несколько

Функция Повторно используемая часть кода Функция имеет имя Функция имеет ни одного,
аргументов – формальных параметров
Функция (ее прототип) должен быть заранее создан
В прототипе используются формальные параметры функции
Функция (обычно) вызывается по ее имени
При вызове в скобках указываются «настоящие» аргументы – фактические параметры

Слайд 3

Функция

Фактические параметры рассчитываются, их значения присваиваются формальным параметрам
Далее в функции используются эти

Функция Фактические параметры рассчитываются, их значения присваиваются формальным параметрам Далее в функции
фактические значения
Внутри функции могут быть свои – локальные переменные
Они «перекрывают» внешние переменные
Функции могут (а обычно и возвращают) давать результат
За выдачу результата отвечает ключевое слов return

Слайд 4

Пример

Я хочу, чтобы у меня была функция, печатающая строки разными цветами
Таким образом,

Пример Я хочу, чтобы у меня была функция, печатающая строки разными цветами
мне нужна функция PrintColor (например)
Представим себе ее логику:
Надо задать цвет символов консоли
Надо напечатать строку

Слайд 5

Пример

Но, что если я хочу ПОТОМ напечатать что-то НЕ цветное
Хорошо бы запоминать

Пример Но, что если я хочу ПОТОМ напечатать что-то НЕ цветное Хорошо
старый цвет
Заменить его на желаемый
Напечатать нужное
Восстановить старый цвет

Слайд 6

Пример

Итак, есть имя функции – PrintColor
У нее два аргумента:
Строка для печати
Цвет строки
Функция:
Запоминает

Пример Итак, есть имя функции – PrintColor У нее два аргумента: Строка
старый цвет символов
Задает новый
Печатает строку
Восстанавливает старый цвет

Слайд 7

Текст функции

void PrintColor(string value, ConsoleColor color)
{
ConsoleColor old = Console.ForegroundColor;
Console.ForegroundColor

Текст функции void PrintColor(string value, ConsoleColor color) { ConsoleColor old = Console.ForegroundColor;
= color;
Console.WriteLine(value);
Console.ForegroundColor = old;
}

Слайд 8

Пояснения

Функции не нужно возвращать результат (поэтому она возвращает условное «пустое» - void

Пояснения Функции не нужно возвращать результат (поэтому она возвращает условное «пустое» -
значение)
Старый цвет сохраняется в переменной old

Слайд 9

Что улучшить

Возвращать цвет печати на момент вызова функции (вернем старый цвет –

Что улучшить Возвращать цвет печати на момент вызова функции (вернем старый цвет
old)
Предположим, я считаю нужным в основном печатать цветные строки зеленым
Тогда мне следует задать значение аргумента цвета «по умолчанию»

Слайд 10

Улучшенная версия

ConsoleColor printColor(string value, ConsoleColor color = ConsoleColor.Green)
{
ConsoleColor old

Улучшенная версия ConsoleColor printColor(string value, ConsoleColor color = ConsoleColor.Green) { ConsoleColor old
= Console.ForegroundColor;
Console.ForegroundColor = color;
Console.WriteLine(value);
Console.ForegroundColor = old;
return old;
}

Слайд 11

Где помещать функции?

В C# функций в чистом виде не так много.
Как правило,

Где помещать функции? В C# функций в чистом виде не так много.
у функции есть хозяин в виде объекта.
Тогда функция называется методом класса.
Иногда даже специально создают класс для сбора функций в виде методов
Можно создавать и локальные функции

Слайд 12

Прототип функции и пример использования

Прототип функции и пример использования

Слайд 13

Примеры

Вызов “старой” функции печати
Печатать с новым цветом
Печатать с цветом по умолчанию.

Примеры Вызов “старой” функции печати Печатать с новым цветом Печатать с цветом по умолчанию.

Слайд 14

Где размещать функции?

Локально, по мере надобности (см. пример выше)
Как метод класса (см.

Где размещать функции? Локально, по мере надобности (см. пример выше) Как метод класса (см. ниже)
ниже)

Слайд 15

Тонкость

Метод main статический, поэтому методы также должны быть статическими (static)

Тонкость Метод main статический, поэтому методы также должны быть статическими (static)

Слайд 16

Лямбда выражения

Создают локальную функцию или цепочку функций, которые даже не имеют собственного

Лямбда выражения Создают локальную функцию или цепочку функций, которые даже не имеют
имени
Такие функции нужны, чтобы локально сделать быструю (и обычно простую) операцию над данными
Лямбда-выражение — это анонимная функция , с помощью которой можно создавать типы делегатов или деревьев выражений . С помощью лямбда-выражений можно писать локальные функции, которые можно передавать в качестве аргументов или возвращать в качестве значений из вызовов функций. Лямбда-выражения особенно полезны при написании выражений запросов LINQ.
Чтобы создать лямбда-выражение, необходимо указать входные параметры (если они есть) с левой стороны лямбда-оператора =>, и поместить блок выражений или операторов с другой стороны. Например, лямбда-выражение x => x * x задает параметр с именем x и возвращает значение x

Слайд 17

Печать квадратов и кубов массива

double []x= { 1, 2, 3, 4,

Печать квадратов и кубов массива double []x= { 1, 2, 3, 4,
5, 6, 7, 8, 9, 10,11,12,13,14,15,16,17,18,19,20 };
foreach (double d in x)
{
StringBuilder stringBuilder = new StringBuilder();
PrintColor( stringBuilder.AppendFormat("x = {0} x^2= {1} x^3= {2}", d, d * d,d * d * d).ToString());
}
Console.ReadLine();

Слайд 18

Пояснения

x – массив десятичных дробей
foreach (double d in x) – берет

Пояснения x – массив десятичных дробей foreach (double d in x) –
из массива х поочередно его компоненты
StringBuilder stringBuilder = new StringBuilder(); - создает строку, которая может менять содержание
PrintColor( stringBuilder.AppendFormat("x = {0} x^2= {1} x^3= {2}", d, d * d,d * d * d).ToString()); - печатает в цвете

Слайд 19

Выбор данных

Чтобы напечатать лишь часть данных, надо создать для них запрос с

Выбор данных Чтобы напечатать лишь часть данных, надо создать для них запрос
подходящим условием
Программа просмотрит данные и оставит только те, которые соответствуют запросу

Слайд 20

Запрос

IEnumerable query =
x.Where(number => number*number>10*number);
Строка создает запрос данных типа double
Where –

Запрос IEnumerable query = x.Where(number => number*number>10*number); Строка создает запрос данных типа
условие запроса
Условие должно давать логический (bool) критерий

Слайд 21

Запрос

 

Запрос

Слайд 22

Вывод фильтрованных данных

foreach (double d in query)
{
StringBuilder stringBuilder = new

Вывод фильтрованных данных foreach (double d in query) { StringBuilder stringBuilder =
StringBuilder();
PrintColor(stringBuilder.AppendFormat("x = {0} x^2= {1} x^3= {2}", d, d * d, d * d * d).ToString());
}
Console.ReadLine();
Имя файла: Операторы-условия,-цикла,-функции.pptx
Количество просмотров: 24
Количество скачиваний: 0