Урок 3. Переменные и операции над переменными
Привет! Как я уже говорил в анонсе курса, в курсе кроме теории будет ДЗ. Все ДЗ на курсе — это постепенная разработка одного проекта: по мере прохождения новой теории твой проект будет обрастать новыми технологиями и конструкциями С++. У ДЗ две задачи:
- Традиционная для всех курсов задача: закрепить теоретические знания С++, которые ты получил при прохождении уроков
- Фишка моего курса: познакомить тебя с основными технологиями (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 самостоятельно. Собери программу, запусти и проверь правильность работы операций сложения, вычитания и умножения.
На этом на сегодня всё. До встречи на следующем уроке!