
Анализ результатов
Оценка стиля программирования
Оценка стиля программирования приведена в Таблице №2, №3.
Таблица №2
Критерий оценки |
vi |
Значение |
ki |
1 |
15% |
21 |
1 |
2 |
14% |
2 |
0.5 |
3 |
12% |
6 |
|
4 |
12% |
25% |
1 |
5 |
11% |
13% |
|
6 |
9% |
23 |
1 |
7 |
6% |
12 |
0 |
8 |
8% |
75% |
0 |
9 |
6% |
6 |
|
10 |
5% |
0 |
0 |
Таблица №3
Критерий оценки |
Значение |
Вес |
1.Длина модуля |
21 |
15% |
2.Длина идентификатора |
2 |
7% |
3.Процент строк комментариев |
6 |
3.96% |
4.Процент отступов |
25% |
12% |
5.Процент пустых строк |
13% |
9.57% |
6.Число символов в строке |
23 |
9% |
7.Добавленные пробелы |
12 |
0 |
8.Процент констант |
75% |
0 |
9.Служебные слова |
6 |
2,25% |
10.Включаемые файлы |
0 |
0 |
|
Итого: 58,78% |
Анализ временной сложности программы
Анализ временной сложности приведен в Таблице №4.
Так же как и при тестировании проведем анализ со следующим набором данных: а=1, b=2, eps=0.01, p=3.
Таблица №4
№ строки |
Профиль |
Аналитический профиль |
Текст программы |
94 |
1 |
1 |
void m_bisec(){ /*метод бисекций*/ |
95 |
1 |
1 |
double a, b, c, eps; |
96 |
1 |
1 |
eps=0.001; /*точность вычисления корня*/ |
97 |
1 |
1 |
a=0.001; |
98 |
1 |
1 |
b=10; |
99 |
|
|
|
100 |
1 |
1 |
do{ |
101 |
1 |
1 |
c=(a+b)/2; |
102 |
7 |
4b-a |
if (der(a)*der(c) < 0){ /*вычисление значения первой производной в точке a и c*/ |
103 |
1 |
1 |
b=c; |
104 |
|
|
} |
105 |
3 |
a+b |
else if (der(b)*der(c)<0){ /*вычисление значения первой производной в точке b и c*/ |
106 |
1 |
1 |
a=c; |
107 |
|
|
} |
108 |
0 |
0 |
else{ |
109 |
1 |
1 |
x0=c; |
110 |
|
|
} |
111 |
|
|
} |
112 |
7 |
4b-a |
while (fabs(a-b)>eps); |
113 |
1 |
1 |
x0=c ; /*искомый корень, т.е. точка подозрительная на экстремум*/ |
114 |
1 |
1 |
suff_cond_x0(); /*проверка достаточного условия экстремумов при p>0*/ |
115 |
|
|
} |
Для построения оценки сформируем таблицу:
Таблица №5
№ строки |
Аналитический профиль |
Условное время однократного выполнения |
Общее время выполнения строки |
94 |
1 |
1 |
1 |
95 |
1 |
1 |
1 |
96 |
1 |
1 |
1 |
97 |
1 |
1 |
1 |
98 |
1 |
1 |
1 |
99 |
|
|
|
100 |
1 |
1 |
1 |
101 |
1 |
6 |
6 |
102 |
4b-a |
6 |
24b-6a |
103 |
|
|
|
104 |
1 |
1 |
1 |
105 |
|
|
|
106 |
a+b |
8 |
8a+8b |
107 |
1 |
1 |
1 |
108 |
|
|
|
109 |
0 |
2 |
0 |
110 |
1 |
1 |
1 |
111 |
|
|
|
112 |
|
|
|
113 |
4b-a |
8 |
32b-8a |
114 |
1 |
1 |
1 |
115 |
1 |
2 |
2 |
116 |
|
|
|
Таким образом, время выполнения программы зависит от исходных данных, то есть t: O(a,b).