Денис Злобин

Урок 3. Переменные и операции над переменными

Привет! Как я уже говорил в анонсе курса, в курсе кроме теории будет ДЗ. Все ДЗ на курсе — это постепенная разработка одного проекта: по мере прохождения новой теории твой проект будет обрастать новыми технологиями и конструкциями С++. У ДЗ две задачи:

  1. Традиционная для всех курсов задача: закрепить теоретические знания С++, которые ты получил при прохождении уроков
  2. Фишка моего курса: познакомить тебя с основными технологиями (Git, CMake, юнит-тестирование, Valgrind, PostgreSQL, CI/CD и прочие), которые используются в коммерческой разработке. При этом технологии будут добавляться в проект последовательно и гармонично, так, как бы это происходило при разработке реального коммерческого продукта. Как показывает мой опыт, студент отвечает на вопросы по технологии намного увереннее, когда он успел «потрогать технологию руками».

Я считаю, что это будет хорошей идеей сначала познакомить тебя с текстом ДЗ, а потом начать объяснять теоретический материал. Так ты точно будешь понимать, что и зачем ты учишь.

ДЗ 1 Написать консольную утилиту-калькулятор, которая получает два целых числа и операцию, которую над ними нужно выполнить. Допустимые операции: сложение, вычитание, умножение, деление и возведение в степень. Для операции деления необходимо выполнить проверку деления на 0. Результат выполнения операции вывести в консоль.

Звучит просто, но для выполнения этого ДЗ тебе понадобится пройти несколько уроков и познакомиться с несколькими технологиями ;)

На этом уроке мы разберёмся с операциями сложения, вычитания и умножения, на следующем — с операциями деления и возведения в степень. Пока будем задавать числа, над которыми нужно выполнить операции, прямо в теле программы.

Для начала напишем псевдокод для действий, которые должно выполнять приложение.

Сложение

a = 1 b = 2 c = a + b

Первое число — переменная a. Переменная a имеет значение 1. Второе число — переменная b. Переменная b имеет значение 2. Результат операции сложения первого и второго числа — переменная c. В результате выполнения операции сложения переменная c примет значение 3. Это банальные вещи, с которыми ты знаком со школьной скамьи :)

Самое время превратить псевдокод в код на С++. Объявим переменную a. Общее правило объявления переменной записывается в следующем виде:

тип_переменной имя_переменной;

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

int a;

Эта запись называется объявлением переменной. Объявление переменной — это операция, поэтому в конце должна ставиться точка с запятой.

С типом int ты уже сталкивался на предыдущем уроке. Пока по-прежнему будем считать, что int — это тип переменной, который соответствует целому числу в математике.

Код для присвоения переменной a значения выглядит просто:

a = 1;

Присвоение переменной значения — это операция, поэтому в конце должна ставиться точка с запятой.

Соберём весь код вместе для переменной a:

int a;
a = 1;

Аналогичный код нужно написать для переменной b:

int b;
b = 2;

Запишем код для переменной c:

int c;
c = a + b;

В отличие от a и b, вместо присваивания переменной c определённого (заранее известного значения) мы вычислили значение переменной c как сумму переменных a и b. Ближайший аналог операции сложения в программировании — это решение задач школьной физики: ты сначала пишешь формулу, по которой вычисляется результат, а потом подставляешь в формулу значения величин и вычисляешь искомое значение. В программировании ты пишешь формулы, а компьютер подставляет реальные значения и вычисляет результат.

Соберём весь код вместе в функции main:

int main()
{
	int a;
	a = 1;
	int b;
	b = 2;
	int c;
	c = a + b;
}

Этот код можно собрать и запустить. Увы, мы не узнаем о результате выполнения программы. Чтобы видеть результаты работы программы, добавим вывод в консоль, с которым ты уже познакомился на Уроке 2.

Сначала напишем вид того, что мы хотим увидеть в консоли:

1 + 2 = 3

Для этого нам нужно сделать следующее:

  • вывести в консоль значение переменной a
  • вывести в консоль пробел
  • вывести в консоль символ +
  • вывести в консоль пробел
  • вывести в консоль значение переменной b
  • вывести в консоль пробел
  • вывести в консоль символ =
  • вывести в консоль пробел
  • вывести в консоль значение переменной c
  • перейти на новую строчку

Если записать эту последовательность действий в лоб, то получим:

std::cout << a;
std::cout << ' ';
std::cout << '+';
std::cout << ' ';
std::cout << b;
std::cout << ' ';
std::cout << '=';
std::cout << ' ';
std::cout << c;
std::cout << '\n';

Я умышленно написал много кода, чтобы нам было легче разобраться, как формируется вывод в консоль. После того как мы разберём, из чего состоит вывод, я покажу тебе, как сделать вывод в консоль с помощью одной строки.

Выводим в консоль значение переменной a. Переменная a имеет тип int, который является одним из встроенных (или базовых) типов С++. Замечательной особенностью всех базовых типов является то, что мы можем вывести их значение в консоль без написания вспомогательного кода.

std::cout << a;

Выводим в консоль пробел, затем +, затем снова пробел:

std::cout << ' ';
std::cout << '+';
std::cout << ' ';

Обрати внимание на использование одинарных кавычек — одинарные кавычки используются для символов и специальных символов (спецсимволы начинаются с , например, \n). Из символов собираются строки. Другими словами, строка — это последовательность символов (так же, как и в обычном языке). Значит, мы можем объединить три символа в одну строку:

std::cout << " + ";

Обрати внимание, что строки записываются в двойных кавычках.

Стало намного короче:

std::cout << a;
std::cout << " + ";
std::cout << b;
std::cout << " = ";
std::cout << c;
std::cout << '\n';

И наконец, воспользуемся полезной возможностью std::cout — объединением нескольких выводов в один. В общем виде это можно записать как:

std::cout << переменная (строка или символ) << переменная (строка или символ);

Т.е. мы можем один раз написать std::cout, а затем выводить в консоль любое количество переменных, строк или символов, разделяя их оператором <<.

В итоге наш вывод можно записать одной строкой. Итоговый код программы:

#include <iostream>

int main()
{
	int a;
	a = 1;
	int b;
	b = 2;
	int c;
	c = a + b;
	
	std::cout << a << " + " << b << " = " << c << '\n';
}

Задание для самостоятельного выполнения Реализуй операции вычитания и умножения переменных a и b самостоятельно. Собери программу, запусти и проверь правильность работы операций сложения, вычитания и умножения.

На этом на сегодня всё. До встречи на следующем уроке!