
- •Язык c# и структура простой программы
- •Что такое .Net Framework
- •Что такое с#
- •Создание первой программы на с#
- •Пространство имен System
- •С# как язык Объектно-Ориентированного Программирования (ооп)
- •Состав и назначение файлов проекта
- •Структура сборки
- •Элементы языка c#
- •Базовый синтаксис с#
- •Переменные
- •Числа без знака
- •Числа со знаком
- •Числа для финансистов
- •Текстовые символы
- •Логический тип данных
- •Литералы с плавающей точкой
- •Символьные литералы
- •Строковые литералы
- •Выражения и операторы с#
- •Инициализация переменных и оператор присваивания
- •Значение в левой части
- •Ввод данных с консоли
- •Математические операторы
- •Вычисление остатка при целочисленном делении
- •Унарные операторы
- •Унарное логическое отрицание
- •Составные операторы
- •Поразрядные операторы
- •Поразрядное логическое и
- •Поразрядное логическое или
- •Поразрядное логическое исключающее или
- •Унарная поразрядная операция дополнения
- •Поразрядный сдвиг
- •Пример использования поразрядных операторов
- •Логические операторы
- •Операторы отношения
- •Приоритеты операторов
- •Исполнители алгоритмов
- •Исполнитель Чертежник
- •Исполнитель Робот
- •Компьютер как формальный исполнитель алгоритмов
- •Блок-схема
- •Псевдокод
- •Необходимые свойства алгоритма
- •Понятие о временной сложности алгоритма
- •Примеры
- •Правила для определения сложности
- •Тернарный условный оператор
- •Применение логических операций
- •Конструкция выбора
- •Примеры применения оператора выбора
- •Объединение меток case
- •Пропущенный break
- •Пример программы: Простые числа
- •Пример обработки одномерного массива чисел
- •Использование генератора случайных данных
- •Использование оператора foreach
- •Типы задач обработки одномерных числовых массивов
- •Поиск элемента в массиве
- •Многомерные массивы
- •Базовые операции со строками
- •Методы типа string
- •Копирование и клонирование строк
- •Конкатенация строк
- •Извлечение подстроки
- •Вставка подстроки
- •Замена символов и строк
- •Удаление символов из строки
- •Удаление незначащих пробелов
- •Преобразование к верхнему и нижнему регистру
- •Выравнивание по левому и правому краю поля
- •Объединение массива строк
- •Разбор строки
- •Сравнение строк
- •Форматирование текстовых строк
- •Функции
- •Описание и использование функций
- •Возвращаемые значения
- •Передача параметров
- •Выходные параметры
- •Область действия переменных
- •Область действия переменных и управляющие конструкции
- •Рекурсия
- •Параметры функции Main()
- •Перегрузка функций
- •Перечислимый тип
- •Определение перечислимых типов
- •Структуры
- •Описание структур
- •Использование структур в качестве параметров функций
- •Использование структур в качестве возвращаемых значений функций
- •Функции структур
- •Файлы и потоки
- •Основные классы ввода и вывода
- •Классы для работы с потоками
- •Классы для работы с потоками текстовых символов
- •Работа с текстовыми файлами
- •Запись двоичных данных
- •Пример программы для работы с двоичным файлом
- •Просмотр содержимого каталога
- •Получение информации о каталоге
Переменные
Любая программа обрабатывают данные. За обработку данных отвечает центральный процессор компьютера. Внутри процессора имеется управляющее устройство, арифметико-логическое устройство, набор регистров для временного хранения данных, схемы адресации внешнего устройства оперативной памяти и устройств ввода-вывода, а также другие схемы и устройства.
В оперативную память тем или иным способом записывается программа — набор инструкций (машинных команд), предписывающих центральному процессору выполнить заданные действия в определенной последовательности. Процессор извлекает машинные команды из оперативной памяти и выполняет их.
Первые компьютеры создавались главным образом для ускорения математических вычислений и потому работали с числами. Это обстоятельство подчеркивалось и в отечественном переводе зарубежного термина компьютер «computer» - вычислитель. Данные элементарных типов (бит и байт) позволяют хранить числа в весьма ограниченном диапазоне значений. С помощью 1 бита можно представить всего два числа — 0 и 1, а с помощью 1 байта — 256 целых чисел в диапазоне от 0 до 255.
Комбинируя несколько байтов, можно создавать типы данных, предназначенные для хранения намного большего количества значений. Например, комбинируя вместе 2 байта, можно определить 16-разрядный тип данных, способный хранить целые значения от 0 до 216 - 1 = 65 535. При необходимости можно комбинировать вместе 4, 8 или больше байт, создавая типы данных, пригодные для реальных вычислений.
Для того чтобы представлять в памяти не только положительные, но и отрицательные числа, старший разряд байта (или комбинации нескольких расположенных рядом байтов) используют для хранения знака числа. Когда этот разряд сброшен (равен 0), то число имеет положительный знак, а когда установлен (равен 1) — отрицательный. При этом в остальных разрядах хранится абсолютное значение числа.
Отдельные байты или объединения смежных байтов оперативной памяти можно использовать для создания переменных — объектов, предназначенных для хранения и обработки данных.
Переменная имеет свой адрес и разрядность. Чем больше разрядность, тем большее число можно записать в переменную. Кстати, само слово «переменная» подчеркивает тот факт, что программа может изменять содержимое отведенной для нее области памяти.
Имя переменной может состоять из произвольной последовательности букв и цифр, а также из символа подчеркивания ( _ ), считающегося буквой. Имя не должно начинаться с цифры, содержать пробелы или совпадать с зарезервированными ключевыми словами С#. Полный список зарезервированных ключевых слов С# можно найти в любой книге, посвященной программированию на этом языке.
Итак, теперь мы знаем, что программа может обращаться к переменным, расположенным в оперативной памяти компьютера по их символическим именам. Однако одного только имени недостаточно для того, чтобы правильно работать с переменной. Необходимо еще знать, какой тип данных хранит переменная, и сколько байтов памяти она занимает.
Во всех языках программирования для обозначения типа данных используются специальные ключевые слова, и язык С# не является исключением. Заметим, что в отличие от других языков программирования все переменные в С# рассматриваются как объекты тех или иных классов. Пока мы еще не приступили к изучению объектно-ориентированного программирования, не будем принимать данное обстоятельство во внимание. Позже мы вернемся к этому вопросу и рассмотрим его подробнее.
В языке С# можно использовать числовые типы данных со знаком, числовые переменные без знака, символьные переменные, логические (булевы) переменные. Рассмотрим элементарные типы данных С# и их обозначение подробнее.