Ввод данных с клавиатуры. Условный оператор.
Мы уже рассматривали оператор cout, который позволяет выводить данные на экран, но иногда нужно, чтобы программа запросила какие-то данные у пользователя, то есть, чтобы он ввел эти данные с клавиатуры. Для этого используется оператор cin. Например:
int a,b; - объявляем переменные a и b типа int.
cin>>a>>b; - такая запись означает, что программа запросит у пользователя два числа. Пользователь вводит эти числа через пробел, нажимает клавишу Enter, и оператор cin отправляет первое число в переменную a, а второе число – в переменную b.
Также при программировании электронных устройств (контроллеров, процессоров) часто необходимо, чтобы программа не только выполняла какие-то команды, идущие подряд, но и принимала решение, какие команды выполнять, а какие нет, в зависимости от условия.
Осуществить такое ветвление в программе помогает условный оператор if, что в переводе на русский язык означает «если». Синтаксис оператора if следующий:
if (условие){
Группа операторов 1
}
else{
Группа операторов 2
}
В качестве условия чаще всего берется операция сравнения чисел или переменных на равенство или неравенство, например:
if (a==3) – если переменная a равна 3. Обратите внимание, что при проверке равенства ставится два знака «=».
if (a!=3) – если переменная a не равна 3.
if (a>b) – если переменная а больше переменной b.
if (a>=0) – если переменная а больше либо равна 0.
if (a<10) – если переменная а меньше 10.
if (a<=10) – если переменная а меньше либо равна 10.
Если условие верно, то выполняется группа операторов 1, заключенная в фигурные скобки, если нет, то выполняется группа операторов 2, также заключенная в фигурные скобки. Если есть только один оператор, то его можно не заключать в фигурные скобки. Слово else означает «иначе». Вторую часть условного оператора, начинающегося с else, можно опустить.
Напишем небольшой консольный калькулятор.
Скачайте следующую программу, написанную на языке C++, поместите скачанный файл IF01.CPP в папку C:\TCPP\BIN\.
Запустите DOSBox (Как настроить эту программу можно посмотреть ЗДЕСЬ ).
Нажмите клавишу F3. Выберите файл IF01.CPP и нажмите клавишу Enter.

Рассмотрим эту программу подробно:
- #include<iostream.h> - подключаем модуль iostream.h. В этом модуле содержится функция cout, которая используется в этой программе ниже. Она необходима для вывода информации на экран.
- #include<conio.h> - подключаем модуль conio.h, содержащий функции clrscr() и getch();
- void main(){ - описываем заголовок функции main. Это главная функция. Она должна быть в каждой программе на языке С++. void – это тип функции main. Void – означает, что наша функция ничего не возвращает. Пустые скобки () означают, что у этой функции нет входных параметров. Любая функция начинается c открывающейся фигурной скобки {, а заканчивается закрывающейся фигурной скобкой }.
- long int a,b,c; - объявляем три переменные a, b и c типа long int.
- char key; - объявляем переменную key типа char; В этой переменной могут храниться как числа от -128 до 127, так и отдельные символы.
- clrscr(); - очищаем экран.
- cout<<"Enter math expression: ";- выводим на экран надпись «Введите математическое выражение». Поскольку в DOSBox мы не можем писать по-русски, пришлось вывести сообщение на английском языке. (Для получения возможности писать по-русски нужны дополнительные настройки DOSBox).
- cin>>a>>key>>b;- команда для ввода с клавиатуры. Сначала мы должны набрать первое число (оно будет отправлено в переменную a), затем математический знак (+, -, * или / этот символ будет отправлен в переменную key), потом – второе число (оно отправится в переменную b). В конце нужно будет нажать клавишу Enter.
- if (key=='+')
- c=a+b; - если переменная key равна символу «+», то присвоить переменной c сумму значений переменных a и b. Поскольку используется только один оператор, то фигурные скобки не нужны.
- if (key=='-')
- c=a-b; - если переменная key равна символу «-», то присвоить переменной c разность значений переменных a и b.
- if (key=='*')
- c=a*b; - если переменная key равна символу «*», то присвоить переменной c произведение значений переменных a и b.
- if (key=='/')
- c=a/b; - если переменная key равна символу «/», то присвоить переменной c частное значений переменных a и b. Причем деление будет целочисленным, то есть будет отброшена дробная часть. К примеру, если 10 целочисленно поделить на 4, то результат деления будет равен 2.
- cout<<a<<key<<b<<"="<<c;- выводим на экран последовательно: значение переменной a, значение переменной key, значение переменной b, символ «=», значение переменной c.
- getch(); - ожидаем нажатия любой клавиши.
- } – конец функции main и всей программы.
Чтобы запустить программу, нажимаем комбинацию клавиш Alt+R, выбираем в появившемся меню пункт Run и нажимаем клавишу Enter. Ни в коем случае не нажимайте для запуска программы комбинацию клавиш Ctrl+F9 – это закроет DOSBox!

При запуске программа предлагает ввести математическое выражение:

Нам необходимо ввести любое математическое выражение, например 50+3:

После этого нужно нажать клавишу Enter. На экране появится значение выражения:

При нажатии на любую клавишу программа закроется. Попробуйте запустить снова и ввести другое выражение.
Задание: 1) Запустите программу еще раз и попробуйте вместо математического символа (+ - * /) ввести любой другой, например вместо 45+10 введите 45$10. Какой будет результат? Почему так получилось? Объясните. 2) Добавьте в программу возможность вычислить остаток от деления (в качестве математического символа можно использовать символ %. Математическое выражение, которое мы вводим должно быть вида 10%4). Пояснение: в С++ для вычисления остатка от деления используется операнд %. Например, чтобы присвоить переменной с остаток от деления переменной a на переменную b, нужно написать c=a%b;.