Отладка программы позволяет обнаружить ошибки в коде и устранить эти ошибки. А также, это прекрасный помощник для написания программы, который предоставляет возможность разработчику проследить за алгоритмом исполнения программы, если вдруг тот запутался в своём же коде из-за его сложности.

Чтобы было понятней, о чём здесь идёт речь, попробуем отладить небольшую программу с несколькими ошибками.

Sub programm() 'График функции y = x^3 -2x^2 + x^(3 * Cos(x1)) - 5
      x1 = 1 'Начальное значения
      x2 = 10 'Конечное значение
      shag = 0.1 'Шаг изменения переменной
      i = 1 'Счётчик

      Do While x1 < x2 'Выполнять цикл операций, пока x1 < x2
            y = x1 ^ 3 - 2 * x1 ^ 2 - x1 ^ (3 * Cos(x1)) - 5 'Рассчитать значение функции
           Сells(i, 1).Value = x1 'Записать x1 в ячейку с координатами (i,1)
           Cells(i, 2).Value = y 'Записать y в ячейку с координатами (i,2)
            i = i + 1 'Увеличить счётчик на 1
            x1 = x1 + shаg 'Изменить x1 на величину шага
      Loop
End Sub

Запустим её на исполнение.

И сразу получаем следующую ошибку.

Закомментируем эту строку, чтобы она пока не учитывалась, и попробуем ещё раз, для чего жмём «OK» и останавливаем выполнение программы – пиктограмма «Reset».

Ставим значок «’», который расположен рядом с «Enter» (английская раскладка клавиатуры), перед «Cells», чтобы закомментировать эту строку. И снова запускаем программу.

Однако у нас всё равно что-то не заладилось. Программа зависла. Чтобы её остановить выполняем блиц-команду «Ctrl+PuauseBreak».

Жмём «Dеbug», чтобы увидеть, что не так.

Сложно сказать, где ошибка. Придётся заняться отладкой. Жмём «Reset» и вернём всё к исходному виду (раскомментируем строку «Сells(i, 1).Value = x1 'Записать x1 в ячейку с координатами (i,1)»).

Теперь откроем окно «Locals Window», чтобы просматривать значения всех наших переменных.

После этого создадим точку прерывания – «Break Point» - напротив строки, где была первая ошибка, нажав левой клавишей мыши на левом боковом поле.

«Break Point» остановит программу в указанном месте. Теперь жмём запуск – «F5».

Переведём строку «Sub or Function not defined» - Sub или функция не определены.

Что ж, всё верно, здесь нарочно была заменена буква «C»-латинская на «С»-русскую, как видим, исполнитель нашей программы чувствителен к раскладке клавиатуры. Чтобы устранить ошибку, нажимаем «OK» и меняембукву «С» на латинскую.

Заодно и взглянём на панель «Locals Window», где отражены все переменные программы, их значения и тип. И сразу видим, что у нас две переменные с визуально идентичными названиями «shag» и «shаg», которые имею различные значения и типы.

Получается, что мы объявляем одну переменную со значение 0.1, а в цикле «While» используем другую – со значение «Empty» - пустой. Поэтому наша программа и зависла, так как выполняла «x1 = x1 + пустой», то есть переменная «x1» не изменялась, и условие цикла всегда выполнялось « x1 = 1 < x2 = 10».

Заменим в переменной «shаg», «а»- русскую на «a»- латинскую (тоже нарочно допущенная ошибка). Осталось убрать «Break Point», нажав на неё левой кнопкой мыши, и сохранить книгу Excel – «Ctrl+S».

После этого жмём «Reset» - останавливаем программу и запускаем её заново – «F5».

В результате получаем следующую таблицу на листе книги Excel.

Построим для неё диаграмму – «Точечная с гладкими кривыми».

Получился вот такой нехитрый график функции.

Содержание                                               Предыдущая << • >> Cледующая                                               Автор:Muha


2016-06-02 • Просмотров [ 46 ]