Ипотпал Лаптопи

Много често допусканите грешки се отнасят до граничните стойности на променливи, използвани в цикли и като индекси на масиви. Ето защо следва да се извърши щателна проверка на граничните случаи. Един пример е представен по-долу.

Пример

Дадена е следната спецификация на функция, която извършва двоично търсене в нареден масив:

// Функцията извършва двоично търсене в сортиран
//масив от цели числа.
// PRE а – едномерен сортиран масив от цели числа с
//n елемента
//v – стойност на цяло число;

//POST Резултатът от изпълнението на функцията е:
// true – ако съществува индекс i, 0 < = i < n, така че v = a[i];
// false – ако не съществува индекс по горното свойство.
// Резултатът е неопределен ако масивът не е сортиран
bool binary_Search(int a[ ], int n, int v);
Случаите, които трябва да се изследват при тази
функция, са твърд много:

п = 0; п = 1; п = 2; п = 3;
п>0, v = a[n-l];
п > 0, v = a[п-2];

п >0, v = a[0];
n>0,v = a[1];
n>0,v< a[0];
п > 0, v > a [n-1];
n > 0, a [1] < =v < = a [n-2] и v е елемент на масива;
п > 0, a [1] <= v <= a [n-2], но v не е елемент на масива.

Пример 2
Дадена е следната спецификация на функция, която
извършва двоично търсене в нареден масив:
// Функцията извършва двоично търсене в сортиран
//масив от цели числа.
// PRE а – едномерен сортиран масив от цели числа с
//n елемента
//v – стойност на цяло число;

//POST Резултатът от изпълнението на функцията е:
// true – ако съществува индекс i, 0 < = i < n, така че v = a[i];
// false – ако не съществува индекс по горното свойство.
// Резултатът е неопределен ако масивът не е сортиран
bool binary_Search(int a[ ], int n, int v);
Случаите, които трябва да се изследват при тази
функция, са твърд много:

п = 0; п = 1; п = 2; п = 3;
п>0, v = a[n-l];
п > 0, v = a[п-2];

п >0, v = a[0];
n>0,v = a[1];
n>0,v< a[0];
п > 0, v > a [n-1];
n > 0, a [1] < =v < = a [n-2] и v е елемент на масива;
п > 0, a [1] <= v <= a [n-2], но v не е елемент на масива.

Comments are closed.