Похожие презентации:
Программирование на C# 1 модуль
1.
Программирование на C#1 модуль
2.
Где готовиться?vk.com/podbel20212022
vk.com/podbel_alt
3.
темыПарадигмы
Служебные слова
Порядок операций
Логические операции
Приведение типов
Статические конструкторы
in/out/ref
Перегрузка методов
DateTime
Regex
4.
парадигмы+ Императивная – Последовательные команды.
+ Объектно-ориентированная – Объекты.
+ Обобщенная – System.Collections.Generic . (List<int>, List<string>)
+/- Функциональная – Есть функции, нет циклов. (Haskell)
-/+ Декларативная – Описывается, что надо сделать, а не как сделать. (System.Linq)
-/+ Рефлексивная – Анализ кода. (System.Reflection)
-/+ Распределенная – Параллельное выполнение кода. (System.Threading)
- Логическая – Доказательство математических задач.
- Доказательная – Доказательство правильности алгоритма.
5.
парадигмыОтвет: 134
Ответ: 3
Ответ: 235
6.
Служебные словаbool byte short char int long float double decimal object string
ushort uint ulong sbyte
nint nuint
false true null
void
const
goto
if else switch case
do while for foreach in continue break
try catch throw
class enum
private protected public readonly static
new
default
out ref in
params
return
using namespace
is
internal extern
7.
Контекстно-зависимые Служебные слова• var
• dynamic
• partial
8.
Служебные словаОтвет: 12345
Ответ: 1
Ответ: 145
Ответ: 235
9.
Служебные словаОтвет: 235
Ответ: 124
10.
Порядок операцийОператоры
Категория
new x.y x->y x++ x--
Первичные
+x -x !x ~x ++x --x ^x
Унарные
x*y x/y x%y
Мультипликативные
x+y x-y
Аддитивный
x<<y x>>y
Сдвиг
x<y x>y x<=y x>=y
Относительный
x==y x!=y
Равенство
x&y
Логическое И (AND)
x^y
Логическое исключающее ИЛИ (XOR)
x|y
Логическое ИЛИ (OR)
x&&y
Условное И
x||y
Условное ИЛИ
x??y
Оператор объединения с null
с ? t : f
Тернарный оператор
11.
Порядок операций1.
2.
3.
4.
5.
6.
7.
8.
Унарные операции имеют наивысший приоритет
* > +
Математика раньше логики. * > &
&>|
(& - логическое умножение, | - логическое сложение)
&>^>|
& > &&
(битовые раньше логических)
Сдвиги – самые приоритетные из логических
Тернарный оператор последний
12.
лайфхаки• ~x = -x-1
• ~~x = -(-x-1)-1 = x+1-1 = x
• 1 << x = 2**x
• x^x = 0
• y^x^x = y^0 = y
13.
Порядок операцийОтвет: 28
Ответ: 6
14.
Порядок операцийОтвет: 4
Ответ: 4
15.
Приведение типов1) Любой целочисленный тип неявно преобразуется в любой числовой тип с
плавающей запятой.
2) Неявное приведение возможно если не может возникнуть потери данных
1 byte
2 short
4 Int
8 long
4 float
8 double
16 decimal
2 char
16.
Приведение типовОтвет: 1345
Ответ: 13
17.
Статические конструкторыОсновное предназначение – инициализация статических переменных.
Вызывается только один раз при первом обращении к любому члену класса.
18.
Ответ: 788919.
Передача аргументов по ссылкеin – передача по ссылке для ввода. Переменную нельзя изменить внутри метода.
out – передача по ссылке для вывода. Переменная должна быть
инициализирована внутри метода.
ref – передача по ссылке.
20.
Ответ: 12631-421.
Перегрузка методовПерегрузка – создание методов с одинаковыми названиями, но с различными
параметрами
У методов не должно быть одинаковых сигнатур.
В сигнатуру входят:
• Имя метода
• Количество параметров
• Типы параметров
• Модификаторы параметров (ref, out, in)
Для компилятора ref = out = in.
22.
Перегрузка методовМетод
Сигнатура
public static void Sum(int a, int b){}
Sum(int, int)
public int Sum(int a, int c){}
Sum(int, int)
private static long[,] Sum(int a, int[] array){}
Sum(int, int[])
protected void Sum(int a, out int A){}
Sum(int, ref int)
protected void Sum(ref short a, in short b)
Sum(ref short, ref short)
23.
Выберите пары методов с одинаковойсигнатурой
1
int Main(string[] args)
void Main(string[] args)
2
int Main(string[] args)
int Main(int[] args)
3
int Main(string[] args)
int Main()
4
static int Add(int a, int b)
public int Add(int a, int b)
5
public int Sub(int a, int b)
public int Add(int a, int b)
6
int Add(int a, int b)
int Add(ref int a, ref int b)
7
int Add(out long a, ref short b)
Int Add(in long a, out short b)
8
protected void Alert()
public static void Alert()
24.
Ответ: udsus25.
datetimeЯвляется структурой
Неизменяемый тип
26.
regex.
Любой один символ (даже пробел)
a*
0 или более a
a+
1 или более a [1, +∞]
a?
0 или 1 a
a|b
a или b
[a-z0-9]
[ab]
Диапазон
a или b
[ab0-9]
a или b или диапазон
[^abd]
Что угодно, кроме a, b, d