Отладка программы позволяет обнаружить ошибки в коде и устранить эти ошибки. А также, это прекрасный помощник для написания программы, который предоставляет возможность разработчику проследить за алгоритмом исполнения программы, если вдруг тот запутался в своём же коде из-за его сложности.
Чтобы было понятней, о чём здесь идёт речь, попробуем отладить небольшую программу с несколькими ошибками.
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