
- •Язык c# и структура простой программы
- •Что такое .Net Framework
- •Что такое с#
- •Создание первой программы на с#
- •Пространство имен System
- •С# как язык Объектно-Ориентированного Программирования (ооп)
- •Состав и назначение файлов проекта
- •Структура сборки
- •Элементы языка c#
- •Базовый синтаксис с#
- •Переменные
- •Числа без знака
- •Числа со знаком
- •Числа для финансистов
- •Текстовые символы
- •Логический тип данных
- •Литералы с плавающей точкой
- •Символьные литералы
- •Строковые литералы
- •Выражения и операторы с#
- •Инициализация переменных и оператор присваивания
- •Значение в левой части
- •Ввод данных с консоли
- •Математические операторы
- •Вычисление остатка при целочисленном делении
- •Унарные операторы
- •Унарное логическое отрицание
- •Составные операторы
- •Поразрядные операторы
- •Поразрядное логическое и
- •Поразрядное логическое или
- •Поразрядное логическое исключающее или
- •Унарная поразрядная операция дополнения
- •Поразрядный сдвиг
- •Пример использования поразрядных операторов
- •Логические операторы
- •Операторы отношения
- •Приоритеты операторов
- •Исполнители алгоритмов
- •Исполнитель Чертежник
- •Исполнитель Робот
- •Компьютер как формальный исполнитель алгоритмов
- •Блок-схема
- •Псевдокод
- •Необходимые свойства алгоритма
- •Понятие о временной сложности алгоритма
- •Примеры
- •Правила для определения сложности
- •Тернарный условный оператор
- •Применение логических операций
- •Конструкция выбора
- •Примеры применения оператора выбора
- •Объединение меток case
- •Пропущенный break
- •Пример программы: Простые числа
- •Пример обработки одномерного массива чисел
- •Использование генератора случайных данных
- •Использование оператора foreach
- •Типы задач обработки одномерных числовых массивов
- •Поиск элемента в массиве
- •Многомерные массивы
- •Базовые операции со строками
- •Методы типа string
- •Копирование и клонирование строк
- •Конкатенация строк
- •Извлечение подстроки
- •Вставка подстроки
- •Замена символов и строк
- •Удаление символов из строки
- •Удаление незначащих пробелов
- •Преобразование к верхнему и нижнему регистру
- •Выравнивание по левому и правому краю поля
- •Объединение массива строк
- •Разбор строки
- •Сравнение строк
- •Форматирование текстовых строк
- •Функции
- •Описание и использование функций
- •Возвращаемые значения
- •Передача параметров
- •Выходные параметры
- •Область действия переменных
- •Область действия переменных и управляющие конструкции
- •Рекурсия
- •Параметры функции Main()
- •Перегрузка функций
- •Перечислимый тип
- •Определение перечислимых типов
- •Структуры
- •Описание структур
- •Использование структур в качестве параметров функций
- •Использование структур в качестве возвращаемых значений функций
- •Функции структур
- •Файлы и потоки
- •Основные классы ввода и вывода
- •Классы для работы с потоками
- •Классы для работы с потоками текстовых символов
- •Работа с текстовыми файлами
- •Запись двоичных данных
- •Пример программы для работы с двоичным файлом
- •Просмотр содержимого каталога
- •Получение информации о каталоге
Составные операторы
Ранее мы познакомились с унарными операторами инкремента и декремента, позволяющими соответственно увеличивать или уменьшать на единицу значение операнда.
Использование этих операторов позволяет сделать исходный текст программы более компактным и легко читаемым. Кроме того, такой код будет выполняться быстрее из-за оптимизации, выполняемой компилятором.
В языке С# имеется еще целый ряд так называемых составных операторов, применение которых позволяет улучшить читаемость исходного текста программы и увеличить скорость ее работы.
Составные операторы получаются комбинированием бинарного оператора и оператора присваивания:
Символ |
Оператор |
+= |
Сложение и присваивание |
–= |
Вычитание и присваивание |
*= |
Умножение и присваивание |
/= |
Деление и присваивание |
%= |
Вычисление остатка от деления и присваивание |
&= |
Логическое И и присваивание |
|= |
Логическое ИЛИ и присваивание |
^= |
Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ и присваивание |
<<= |
Сдвиг влево и присваивание |
>>= |
Сдвиг вправо и присваивание |
Предположим, нам нужно увеличить значение, хранящееся в переменной х, на 2. Это можно сделать при помощи обычного бинарного оператора сложения, например, так:
int х = 1;
х = х + 2;
Если использовать составной оператор сложения и присваивания, то код будет выглядеть проще:
х += 2;
Как видите, здесь переменная х упоминается только один раз. Аналогичным образом можно использовать и другие числовые составные операторы:
х -= 3;
х *= 5;
х \= 2;
x %= 2;
Пока речь идет об изменении значений числовых переменных с именами типа x или y, преимущество использования составных операторов, возможно, не столь очевидно. Однако если Ваши переменные имеют длинные (и понятные!) имена типа isBlackColor, возможность указать их имена в выражении только один раз покажется Вам удобной. Не забывайте также об эффективности получаемого кода!
Логические составные операторы и операторы сдвига используются аналогичным образом. Соответствующие им бинарные поразрядные операторы описаны в следующем разделе данного курса.
Поразрядные операторы
В языке С# имеются так называемые поразрядные операторы, с помощью которых можно изменять состояние отдельных или всех разрядов значений, хранящихся в переменных.
Поразрядные операторы предназначены для выполнения операций логическое И (AND), логическое ИЛИ (OR), логическое ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) и логическое отрицание НЕ (NOT), а также операций поразрядного сдвига влево и вправо. Соответствующие им символы перечислены в следующей таблице:
Символ |
Оператор |
& |
Логическое И |
| |
Логическое ИЛИ |
^ |
Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ |
~ |
Унарная поразрядная операция дополнения |
<< |
Сдвиг влево |
>> |
Сдвиг вправо |
Расскажем подробнее об этих операциях и соответствующих поразрядных операторах.