Если мы хотим, чтобы наша программа оперировала какими - либо данными, нам нужно эти данные предоставить этой программе. Для этого нам нужно знать ввод, и то, что мы хотим ввести. Вводить мы можем разные вещи, такие как строки, числа и так далее. Обобщенно эти вещи нызываются переменные. Переменная - это именованная область памяти. Переменная характеризуется тремя параметрами:

  • Имя переменной - не должно иметь пробелов, и не может быть числом.
  • Адрес переменной - понятно, что это адресс ячейки, в которой хранится наша переменная. Подробнее мы будем рассматривать этот пункт, когда будем говорить про указатели.
  • Тип переменной - это тип данных, который имеет переменная.

Всего таких типов несколько. Рассмотрим самые важные из них:

int n; // целочисленный тип (до 10^9)
float a; // тип числа с плавающей точкой, например 3,14156
double alpha; // тоже тип числа с плавающей точкой, но двойной (double) точности.
long long crazy8; // для больших (до 10^18) чисел
long double create_world; // аналогично, только для нецелых чисел
char ch_100; // символьный тип
string str; // строка
bool ka; // логический тип, принимает значения true/false

Таких образом мы можем создавать переменные

int main ()
{
  int number = 10;
  char a,b; // можем объединять объявление переменных
  return 0;
}

И выводить их

int main ()
{
  int number = 10;
  cout << number;
  return 0;
}

Еще одним важным понятием языка С++ является константа. Допустим, мы хотим создать переменную, в котрой будем хранить колличество часов в сутках. Константы по определению нельзя изменять по ходу выполнения программы, а если такое случится, то компилятор выведет сообщение об ошибке.

Создаются константы следующим образом:

const int Hours_per_day = 24; // const <тип> <имя> = <значение>

Общепринятый стиль программирования говорит нам о том, что константы лучше всего именовать с большой буквы.

Ввод

Думаю сейчас вам будет интересно узнать про ввод в C++. Выглядит он следующим образом:

int number;
cin >> number;

Обратите внимание, что стрелочки направлены в другую сторону, нежели при выводе.

Если вводится два числа подряд, можно сделать так:

int number1, number2;
cin >> number1 >> number2;

Итак, мы уже знаем как использовать IDE, умеем делать ввод и вывод, и уже знаем, что такое типы данных. Пора решать задачи? Возможно. Вот задачка от автора, отправляем решение на email внизу страницы.

Дано целое число \(n\). Решить уравнение \(x = n\) отностительно \(x\). Пример ввода: 10 Пример вывода: 10

Думаю эта задача оказалась вам по силам. Но что дальше? Нам не хватает одной важной вещи - арифметики. Сейчас мы про неё узнаем и тогда точно сможем пройти на финал ICPC!

Арифметика С++

В общих чертах, арифметика C++ мало чем отличается от обычной, математической арифметики. Рассмотрим следующий код:

 int main()
 {
 int a,b;
 cin >> a >> b;
 cout << a + b << endl; // вывод суммы двух чисел
 cout << a - b << endl; // вывод разности двух чисел
 cout << a * b << endl; // вывод произведение двух чисел
 cout << a / b << endl; // вывод частного двух чисел.
 cout << a % b << endl; // вывод остатка от деления a на b, 
 // например 5 % 3 = 2, а 10 % 2 = 0, так как делится нацело
 return 0;
 }

Особое внимание хотелось бы уделить операции деления. Она - целочисленная, как div в Паскале. Чтобы получить настоящее частное двух чисел, используйте тип с плавающей точкой (float, double и т.д).

int main()
{
  double a = 5.0, b = 2.0;
  cout << a / b; // вывод - 2,5
  return 0;
}

Инкремент и декремент

Иногда в целях экономии времени строчку вида

i = i + 1;

Заменяют на эквивалентную операцию:

i++;

Эта операция называется инкрементом. Аналогично можно представить операцию декремента:

i = i - 1;
i--; // декремент

Стоит отметить, что у операций инкремента и декремента сущиствует префиксная и постфиксная форма записи:

i++; i--; // постфиксная
++i; --i; // префиксная

Существуют и другие сокращения:

 i = i + 3;// можно заменить на 
 i += 3; // вместо сложения может использоваться любая другая допустимая операция

Таким образом, мы узнали, что такое тип данных, вывод, и арифметика C++. Все, мы уже можем ехать на финал ICPC? Рано, однако решить задачу 1000 с Timus вы вполне способны решить! Вперед решать!

Форматированный вывод

Если мы хотим выводить ответ с наперед заданной точностью (актуально для чисел с плавающей запятой), то нам могут помочь вот эти две строки:

cout.precision(n);
cout.setf(ios::fixed);

где n - количество знаков после запятой. Для простоты скажем, что precision и setf - особые функции для работы с cout.

Например, мы хотим вывести число пи с точностью до трех знаков после запятой. Тогда мы можем написать что-то вроде:

const double pi = 3.14156;

cout.precision(3);
cout.setf(ios::fixed);
cout << pi;