Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Черников / Домашние задания / ДЗ-2 / 05_Username_Сложность-2

.docx
Скачиваний:
75
Добавлен:
15.04.2018
Размер:
25.47 Кб
Скачать

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int m = 0, n = 0;

double[][] mas;

List<double> d;

char rep;

do

{

try

{

Console.WriteLine("Вас приветствует программа вычленяющая из двумерного массива все отрицательные элементы");

Console.WriteLine("Введите колличество столбцов матрицы:");

m = int.Parse(Console.ReadLine());

Console.WriteLine("Введите колличество сторок матрицы:");

n = int.Parse(Console.ReadLine());

}catch { Console.WriteLine("Некоректно введены даныне"); }

mas = new double[m][];

for (int i = 0; i < mas.Length; i++)

mas[i] = new double[m];

d = new List<double>();

d.Add(1);

Metod.Zapolnenie(mas);

Metod.Show(mas);

Metod.CopyOtric(mas, out d);

for (int i = 0; i < d.Count; i++)

Console.Write("Oтриц знач:{0,4:f2}", d);

Console.WriteLine("Поторить? Y/N");

rep = char.Parse(Console.ReadLine());

}while(rep=='Y'||rep=='y');

}

}

}

Первый критерий.

m1: 1-2-3-4-6-7-8-7-8-9-10-9-10-11-12

m2: 1-2-3-4-5-6-7-8-9-10-11-2-3-4-5-6-7-8-9-10-11-12

S1=p1=13

Второй критерий.

Число вершин ветвления в составленном графе составляет 4, отсюда:

Z = nв + 1 = 4 + 1 = 5

Таким образом, общее число циклических и ациклических участков равно 5. Выделим маршруты на заданном графе:

• циклические маршруты:

m1: 2-3-4-5-6-7-8-9-10-11; p1 = 4;

m2: 7-8; p2 = 1;

m3: 9-10; p3 = 1;

• ациклические маршруты:

m4: 1-2-3-4-5-6-7-8-9-10-11-12; p4 = 4;

m5: 1-2-3-4-6-7-8-9-10-11-12; p5 = 4;

S2 = p1+p2+ p3+p4+ p5 = 14;

Третий критерий

m1: 1-2-3-4-5-6-7-8-9-10-11-12

m2: 1-2-3-4-6-7-8-9-10-11-12

m3: 1-2-3-4-5-6-7-8-7-8-9-10-11-12

m4: 1-2-3-4-5-6-7-8-9-10-9-10-11-12

m5: 1-2-3-4-5-6-7-8-9-10-11-2-3-4-5-6-7-8-9-10-11-12

m6: 1-2-3-4-6-7-8-9-10-11-12

m7: 1-2-3-4-6-7-8-9-10-9-10-11-12

m8: 1-2-3-4-5-6-7-8-7-8-9-10-9-10-11-12

m9: 1-2-3-4-6-7-8-9-10-11-2-3-4-5-6-7-8-9-10-11-12

m10: 1-2-3-4-5-6-7-8-7-8-9-10-11-2-3-4-5-6-7-8-9-10-11-12

m11: 1-2-3-4-5-6-7-8-9-10-9-10-11-2-3-4-5-6-7-8-9-10-11-12

m12: 1-2-3-4-6-7-8-7-8-9-10-9-10-11-2-3-4-5-6-7-8-9-10-11-12

m13: 1-2-3-4-6-7-8-7-8-9-10-9-10-11-12

m14: 1-2-3-4-6-7-8-7-8-9-10-11-2-3-4-5-6-7-8-9-10-11-12

m15: 1-2-3-4-6-7-8-9-10-9-10-11-2-3-4-5-6-7-8-9-10-11-12

m16: 1-2-3-4-5-6-7-8-7-8-9-10-9-10-11-2-3-4-5-6-7-8-9-10-11-12

S3=156

Матрица смежности

1

2

3

4

5

6

7

8

9

10

11

12

1

2

1

1

3

1

4

1

5

1

6

1

1

7

1

1

8

1

9

1

1

10

1

11

1

12

1



Матрица достижимости

1

2

3

4

5

6

7

8

9

10

11

12

1

2

1

1

1

1

1

1

1

1

1

1

1

3

1

1

1

1

1

1

1

1

1

1

1

4

1

1

1

1

1

1

1

1

1

1

1

5

1

1

1

1

1

1

1

1

1

1

1

6

1

1

1

1

1

1

1

1

1

1

1

7

1

1

1

1

1

1

1

1

1

1

1

8

1

1

1

1

1

1

1

1

1

1

1

9

1

1

1

1

1

1

1

1

1

1

1

10

1

1

1

1

1

1

1

1

1

1

1

11

1

1

1

1

1

1

1

1

1

1

1

12

1

1

1

1

1

1

1

1

1

1

1



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

Z = m – n + 2, где m – количество дуг управляющего графа, построенного на основе алгоритма программы, n – количество вершин графа. В соответствии с полученным управляющим графом m = 15, n = 12, тогда цикломатическое число равно:

Z = m – n + 2 = 15 – 12 + 1 = 4

По Маккейбу: в соответствии со значением цикломатического числа (Z = 4) в полученном графе управления программой можно выделить 4 независимых контуров, которые определяют 4 управляющих маршрутов, ведущих из начальной вершины в конечную. Значение цикломатического числа для полученного графа (Z = 4) не превышает значения 10, что говорит о незначительной сложности алгоритма решения задачи расчета значений функции.

Вывод

Исходя из полученных результатов расчета метрик структурной сложности критериям выделения маршрутов можно сделать вывод, что программа имеет невысокую алгоритмическую сложность, так как количество используемых в тексте операторов условий 4.

Соседние файлы в папке ДЗ-2