ВУЗ:
Составители:
Рубрика:
40
3 for (int i=1;
4 n>=i;
5 i++)
6 {z = z*x;} //Возврат в п.4
7 return z;
}
Управляющий граф программы (УГП) на
рис. 8 отображает поток управ-
ления программы. Нумерация узлов графа совпадает с нумерацией строк про-
граммы. Узлы 1 и 2 не включаются в УГП, поскольку отображают строки опи-
саний, т. е. не содержат управляющих операторов.
Существуют реализуемые и нереализуемые пути в программе, в нереали-
зуемые пути в обычных условиях попасть нельзя.
Например, для функции Н путь (1,3,4) реализуем, путь (1,2,4) нереализу-
ем в условиях нормальной работы. Но при сбоях даже нереализуемый путь мо-
жет реализоваться.
public static float H(float x,float y) {
float H;
1 if (x*x+y*y+2<=0)
2 H = 17;
3 else H = 64;
4 return H*H+x*x;
}
Рассмотрим следующие два примера тестирования.
Пусть программа H(x:int, y:int) реализована в машине с 64 разрядным сло-
вами, тогда мощность множества тестов ||(X,Y)||=2
64
.
Это означает, что компьютеру, работающему на частоте 1 ГГц, для про-
гона этого полного набора тестов (при условии, что один тест выполняется за
100 команд) потребуется ~ 3K лет.
Или рассмотрим фрагмент схемы программы управления рукой робота,
где интервал между моментами срабатывания руки не определен.
// Фрагмент программы срабатывания руки робота.
// Прочитать значения датчика
static public bool ReadSensor(bool Sensor)
{
//...чтение значения датчика
Console.WriteLine("...reading sensor value");
return Sensor;
}
// Открыть схват
Страницы
- « первая
- ‹ предыдущая
- …
- 38
- 39
- 40
- 41
- 42
- …
- следующая ›
- последняя »