標籤:
1 /******************************************************* 2 * Finds and prints n prime integers 3 * Jeff Offutt, Spring 2003 4 ******************************************************/ 5 public static void printPrimes (int n) 6 { 7 int curPrime; // Value currently considered for primeness 8 int numPrimes; // Number of primes found so far. 9 boolean isPrime; // Is curPrime prime? 10 int [] primes = new int [MAXPRIMES]; // The list of prime numbers. 11 12 // Initialize 2 into the list of primes. 13 primes [0] = 2; 14 numPrimes = 1; 15 curPrime = 2; 16 while (numPrimes < n) 17 { 18 curPrime++; // next number to consider ... 19 isPrime = true; 20 for (int i = 0; i <= numPrimes-1; i++) 21 { // for each previous prime. 22 if (isDivisible(primes[i], curPrime)) 23 { // Found a divisor, curPrime is not prime. 24 isPrime = false; 25 break; // out of loop through primes. 26 } 27 } 28 if (isPrime) 29 { // save it! 30 primes[numPrimes] = curPrime; 31 numPrimes++; 32 } 33 } // End while 34 35 // Print all the primes out. 36 for (int i = 0; i <= numPrimes-1; i++) 37 { 38 System.out.println ("Prime: " + primes[i]); 39 } 40 } // end printPrimes
a. 畫出函數的控制流程圖
b. 設計一個t2=(n=5)能發現但t1=(n=3)不能發現的錯誤
如果這個函數的第22行 if (isDivisible(primes[i], curPrime))誤寫成了if (isDivisible(primes[0], curPrime)),即對以後的每個數是否是素數的檢測,只檢查它是否能被2整除。當n = 3時,找出的素數為2,3,5 沒有出現錯誤;但是當n = 5時,找出的素數為2,3,5,7,9 出現錯誤
c. 尋找一組不經過while迴圈的測試案例
n = 1
d. 找出點覆蓋、邊覆蓋和主路徑覆蓋的所有TR(測試需求)
- 節點覆蓋:[1,2,3,5,6,9,5,6,8,10,11,2,4,12,13,14]
邊覆蓋:[1,2,3,5,6,9,5,6,8,10,11,2,4,12,13,14]
[1,2,3,5,10,2,4,12,14]
主路徑:[1,2,3,5,6,8,10,11]
[1,2,3,5,10,11]
[1,2,3,5,6,9]
[5,6,9,5]
[2,3,5,6,8,10,2]
[2,3,5,6,8,10,11,2]
[2,3,5,10,2]
[2,3,5,10,11,2]
[1,2,4,12,13,14]
[1,2,4,12,14]
[3,5,6,8,10,11,2,4,12,13,14]
[3,5,6,8,10,2,4,12,13,14]
[3,5,10,11,2,4,12,13,14]
[3,5,10,2,4,12,13,14]
[3,5,6,8,10,11,2,4,12,14]
[3,5,6,8,10,2,4,12,14]
[3,5,10,11,2,4,12,14]
[3,5,10,2,4,12,14]
[9,5,6,8,10,11,2,4,12,13,14]
[9,5,6,8,10,2,4,12,13,14]
[9,5,6,8,10,11,2,4,12,14]
[9,5,6,8,10,2,4,12,14]
主路徑覆蓋:
[0,1,2,3,5,6,8,10,11,2,4,12,13,14]
[0,1,2,3,5,6,8,10,11,2,4,12,14]
[0,1,2,3,5,6,8,10,2,4,12,13,14]
[0,1,2,3,5,6,8,10,2,4,12,14]
[0,1,2,3,5,6,9,5,6,8,10,11,2,4,12,13,14]
[0,1,2,3,5,6,9,5,6,8,10,2,4,12,13,14]
[0,1,2,3,5,6,9,5,6,8,10,11,2,4,12,14]
[0,1,2,3,5,6,9,5,6,8,10,2,4,12,14]
[0,1,2,3,5,10,11,2,4,12,13,14]
[0,1,2,3,5,10,2,4,12,13,14]
[0,1,2,3,5,10,11,2,4,12,14]
[0,1,2,3,5,10,2,4,12,14]
軟體工程 Homework3