После компиляции программы ее можно запустить на выполнение. Результат
выполнения на экране будет выглядеть примерно так:
Введите текущий год и нажмите ENTER.
2000
Введите свой возраст (в годах).
21
Введите год, для которого вы хотите узнать свой возраст.
2017
В 2017 году вам будет 38
Первая, третья, пятая и седьмая строки выдаются на экран программой с по-
мощью следующего оператора:
cout << Выражение1 << Выражение2 <<... << ВыражениеN;
Этот оператор выводит на экран сообщение:
Выражение 1 Выражение 2 ... Выражение N
Последовательность операторов
cout << Выражение 1;
cout << Выражение 2;
...
...
cout << Выражение N;
13
приводит к аналогичному результату. Если между выражениями требуется вставить
пробелы или новые строки, то их нужно указать явно, с помощью символов " " и
"\n" соответственно.
Числа, показанные выше в примере выдачи на экран полужирным шрифтом, бы-
ли напечатаны пользователем. В показанном примере оператор
cin >> year_now;
приводит к тому, что переменной year_now присваивается значение 2000. Это проис-
ходит после того, как пользователь напечатает " 2000 " и нажмет клавишу Enter. В
программе есть еще места, где переменным присваиваются значения, в том числе
оператор присваивания:
another_age = another_year - (year_now - age_now);
Операция "=" означает "присвоить переменной, стоящей слева от знака равен-
ства, значение, указанное справа". Проверка на равенство в Си++ обозначается двой-
ным символом: "==".
Управление порядком выполнения команд с помощью оператора if
В нескольких последних строках программы (до строки "return 0") записано:
if (another_age >= 0)
{
cout << "В " << another_year << " году вам будет ";
cout << another_age << "\n";
}
else
{
cout << "В " << another_year << " вы еще не родились!\n";
}
Оператор ветвления (условный оператор) "if...else..." выглядит примерно
одинаково во всех процедурных языках программирования. В Си++ он называется
просто оператором if, и его общая структура такова:
if (условие)
{
Оператор 1;
...
...
Оператор N;
}
else
{
Оператор N+1;
...
...
Оператор N+M;
}
Часть "else (иначе)" в операторе if необязательна. Более того, если после
"if (условие)" стоит только один оператор, то можно опустить фигурные скобки и
записать оператор так:
14
if (условие)
Оператор 1;
В программах условные операторы часто встречаются группами, например:
...
...
if (total_test_score < 50)
cout << "Вы не прошли тест. Выучите материал как следует.\n";
else if (total_test_score < 65)
cout << "Вы прошли тест со средним результатом.\n";
else if (total_test_score < 80)
cout << "Вы хорошо выполнили тест.\n";
else if (total_test_score < 95)
cout << "Вы показали отличный результат.\n";
else
{
cout << "Вы сдали тест нечестно!\n";
total_test_score = 0;
}
...
...
Приведенный фрагмент программы может показаться довольно сложным. Тем
не менее, он соответствует правилам Си++. Это легко понять, если обратиться к син-
таксической диаграмме оператора if (рис. 4).
В овальных или круговых рамках на синтаксических диаграммах указываются
элементы языка, которые буквально так и воспроизводятся в исходном тексте про-
грамм. В прямоугольных рамках приведены элементы, требующие дальнейшего оп-
ределения, возможно, с помощью других синтаксических диаграмм. Набор таких диа-
грамм служит формальным описанием синтаксиса языка программирования.
Обратите внимание, что на рис. 4 отсутствует символ ";" и разделители "{}".
Эти элементы языка включены в определение (и синтаксическую диаграмму) для
обобщенного понятия "оператор языка Си++".
Рис. 4. Синтаксическая диаграмма оператора if.
При обработке приведенного фрагмента программы компилятор Си++ трактует
весь текст, выделенный ниже полужирным шрифтом, как один оператор после перво-
го слова else.
...
...
if (total_test_score < 50)
cout << "Вы не прошли тест. Выучите материал как следует.\n";
else if (total_test_score < 65)
cout << "Вы прошли тест со средним результатом.\n";
else if (total_test_score < 80)
cout << "Вы хорошо выполнили тест.\n";
15
else if (total_test_score < 95)
cout << "Вы показали отличный результат.\n";
Else
{
cout << "Вы сдали тест нечестно!\n";
total_test_score = 0;
}
...
...
Оформление исходного текста
Между текстом программы, приведенным в п.5 и текстом, который показан
ниже, для компилятора Си++ нет никаких различий.
#include <iostream.h> int main() { int year_now, age_now, another_year,
another_age; cout << "Введите текущий год и нажмите ENTER.\n"; cin >>
year_now; cout << "Введите свой возраст (в годах).\n"; cin >> age_now;
cout << "Введите год, для которого вы хотите узнать свой возраст.\n"; cin
>> another_year; another_age = another_year - (year_now - age_now); if
(another_age >= 0) { cout << "В " << another_year << " году вам будет ";
cout << another_age << "\n"; } else { cout << "В " << another_year << "
вы еще не родились!\n"; } return 0; }
Отсутствие комментариев, пробелов, пустых строк и отступов делают эту
программу практически непригодной для чтения человеком. Для выработки хорошего
стиля программирования, конечно, требуется знать не только правила оформления
текста программы, но их следует соблюдать с самого начала. При оформлении собст-
венных программ будьте последовательны и делайте так, чтобы отступы и пробелы
отражали логическую структуру ваших программ.
Для переменных следует выбирать осмысленные имена: имена "year_now",
"age_now", "another_year" и "another__age" лучше, чем "y_n", "a_n", "a_y" и
"a_a" и намного лучше, чем "w", "x", "y" и "z". Это особенно важно, если в будущем
ваши программы могут потребовать изменения с помощью других программистов.
Сводка результатов
В данной лекции кратко и неформально были рассмотрены несколько важных
вопросов: переменные и типы данных, ввод и вывод, оператор присваивания и услов-
ный оператор ("оператор if"). Более строго и подробно эти вопросы будут рассмот-
рены в последующих лекциях.
Упражнения
Для выполнения этих упражнений требуется некоторый опыт работы с ПК под
управлением операционной системы Windows 95/NT.
Упражнение 1
Изучите краткое руководство по Visual C++ в Приложении. Создайте проект с
именем "AgeCalculator". Создайте исходный файл с именем AgeCalculator.cpp
16
и наберите в нем исходный текст программы 5.1. Сохраните файл на диске и добавьте
его в проект. Соберите проект и запустите программу на выполнение.
Возможно, вы встретитесь со следующими проблемами: