- •Язык c# и структура простой программы
- •Что такое .Net Framework
- •Что такое с#
- •Создание первой программы на с#
- •Пространство имен System
- •С# как язык Объектно-Ориентированного Программирования (ооп)
- •Состав и назначение файлов проекта
- •Структура сборки
- •Элементы языка c#
- •Базовый синтаксис с#
- •Переменные
- •Числа без знака
- •Числа со знаком
- •Числа для финансистов
- •Текстовые символы
- •Логический тип данных
- •Литералы с плавающей точкой
- •Символьные литералы
- •Строковые литералы
- •Выражения и операторы с#
- •Инициализация переменных и оператор присваивания
- •Значение в левой части
- •Ввод данных с консоли
- •Математические операторы
- •Вычисление остатка при целочисленном делении
- •Унарные операторы
- •Унарное логическое отрицание
- •Составные операторы
- •Поразрядные операторы
- •Поразрядное логическое и
- •Поразрядное логическое или
- •Поразрядное логическое исключающее или
- •Унарная поразрядная операция дополнения
- •Поразрядный сдвиг
- •Пример использования поразрядных операторов
- •Логические операторы
- •Операторы отношения
- •Приоритеты операторов
- •Исполнители алгоритмов
- •Исполнитель Чертежник
- •Исполнитель Робот
- •Компьютер как формальный исполнитель алгоритмов
- •Блок-схема
- •Псевдокод
- •Необходимые свойства алгоритма
- •Понятие о временной сложности алгоритма
- •Примеры
- •Правила для определения сложности
- •Тернарный условный оператор
- •Применение логических операций
- •Конструкция выбора
- •Примеры применения оператора выбора
- •Объединение меток case
- •Пропущенный break
- •Пример программы: Простые числа
- •Пример обработки одномерного массива чисел
- •Использование генератора случайных данных
- •Использование оператора foreach
- •Типы задач обработки одномерных числовых массивов
- •Поиск элемента в массиве
- •Многомерные массивы
- •Базовые операции со строками
- •Методы типа string
- •Копирование и клонирование строк
- •Конкатенация строк
- •Извлечение подстроки
- •Вставка подстроки
- •Замена символов и строк
- •Удаление символов из строки
- •Удаление незначащих пробелов
- •Преобразование к верхнему и нижнему регистру
- •Выравнивание по левому и правому краю поля
- •Объединение массива строк
- •Разбор строки
- •Сравнение строк
- •Форматирование текстовых строк
- •Функции
- •Описание и использование функций
- •Возвращаемые значения
- •Передача параметров
- •Выходные параметры
- •Область действия переменных
- •Область действия переменных и управляющие конструкции
- •Рекурсия
- •Параметры функции Main()
- •Перегрузка функций
- •Перечислимый тип
- •Определение перечислимых типов
- •Структуры
- •Описание структур
- •Использование структур в качестве параметров функций
- •Использование структур в качестве возвращаемых значений функций
- •Функции структур
- •Файлы и потоки
- •Основные классы ввода и вывода
- •Классы для работы с потоками
- •Классы для работы с потоками текстовых символов
- •Работа с текстовыми файлами
Числа для финансистов
Если речь идет о компьютерных системах банка, оперирующих с астрономическими денежными суммами, необходимо обеспечить максимально возможную точность вычислений.
Многократное возникновение ошибки округления может привести к бесследному исчезновению (или, наоборот, к появлению из ниоткуда) довольно заметных денежных сумм.
В языке С# предусмотрен один тип данных специально для работы с денежными суммами — это тип decimal. Он обеспечивает намного большую, чем у double, точность представления дробных чисел — до 29 десятичных цифр:
Тип |
Возможные значения |
Описание |
decimal |
От 1.0×10-28 до 7.9×1028 |
128-разрядное число с плавающей точкой, максимальная точность представления чисел — 29 десятичных цифр |
Таким образом, у программиста есть достаточно широкий выбор типов данных, как для работы с целыми, так и с действительными числами. Но не нужно без необходимости увлекаться чересчур большой точностью (для действительных чисел), или диапазоном значений (для целых). Не стоит забывать, что увеличение точности сопровождается увеличением расхода оперативной памяти и снижением быстродействия программы.
Текстовые символы
Для хранения отдельных символов текста (таких, как буквы, знаки пунктуации и управляющие символы) в языке С# предусмотрен специальный тип данных char.
Для этого типа данных используется современная кодировка UNICODE, поэтому символы char занимают в памяти 2 байта. Для сравнения заметим, что переменные типа char в языках программирования С и C++ занимают в памяти только 1 байт.
Вот как можно объявить переменную типа char в программе, написанной на С#:
char tokenDelemiter;
Следует помнить, что каждая переменная такого типа может хранить только один символ. Для работы со словами и текстовыми строками Вам понадобятся другие типы данных, которые не являются элементарными, и поэтому будут рассмотрены позже.
Логический тип данных
Логические переменные в С# объявляются с помощью ключевого слова bool и могут принимать одно из двух значений — true (истина) или false (ложь). В этом логические переменные напоминают отдельные разряды байта. Действительно, каждый бит может хранить только одно из двух значений — 1 или 0.
Во многих языках программирования (в частности, в языках С и C++) значение 1 (или -1) сопоставляется с истиной, а значение 0 — с ложью. В языке С# такое сопоставление не используется. Поэтому Вам придется использовать константы true и false для присваивания значений и проверки логических переменных, которые нужны в программе достаточно часто, когда нужно зафиксировать тот факт, произошло или нет некоторое событие во время выполнения программы.
Литералы, они же константы
Литералы (константы) применяются в исходном тексте программы для обозначения числовых или логических значений, текстовых символов и строк. С помощью литералов программист может присвоить начальные значения переменным, они также используются при описании арифметических операций.
Целочисленные литералы
Для обозначения целых десятичных чисел в языке С# используются цифры от 0 до 9, а также (при необходимости) дополнительные суффиксы (т.е. символы, непосредственно следующие за литералом).
Вот примеры простейших целочисленных литералов:
25 0 767 6786867867 1233
Целочисленные литералы без дополнительных суффиксов могут представлять значения типов со знаком или без знака: byte, sbyte, int, uint, long, ulong.
Чтобы указать, что литерал представляет собой число без знака, он снабжается суффиксом u или U, например:
256u 1U 0U
В этом случае литерал соответствует типам byte, uint, ulong.
Суффиксы l или L применяются для создания литералов типа long и ulong:
2564124739362741 11 0L
Комбинируя в произвольном порядке суффиксы u, U, 1 и L, можно создавать литералы типа ulong:
25UL 145637365UL 76787234711u 7678723471LU 6410193764LU
На экране букву l очень легко перепутать с цифрой 1, поэтому в суффиксах литералов рекомендуется применять вместо нее прописную букву L.
Целочисленные литералы могут обозначать и шестнадцатеричные числа. В этом случае они составляются из цифр от 0 до 9 и букв А, В, С, D, E, F. Перед шестнадцатеричным числом помещается префикс 0х, например:
0xl 0x23BF 0xFFFF 0xFE67BCA0001
Для обозначения знака числа допускается использование символов + и -.
