Программирование — это создание алгоритмов, описание структур данных и работа на разных уровнях абстракции, включающая написание кода, адаптируемого к неидеальным условиям. Инструменты языка предназначены для создания кода, надёжно работающего в течение длительного времени, несмотря на внешние факторы. Идиомы, паттерны и инструменты помогают создавать практичный, а не только выдающийся код.
Процесс программирования
Процесс программирования включает:
- Написание исходного кода (включая визуальное программирование).
- Компиляцию (или трансляцию).
- Отладку.
C# имеет строгие правила; большинство ошибок обнаруживаются на этапе компиляции. Компиляция преобразует исходный код в другой язык (например, ассемблер или JavaScript). C# обычно транслируется в промежуточный код (IL), выполняемый виртуальной машиной.
Императивное программирование
Курс начинается с императивного программирования — написания последовательно выполняемых инструкций. В дальнейшем будут рассмотрены другие парадигмы, например, функциональное программирование.
Основные черты императивных языков:
- Именованные переменные.
- Оператор присваивания.
- Составные выражения.
- Подпрограммы.
- Операторы ветвления и циклы.
В курсе будут изучены:
- Переменные, типы и выражения.
- Массивы.
- Функции.
Простейший алгоритм
Алгоритм:
- Получить число от пользователя и записать его в переменную numberOne.
- Получить число от пользователя и записать его в переменную numberTwo.
- Применить оператор + к numberOne и numberTwo; сохранить результат в переменную result.
- Вывести значение переменной result.
Этот алгоритм демонстрирует именованные переменные (numberOne, numberTwo, result) и оператор присваивания.
Переменные и типы данных в C#
Переменная — именованная область памяти для хранения данных. Имя позволяет переменной менять своё значение в отличие от литерала (например, число 12 всегда равно 12). Переменные хранят промежуточные данные и влияют на поведение программы. C# использует сильную статическую типизацию: каждая переменная имеет конкретный тип, известный на этапе компиляции, и не может быть изменен.
Интегрированная среда разработки (IDE)
Работа будет вестись в IDE (например, Visual Studio), включающей текстовый редактор, обозреватель решений, компилятор, отладчик и другие инструменты. В курсе используется консольное приложение для Windows с кодом в файле Program.cs. Программа выполняется сверху вниз, начиная с метода Main.
Создание проекта в Visual Studio
Для создания проекта:
- Выберите «Файл» -> «Создать» -> «Проект».
- Выберите шаблон «Консольное приложение» (Visual C# -> Классический рабочий стол).
- Укажите имя проекта и папку.
- Нажмите «ОК».
Работа с переменными в C#
Объявление переменной:
int numberOne;
Типы данных для чисел:
- int: 32-разрядное целое число.
- byte: 8-разрядное целое число без знака (0-255).
- sbyte: 8-разрядное целое число со знаком (-128-127).
- short: 16-разрядное целое число со знаком.
- ushort: 16-разрядное целое число без знака.
- long: 64-разрядное целое число со знаком.
- ulong: 64-разрядное целое число без знака.
Оператор присваивания (=):
numberOne = 12;
Комментарии:
// Однострочный комментарий
/* Многострочный
комментарий */
Хранение чисел со знаком: старший бит — знак числа.
Литералы и операторы в C#
Литералы:
- Целые числа: 12, -5
- Числа с плавающей точкой: 3.14f (float), 3.14 (double)
- Символы: ‘A’
- Строки: "Hello"
- Булевы значения: true, false
Объявление нескольких переменных:
int numberOne, numberTwo, numberThree;
Операторы:
- Арифметические: +, -, *, /, % (остаток от деления).
- Логические: && (И), || (ИЛИ), ! (НЕ).
- Операторы сравнения: (будут рассмотрены позже).
- Составные операторы: +=, -=, *=, /=, %=.
- Операторы инкремента (++) и декремента (—): префиксная и постфиксная формы.
Типы данных: значения и ссылки
C# имеет типы значений и ссылочные типы. Типы значений хранят сами значения, ссылочные — ссылки на значения. На данном этапе рассматриваются типы значений (простые типы, перечислимые типы, структуры).
Правила именования переменных
- Имя не может начинаться с цифры.
- Регистр символов имеет значение.
- Часто используется нижнее подчёркивание в начале имени (но не внутри).
- Использование Unicode, включая русские символы, не рекомендуется.