试用
VISIO
软件画出下列实用算法及程序的程序流程图
例
1
:
用弦截法求方程
f(x)=x3-5x2+16x-80=0
的根
#
include
.h
>
#
include
.h
>
float f(float x)
/
*
定义f函数,以实现
f(x)
=
x3-5x2+16x-80 *
/
{
float
y;
y
=((
x
-
5
.
0
)*
x
+
16
.
0
)*
x
-
80
.
0;
return
(y)
;
}
float
xpoint (float x1
,
float x2)
/
*
定义
xpoint
函数,求出弦与
x
轴交点
*/
{
float
y;
y
=
(x1
*
f
(
x2
)-
x2
*
f
(
x1
))
/
(
f
(
x2
)-
f
(
x1
))
;
return (
y
)
;
}
float root
(
float
x1,
float
x2)
/*
定义
root
函数,求近似根
*/
{
float
x,y,y1;
y1=f(x1)
;
do
{
x=
xpoint
(x1,x2)
;
y=f(x)
;
if
(y
*
y1>0)
/*
f
(
x
)
与f
(
x1
)
同符号
*/
{
y1=y;
x1=x;
}
else
x2=x;
} while
(
fabs
(y)>=
0.0001
)
;
return (
x
)
}
void main
()
/
*
主函数
*/
{
float
x1,x2,f1,f2,x;
do
{
printf
("input
x1,x2:\n")
;
scanf
("%f,%f",&x1,&x2)
;
f1=f(x1)
;
f2=f(x2)
;