
- •Язык c# и структура простой программы
- •Что такое .Net Framework
- •Что такое с#
- •Создание первой программы на с#
- •Пространство имен System
- •С# как язык Объектно-Ориентированного Программирования (ооп)
- •Состав и назначение файлов проекта
- •Структура сборки
- •Элементы языка c#
- •Базовый синтаксис с#
- •Переменные
- •Числа без знака
- •Числа со знаком
- •Числа для финансистов
- •Текстовые символы
- •Логический тип данных
- •Литералы с плавающей точкой
- •Символьные литералы
- •Строковые литералы
- •Выражения и операторы с#
- •Инициализация переменных и оператор присваивания
- •Значение в левой части
- •Ввод данных с консоли
- •Математические операторы
- •Вычисление остатка при целочисленном делении
- •Унарные операторы
- •Унарное логическое отрицание
- •Составные операторы
- •Поразрядные операторы
- •Поразрядное логическое и
- •Поразрядное логическое или
- •Поразрядное логическое исключающее или
- •Унарная поразрядная операция дополнения
- •Поразрядный сдвиг
- •Пример использования поразрядных операторов
- •Логические операторы
- •Операторы отношения
- •Приоритеты операторов
- •Исполнители алгоритмов
- •Исполнитель Чертежник
- •Исполнитель Робот
- •Компьютер как формальный исполнитель алгоритмов
- •Блок-схема
- •Псевдокод
- •Необходимые свойства алгоритма
- •Понятие о временной сложности алгоритма
- •Примеры
- •Правила для определения сложности
- •Тернарный условный оператор
- •Применение логических операций
- •Конструкция выбора
- •Примеры применения оператора выбора
- •Объединение меток case
- •Пропущенный break
- •Пример программы: Простые числа
- •Пример обработки одномерного массива чисел
- •Использование генератора случайных данных
- •Использование оператора foreach
- •Типы задач обработки одномерных числовых массивов
- •Поиск элемента в массиве
- •Многомерные массивы
- •Базовые операции со строками
- •Методы типа string
- •Копирование и клонирование строк
- •Конкатенация строк
- •Извлечение подстроки
- •Вставка подстроки
- •Замена символов и строк
- •Удаление символов из строки
- •Удаление незначащих пробелов
- •Преобразование к верхнему и нижнему регистру
- •Выравнивание по левому и правому краю поля
- •Объединение массива строк
- •Разбор строки
- •Сравнение строк
- •Форматирование текстовых строк
- •Функции
- •Описание и использование функций
- •Возвращаемые значения
- •Передача параметров
- •Выходные параметры
- •Область действия переменных
- •Область действия переменных и управляющие конструкции
- •Рекурсия
- •Параметры функции Main()
- •Перегрузка функций
- •Перечислимый тип
- •Определение перечислимых типов
- •Структуры
- •Описание структур
- •Использование структур в качестве параметров функций
- •Использование структур в качестве возвращаемых значений функций
- •Функции структур
- •Файлы и потоки
- •Основные классы ввода и вывода
- •Классы для работы с потоками
- •Классы для работы с потоками текстовых символов
- •Работа с текстовыми файлами
Литералы с плавающей точкой
Литералы с плавающей точкой бывают типа float, double и decimal. Если в литерале используется суффикс f или F, то это литерал типа float, а если суффикс d или D — типа double. В том случае, когда суффикс не указан, литерал принимает тип double. Для обозначения литерала типа decimal используется суффикс m или М.
Экспоненциальная часть литерала отделяется символом е или Е. Для обозначения знака числа используются символы + и -.
Вот примеры литералов с плавающей точкой типа float:
3F 6.52f 2el0F 1356.4560f -3.7E-10F
А эти литералы будут иметь тип double:
.25 3.3 6.52d 2el0 1356.4560D -3.7E-10D
Вот несколько примеров литералов типа decimal, применяемых обычно для обозначения денежных сумм:
.25m 3.3М 6.52m 2е10M 13573847420983746.45М
Символьные литералы
Обычно с помощью символьных литералов представляют одиночные символы, заключая их в одинарные кавычки, например:
'с' 'А' 'Щ'
С помощью символа обратного слеша ('\') можно указать в качестве символьного литерала некоторые специальные и управляющие символы. Например, литерал '\n' задает символ новой строки.
Последовательность символа '\' и идущего вслед за ним символа называют escape-последовательностью. В следующей таблице приведены escape-последовательности, допустимые в языке С#, а также соответствующие им 16-разрядные значения в кодировке UNICODE.
Escape-последовательность |
Символ |
Код, UNICODE |
\' |
Одинарная кавычка (') |
0x0027 |
\" |
Двойная кавычка (") |
0x0022 |
\\ |
Обратный слеш (\) |
0х005С |
\0 |
Нулевое значение |
0x0000 |
\а |
Звуковой сигнал |
0x0007 |
\b |
Возврат каретки |
0x0008 |
\f |
Новая страница |
0х000С |
\n |
Новая строка |
0х000A |
\r |
Возврат каретки |
0х000D |
\t |
Горизонтальная табуляция |
0х0009 |
\v |
Вертикальная табуляция |
0х000B |
\х |
Произвольное значение в шестнадцатеричной кодировке |
От 0x0000 до 0xFFFF |
В наших программах мы часто будем пользоваться литералом '\n' для перевода строки при выдаче данных на консоль.
С помощью конструкции вида '\ul234' или '\U1234' можно задать так называемый символьный литерал UNICODE. Цифры, следующие за escape-последовательностью '\u', задают шестнадцатеричный код UNICODE определяемого символа. Так как символы UNICODE занимают в памяти 2 байта, этот код должен находиться в интервале от 0x0000 до 0xFFFF.
Строковые литералы
Для представления текстовых строк в языке программирования С# используют строковые литералы. Несмотря на то, что строковый тип данных не является элементарным и поэтому рассматривается позже, тестовые строки широко используются даже в простейших программах, например, для вывода сообщений на печать. Строковый литерал представляет собой простую строку символов, заключенную в двойные кавычки, например:
"Hello, C# world!"
Строковые литералы могут включать в себя escape-последовательности, описанные в предыдущем разделе. Например, для разделения слов в строковом литерале может применяться символ табуляции '\t':
"Случайные числа:\t657\t3\4585t\t54545"
Для того чтобы включить в литерал символ двойной кавычки, его нужно представить в виде escape-последовательности ' \" ', например:
"Гостиница \"Москва\""
Если же нужно включить в литерал символ обратного слеша (\), то его нужно повторить дважды. Вот, например, как с помощью текстового литерала можно задать путь к каталогу c:\games\tetris\doc:
"с:\\games\\tetris\\doc"
В языке С# строковый литерал может иметь префикс @. Он задает так называемый буквальный или дословный (verbatim) литерал. В таком литерале все символы интерпретируются буквально, поэтому, например, нет необходимости повторять дважды символ обратного слеша:
@"с:\games\tetris\doc"
Если же нужно включить в буквальный строковый литерал символ двойной кавычки, его все же придется повторить дважды:
@"Гостиница ""Москва"""
Обычные строковые литералы C# должны полностью располагаться на одной строке. Что же касается буквальных строковых литералов, то они могут быть не только однострочными, но и многострочными, например:
@"Это
многострочный
литерал"
Такой литерал включает в себя все пробелы, символы новой строки и любые другие символы, располагающиеся между двойными кавычками, ограничивающими литерал.
Логические литералы
Логические литералы предназначены для задания значений логическим переменным. В языке С# используются два логических литерала — true (истина) и false (ложь).
Напомним, что в языке С# логические литералы не сопоставляются с целочисленными значениями, такими, например, как 1 и 0.
Литерал null
В языках программирования С и C++ переменные всегда содержат какие-либо значения. Программист может задать эти значения явно с помощью оператора присваивания (который мы скоро рассмотрим), а может и не задавать. В последнем случае в переменной будет храниться либо нуль, либо случайное значение.
Что же касается языка С#, то в нем с помощью специального литерала null программист может указать, что переменная вообще не содержит никакого значения.
Заметим, что литерал null не эквивалентен нулевому значению. Он предназначен для использования в тех ситуациях, когда в переменной не хранится ни нулевое, ни какое-либо другое значение.