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

Абстракция А0.6

Читайте также:
  1. Абстракция
  2. Абстракция
  3. Абстракция А0.4
  4. Абстракция, мышление типа «или-или» и дуализм
  5. Монотеизм: универсальная абстракция

1.Условие. Даны матрицы X и Y. Составить матрицу С, по правилу

 

2.Уточненная постановка задачи.

Даны вещественные квадратные матрицы X и Y из n строк и n столбцов. Составить матрицу С (количество элементов C равно количеству строк матриц = n), где С[i] это сумма i-ых строк матриц А и В

3.Примеры.

Тест 7 С[1]=8.0

Тест 8 C[1]=4.3; C[2]= 8.9; C[3]=3.0

Тест 10 C[1]=19999.0; C[2]= -19999.0 … C[9]=19999.0; C[10]= -19999.0

Таблица данных

Класс Имя Описание (смысл), диапазон, точность Тип Структура
  Входные данные X Заданная матрица, |Xij|<=1000 Точн. 0.1 вещ Двумерный массив (10х10)
Y Заданная матрица, |Yij|<=1000 Точн. 0.1 вещ Двумерный массив (10х10)
n число строк и столбцов в матрицах X,Y 1£n£10 цел простая переменная
  Выходные данные C Созданная матрица |Сi |<=19999 Точн. 0.1 вещ одномерный массив
Промежу-точные данные i Номер текущей строки, 1£i£10 цел простая переменная
j Номер текущего столбца, 1£j£10 цел простая переменная
           

5.Входная форма.

нет ввода/вывода

Выходная форма

нет ввода/вывода

Аномалии

нет ввода/вывода

Тесты

Тест 7 С[1]=8.0

Тест 8 C[1]=4.3; C[2]= 8.9; C[3]=3.0

Тест 10 C[1]=19999.0; C[2]= -19999.0 … C[9]=19999.0; C[10]= -19999.0

Метод

Будем просматривать строки, начиная с первой (i:=1) по посдеднюю (i:=n)

Просматриваем все столбцы от первого (j:=1) до последнего (j:=n)

Суммируем все элементы i-ых строк двух матриц и

сумму записываем как элемент матрицы С с индексом i

 

Получившаяся матрица С – искомая

 

 

Алгоритм

Начало А0.6
i=1..n, +1
C[i]:=0
j=1..n, +1
C[i]:= C[i]+X[i,j]+Y[i,j]
Конец А0.6
Вх. n, X, Y
Вых. С

 

 


Программа на паскале. Процедура общего вида

procedure SozdanieC (const n:byte; var X,Y:mas; out C:mas2);

var i,j:byte;

Begin

for i:= 1 to n do

Begin

C[i]:=0;

for j:=1 to n do

C[i]:=C[i]+X[i,j]+Y[i,j];

End;

End;

 

После написания текста программы можно перейти к написанию структурных тестов.

Для этого составим таблицу, в которой перечислим все структуры ветвления и циклов в порядке их появления в программе.

 

 

Тест№ Структура                     11 12 13
If (n<1) or (n>10)  
n<1 истина n>10 истина Не возможно одновременное выполнение этих условий
n<1 истина n>10 ложь (n=10) Не возможно одновременное выполнение этих условий
n<1 истина n>10 ложь (n<10) - n= -1 - - - - - - - - - - -
n<1 ложь (n=1) n>10 истина Не возможно одновременное выполнение этих условий
n<1 ложь (n>1) n>10 истина n=20 - - - - - - - - - - - -
n<1 ложь (n=1) n>10 ложь (n=10) Не возможно одновременное выполнение этих условий
n<1 ложь (n>1) n>10 ложь (n=10) - - - - - - - - - n= 10 - - -
n<1 ложь (n=1) n>10 ложь (n<10) - - - - - n=1 n=1 - - - - - -
n<1 ложь (n>1) n>10 ложь (n<10)     n=3 n=2 n=2 - - n=3 n=4 - n=3 n=3 n=2
Ввод/вывод матриц For i:=1 to n do Н Е Т   В В О Д А   И   П Р О В Е Р К И   М А Т Р И Ц Ы   Н Е Т   В В О Д А   И   П Р О В Е Р К И   М А Т Р И Ц Ы    
0 раз (i>n) Не возможно, n³1
1 раз (i=n) - - -     - - - - - -
более 1 раза (i<n)       - -            
For j:=1 to n do  
0 раз (j>n) Не возможно, n³1
1 раз (j=n) - - -     - - - - - -
более 1 раза (j<n)       - -            
Проверка элементов while (i<=n)and not(flag)do  
(i<=n) истина (i<n) flag ложь + + + - - + + + + + +
(i<=n) истина (i=n) flag ложь + + + + + + + + - + +
(i<=n) истина (i<n) flag истина + - - - - - - - + - -
(i<=n) истина (i=n) flag истина - + + - - - - - + - -
(i<=n) ложь (i>n) flag ложь + + + + + + + + - + +
(i<=n) ложь (i>n) flag истина - - + - - - - - - - -
while (j<=n)and not(flag) do  
(j<=n) истина (j<n) flag ложь + + + - - + + + + + +
(j<=n) истина (j=n) flag ложь + + + + + + + + + + +
(j<=n) истина (j<n) flag истина - - - - - - - - + - -
(j<=n) истина (j=n) flag истина - + + - - - - - - - -
(j<=n) ложь (j>n) flag ложь + + + + + + + + + + +
(j<=n) ложь (j>n) flag истина + - + - - - - - - - -
if abs(X[i,j]) > 1000 then  
abs(X[i,j]) > 1000 + + + - - - - - + - -
abs(X[i,j]) < 1000 - - - + + + + + - + +
abs(X[i,j]) = 1000 - - - - - - - - + - -
   
   
If FlagA or FlagB then  
FlagA истина FlagB истина - - + - - - - - - - -
FlagA ложь FlagB ложь - - - + + + + + - + +
FlagA ложь FlagB истина - + - - - - - - - - -
FlagA истина FlagB ложь + - - - - - - - + - -
Проверка того,что эл-ты А > соотв. эл-ов В While (i<=n) and f=true do З А Д А Ч А   Н Е   Р Е Ш А Л А С Ь   З А Д А Ч А   Н Е   Р Е Ш А Л А С Ь   З А Д А Ч А   Н Е   Р Е Ш А Л А С Ь            
(i<=n) истина(i<n) f ложь - - - - -   Н Е   Р Е Ш А Л А С Ь + -
(i<=n) истина(i=n) f ложь - - - - - - +
(i<=n) истина (i<n) f истина - - + - + + +
(i<=n) истина (i=n) f истина - - + - + - -
(i<=n) ложь (i>n) f ложь + - - + - - -
(i<=n) ложь (i>n) f истина - + + - + - -
While (j<=n) and f=true do      
(j<=n) истина(j<n) f ложь - - - + -   + -
(j<=n) истина(j=n) f ложь - - - - - - +
(i<=n) истина (j<n) f истина - - + - + + +
(j<=n) истина (j=n) f истина - - + - + - -
(j<=n) ложь (j>n) f ложь + - - - - - -
(j<=n) ложь (j>n) f истина - + +   + - -
If X[i,j]<=Y[i,j] then            
X[i,j]<Y[i,j] + - - + - - -
X[i,j]=Y[i,j] - - - - - - +
X[i,j]>Y[i,j] - + + + + - -
If not(f) then        
f истина   - + + - +   - -
f ложь + - - + - + +
Создание матрицы С For i:=1 to n do            
0 раз (i>n) Не возможно, n³1 n³1
1 раз (i=n) - + - - -   - -
Более 1 раза (i<n) - - + - + - -
For j:=1 to n do          
0 раз (j>n) Не возможно, n³1 n³1
1 раз (j=n) - + - - -   - -
более 1 раза (j<n) - - + - + - -
Вывод С For i:=1 to n do      
0 раз (i>n) Не возможно, n³1 n³1
1 раз (i=n) - + - - -   - -
Более 1 раза (i<n) - - + - + - -
                             

 

 

Выявлено 6 строк в таблице, непокрытых имеющимися 10 тестами. Добавим еще 3 теста 11,12,13.

 


Дата добавления: 2015-08-21; просмотров: 72 | Нарушение авторских прав


Читайте в этой же книге: Примеры. | Функциональные тесты | Алгоритм |
<== предыдущая страница | следующая страница ==>
Абстракция А0.4| Альманах карвера. Why carving?

mybiblioteka.su - 2015-2024 год. (0.009 сек.)