C# Курс

C#: переменные и типы данных

Самоучитель Python 3, собранный из материалов данного сайта.Предназначен в основном для тех, кто хочет изучить язык программирования Python с нуля.

Урок 2: Переменные и типы данных в C#

Введение: Почему это важно?

Представь, что ты играешь в компьютерную игру. У тебя есть здоровье, количество монет, имя персонажа. Все эти данные где-то хранятся. В программировании мы используем переменные — это как коробки с наклейками, в которых можно хранить информацию.

Аналогия: Представь, что переменная — это пластиковый контейнер для еды. У него есть имя (наклейка «Обед») и содержимое (бутерброд). Ты можешь заменить бутерброд на яблоко, но наклейка останется той же.

На прошлом уроке мы научились выводить текст на экран. Теперь пришло время научиться хранить данные и работать с ними. Без переменных любая программа была бы бесполезной — как калькулятор, который умеет только показывать надпись «Привет!».

Теория: Что такое переменная?

Переменная — это именованная область памяти, которая хранит значение определённого типа. У каждой переменной есть три главных характеристики:

  • Имя — как мы будем обращаться к данным (например, playerHealth)
  • Тип — какие данные можно хранить (числа, текст, да/нет)
  • Значение — что именно хранится в данный момент

Правила именования переменных

В C# есть строгие правила, как называть переменные. Нарушать их нельзя — компилятор будет ругаться!

  1. Имя может содержать только буквы (в том числе русские), цифры и символ подчёркивания _
  2. Имя не может начинаться с цифры
  3. Нельзя использовать зарезервированные слова (например, int, class, if)
  4. Регистр важен: myVar и myvar — разные переменные
  5. Используй camelCase: первое слово с маленькой, каждое следующее с большой — myBestScore
Совет: Давай переменным осмысленные имена. a — плохое имя, playerScore — хорошее. Через месяц ты сам забудешь, что значит a!

Основные типы данных в C#

В C# есть множество типов данных. Мы рассмотрим самые важные для начала:

ТипОписаниеПримерРазмер
intЦелые числа42, -7, 04 байта
doubleДробные числа3.14, -2.58 байт
floatДробные числа (меньше точность)3.14f, -2.5f4 байта
charОдин символ'A', '7', '+'2 байта
stringСтрока текста"Привет", "123"Зависит от длины
boolЛогическое значениеtrue, false1 байт

Объявление и инициализация переменных

Чтобы создать переменную, нужно сначала её объявить (сказать компилятору: «Я хочу коробку такого-то типа с таким-то именем»), а потом инициализировать (положить туда значение). Можно сделать это сразу:

// Объявляем переменную типа int с именем age
int age;

// Теперь инициализируем — присваиваем значение
age = 15;

// А можно сразу объявить и инициализировать
int score = 100;

// Дробное число
double pi = 3.14159;

// Символ (обрати внимание на одинарные кавычки!)
char grade = 'A';

// Строка (двойные кавычки!)
string name = "Алексей";

// Логическое значение
bool isStudent = true;

Вывод переменных на экран

Теперь самое интересное — мы можем выводить значения переменных! Используем знакомый Console.WriteLine():

int health = 100;
string playerName = "Герой";

Console.WriteLine(health);        // Выведет: 100
Console.WriteLine(playerName);    // Выведет: Герой

А что, если нужно вывести текст вместе с переменной? Используем конкатенацию (склеивание) строк:

int level = 5;
Console.WriteLine("Ваш уровень: " + level);  // Выведет: Ваш уровень: 5

string item = "меч";
Console.WriteLine("Вы нашли " + item + "!");  // Выведет: Вы нашли меч!

Есть и более современный способ — интерполяция строк. Просто поставь перед строкой знак $ и пиши переменные в фигурных скобках:

string city = "Москва";
int population = 12_000_000;  // Подчёркивания для удобства чтения

Console.WriteLine($"Население {city} — {population} человек.");
// Выведет: Население Москвы — 12000000 человек.

Изменение значений переменных

Переменные потому и называются переменными, что их значения можно менять:

int lives = 3;
Console.WriteLine($"У вас {lives} жизни.");

// Ой, потеряли жизнь!
lives = 2;
Console.WriteLine($"Теперь у вас {lives} жизни.");

// Можно использовать текущее значение для вычисления нового
lives = lives + 1;  // Теперь lives = 3
Console.WriteLine($"А теперь снова {lives} жизни!");

// Есть сокращённая запись:
lives += 2;  // То же самое, что lives = lives + 2
lives -= 1;  // lives = lives - 1
lives *= 2;  // lives = lives * 2

Арифметические операции с переменными

C# умеет выполнять все основные математические операции:

int a = 10;
int b = 3;

int sum = a + b;        // Сложение: 13
int diff = a - b;       // Вычитание: 7
int product = a * b;    // Умножение: 30
int quotient = a / b;   // Деление: 3 (почему не 3.33? Узнаем ниже!)
int remainder = a % b;  // Остаток от деления: 1

Console.WriteLine($"Сумма: {sum}");
Console.WriteLine($"Разность: {diff}");
Console.WriteLine($"Произведение: {product}");
Console.WriteLine($"Целая часть от деления: {quotient}");
Console.WriteLine($"Остаток: {remainder}");
Важно! При делении целых чисел (int) результат тоже будет целым числом. Дробная часть просто отбрасывается! Если нужен точный результат, используй double.
double x = 10.0;
double y = 3.0;

double result = x / y;  // Результат: 3.33333333333333
Console.WriteLine($"Точное деление: {result}");

Преобразование типов

Иногда нужно превратить один тип данных в другой. Например, число в строку или наоборот. Это называется преобразованием типов.

Явное преобразование

double price = 19.99;
int wholePart = (int)price;  // Явное преобразование double → int
Console.WriteLine(wholePart);  // Выведет: 19 (дробная часть отброшена)

Преобразование через методы

string numberStr = "42";
int number = Convert.ToInt32(numberStr);  // Превращаем строку в число
Console.WriteLine(number + 8);  // Выведет: 50

// И наоборот — число в строку
int score = 100;
string scoreStr = score.ToString();
Console.WriteLine("Ваш счёт: " + scoreStr);

Константы — неизменяемые переменные

Иногда нужно, чтобы значение никогда не менялось. Например, число Пи или количество дней в неделе. Для этого используют константы:

const int DAYS_IN_WEEK = 7;
const double PI = 3.14159;

// DAYS_IN_WEEK = 8;  // Ошибка! Константу нельзя изменить

Console.WriteLine($"В неделе {DAYS_IN_WEEK} дней.");
Console.WriteLine($"Число Пи примерно равно {PI}");

Практический пример: Калькулятор здоровья

Давай напишем небольшую программу, которая симулирует здоровье персонажа в игре:

// Начальное здоровье
int maxHealth = 100;
int currentHealth = 100;

Console.WriteLine($"Максимальное здоровье: {maxHealth}");
Console.WriteLine($"Текущее здоровье: {currentHealth}");

// Персонаж получил урон
int damage = 25;
currentHealth = currentHealth - damage;
Console.WriteLine($"Вы получили {damage} урона!");
Console.WriteLine($"Теперь здоровье: {currentHealth}");

// Персонаж нашёл аптечку
int healAmount = 15;
currentHealth += healAmount;
Console.WriteLine($"Вы восстановили {healAmount} здоровья!");
Console.WriteLine($"Теперь здоровье: {currentHealth}");

// Проверка: не превышает ли здоровье максимум?
if (currentHealth > maxHealth)
{
    currentHealth = maxHealth;
    Console.WriteLine("Здоровье восстановлено до максимума!");
}

Console.WriteLine($"Итоговое здоровье: {currentHealth}");

Практика: Задания для самостоятельной работы

А теперь попробуй сам! Вот несколько заданий разной сложности. Постарайся выполнить все.

Задание 1: Визитка

Создай программу, которая хранит и выводит информацию о тебе:

  • Имя (string)
  • Возраст (int)
  • Любимый предмет в школе (string)
  • Средний балл (double)

Выведи всё в формате: "Привет! Меня зовут [Имя]. Мне [Возраст] лет. Мой любимый предмет — [Предмет], и мой средний балл — [Балл]."

Задание 2: Конвертер валют

Напиши программу, которая:

  1. Хранит курс доллара к рублю (например, 90.5)
  2. Хранит количество долларов (например, 100)
  3. Вычисляет и выводит, сколько это будет в рублях

Используй константу для курса.

Задание 3: Счётчик предметов

Представь, что ты собираешь монеты в игре. Напиши программу, которая:

  • Показывает начальное количество монет (0)
  • Добавляет 5 монет
  • Добавляет ещё 3 монеты
  • Теряет 2 монеты (потратил на зелье)
  • Выводит итоговое количество монет

Задание 4: Площадь прямоугольника

Создай программу для вычисления площади прямоугольника:

  1. Объяви переменные для длины и ширины
  2. Присвой им значения (например, 5 и 3)
  3. Вычисли площадь по формуле: длина * ширина
  4. Выведи результат в формате: "Площадь прямоугольника [длина]x[ширина] равна [площадь]"

Задание 5 (повышенной сложности): Среднее арифметическое

Напиши программу, которая:

  • Хранит три оценки: 4, 5, 3
  • Вычисляет их среднее арифметическое
  • Выводит результат с точностью до двух знаков после запятой

Подсказка: Используй тип double для точности.

Итог урока

Сегодня мы узнали самое важное:

  • Переменные — это именованные контейнеры для данных
  • У каждой переменной есть тип: int, double, string, char, bool
  • Переменные можно объявлять, инициализировать и изменять
  • Для вывода используем Console.WriteLine() с конкатенацией или интерполяцией
  • С числами можно выполнять арифметические операции
  • Константы (const) — это переменные, которые нельзя изменить
Золотое правило: Всегда выбирай правильный тип данных для своей задачи. Не храни возраст как string — ты не сможешь с ним математически работать. И не используй int для денег — потеряешь копейки!

На следующем уроке мы научимся принимать данные от пользователя с помощью Console.ReadLine() и сделаем наши программы интерактивными. А пока — практикуйся с переменными! Чем больше напишешь кода, тем увереннее будешь себя чувствовать.