Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка по иформатике.doc
Скачиваний:
2
Добавлен:
07.07.2019
Размер:
384 Кб
Скачать

Тестирование

Отладка программы. Отладка заключается в поиске и устранении синтаксических и логических ошибок в программе.

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

Решение задачи на эвм и анализ результатов

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

Разработанная программа длительного использования устанавливается на ЭВМ, как правило, в виде готовой к выполнению машинной программы. К программе прилагается документация, включая инструкцию для пользователя.

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

Оформление отчёта о решении задачи

Отчёт о решении задачи должен содержать:

  1. полный текст задания;

  2. описание математического метода решения задачи (если требуется);

  3. блок-схему вычислительного алгоритма, выполненную в соответствии с требованиями ГОСТ 19.701 — 90 (ИСО 5807 — 85);

  4. исходный текст программы на языке Pascal;

  5. результаты тестовых запусков.

В качестве примера представим отчёт о решении следующей задачи:

Найти экстремум функции:

методом покоординатного спуска. Проверочное значение: 0.

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

Вначале опишем предложенный в задании метод поиска экстремумов многомерных функций.

Методы спуска состоят в процедуре построения последовательности {x1, x2, …, xk}, где последнее значение соответствует экстремуму функции у. В

качестве начального приближения выбирается любая точка x0. Последовательные приближения x1, x2, … строятся по следующей схеме:

1) в точке xk выбирают направление спуска - Sk;

2) находят (k+1)-е приближение по формуле xk+1=xk-pkSk (где pk – значение шага).

Направление Sk выбирают таким образом, чтобы обеспечить неравенство у(xk+1)<у(xk) по крайней мере, для малых значений величины pk.

В методе покоординатного спуска эта процедура повторяется для каждой координаты (рис. 7). Затем значение pk уменьшается в два раза и процесс спуска по каждой из координат повторяется снова, пока значение pk не станет меньше точности вычисления е

Рис. 7. Графическое представление метода покоординатного спуска

Представленная схема вычисления используется для разработки алгоритма. Блок-схема алгоритма представлена на рис. 8.

Рис. 8. Алгоритм нахождения экстремума методом покоординатного спуска

По разработанной схеме алгоритма составляем программу на языке Pascal:

program mkbfj;

type mas=array[1..10] of real;

var A,Ap:mas;

i,n:integer;

h,e:real;

function F(var x:mas):real;

begin

F:=x[1]*x[1]+2*x[2]*x[2];

end;

procedure Spusk(hg:real;var x:mas; koord:byte);

var Fn, Fn1:real;

begin

Fn1:=F(x);

x[koord]:=x[koord]+hg;

if F(x)>Fn1 then hg:=-hg;

repeat

Fn:=Fn1;

x[koord]:=x[koord]+hg;

Fn1:=F(x)

until Fn1>Fn;

x[koord]:=x[koord]-hg;

end;

begin

writeln('n perem'); read(n); { Ввод количества переменных }

writeln('hag'); read(h); { Ввод начального шага }

writeln('e'); read(e); { Ввод точности вычисления }

writeln('nah pribl');

for i:=1 to n do

read(A[i]);

repeat

Ap:=A;

for i:=1 to n do

begin

Spusk(h,A,i);

h:=h/2;

end;

until h<e;

for i:=1 to n do

writeln('x',i,'-',A[i]:3:2,' ');

end.

Для представления в отчёте результатов тестовых запусков программы можно воспользоваться снимком окна. Для этого, при запуске программы из среды Turbo Pascal, необходимо перевести приложение из полноэкранного режима в оконный с помощью комбинации клавиш Alt + Enter. Затем, когда программа завершит свою работу и в окне будут отображены результаты её работы, нужно скопировать изображение окна в буфер обмена с помощью комбинации клавиш Alt + Prt Scr. Изображение можно обычным образом вставить из буфера обмена в нужное место отчёта.

Исследуем поведение разработанной программы при различных входных данных. Известно, что функция имеет только один экстремум – минимум в точке х1 = 0, х2 = 0 (рис. 9). Таким образом, программа должна выдавать координаты этой точки при любых входных данных.

Рис. 9. График функции

Входными данными, при заданной функции, являются:

  • начальный шаг;

  • точность нахождения экстремума;

  • начальное приближение.

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

Как видно из рис. 10а и 10б программа стабильно даёт правильный результат при разных данных.

Таким образом, можно с большой долей уверенности утверждать, что задание выполнено.

а

б

Рис. 10. Экраны работы программы при разных входных данных

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