STMT Assignment 4
方向:計算機應用
學號:16340227
姓名:王永傑
1 計算題
1.1 計算下列代碼片段的Halstead 複雜度的11項內容:
if (month < 3) {
month += 12;
–year;
}
return dayray((int)(day + (month + 1) * 26/10 + year + year/4 + 6 * (year/100) + year/400)% 7);
- 1> 求得n1,N1,n2,N2
operator |
Number of Occurrences |
if |
1 |
dayray |
1 |
return |
1 |
< |
1 |
+= |
1 |
- |
1 |
+ |
6 |
* |
2 |
/ |
4 |
% |
1 |
n1=10,n2=19
operand |
Number of Occurences |
month |
3 |
year |
5 |
day |
1 |
3 |
1 |
12 |
1 |
1 |
1 |
26 |
1 |
10 |
1 |
4 |
1 |
6 |
1 |
100 |
1 |
400 |
1 |
7 |
1 |
n2=13,N2=19
指標 |
值 |
程序詞彙表長度 Program vocabulary |
n=n1+n2 =10+13=23 |
程序長度 Program length |
N=N1+N2 =19+19=38 |
程序的預測長度 Calculated program length |
N^=n1log2n1+n2log2n2 =10⋅log210+13⋅log213 ≈33.22+48.11=81.33 |
程序體積 Volume |
V=Nlog2n =38⋅log223≈171.90 |
程序級別 Level |
L^=n12×N2n2 =102×1913≈0.136842 |
程序難度 Difficulty |
D=L^1≈7.31 |
編程工作量 Effort |
E=V×D=L^V =1902638⋅log223≈1,256.16 |
語言級別 |
L′=L^×L^×V≈0.08471 |
編程時間 hours |
T^=S×fE,S=60×60,f=18 T^≈0.019385 |
平均語句大小 |
語句數N=438=9.5 |
程序中的錯誤數預測值 |
B=3000V=3000Nlog2n =300038⋅log223≈0.057298 |