Глава 6. Что такое переменная?

Давайте теперь разберемся с переменными, а именно что они из себя представляют и для чего служат. Разбираться мы будем на практике: для этого мы напишем вторую программу, которая будет запрашивать у пользователя поочередно два целых числа, затем складывать их и результат выводить на экран. Затем уже на этом примере разберемся с сущностью переменных в программировании. Хотя, я думаю, что вы все и сами поймете, изучив пример, в котором используются переменные.

//Сложение двух чисел
#include <iostream>

using namespace std;

int main()
{
int chislo1;
int chislo2;
int summa;

cout << "Vvedite pervoe chislo: " << endl;
cin >> chislo1;
cout << "Vvedite vtoroye chislo: " << endl;
cin >> chislo2;

summa = chislo1 + chislo2;
cout << "Summa ravna: " << summa << endl;

return 0;
}

Давайте теперь разберем код, а затем вы создадите новый проект в среде программирования, напишите эту программу, откомпилируете и построите, запустите и сами посмотрите на результаты ее работы. Итак, первая строка - это, как вы уже знаете, однострочный комментарий - в нем мы указываем цель нашей программы (у нас она складывает два числа). Почему однострочный!? Да потому что, если текст комментария должен располагаться в пределах одной, выделенной для него строки. В случае, если он не помещается на одну строку, то перед тем, как его продолжать писать на новой строке, нужно опять поставить две косые черты, предваряющие комментарий "//". Есть в С++ и многострочный комментарий, пришедший из более раннего языка Си, но им пользуются реже. Вот так он выглядит:

/* здесь вы вводите
текст своего комментария, который
может состоять из нескольких строк,
вот как в этом примере, и ограждается он с двух сторон
вот такими обозначениями */

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

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

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

Разбираем дальше код. Следующая строка кода - это уже известная нам директива препроцессора, подключающая необходимый для работы заголовочный файл iostream.h. Подключаем его, т.к. у нас используются в программе функции вывода (cout), ввода (cin), перевода курсора на новую строку (endl), объявленные в нем. Хочу заметить, что оператор ввода "cin" автоматически переводит курсор на новую строку. Попрактиковавшись вы сами это все скоро увидите.

Далее мы видим главную и обязательную функцию программы - main(). С ней то и начинается построчное выполнение программы. Построчное, потому что в программировании все инструкции выполняются последовательно, если не задано иных условий (условные операторы и циклы будут рассмотрены в следующих главах).

Первая строчка программы - int chislo1; . Для нас она еще незнакома. Хочу вас обрадовать! Это и есть наша первая переменная, а если быть точнее, то ее объявление в программе.

Важно! Запомнить:

Прежде, чем использовать какую-либо переменную в программе, ее нужно объявить.

Объявить - значит определить тип и присвоить имя. В нашем случае мы определили тип нашей переменной, как int (то есть целое число), а имя дали chislo1. Для чего при объявлении переменных нужно указывать тип!? Для того, чтобы программа при запуске смогла зарезервировать в оперативной памяти компьютера столько места, сколько необходимо для ее хранения. Для хранения целого числа типа int требуется 4 байта оперативной памяти. Размер такого числа может быть в пределах от чуть более +2 млрд. до чуть более, чем -2 млрд.

Важно! Запомнить:

Объявить переменную можно в любом месте программы, до ее первого использования. Хотя желательно в своих программах придерживаться какого-либо одного стиля: например, объявлять в начале функции main(), как в этой программе.

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

Важно! Запомнить:

Переменная - это выделенная нами область в памяти компьютера (выделяем ее с помощью объявления в коде программы), в которой будут храниться наши данные. Почему данные, а не данное? Потому, что судя из названия - эта область памяти перезаписываемая, в отличии от констант, значение которой на протяжении всей программы остается одинаковым и не может быть изменено, перезаписано (объявляется также, как и переменная, за исключением того, что перед определением типа ставится модификатор const, который указывает компилятору, что это данное нельзя изменять).

Переменные могут хранить не только числовые значения, но и символьные, логические. Пока что мы рассматриваем только числовые. В данном случае мы объявили три переменные целого типа.

int chislo1;
int chislo2;
int summa;

Можно также объявить эти переменные и в одну строку, т.к. их типы совпадают. Получится так:

int chislo1, chislo2, summa;

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

Итак, сначала нужно указать тип переменной. В нашем случае - это тип "int", целочисленная переменная. Затем указывается имя переменной и ставится точка с запятой, т.к. мы знаем, что каждая инструкция в языке С++ заканчивается точкой с запятой. Переменные мы объявили, соответственно, место для них в памяти компьютера уже будет зарезервировано. Но есть одно но...переменным еще не присвоено значение, поэтому различные операции (сложение, вычитание, сравнение и т.д.) с ними производить еще нельзя. В них содержится различный "мусор" (ненужные значения). Поэтому смотрим следующие строки:

cout << "Vvedite pervoe chislo: " << endl;
cin >> chislo1;
cout << "Vvedite vtoroye chislo: " << endl;
cin >> chislo2;

Выводим сообщение-подсказку пользователю о том, что нужно ввести первое число. В следующей строке с помощью оператора ввода cin программа считывает с потока ввода введенное пользователем с клавиатуры число и сохраняет его в переменную chislo1. Теперь данная переменная уже не содержит "мусор", а содержит введенное пользователем число и, соответственно, с ним можно производить различные операции. Далее идет запрос на ввод второго числа и также программа сохраняет его в переменную chislo2.

Итак, мы запросили у пользователя два числа, сохранили их в переменных chislo1 и chislo2, теперь с ними можно производить различные операции. В нашем случае мы должны будем найти их сумму и сохранить в переменную summa. Следующая строчка кода находит их сумму и сохраняет в переменную summa:

summa = chislo1 + chislo2;

Здесь мы видим оператор присваивания "=" и оператор сложения "+". Что они делают, я думаю, что вы уже догадались. Запомните только одну вещь: в отличие от математики в программировании знак присваивания ("=") работает чуть по другому - то, что находится справа от него, присваивается той переменной, что слева. Т.е. сначала складываются две переменные chislo1 и chislo2, а затем их результат записывается в переменную summa. Теперь можно пользоваться этой переменной, что мы и сделаем в следующей строке кода.

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

cout << "Summa ravna: " << summa << endl;

Вот и все. Как видите - ничего сложного. А если и что-то непонятно, то это только поначалу...

Теперь начинаем кодить. Набирайте программу в среде CodeBlocks, компилируйте, запускайте на выполнение и экспериментируйте с ней. Вот теперь хоть какая-то, а польза уже есть с нашей программы, она складывает два числа как-никак)))

Для закрепления материала на операторы ввода/вывода и работу с переменными давайте наберем еще одну программу. Предлагаю разобраться с ней вам самим. Нового в ней будет то, что операции сложения, вычитания, деления и умножения можно производить непосредственно в потоке вывода, т.е. не нужно будет объявлять еще дополнительно переменную для хранения результата произведенных операций. Это еще одно удобство языка С++.

//Программа, которая просит от пользователя ввести два числа,
// а потом печатает результаты вычислений,
// а именно: сумму, разность, произведение и частное;

#include <iostream>

using namespace std;

int main()
{
int a, b;

cout << "Vvedite poshaluyasta dva chisla\n";
cin >> a >> b;

cout << "Summa " << a << " i " << b << " ravna " << a + b << endl;
cout << "Raznost " << a << " i " << b << " ravna " << a - b << endl;
cout << "Proizvedeniye " << a << " i " << b << " ravno " << a * b << endl;
cout << "Chastnoye " << a << " i " << b << " ravno " << a / b << endl;

return 0;
}

Не забывайте делать отступы для лучшей читабельности и ясности кода. Это очень важное замечание!

Запомнить:

  1. Переменная - это область в памяти компьютера, которая хранит данные, которые могут меняться (отчего и название - переменная).
  2. Эти данные бывают разных типов: числовые, символьные, логические. Пока что мы с вами рассмотрели только числовые целые (int).
  3. Абсолютно все в компьютере на низком уровне сводиться к работе с переменными (данными), поэтому без них компьютер и программирование потеряли бы смысл.

Выполнить самостоятельно:

Напишите программу, которая запрашивает у пользователя три числа, записывает их в ранее объявленные переменные, а затем с помощью первого оператора вывода выводит их сумму, а во втором операторе вывода выводит их произведение. Сравните ваш код с кодом на следующей странице.

Вы также можете сами себе выдумать подобное задание и реализовать. Больше работайте в редакторе с программой, экспериментируйте с кодом и у вас все получится!

//Программа, которая просит от пользователя ввести три числа,
//и затем печатает их сумму и произведение


#include <iostream>

using namespace std;

int main()
{
int a, b, c;

cout << "Vvedite poshaluyasta tri chisla\n";
cin >> a >> b >> c;
cout << "Summa ravna: " << a + b + с << endl;
cout << "Proizvedeniye ravno: " << a * b * с << endl;
return 0;
}