Программирование на языке высокого уровня. Марапулец Ю.В. - 186 стр.

UptoLike

Составители: 

Ошибка с инициализацией исправлена. Снова запустите программу. Теперь про-
грамма сообщает, что среднее арифметическое первых пяти целых чисел равно 2.800.
Конечно, это гораздо ближе к ожидаемому значению 3.000, но все-таки не оно. Пора
возвращаться к отладчику. Снова начните отладку командой Build -
> Start Debug -> Go и
выполните программу до точки прерывания. Войдите в цикл for клавишей F10. Задержи-
те указатель мыши над переменной Sum, чтобы убедиться, что ее значение действитель-
но равно 0.
С переменной Sum все нормально; давайте проверим значение, которое к ней до-
бавляется, pDoc->data[i]. Невозможно узнать значение выражения pDoc->data[i], задер-
живая над ним указатель мыши (непонятно, что представляет интерес - только pDoc или
все выражение?), но оно присутствует в окне Auto в левом нижнем углу. Видно, что к
сумме прибавляется число 2 (а не 1, как ожидалось). Просмотр кода показывает, что на-
чальное значение переменной цикла равно 1, а не 0, как положено. Чтобы узнать значе-
ние того или иного выражения во время выполнения программы, можно выполнить ко-
манду Debug -
> QuickWatch и ввести выражение в диалоговом окне QuickWatch. Visual
C++ вычислит его значение. Остановите отладку и исправьте ошибку:
void CBedView::OnCalculateCalculateaverage()
{
// TODO: Add your command handler code here
. . .
// for (int i=1; i<5; i++) набрано ошибочно
for (
int i=0; i<5; i++)
{
Sum+=pDoc->data[i];
}
. . .
}
Запустите программу. Получен желаемый результат - среднее арифметическое
чисел 1-5 равно 3. Встроенные отладочные средства Visual C++ помогли ликвидиро-
вать ошибки. Чтобы удалить из программы точку прерывания, установите курсор на
строке с ней и нажмите клавишу F9. Закончив отладку, следует удалить отладочную
информацию из исполняемого файла. Выполните команду Build -> Set Active Confi-
guration и выберите из раскрывающегося списка строку bed - Win32 Release (no умол-
чанию в программы на Visual C++ включается большой объем информации, исполь-
зуемой отладчиком).
186
     Ошибка с инициализацией исправлена. Снова запустите программу. Теперь про-
грамма сообщает, что среднее арифметическое первых пяти целых чисел равно 2.800.
Конечно, это гораздо ближе к ожидаемому значению 3.000, но все-таки не оно. Пора
возвращаться к отладчику. Снова начните отладку командой Build -> Start Debug -> Go и
выполните программу до точки прерывания. Войдите в цикл for клавишей F10. Задержи-
те указатель мыши над переменной Sum, чтобы убедиться, что ее значение действитель-
но равно 0.
     С переменной Sum все нормально; давайте проверим значение, которое к ней до-
бавляется, pDoc->data[i]. Невозможно узнать значение выражения pDoc->data[i], задер-
живая над ним указатель мыши (непонятно, что представляет интерес - только pDoc или
все выражение?), но оно присутствует в окне Auto в левом нижнем углу. Видно, что к
сумме прибавляется число 2 (а не 1, как ожидалось). Просмотр кода показывает, что на-
чальное значение переменной цикла равно 1, а не 0, как положено. Чтобы узнать значе-
ние того или иного выражения во время выполнения программы, можно выполнить ко-
манду Debug -> QuickWatch и ввести выражение в диалоговом окне QuickWatch. Visual
C++ вычислит его значение. Остановите отладку и исправьте ошибку:

void CBedView::OnCalculateCalculateaverage()
{
      // TODO: Add your command handler code here
      ...
//    for (int i=1; i<5; i++)     набрано ошибочно
      for (int i=0; i<5; i++)
      {
               Sum+=pDoc->data[i];
      }
      ...
}

      Запустите программу. Получен желаемый результат - среднее арифметическое
чисел 1-5 равно 3. Встроенные отладочные средства Visual C++ помогли ликвидиро-
вать ошибки. Чтобы удалить из программы точку прерывания, установите курсор на
строке с ней и нажмите клавишу F9. Закончив отладку, следует удалить отладочную
информацию из исполняемого файла. Выполните команду Build -> Set Active Confi-
guration и выберите из раскрывающегося списка строку bed - Win32 Release (no умол-
чанию в программы на Visual C++ включается большой объем информации, исполь-
зуемой отладчиком).




                                        186