Похожие презентации:
2Операции С#
1. Тема: Операторы и выражения
ПреподавательМельникова Татьяна Федоровна
2. Цели занятия
1 В ходе занятия формировать общие компетенции:- осуществлять поиск и систематизацию
информации, необходимой для решения поставленной
задачи и личностного развития;
- уметь поставить цель и найти пути её
достижения (в пассивном варианте).
3. Цели занятия
После изучения содержания материала студентыдолжны:
знать:
- классификацию операций языка программирования
С#;
- уметь:
- составлять арифметические логические выражения;
- анализировать программный код и делать выводы.
4. План занятия
1 Повторение2 Изучение нового материала
3
Закрепление,
систематизация,
применение
приобретенных знаний и умений при решении задач.
5. Операторы и выражения
Область действия переменной, то есть областьпрограммы, где можно использовать переменную,
начинается в точке ее описания и длится до конца
блока, внутри которого она описана.
Блок — это код, заключенный в фигурные скобки.
Основное назначение блока — группировка операторов
В C# любая переменная описана внутри какого-либо
блока: класса, метода или блока внутри метода.
Имя переменной должно быть уникальным в области
ее действия. Область действия распространяется на
вложенные в метод блоки.
6. Действие локальной переменной
class X // начало описания класса X{ int A; int B; // поле A и поле B класса X
void Y()
// метод Y класса Х
{ int C; // лок. переменная C, область действия – метод Y
int A; // лок. переменная A (НЕ конфликтует с полем А)
{
// = вложенный блок 1 ==
int D;
// лок. Перем. D, область действия – этот блок
//int А; недопустимо! Ошибка, конфликт с локальной переменной А
С = B;
// присваивание переменной С поля В класса Х
С = this.A; // присваивание переменной С поля А класса Х
}
// ======= конец блока 1 ========
} // ------------------------- конец описания метода Y класса X
}
// конец описания класса X
7. Операторы
Оператор в C# — это термин или символ, получающийна вход одно или несколько выражений (операндов) и
возвращающий значение.
Операторы, получающие на вход только один операнд,
например оператор приращения (++) или new,
называются унарными операторами.
Операторы, получающие на вход два операнда,
например, арифметические операторы (+, -, *, /)
называются бинарными.
Один оператор — условный оператор (?:) получает на
вход три операнда и является единственным третичным
оператором в C#.
8. Таблица 1 операторы
КатегорияВыражение
Описание
Основная
x.y
Доступ к членам
f(x)
Вызов метода или делегата
a[x]
Доступ к массиву и индексатору
x++
Постфиксное приращение
x--
Постфиксное уменьшение
new T(...)
Создание объекта и делегата
new T(...){...} Создание объекта с инициализатором.
new {...}
Анонимный инициализатор объекта.
new T[...]
Создание массива.
9. Таблица 1 Унарные операции
КатегорияВыражение
Описание
Основная
typeof(T)
Получение объекта System.Type для T
checked(x)
Вычисление выражения в
проверенном контексте
unchecked(x) Вычисление выражения в
непроверенном контексте
Унарные
default (T)
Получение значения по умолчания
для типа T
delegate {}
Анонимная функция (анонимный
метод)
+x
Идентификация
-x
Унарный
!x
Логическое отрицание
минус(отрицание)
10. Таблица 1 Унарные операции
КатегорияВыражение
Унарные
~x
Поразрядное отрицание
++x
Префиксное приращение
--x
Префиксное уменьшение
(T)x
Явное преобразование x в тип T
x*y
Умножение
x/ y
Деление.
20/3 равно 6, -20/3 равняется -6,
(-20)/3 равно -6, 20/(-3) равно –6
x% y
Остаток.
x+y
Сложение, объединение строк, объединение
делегатов
x-y
Вычитание, удаление делегатов
Бинарные:
Мультипликативные
Аддитивные
Описание
l3%4 = 1, (-13) %4= -1,
13%(-4) = +1, (-13)% (-4) = -1.
11. Таблица 1 Бинарные операции
КатегорияВыражение Описание
Сдвиг
x << y
Сдвиг влево. 10001010 <<2 =>00101000
x >> y
Сдвиг вправо
Отношения x < y
Меньше
Результат
целочисленный:
0 (ложь),
1(истина).
x>y
Больше
x <= y
Меньше или равно
x >= y
Больше или равно
x is T
Возвращает значение true, если x
относится к типу T, в противном
случае возвращает значение false
x as T
Возвращает x типа T или нулевое
значение, если x не относится к типу T
12. Таблица 1 Бинарные операции
КатегорияВыражение Описание
Операторы
равенства
x == y
Равно
x != y
Не равно
Логическое
AND
x&y
Целочисленное поразрядное AND,
логическое AND
Логическое
исключающее
XOR
x^y
Целочисленное поразрядное исключающее
XOR, логическое исключающее XOR
Логическое
OR
x|y
Целочисленное поразрядное OR,
логическое OR
Условное
AND
x && y
Возвращает true, если оба операнда
одновременно равны true.
13. Таблица 1 Бинарные операции
КатегорияВыражение Описание
Условное OR
x || y
Возвращает true, если хотя бы один из
операндов возвращает true.
Объединение
нулей
X ?? y
Равно y, если x — нулевое, в противном
случае равно x
Условные
x ?: y : z
Равно y, если x имеет значение true, z если x
имеет значение false
Присвоение
=
Операторы присвоения
х*=y
Умножение с присваиванием x=x*y
x/=y
Деление с присваиванием x=x/y
x%=y
Остаток отделения с присваиванием x=x%y
x+=y
Сложение с присваиванием x=x+y
x-=y
Вычитание с присваиванием
x=x-y
14. .Результат: 0 (ложь) или 1 (истина).
Примерint x=1, y=1, z=0;
x = x&&y||z;
x = x || !y&&z;
x = y=1; z = x++ -1;
z += -x++ + ++y;
z = x/++x;
15. Условная операция
Условная операция используется с тремя операндами. Общийвид:
(<выражение1> ? <выражение2> : <выражение3> )
Первым вычисляется значение выражения1.
Если оно истинно, то есть не равно нулю, то вычисляется
значение выражения2, которое становится результатом.
Если при вычислении выражения1 получится 0, то в качестве
результата берется значение выражения3.
Например: g = (x < 0 ? -х : x);
переменная g в качестве своего значения будет иметь
абсолютное значение переменной х.
16. таблица приоритетов
Приоритетывыполнения операций
Операции
1
2
3
4
() []
! ~ + - ++ -* / %
.
sizeof new
(тип )
(мультипликативные бинарные операции)
- + (аддитивные бинарные операции)
5
<<
>>
6
< <=
>=
7
==
!=
>
8
&
9
^|
10
&&
11
||
12
?: (условная операция)
13
=
*= /= %=
+= -= &=
^=
!=
17. Инкремент и декремент
Операции инкремента (++) и декремента (--) увеличивают иуменьшают операнд на единицу.
Они имеют две формы записи — префиксную, когда знак
операции записывается перед операндом, и постфиксную.
В префиксной форме сначала изменяется операнд, а затем его
значение становится результирующим значением выражения, а в
постфиксной форме значением выражения является исходное
значение операнда, после чего он изменяется.
Стандартные операции инкремента существуют для целых,
символьных, вещественных и финансовых величин
18. Операция new
Операция new служит для создания нового объекта.Формат операции:
new тип ( [ аргументы ] )
С помощью этой операции можно создавать объекты как
ссылочных, так и значимых типов, например:
object z = new object();
int i = new int();
// то же самое, что int i = 0;
При выполнении операции new сначала выделяется необходимый
объем памяти (для ссылочных типов в хипе, для значимых — в
стеке), а затем вызывается так называемый конструктор по
умолчанию, то есть метод, с помощью которого
инициализируется объект. Переменной значимого типа
присваивается значение по умолчанию, которое равно нулю
соответствующего типа.
19. Потеря данных и ключевое слово checked
Рассмотрим ситуацию, что будет в следующем случае:int a = 33; int b = 600;
byte c = (byte)(a+b);
Результатом будет число 121, так число 633 не попадает в
допустимый диапазон для типа byte, и старшие биты будут
усекаться. В итоге получится число 121.
Поэтому при преобразованиях надо это учитывать. И мы в
данном случае можем либо взять такие числа a и b, которые в
сумме дадут число не больше 255, либо мы можем выбрать
вместо byte другой тип данных, например, int.
Однако ситуации разные могут быть. Мы можем точно не знать,
какие значения будут иметь числа a и b. И чтобы избежать
подобных ситуаций, в c# имеется ключевое слово checked:
20. Потеря данных и ключевое слово checked
try{ int a = 33; int b = 600;
byte c = checked((byte)(a + b));
Console.WriteLine(c);
}
catch (OverflowException ex)
{ Console.WriteLine(ex.Message);}
При использовании ключевого слова checked приложение
выбрасывает исключение о переполнении. Поэтому для его
обработки используется конструкция try...catch- обработка
исключений.
В блок try включаем действия, в которых может потенциально
возникнуть ошибка, а в блоке catch обрабатываем ошибку.
21. Операции отрицания
Арифметическое отрицание (унарный минус -) меняет знакоперанда на противоположный.
Стандартная операция отрицания определена для типов int, long,
float, double и decimal.
Логическое отрицание (!) определено для типа bool.
Результат операции — значение false, если операнд равен true, и
значение true, если операнд равен false.
Поразрядное отрицание (~), часто называемое побитовым,
инвертирует каждый разряд в двоичном представлении операнда
типа int, uint, long или ulong.
22. Поразрядные логические операции
Поразрядные логические операции ( &, |, ^ ) применяются кцелочисленным операндам и работают с их двоичными
представлениями.
При выполнении операций операнды сопоставляются побитно
(первый бит первого операнда с первым битом второго, второй
бит первого операнда со вторым битом второго, и т д.).
Стандартные операции определены для типов int, uint, long и
ulong.
При поразрядной конъюнкции ( & ), бит результата равен 1 только
тогда, когда соответствующие биты обоих операндов равны 1.
При поразрядной дизъюнкции ( | ), бит результата равен 1 тогда,
когда соответствующий бит хотя бы одного из операндов равен 1.
При поразрядном исключающем ИЛИ бит результата равен 1
только тогда, когда соответствующий бит только одного из
23. Условные логические операции
Условные логические операции И ( && ) и ИЛИ ( || ) чаще всегоиспользуются с операндами логического типа.
Результатом логической операции является true или false.
Операции вычисляются по сокращенной схеме.
Результат операции логическое И имеет значение true, только если
оба операнда имеют значение true.
Результат операции логическое ИЛИ имеет значение true, если
хотя бы один из операндов имеет значение true.
Если значения первого операнда достаточно, чтобы определить
результат операции, второй операнд не вычисляется.
24. Умножение, деление и остаток от деления
Операция умножения ( * ) возвращает результат перемножениядвух операндов. Стандартная операция умножения определена
для типов int, uint, long, ulong, float, double и decimal.
К величинам других типов ее можно применять, если для них
возможно неявное преобразование к этим типам.
Тип результата операции равен "наибольшему" из типов
операндов, но не менее int.
Если результат слишком велик для представления с помощью
заданного типа, он принимается равным значению
"бесконечность", если слишком мал, он принимается за 0.
NaN (not a number) означает, что результат не является числом.
25. Умножение, деление и остаток от деления
Операция деления ( / ) вычисляет частное от деления первогооперанда на второй.
Если оба операнда целочисленные, результат операции
округляется вниз до ближайшего целого числа.
Если делитель равен нулю, генерируется исключение
System.DivideByZeroException.
Если хотя бы один из операндов вещественный, дробная часть
результата деления не отбрасывается.
Операция остатка от деления ( % ) также интерпретируется поразному для целых, вещественных и финансовых величин. Если
оба операнда целочисленные, результат операции вычисляется по
формуле x - (x / y) * y.
Если делитель равен нулю, генерируется исключение
System.DivideByZeroException.
26. Пример 1. Что напечатает следующая программа?
int x;x = -3+4*5-6;
x = 3+4%5-6;
x = -3*4%-6/5;
x = (7+6)%5/2;
Результат вычислений:
11
1
0
1
Заменяем каждое подвыражение на его результат:
(x=((-3+20)-6))
(x=(17-6))
(x=11)
27. Вопросы
1. Где можно описывать переменные? Что входит вописание переменной?
2. Что происходит при использовании в выражении
операндов различных типов? Приведите примеры.
3. Перечислите операции языка C#, сгруппировав их по
приоритетам.
4. Что такое NaN? В каких операциях NaN является
результатом?
5. К операндам какого типа применимы операции сдвига?
Программирование