Скачиваний:
23
Добавлен:
28.03.2021
Размер:
942.46 Кб
Скачать

Министерство образования Республики Беларусь

Министерство образования Республики Беларусь БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра метрологии и стандартизации

Метрология, стандартизация и сертификация в информационных технологиях

Практическая работа №2

«Метрики Холстеда. Метрики сложности потока данных» Вариант 16

Выполнила:

Студентка группы

 

972303

 

Рушева Маргарита

 

Владиславовна

Проверил:

Грибович Александр

 

Александрович

Минск, 2020

1 ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ

Ввести массив А (8, 8). Найти минимальный элемент в побочной диагонали массива А. Поменять местами столбец, в котором находится данный элемент, с первым столбцом массива А. Вывести максимальный элемент, номера строки и столбца, в которых он находится, исходный и результирующий массивы.

3 ОПИСАНИЕ ПРОГРАММЫ

mas – исходный массив.

new_mas – результирующий массив.

minJ – номер столбца минимального элемента побочной диагонали.

max – максимальный элемент результирующего массива.

maxI – номер строки максимального элемента.

maxJ – номер столбца максимального элемента.

Сначала происходит ввод данных в массив mas, затем поиск минимального элемента побочной диагонали, после чего столбец с этим элементом меняется с первым и записывается в новый массив new_mas. После выводим исходный массив. Выводим результирующий массив и одновременно ищем максимальный элемент, номер его строки и столбца. После выводим ответы.

2 ИСХОДНЫЙ ТЕКСТ ПРОГРАММЫ НА ЯЗЫКЕ С++

#include <iostream> using namespace std; int main()

{

const int SIZE = 8; int mas[SIZE][SIZE];

cout << "Введите массив" << endl; for (int i = 0; i < SIZE; i++)

{

for (int j = 0; j < SIZE; j++)

{

cin >> mas[i][j];

}

}

int min = mas[0][SIZE - 1]; int minJ = SIZE - 1;

for (int i = 0, int j = SIZE - 1; i < SIZE; i++, j--)

{

if (mas[i][j] < min)

{

min = mas[i][j]; minJ = j;

}

}

int new_mas[SIZE][SIZE];

for (int i = 0; i < SIZE; i++)

{

for (int j = 0; j < SIZE; j++)

{

new_mas[i][j] = mas[i][j];

}

int change = new_mas[i][j]; new_mas[i][0] = new_mas[i][minJ]; new_mas[i][minJ] = change;

}

for (int i = 0; i < SIZE; i++)

{

for (int j = 0; j < SIZE; j++)

{

cout << mas[i][j]; cout << " ";

}

cout << endl;

}

int max = new_mas[0][0]; int maxI, maxJ;

cout << "Новый массив" << endl; for (int i = 0; i < SIZE; i++)

{

for (int j = 0; j < SIZE; j++)

{

cout << new_mas[i][j]; cout << " ";

if (new_mas[i][j] > max)

{

max = new_mas[i][j]; maxI = i;

maxJ = j;

}

}

cout << endl;

}

cout << "Максимальный элемент : " << max << endl; cout << "Номер строки : " << maxI << endl;

cout << "Номер столбца : " << maxJ << endl;

}

4 РАСЧЁТ МЕТРИК ХОЛСТЕДА

j

Оператор

f1j

i

Операнд

f2i

1.

=

23

1.

SIZE

17

2.

[][]

17

2.

mas

6

3.

for

9

3.

minJ

3

4.

<

1

4.

new_mas

10

5.

++

9

5.

max

3

6.

>

1

6.

maxI

3

7.

--

1

7.

maxJ

3

8.

<

10

8.

i

29

9.

If-else-else if

2

9.

j

26

10.

<<

1

10.

8

1

11.

>>

19

11.

0

13

12.

 

 

12.

-1

3

1 = 11

 

N1 = 93

2 = 12

 

N2 = 117

Словарь программы = 23. Длина программы N = 230.

Объем программы V = 230 2 23 = 1040

Метрика сложности потока данных (спен и метрика Чепина)

5 РАСЧЁТ СПЕНА ПРОГРАММЫ

Идентификат

SIZ

ma

min

new_ma

ma

max

max

i

j

Суммарн

ор

E

s

J

s

x

I

J

 

 

ый спен

 

 

 

 

 

 

 

 

 

 

программ

 

 

 

 

 

 

 

 

 

 

ы

Спен

16

5

2

9

2

2

2

2

2

91

 

 

 

 

 

 

 

 

8

5

 

6 РАСЧЁТ ПОЛНОЙ МЕТРИКИ ЧЕПИНА И МЕТРИКИ ЧЕПИНА ВВОДА/ВЫВОДА

 

Полная метрика Чепина

Метрика Чепина

 

 

 

ввода/вывода

 

 

 

 

 

 

 

 

Группа

Р

М

С

Т

Р

 

М

С

Т

переменных

 

 

 

 

 

 

 

 

 

Переменные,

--

SIZE,

i,j,

--

 

 

new_

i,j, ,

--

относящиеся к

 

new_

minJ,

 

 

 

mas,

max

 

группе

 

mas,

max

 

 

 

maxI,

 

 

 

 

maxI,

 

 

 

 

maxJ,

 

 

 

 

maxJ,

 

 

 

 

mas

 

 

 

 

mas

 

 

 

 

 

 

 

Количество

р = 0

m = 5

c = 4

t = 0

р = 0

 

m = 4

c = 3

t

переменных в

 

 

 

 

 

 

 

 

=

группе

 

 

 

 

 

 

 

 

0

Метрика

Q = 1*0 + 2*5 + 3*4 + 0,5*0 = 22

Q = 1*0 + 2*4 + 3*3 + 0,5*0

Чепина

 

 

 

 

 

= 17

 

 

Соседние файлы в папке пз_грибович