Сообщения компилятора и компоновщика. Внесём в программу три ошибки (рис

Внесём в программу три ошибки (рис. 5):

· int x, y, K, sum, pr; // символ z заменим на К

· scan( "%d%d%d", &x, &y, &z); // из слова scanf уберём букву ‘ f ’.

· sum = x + y // уберём символ ‘;’ – конец оператора

Рис. 5. Сообщения компилятора об ошибках в программе и предупреждения

Установите режим, при котором компилятор отображает все свои замечания: М_Project -> Options… (Проект|Опции) -> окно опций проекта, -> вкладка Compiler (Компилятор) -> в группе опций Warnings (Предупреждения) включить опцию All (Все). Затем выполните команду Запуск кл_F9.

Внизу окна Редактора Кода появятся сообщения о замечаниях и ошибках (рис. 5). Перевод сообщений на русский язык:

1. [C++ Ошибка] модуль Program1.cpp, строка 19: Е2268 Вызов неопределённой функции ‘scan’;

2. [C++ Ошибка] модуль Program1.cpp, строка 19: Е2451 Необъявленный идентификатор ‘z’;

3. [C++ Ошибка] модуль Program1.cpp, строка 22: Е2379 Отсутствующий оператор ‘;’ ;

4. [C++ Предупреждение] модуль Program1.cpp, строка 25: W8013 Переменная ‘pr’, возможно, используется до того, как ей присвоено значение;

5. [C++ Предупреждение] модуль Program1.cpp, строка 28: W8080 Объявленный идентификатор ‘К’ нигде не используется.

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

Ошибки 1 и 2 и предупреждение 5 легко обнаружить по соответствующим сообщениям. Двойной щелчок на сообщении 3 выделяет строку sum = sum + z; и курсор указывает оператор присваивания ‘=’. При отсутствии символа ‘;’, указывающего конец оператора sum = x + y, компилятор рассматривает строки “sum = x + y” и “sum = sum + z;” как одну строку “sum = x + y sum = sum + z;” , в которой между идентификаторами ‘y’ и ‘sum’ нет знака операции.

Предупреждение 4 о том, что переменная ‘pr’ не инициализирована и ее значение для вывода в строке 25 не определено.

Задание: исправьте по порядку все ошибки и проверьте правильность работы программы.