1.x – Резюме к главе 1 и небольшой тест
Краткое резюме
Инструкция заставляет программу выполнять какое-либо действие. Инструкции часто заканчиваются точкой с запятой.
Функция – это набор инструкций, которые выполняются последовательно. Каждая программа на C++ должна включать в себя специальную функцию с именем main
. Когда вы запускаете свою программу, выполнение начинается с верхней части этой функции main
.
Правила, управляющие построением элементов языка C++, называются синтаксисом. Синтаксическая ошибка возникает при нарушении грамматических правил этого языка.
Комментарии позволяют программисту оставлять заметки в коде. C++ поддерживает два типа комментариев. Однострочные комментарии начинаются с символов //
и продолжаются до конца строки. Многострочные комментарии начинаются с символов /*
и заканчиваются парными символами */
. Не вкладывайте комментарии друг в друга.
Вы можете использовать комментарии, чтобы временно отключить строки или фрагменты кода. Это называется закомментированием кода.
Данные – это любая последовательность символов, которую можно интерпретировать как нечто значащее. Отдельный фрагмент данных, хранящийся где-то в памяти, называется значением.
Переменная – это именованный фрагмент памяти, который мы можем использовать для хранения значений. Имя переменной называется идентификатором. Чтобы создать переменную, мы используем инструкцию, называемую инструкцией определения. При запуске программы создается экземпляр каждой определенной переменной, что означает, что ей назначается адрес в памяти.
Тип данных сообщает компилятору, как интерпретировать часть данных в осмысленное значение. Целое число (integer) – это число, которое можно записать без дробной части, например 4, 27, 0, -2 или -12.
Копирующее присваивание (через operator=
) можно использовать для присваивания значения уже созданной переменной.
Инициализация может использоваться для присваивания переменной значения в момент создания. C++ поддерживает 3 типа инициализации: копирующую инициализацию, прямую инициализацию и унифицированную инициализацию.
Вы должны предпочесть использование унифицированной инициализацию другим формам инициализации и предпочитать инициализацию присваиванию.
Хотя вы можете определить несколько переменных в одной инструкции, лучше определять и инициализировать каждую переменную в отдельной строке в отдельной инструкции.
std::cout
и operator<<
позволяют нам выводить результат выражения в консоль в виде текста. std::endl
выводит символ новой строки, заставляя курсор консоли перемещаться на следующую строку. std::cin
и operator>>
позволяют нам получать значение с клавиатуры.
Переменная, которой не присвоено значение, называется неинициализированной переменной. Попытка получить значение неинициализированной переменной приведет к неопределенному поведению, которое может проявляться любым количеством способов.
C++ резервирует набор имен, называемых ключевыми словами (keywords). Они имеют особое значение в языке и не могут использоваться в качестве имен переменных.
Литеральная константа – это фиксированное значение, вставляемое непосредственно в исходный код. Примеры: 5 и "Hello world!".
Операция – это математическое вычисление, включающее ноль или более входных значений, называемых операндами. Конкретная выполняемая операция обозначается предоставленным оператором. Результат операции дает выходное значение.
Унарные операторы принимают один операнд. Бинарные операторы принимают два операнда, часто называемые левым и правым. Тернарные операторы принимают три операнда.
Выражение – это комбинация литералов, переменных, операторов и вызовов функций, которые вычисляются для получения одного выходного значения. Расчет этого выходного значения называется вычислением. Полученное значение является результатом выражения.
Инструкция выражения – это выражение, которое было преобразовано в инструкцию, постановкой точки с запятой в конце этого выражения.
Программировать сложно, и ваши программы редко получатся идеальными (или близкими к идеалу) с первого раза. Сначала заставьте свои программы работать, а затем доработайте их до чего-то отличного.
Небольшой тест
Вопрос 1
В чем разница между инициализацией и присваиванием?
Ответ
Инициализация предоставляет переменной начальное значение (в момент создания). Присваивание дает переменной новое значение после того, как переменная уже была определена.
Вопрос 2
Когда возникает неопределенное поведение? Каковы последствия неопределенного поведения?
Ответ
Неопределенное поведение возникает, когда программист делает что-то, что плохо определено языком C++. Последствия могут быть любыми: от сбоя до неправильного ответа и до правильной работы.
Вопрос 3
Напишите программу, которая просит пользователя ввести целое число, а затем ввести второе целое число. Программа должна сообщить пользователю, каков результат сложения и вычитания этих двух чисел.
Выходные данные программы должны соответствовать следующему выводу (при условии ввода 6 и 4):
Enter an integer: 6
Enter another integer: 4
6 + 4 is 10.
6 - 4 is 2.
Ответ
#include <iostream>
int main()
{
int x{};
std::cout << "Enter an integer: ";
std::cin >> x;
int y{};
std::cout << "Enter another integer: ";
std::cin >> y;
std::cout << x << " + " << y << " is " << x + y << ".\n";
std::cout << x << " - " << y << " is " << x - y << ".\n";
return 0;
}