
- •Язык c# и структура простой программы
- •Что такое .Net Framework
- •Что такое с#
- •Создание первой программы на с#
- •Пространство имен System
- •С# как язык Объектно-Ориентированного Программирования (ооп)
- •Состав и назначение файлов проекта
- •Структура сборки
- •Элементы языка c#
- •Базовый синтаксис с#
- •Переменные
- •Числа без знака
- •Числа со знаком
- •Числа для финансистов
- •Текстовые символы
- •Логический тип данных
- •Литералы с плавающей точкой
- •Символьные литералы
- •Строковые литералы
- •Выражения и операторы с#
- •Инициализация переменных и оператор присваивания
- •Значение в левой части
- •Ввод данных с консоли
- •Математические операторы
- •Вычисление остатка при целочисленном делении
- •Унарные операторы
- •Унарное логическое отрицание
- •Составные операторы
- •Поразрядные операторы
- •Поразрядное логическое и
- •Поразрядное логическое или
- •Поразрядное логическое исключающее или
- •Унарная поразрядная операция дополнения
- •Поразрядный сдвиг
- •Пример использования поразрядных операторов
- •Логические операторы
- •Операторы отношения
- •Приоритеты операторов
- •Исполнители алгоритмов
- •Исполнитель Чертежник
- •Исполнитель Робот
- •Компьютер как формальный исполнитель алгоритмов
- •Блок-схема
- •Псевдокод
- •Необходимые свойства алгоритма
- •Понятие о временной сложности алгоритма
- •Примеры
- •Правила для определения сложности
- •Тернарный условный оператор
- •Применение логических операций
- •Конструкция выбора
- •Примеры применения оператора выбора
- •Объединение меток case
- •Пропущенный break
- •Пример программы: Простые числа
- •Пример обработки одномерного массива чисел
- •Использование генератора случайных данных
- •Использование оператора foreach
- •Типы задач обработки одномерных числовых массивов
- •Поиск элемента в массиве
- •Многомерные массивы
- •Базовые операции со строками
- •Методы типа string
- •Копирование и клонирование строк
- •Конкатенация строк
- •Извлечение подстроки
- •Вставка подстроки
- •Замена символов и строк
- •Удаление символов из строки
- •Удаление незначащих пробелов
- •Преобразование к верхнему и нижнему регистру
- •Выравнивание по левому и правому краю поля
- •Объединение массива строк
- •Разбор строки
- •Сравнение строк
- •Форматирование текстовых строк
- •Функции
- •Описание и использование функций
- •Возвращаемые значения
- •Передача параметров
- •Выходные параметры
- •Область действия переменных
- •Область действия переменных и управляющие конструкции
- •Рекурсия
- •Параметры функции Main()
- •Перегрузка функций
- •Перечислимый тип
- •Определение перечислимых типов
- •Структуры
- •Описание структур
- •Использование структур в качестве параметров функций
- •Использование структур в качестве возвращаемых значений функций
- •Функции структур
- •Файлы и потоки
- •Основные классы ввода и вывода
- •Классы для работы с потоками
- •Классы для работы с потоками текстовых символов
- •Работа с текстовыми файлами
Выражения и операторы с#
Итак, мы познакомились с типами данных, переменными и литералами. Теперь нам нужно научиться инициализировать переменные при помощи литералов, а также изучить основные операторы языка С#.
Операторы представляют собой символы, с помощью которых программа может выполнять те или иные действия над переменными, литералами и другими объектами. В результате выполнения оператора всегда получается какое-то значение, представляющее собой результат выполнения оператора.
Объекты программы, над которыми выполняются действия, называются операндами. Например, оператор сложения чисел принимает два операнда. Результатом сложения будет число, равное сумме значений операндов, т. е. сумме складываемых чисел.
Операторы и операнды формируют выражения.
Изучение операторов и выражений языка С# мы начнем с фундаментального оператора присваивания. Далее мы рассмотрим арифметические, логические, условные и другие операторы, а также выражения, составляемые с их применением.
Все операторы могут быть условно разделены на три категории:
Унарные операторы, которые выполняют действие над единственным операндом.
Бинарные операторы, которые выполняют действие над двумя операндами.
Тернарные операторы, которые выполняют действие над тремя операндами.
Большинство операторов попадает в категорию бинарных; существуют также несколько унарных операторов и единственный тернарный, называемый условным оператором (условный оператор представляет собой логический оператор, т. е. возвращает логическое значение).
Инициализация переменных и оператор присваивания
Прежде чем использовать переменную, программист должен задать для нее начальное значение. В языке С# это обязательное условие. Начальное значение может быть задано с помощью оператора присваивания при объявлении переменной, а также в процессе выполнения программы.
Вот несколько выражений, в которых присваиваются начальные значения переменным различных типов при объявлении этих переменных:
// Числовые переменные без знака
byte myByte = 25;
ushort myShort = 0;
uint myInt = 0x1233;
ulong myLong = 6786867867;
// Числовые переменные со знаком
sbyte distanceX = -25;
short distanceY = 356;
int height = -0x1234;
long width = 567743;
// Переменные с плавающей точкой
float piNumber = 3.1415926F;
double eNumber = 2.71;
decimal totalAccountValue = 9000000000m;
// Текстовый символ
char tokenDelemiter = 'c';
Инициализаторы переменных всех типов данных выглядят одинаково. Составляя выражение для инициализации, вначале вы указываете тип данных, затем имя переменной, потом оператор присваивания в виде знака равенства (=) и, наконец, литерал соответствующего типа.
После инициализации программа может присвоить переменной новое значение с помощью все того же оператора присваивания:
int x = 0;
x = 1;
Здесь мы вначале присваиваем переменной х значение 0, а затем — значение 1. Для инициализации одной переменной может использоваться другая, уже инициализированная ранее переменная:
int х = 0;
int у = х;
int z;
z = у;
Если нескольким переменным нужно присвоить одно и то же значение, это можно сделать за один прием при помощи многократного использования оператора присваивания:
int х, у, z;
x = у = z = 1;
Такое выражение вычисляется справа налево. Вначале значение 1 присваивается переменной z, затем значение переменной z присваивается переменной у, и, наконец, значение переменной у присваивается переменной х. В результате все три переменные будут проинициализированы значением 1.