8. Оформление исходного текста
Между текстом программы, приведенным в п.5 и текстом, который показан ниже, для компилятора Си++ нет никаких различий.
#include 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". Это особенно важно, если в будущем ваши программы могут потребовать изменения с помощью других программистов.
9. Сводка результатов
В данной лекции кратко и неформально были рассмотрены несколько важных вопросов: переменные и типы данных, ввод и вывод, оператор присваивания и условный оператор ("оператор if"). Более строго и подробно эти вопросы будут рассмотрены в последующих лекциях.
10. Упражнения
Для выполнения этих упражнений требуется некоторый опыт работы с ПК под управлением операционной системы Windows 95/NT.
Упражнение 1
Изучите краткое руководство по Visual C++ в Приложении. Создайте проект с именем "AgeCalculator". Создайте исходный файл с именем AgeCalculator.cpp и наберите в нем исходный текст программы 5.1. Сохраните файл на диске и добавьте его в проект. Соберите проект и запустите программу на выполнение.
Возможно, вы встретитесь со следующими проблемами:
В окне программы вместо русских букв выводятся какие-то странные символы.
Эта проблема объясняется различием таблиц кодировок Windows и DOS. В этих таблицах русские буквы расположены в разных местах. Консольные программы при работе используют кодировку DOS, а текстовый редактор Visual C++ – кодировку Windows. Поэтому вам придется добавить преобразование строк с русскими буквами из кодировки Windows в кодировку DOS.
Для этого включите в программу, после файла iostream.h, файл windows.h с описанием функций операционной системы Windows:
#include
Перед функцией main() создайте новую функцию с именем rus_str(), которая будет выполнять необходимое преобразование с помощью специальной функции Windows:
char* rus_str( char* str )
{
CharToOem( str, str );
return str;
}
Во всех строках программы, где на экран выдаются символьные строки с русскими буквами, укажите преобразование этих строк с помощью новой функции, например:
cout << rus_str( "Введите текущий год и нажмите ENTER.\n" );
После завершения работы окно программы закрывается и не удается увидеть результаты.
Для исправления этого недостатка проще всего предусмотреть в конце программы ввод произвольного символа. Пока пользователь не нажмет какую-нибудь символьную клавишу и потом Enter, окно программы будет оставаться на экране. Для этого потребуется завести символьную переменную (строку с описанием этой переменной расположите после строки с описанием целочисленных переменных):
char wait_char;
Перед строкой с оператором возврата "return 0" добавьте оператор для ввода символа с клавиатуры:
cin >> wait_char;
Сравните результаты работы своей программы с примером из лекции. Поэкспериментируйте над улучшением или изменением формата вывода на экран.
Упражнение 2
Модифицируйте программу 5.1, чтобы при превышении переменной "another_age" значения 150 на экран выводилось сообщение:
Извините, но вы вряд ли доживете до [year] года!
Проверьте работу своей программы для нескольких разных лет.
Упражнение 3
Измените программу из упр.2 так, чтобы в ней учитывались и годы, и месяцы. На экран программа должна выводить следующие сообщения:
Введите текущий год и нажмите ENTER.
2000
Введите текущий месяц (число от 1 до 12).
10
Введите свой возраст (в годах).
25
Введите месяц своего рождения (число от 1 до 12).
5
Введите год, для которого вы хотите узнать свой возраст.
2006
Введите месяц этого года.
6
Ваш возраст в 6/2006: 31 год и 1 месяц.
Программа должна выдавать корректные сообщения для единственного и множественного числа лет и месяцев, т.е. должна выводить на экран "25 лет и 1 месяц", но "24 года и 2 месяца".
Подсказка: В программе вам потребуются дополнительные переменные. Обязательно добавьте их имена в оператор описания переменных. При вычислениях могут пригодиться некоторые стандартные операции Си++:
Символ
|
Операция
|
Пример
|
Значение
|
+
|
Сложение
|
3 + 5
|
8
|
-
|
Вычитание
|
43 - 25
|
18
|
*
|
Умножение
|
4 * 7
|
28
|
/
|
Деление
|
9/2
|
4
|
%
|
Остаток при делении нацело
|
20 % 6
|
2
|
(Обратите внимание, что в приведенной таблице операция деления "/" применялась к двум целым числам, поэтому результат – тоже целое число.)
Кроме арифметических операций, для проверки условий в операторе if вам могут потребоваться некоторые логические операции.
Символ
|
Операция
|
Пример
|
Значение
|
<
|
меньше, чем
|
3 <� 5
|
TRUE (истина)
|
<=
|
меньше или равно
|
43 <= 25
|
FALSE (ложь)
|
>
|
больше, чем
|
4 > 7
|
FALSE
|
>=
|
больше или равно
|
9 >= 2
|
TRUE
|
==
|
равно
|
20 == 6
|
FALSE
|
!=
|
не равно
|
20 != 6
|
TRUE
|
&&
|
Логическое И
|
5 > 2 && 6 > 10
|
FALSE
|
||
|
Логическое ИЛИ
|
5 > 2 || 6 > 10
|
TRUE
|
|