
- •12. Фундаментальные принципы ооп
- •13. Методы
- •14. Конструкторы и деструкторы
- •15. Структуры и перечисления
- •16. Свойства и поля класса
- •18. Анонимные типы
- •20. Расширяющие методы.
- •19. Перегрузка операций в классе. Явное и неявное преобразование типов. Ограничения на преобразование типов.
- •17. Статические поля, методы, конструкторы, классы.
- •2. Типы данных
- •3. Базовые типы
- •Унарные операции Можно определять в классе следующие унарные операции:
- •Бинарные операции
- •5.Выражения (порядок их вычисления, тип результата, оператор присваивания).
- •6.Операторы ветвления (if, switch, case, break , goto case).
- •Оператор break
- •Оператор goto-оператор безусловного перехода. Когда в программе встречается оператор goto, ее выполнение переходит непосредственно к тому месту, на которое указывает этот оператор.
- •7. Операторы цикла (for, while, do-while, foreach, break continue).
- •8. Обработка исключений (операторы обработки исключений, класс Exception, создание объектов Exception, захват исключения, последовательность обработки исключений, классы Debug и Trace)
- •9. Массивы (одномерные, многомерные и ступенчатые массивы, класс Array).
- •Многомерные массивы
- •Ступенчатые массивы
- •10. Создание и подключение сборок. Пространства имен (ключевые слова using, namespace)
- •11. Сложение:
- •14. Структурные блоки платформы .Net: cli, clr, cls, cts.
- •17. Таблица приоритетов операций, соответствующая Common Language Specification (cls)
- •21. Интерфейс программирования приложений WinForms.
- •22. Интерфейс программирования приложений wpf.
- •24.Кодирование символов (ascii, utf, utf-8, utf-16)
- •3.Вопросы по c# часть 1
- •22 Делегаты
- •23 События
- •24 Наследование классов
- •25 Интерфейсы
- •26 Шаблоны и интерфейс iEnumerable
- •27 Динамический тип данных
- •Статический класс Environment.
- •2) Класс DriveInfo.
- •3) Классы для работы с каталогами (папками) (System.Io.Directory, System.Io.DirectoryInfo)
- •9.2.3. Создание подпапок с помощью класса DirectoryInfo
- •9.3. Работа с классом Directory
- •9.4. Работа с классом DriveInfo
- •Классы для работы с файлами (System.Io.File, System.Io.FileInfo).
- •9.1. Абстрактный базовый класс FileSystemInfo
24.Кодирование символов (ascii, utf, utf-8, utf-16)
Кодировка описывает набор правил, в соответствии с которыми работают кодировщик и декодер.
Кодировка |
Класс |
Описание |
Преимущества / недостатки |
ASCII |
ASCIIEncoding |
Кодирует ограниченный диапазон символов, используя семь нижних битов байта. |
Так как эта кодировка поддерживает только значения символов от U+0000 до U+007F, то во многих случаях она не отвечает требованиям международных приложений. |
UTF-7 |
UTF7Encoding |
Представляет символы в виде последовательностей 7-разрядных символов ASCII. Символы, отличные от ASCII Юникода, представлены в виде escape-последовательности символов ASCII. |
UTF-7 поддерживает протоколы, например протоколы электронной почты и групп новостей. Однако формат UTF-7 недостаточно безопасен или надежен. В некоторых случаях изменение одного бита может привести к существенному изменению интерпретации всей строки UTF-7. В других случаях для кодировки одного и того же текста могут использоваться разные строки UTF-7. В последовательностях, содержащих отличные от ASCII символы, формат UTF-7 требует больше пространства, чем UTF-8, и процесс кодирования/декодирования выполняется медленнее. Следовательно, при возможности лучше использовать UTF-8 вместо UTF-7. |
UTF-8 |
UTF8Encoding |
Представляет каждую кодовую точку Юникода в виде последовательности от одного до четырех байтов. |
UTF-8 поддерживает 8-разрядный размер данных и хорошо работает со многими операционными системами. Для диапазона символов ASCII UTF-8 идентичен кодировке ASCII и представляет более широкий набор символов. Однако для китайской, японской, корейской письменности UTF-8 может потребовать три байта для каждого символа, создавая, таким образом, данные большего размера, чем UTF-16. Обратите внимание, что иногда увеличение размера для китайских, японских и корейских языков объясняется объемом данных ASCII, например тегами HTML. |
UTF-16 |
UnicodeEncoding |
Представляет каждую кодовую точку Юникода в виде последовательности из одного или двух 16-разрядных целых чисел.Наиболее распространены символы Юникода требуют только одной кодовой точки UTF-16, хотя дополнительные символы Юникода (U+10000 и далее) требуют двух замещающих кодовых точек UTF-16. Поддерживается как прямой порядок байтов, так и обратный порядок байтов. |
Кодировка UTF-16 используется средой CLR для представления значений Char иString, также она используется ОС Windows для представления значений WCHAR. |
2. Булева Алгебра.
1. Операции булевой алгебры.
Категория |
Выражение |
Описание |
Логическое AND |
x & y |
Целочисленное поразрядное AND, логическое AND |
Логическое исключающее XOR |
x ^ y |
Целочисленное поразрядное исключающее XOR, логическое исключающее XOR |
Логическое OR |
x | y |
Целочисленное поразрядное OR, логическое OR |
Условное AND |
x && y |
Вычисляет y только только если x имеет значение true |
Условное OR |
x || y |
Вычисляет y только только если x имеет значение false |
Объединение нулей |
x ?? y |
Равно y, если x = null, в противном случае равно x |
Условное |
x ? y : z |
Равно y, если x имеет значение true, z если x имеет значение false |
2. Упростить логическое выражение.
1. Закон двойного отрицания:
А = ¬(¬А)
Двойное отрицание, исключает отрицание.
2. Переместительный (коммутативный) закон:
для логического сложения: А V B = B v A;
для логического умножения: А & B = B & A.
Результат операции над высказываниями не зависит от порядка высказывания.
3. Сочетательный (ассоциативный) закон:
для логического сложения: (A V B) V C = A V(B V C);
для логического умножения: (A & B) & C = A & (B & C).
При одинаковых знаках скобки можно ставить произвольно или вообще опускать.
4. Распределительный (дистрибутивный) закон:
для логического сложения: (A V B) & C = (A & C) V (B & C);
для логического умножения: (A & B) V C = (A V C) & (B V C).
Общее высказывание выносим за скобку.
5. Законы общей инверсии (законы де Моргана):
для логического сложения: ¬ (A V B) = (¬A) & (¬B);
для логического умножения: ¬(A & B) = (¬A) V (¬B).
Обратите внимание на смену выражения!
6. Закон идемпотентности (от латинских слов idem — тот же
самый и potens —сильный; дословно — равносильный):
для логического сложения: A V A = A;
для логического умножения: A & A = A.
Закон означает отсутствие показателей степени.
7. Закон исключения констант:
для логического сложения: A V 1 = 1; A V 0 = A;
для логического умножения: A & 1 = A; A & 0 = 0.
8. Закон противоречия:
A & (¬A) = 0.
Невозможно чтобы противоречащие высказывания были одновременно истинными.
9. Закон исключения третьего:
A V (¬A) = 1.
Из двух противоречащих высказываний об одном и том же предмете одно всегда истинно, а второе — ложно, третьего не дано.
10. Закон поглощения:
для логического сложения: (A & B) v A = A;
для логического умножения: (A v B) & A = A.
11. Закон исключения (склеивания):
для логического сложения: (A & B)v(¬A & B) = B;
для логического умножения: (A v B) & (¬A v B) = B.
12. Закон контрапозиции (правило перевертывания):
A → B = (¬A) → (¬B)
Если некая посылка A влечёт некое следствие B, то отрицание этого следствия (то есть «не B») влечёт отрицание этой посылки
3. Составить таблицу истинности.
Таблица истинности для логического ИЛИ - сложение
a |
b |
a + b |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Таблица истинности для логического И - умножение
a |
b |
a * b |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
Таблица истинности для равносильности ==
a |
b |
a == b |
true |
true |
true |
true |
false |
false |
false |
false |
true |
false |
true |
false |
Таблица истинности для отрицания !
a |
!a |
true |
false |
false |
true |