 |
|
|
F0 = F(a);F1
= F(b);
if ( F0*F1
<= 0 ) {
�X0 = a; X1 = b; i = 1;
finished = 0;
�while ( i <= n && finished ==
0 ) {
��Xm = (X0+X1)/2;
��Fm = F(Xm);
��if ( abs(Fm) < eps || abs(X1-X0)
< eps ) finished = 1;
��if ( finished == 0 )
��if ( F0*Fm >
0 ) { X0 = Xm;F0 = Fm;}
��else X1 = X;
�}
}
�� |
|
��此程序段中各种结构均为单入口与单出口,且没有GOTO语句,可以说它是一个结构化的程序。它的结构很简单,只有一重循环,但由于引入一个布尔变量来控制循环结束,可读性比〖程序段1〗与〖程序段2〗要差。在只有一重循环的情形,差的程度还不很明显,在多重循环的情形,引入多个布尔变量,可读性就很差了。理解程序的时间差几倍到几十倍不止。
��对于单入口多出口的循环,R.S.Pressman明确说明,用GOTO语句可得到较好的清晰性。
�� |
|