You are on page 1of 5

Begin

6. function(n): int i = 2; while (n >= i*i) { if (n mod i == 0) { printf("%d * ", i); n = n / i; } else { i = i + 1; } } printf("%d", n);

i=2

No n >= i*i Yes No i = i +1

n%i==0
Yes Print n ; n=n/i

Print n

End
Cyclomatic complexity: 3 Statement coverage: 1 ( n = 14) Branch coverage: 1 ( n = 14)

Begin

Switch(a%2) 7. function(a): switch (a mod 2) { case 0: printf("a is even"); break; case 1: printf("a is odd"); break; }

Yes Case: 0 No Yes Case: 1 No Print a is odd Print a is even

End

Cyclomatic complexity: 3 Statement coverage: 2( a=1,a =2 ) Branch coverage: 2 ( a=1,a =2 )

8. function(a): switch (a mod 2) { case 0: printf("a is even"); break; case 1: printf("a is odd"); break; default: printf("unknown"); break; }

Begin

Switch(a%2)

Yes Case: 0 No Case: 1 No Defaule: Print unknown Print a is odd Print a is even

End

Cyclomatic complexity: 3 Statement coverage: 2( a=1,a =2 ) Branch coverage: 2 ( a=1,a =2 )

Begin
9. function(s): for (int i=0; i<s.length; i++) { if (s[i] >= 'a' && s[i] <= 'z') s[i] = s[i] - 32; else if (s[i] >= 'A' && s[i] <= 'Z') s[i] = s[i] + 32; else if (s[i] >= '0' && s[i] <= '0') s[i] = 'x'; }

i=0

I<s.length

Yes i++

No
Yes s[i]=s[i]-32

s*i+>=a && s*i+<=z No

s*i+>=A && s*i+<=Z No

Yes s[i]=s[i]+32

s*i+>=0 && s*i+<=0

Yes

s[i]=x

End

Cyclomatic complexity: 5 Statement coverage: 1 ( s={a,A,0} ) Branch coverage: 1 ( s={a,A,0} )

Begin

10. function(s, a): for (int i=0; i<s.length; i++) { int j = 0; for (; j<a.length; j++) { if (s[i+j] != a[j]) break; } if (j >= a.length) { printf("Found a in s"); return; } }

i=0

No

i < s.length

Yes j=0

j < a.length

No

Yes Yes No

s[i+j] != a[j]

j>=a.length

No j ++

Yes Print "Found a in s"

End

Cyclomatic complexity: 5 Statement coverage: 1 ( s=fhgi,a=g) Branch coverage: 2( s=fhgi,a=g) and s=fhgi,a=k) )

You might also like