Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Отладка блочной структуры программы




Визуальный контроль корректности программы:

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

 

Синтаксический контроль корректности программы:

· синтаксический контроль корректности программы осуществлялся за ЭВМ с использованием компиляторов среды программирования TurboPascal7. Также на этой стадии была проведена локализация места ошибок.

 

Семантический контроль корректности программы

  • В ходе семантического контроля программы не было выявлено никаких отклонений от корректного использования конструкций языка.

 

7.2 Отладка модульной структуры программы:

 

Для тестирования программы модульной структуры были использованы те же тесты. В процессе тестирования программы модульной структуры была допущена лишь одна ошибка: повторное создание раздела описания типов и повторное описание типов одномерный массив и двумерный массив. Ошибка вызвала некоторые затруднения в ее локализации, но после изучения ошибки и повторного визуального контроля была устранена.

 

 

8. Тестирование:

Для проверки корректности программы использован метод восходящего тестирования.

Для каждой подпрограммы были составлены программы-драйверы:

 

Драйвер для сегмента 1

 

назначение контроль данных
Исходные данные выходные данные
  на положительный результат 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 1 1 1 1 1 5 5 5 5 5 10
  на аномалию 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 5
  на отрицательный результат 5 5 5 5 5 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 1 1 1 1 1  

Program sigment1

type matr=array[1..5,1..6] of real;

massiv=array[1..5] of real;

var a:matr;

b:massiv;

f1,f2:text;

i,j:integer;

 

procedure nov(var a;n,m:integer;var b);

type ma=array[1..100,1..100] of real;

mas=array[1..10922] of real;

var i,j:integer;

Begin

for i:=1 to n do

begin

mas(b)[i]:=0;

for j:=1 to m do

mas(b)[i]:=mas(b)[i]+ma(a)[i,j];

end;

End;

 

 

BEGIN

assign(f1,'vdoh.pas');

assign(f2,'vidoh.pas');

reset(f1);

rewrite(f2);

for i:=1 to 5 do

begin

for j:=1 to 6 do

read(f1,a[i,j]);

readln(f1);

end;

nov(a,5,10,b);

 

for i:=1 to 5 do

write(f2,b[i],' ');

writeln(f2);

close(f1);

close(f2);

END.

 

 

Драйвер для сегмента 2

 

назначение контроль данных
Исходные данные выходные данные
  на положительный результат   k=5
  на аномалию   k=5  
  на отрицательный результат   k=1

Program sigment2;

Type massiv=array[1..5] of real;

var b:massiv;

f1,f2:text;

i,j,k:integer;

 

function max(var b;n:integer):integer;

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

var k,i:integer;

 

Begin

k:=1;

for i:=2 to n do

if mas(b)[k]<mas(b)[i] then

begin

mas(b)[k]:=mas(b)[i];

k:=i;

end;

max:=k;

End;

 

BEGIN

assign(f1,'vdoh.pas');

assign(f2,'vidoh.pas');

reset(f1);

rewrite(f2);

for i:=1 to 5 do

read(f1,b[i]);

readln(f1);

 

max(b,5)

write(f2,k);

close(f1);

close(f2);

END.

 

Драйвер для сегмента 3

 

Program sigment3;

назначение контроль данных
Исходные данные выходные данные
  на положительный результат   l=4
  на аномалию   l=1  
  на отрицательный результат   l=5

type massiv=array[1..5] of real;

var b:massiv;

f1,f2:text;

i,j,l:integer;

 

function min(var b;n:integer):integer;

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

var l,i:integer;

 

 

Begin

l:=1;

for i:=2 to n do

if mas(b)[l]>mas(b)[i] then

begin

mas(b)[l]=mas(b)[i];

l:=i;

end;

min:=l;

End;

 

BEGIN

assign(f1,'vdoh.pas');

assign(f2,'vidoh.pas');

reset(f1);

rewrite(f2);

for i:=1 to 5 do

read(f1,b[i]);

readln(f1);

 

min(b,5)

write(f2,l);

close(f1);

close(f2);

END.

 

Драйвер для сегмента 4

 

Program sigment4;

назначение контроль данных
Исходные данные выходные данные
  на положительный результат l=1 k=5 5 5 5 5 5 3 3 3 3 3 4 4 4 4 4 2 2 2 2 2 1 1 1 1 1
  на аномалию l=1 k=5 5 5 5 5 5 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 1 1 1 1 1
  на отрицательный результат l=5 k=1 Матрица не изменена

type matr=array[1..5,1..6] of real;

var a:matr;

f1,f2:text;

i,j,k,l:integer;

g,h:real;

 

procedure verhvniz(var a;n,k,l:integer);

type ma=array[1..100,1..100] of real;

var j:integer;

g, h:real;

 

Begin

for j:=1 to n do

begin

g:=ma(a)[z,j];

ma(a)[z,j]:=ma(a)[h,j];

ma(a)[h,j]:=g;

end;

End;

BEGIN

assign(f1,'vdoh.pas');

assign(f2,'vidoh.pas');

reset(f1);

rewrite(f2);

for i:=1 to 5 do

begin

for j:=1 to 6 do

read(f1,a[i,j]);

readln(f1);

end;

 

if (max(b,k)=1) and (min(b,l)=5) then

write(f2,’матрица не изменена’)

else

begin

z:=1

h:=k

verhvniz(a,j,z,h,max(b,i));

z:=5;

h:=L

verhvniz(a,j,z,h,max(b,i));

end;

for i:=1 to 5 do

for j:=1 to 6 do

write(f2,a[i,j],' ');

writeln(f2);

close(f1);

close(f2);

END.

 





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


Дата добавления: 2016-10-07; Мы поможем в написании ваших работ!; просмотров: 289 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Велико ли, мало ли дело, его надо делать. © Неизвестно
==> читать все изречения...

2555 - | 2198 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.