Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Достигнут 3-ий уровень корректности программы. ⇐ ПредыдущаяСтр 4 из 4
Отладка программы модульной структуры:
Как и в отладке программы блочной структуры я начал с визуального контроля, но большая часть ошибок уже была мной исправлена. Я заметил, что перепутал местами служебные слова INTERFACE и IMPLEMENTATION, тем самым допустив синтаксическую ошибку. Далее я осуществил синтаксический контроль программы, используя тип компиляции make. Компиляция прошла с ошибкой. я забыл исправить синтаксические ошибки, которые по моей невнимательности перешли из блочной структуры в модульную. Проведя метод нисходящего тестирования, я провел тестирование на наборе подготовленных мною тестов. Для отладки программы модульной структуры был использован тот же набор тестов, что и для программы блочной структуры. Компиляция прошла успешно – ошибок не выявлено, следовательно, мной достигнут первый уровень корректности программы.
Мною была проверена основная программа, а подпрограммы заменены «заглушками»:
Проверка основной программы:
UNIT OBIVL; INTERFACE TYPE MATRICA=array[1..5,1..6] of real; MASSIV=array[1..6] of real; VAR A,B:MATRICA; K:MASSIV; i,j:integer; f1,f2:text; IMPLEMENTATION BEGIN assign(f1,’isdan.pas'); assign(f2,'vdan.pas'); reset(f1); rewrite(f2); END.
UNIT PART1; INTERFACE USES OBIVL; Procedure NEWMATR(Var A:MATRICA; Var K:MASSIV); Function STR(Var K:integer):integer; IMPLEMENTATION Procedure NEWMATR; Begin K[1]:=1; K[2]:=4; K[3]:=0; K[4]:=0; K[5]:=0 End; Function STR(Var K:integer):integer; Begin imax:=1; STR:=imax End END;
Program tipovik_v2_mod; USES OBIVL,PART1,PART2; Begin For i:=1 to 5 do begin For j:=1 to 6 do Read(f1,A[i,j]); Readln(f1) end; Writeln(f2,' ':35,'Результаты'); Writeln(f2); MASK(A,K); If STR(K,6)=1 Then begin NEWMATR(A,B); Writeln(f2,' ':20,'SR1=',SR1:6:1,' ':15,'SR2=',SR2:6:1); end else Write(f2,'Наибольшее кол-во эл-тов не в первой строке'); close(f1); close(f2) End.
Тестирование главной программы прошло успешно. Далее было проведено тестирование сегментов-процедур (заглушки я заменял текстами соответствующих подпрограмм, пока не были устранены все заглушки). Результаты полученные в программе на том же наборе тестов не отличаются от результатов которые я посчитал - следовательно все подпрограммы работают корректно.
Я использовал метод структурного тестирования, чтобы убедиться что при данном наборе тестовых данных в тестируемой программе выполняется любой оператор, и при разных тестовых данных проходит все ветвления. Для этого я реализовал метод тестовых счетчиков. Я поместил счетчики на каждую ветвь ветвления, в начало и конец алгоритма.
Program tipovik_v2_mod; USES OBIVL,PART1,PART2; VAR sch1,sch2,sch3:integer; BEGIN sch1:=0; sch2:=0; sch3:=0; assign(f1,'isdan.pas'); assign(f2,'vdan.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; Writeln(f2,' ':35,'Результаты'); Writeln(f2); MASK(A,K); If STR(K,6)=1 Then Begin sch1:= sch1+1; NEWMATR(A,B); Writeln(f2,' ':20,'SR1=',SR1:6:1,' ':15,'SR2=',SR2:6:1); end else begin sch2:= sch2+1; Write(f2,‘Наибольшее кол-во эл-тов не в первой строке') end; sch3:= sch3+3; writeln(f2); write(f2,sch1,’ ’,sch2,’ ’,sch3); close(f1); close(f2) End.
Значения счетчиков, полученных при тестировании:
1) 1 0 1 2) 0 1 1
Складываем:
1 1 2
Я узнал значение счетчиков при данном наборе тестов. Очевидно, что все счетчики изменили свои значения, каждая ветвь ветвления и каждый оператор пройдены.
Достигнут 3-ий уровень корректности программы.
Визуальный контроль корректности программы:
· При каждом обращении выполнены правила соответствующих параметров. · Ошибки в водимом тексте отсутствуют.
Синтаксический контроль корректности программы:
|
|||||
Последнее изменение этой страницы: 2020-03-02; просмотров: 99; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.202.187 (0.009 с.) |