Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ1_Си_Builder.doc
Скачиваний:
20
Добавлен:
02.06.2015
Размер:
4.54 Mб
Скачать

1.3. Модификация программы

Внесём три изменения в программу:

  1. Запишем вычисление значения переменной sum в две строки:

sum = x + y;

sum = sum + z;

  1. Дополним строку printf("\n The results: "); названием программы:

printf("\n The results Program1: ");

  1. В строке getch(); добавим комментарий:

getch(); // ожидание ввода символа для просмотра результатов

Проверьте и сохраните изменения в программе (кн_Save All). Выполните пуск программы и посмотрите результаты в окне Output.

1.4. Пошаговое выполнение программы

Выполним по шагам программу Program1 и просмотрим по ходу работы программы значения всех переменных. Значение переменной указывает всплывающая подсказка от курсора на этой переменной (рис. 4). Цепочка действий приведена в табл. 2. Обратите внимание на то, что операторы выделенной строки выполняются только после нажатия кл_ F8 (или M_File -> Run -> Step Оver, или кн_Step Оver) для перехода на следующую строку.

Пошаговое выполнение программы можно прервать командой кл_F9 или кн_ Run, после чего выполняются все операторы до останова программы.

Рис. 4. Всплывающая подсказка от курсора на переменной z после ввода данных функцией scanf()

Таблица 2. Пошаговое выполнение программы

Шаг Клавиши Выделенная строка, пояснение

  1. F8 int main (int argc, char* argv[ ])

  2. F8 printf( “\n Input x, y, z and + Enter: ”);

  3. F8 scanf( ”%d%d%d”, &x, &y, &z);

  4. F8 Перейти в окно Output (щелчок в окне),

Диалог ввода: Input x, y, z and + Enter: 1 10 100

  1. Enter Ввод данных printf( “ Data: x = %d y = %d z = %d \n“, x, y, z);

  2. Перейти в окно Редактора Кода,

  3. F8 sum = x + y + z;

  4. F8 pr = x * y * z;

  5. F8 printf( “\n The results: ”);

  6. F8 printf( “ x + y + z = %d x * y * z = %d \n“, sum, pr);

  7. F8 getch();

  8. Перейти в окно Результатов П

  9. Enter Ввод символа (кл_Enter для функции getch() return 0;

  10. F8 }

  11. F8 Окончание выполнения программы

Другой способ пошагового выполнения программы – до позиции курсора: команда кл_F4 (или M_File -> Run to Cursor, или кн_Run to Cursor) выполняет программу до оператора, на котором расположен курсор в окне редактора кода. Команду кл_F4 можно повторять, предварительно устанавливая курсор на очередном выбранном операторе останова программы. На каждом шаге нужно просматривать результаты в окне Output.

Пошаговое выполнение программы с заходом в функции делается по команде кл_F7 (кн_Traсe Into или M_File -> Traсe Into).

Прерывание выполнения программы в любом режиме запуска выполняется командой кл_Ctrl + F2.

1.5. Сообщения компилятора и компоновщика

Внесём в программу три ошибки (рис. 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 не определено

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