Нисходящая отладка программ (сверху вниз).



Нисходящая отладка начинается с отладки взаимосвязи подзадач самого высокого уровня (отладки интерфейсов подзадач).

Алгоритмы подзадач заменяются заглушками, которые представляют собой простейшие операции, имитирующие решение подзадачи, т. е. заглушки получают входные данные и, согласно тесту, формируют выходные данные. В общем случае каждому тесту соответствует своя заглушка.

Таким образом, сначала проверяется правильность организации взаимосвязи всех подзадач во всех необходимых режимах. При правильной организации интерфейсов результаты работы программы должны быть точно такие же, какими они будут и при полностью завершенной программе.

На следующих этапах заглушки поочередно заменяются реальными алгоритмами обработки. В итоге с заменой последней заглушки получается полностью отлаженная программа.

II. Контрольные вопросы.

1. Чем процедура отличается от функции?

2. Что такое «формальные параметры»? Назвать их разновидности.

3. Что такое «фактические параметры»?

4. В чем заключается механизм вызова подпрограммы?

5. Какое местоположение могут занимать подпрограммы в тексте и вне текста программы?

6. Что такое «массив»? Какими свойствами обладает массив как статическая структура?

7. Назвать некоторые рекомендации при работе с массивами.

8. Что означает линейный поиск в массиве данных?

9. Что такое «сортировка в массиве данных»? Назвать некоторые способы сортировки.

10. В чем заключается отличие между пузырьковой сортировкой и сортировкой выбором?

11. В чем заключается сортировка простыми вставками?

12. Что такое «тестирование программы»? Что называется тестом?

13. Что называется отладкой программы?

14. Что такое «нисходящая отладка»? Что представляет собой заглушка?

III. Последовательность выполнения общего задания.

Постановка задачи

Координатами x, y заданы n точек плоскости. Найти:

1) процент точек, удаление которых от начала координат больше заданной величины r и у которых обе координаты отрицательны;

2) среднее удаление всех точек от начала координат.

Иллюстрация для построения тестов

Входные данные

· Число точек – простая переменная целого типа n; диапазон значений: 0 < n <= 20; формат переменной n: XX (n:2)

· Критическое удаление точки от центра – простая переменная вещественного типа r; диапазон значений: 0 < r <=10; точность задания r: 0.01; формат переменной r: XX.ХX (r:5:2)

· Абсциссы точек – одномерный массив x[1..n] элементов вещественного типа; диапазон значений: çx[i]ç<=20; точность задания x[i]: 0.01; формат элемента x[i]: ХХХ.ХX (x[i]:6:2)

· Ординаты точек – одномерный массив y[1..n] элементов вещественного типа; диапазон значений: çy[i]ç<= 20; точность задания y[i]: 0.01; формат элементов y[i]: ХХХ.ХX (y[i]:6:2)

Выходные данные

· Искомый процент точек – простая переменная вещественного типа p; диапазон значений: 0<=p<=100; точность вычисления p: 0.1; формат переменной p: XXX.Х (p:5:1)

· Среднее удаление точек от начала координат – простая переменная вещественного типа sa; диапазон значений: 0 < sa < 40; точность вычисления sa: 0.01; формат переменной sa: XX.XX (sa:5:2)

Функциональные тесты

      

№ теста Входные данные Ожидаемый результат Смысл теста
  1 n = 5; r = 3.0 x   2 2 4 -1 -5 y       -2 1 3 -2 -5 p = 20.0 sa = 3.87 Искомые точки существуют; данные взяты из примера
  2 n = 5; r = 3.0 x  2 2 -2 1 -2 y      -2 -1 2 -2 -1 p = 0.0 sa = 2.47 Искомые точки не существуют; тест №2 построен на основе теста №1
  3 n = 4; r = 2.5 x  -3 -2 -3 -1  y       -3 -3 -1 -5  p = 100.0 sa = 4.03 Все точки являются искомыми; тест № 3 построен на основе теста №1

Схема решения задачи

При решении задачи необходимо отделить процедуры ввода-вывода от процедур обработки данных.


Дата добавления: 2018-05-13; просмотров: 304; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!