c语言求三次方程的根程序的设计

上传人:cn****1 文档编号:575827165 上传时间:2024-08-18 格式:PDF 页数:9 大小:107.65KB
返回 下载 相关 举报
c语言求三次方程的根程序的设计_第1页
第1页 / 共9页
c语言求三次方程的根程序的设计_第2页
第2页 / 共9页
c语言求三次方程的根程序的设计_第3页
第3页 / 共9页
c语言求三次方程的根程序的设计_第4页
第4页 / 共9页
c语言求三次方程的根程序的设计_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《c语言求三次方程的根程序的设计》由会员分享,可在线阅读,更多相关《c语言求三次方程的根程序的设计(9页珍藏版)》请在金锄头文库上搜索。

1、理工大学机械工程学院计 算 机 程 序 训 练任 务 书晓光班级 08010131 学号 18 日期: 2010/06/15 目录一 设计题目 . .3 二 设计要求 .3 三 技术要求 .3 (1 )题目容的描述 .3(2) 应用程序详细说明 .3(3) 输入数据类型、格式和容限制.4 (4) 主要模块的算法描述 . 4 (5) 结束语 .6 (6) 程序的源代码清单. .6一 设计题目求 3 次方程的根二 设计要求已知有一方程ax3+bx2+cx+d=0,方程系数a,b,c,d由键盘输入(要求a,b,c,d都不能等于零,如果有零从新输入) ,求其 3 个根。三 技术要求 1 按照给定题目,

2、独自设计程序,上机调试通过。 2 设计报告(1)题目容描述:设计一程序算出一元三次方程的根(2)应用程序功能详细说明#include : 把使用数学库函数时所需的信息包含进来; #include :控制台的输入输出; float a, b, c, d : 定义外部变量,是全局都可以使用; float f(float ): 定义 f 函数,以实现f(x)=ax3+bx2+cx+d ;float xpoint(float x1 ,float x2):定义 xpoint函数,求出弦与 x 轴的交点;float root :定义 roop 函数,求近似根;do. While : 循环;void mai

3、n ():主函数;fabs:求绝对值的函数,对实数型求绝对值的标准函数;while (fabs (y)= ) : 设定精度;if(): 判定所给定的条件是否满足根据判断的结果(真或假)决定执行给出两种操作之一; while() : 用来实现“当型”循环结构; printf() :printf的一般形式为printf( 格式控制,输出列表 ) 例如:printf(“%d,%cn”,i,c), 括号包括两部分: a格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息: a:格式说明。格式说明由“%d ”和格式字符组成,如%d ,%f等。他的作用是将输出的数据转换为制定的格式输

4、出。格式说明总是由“%”字符开始的。 b:普通字符。普通字符即需要鸳鸯输出的字符。例如上面printf幻术中双撇号没的逗号,空格和换行符。 b “输出列表”是需要输入的一些数据,可以用表达式。scanf() : 一般形式: scanf( 格式控制,地址列表 ) “格式控制” 的含义同 printf函数; “地址列表” 是由若干个地址组成的列表,可以是变量的地址,或字符串的首地址。格式说明:于 printf函数中的格式说明相似,以% 开始,以一个格式字符结束,中间可插入附加的字符;getch() : 字符输入函数(3) 输入数据类型、格式和容限制 a. 输入数据类型:浮点型数据float格式:比

5、特(位)数 32 4字节容限制: 7位有效数字 b. 输入数据类型:字符型数据n格式:以开头容限制:换行符,在屏幕上不显示(4) 主要模块的算法描述 a. 程序 N-S流程图 b. 语言描述原理 1. 取两个不同点 x1,x2,如果 f(x1)和 f(x2)符号相反 ,则(x1,x2)区间必有一个根。如果 f(x1)与 f(x2)同符号 ,则应改变 x1,x2,直到 f(x1)、f(x2)异号为止。注意 x1、x2的值不应差太大 ,以保证 (x1,x2)区间只有一个根。 2. 连接 (x1,f(x1)和(x2,f(x2)两点, 此线( 即弦)交 x 轴于 x。 3. 若 f(x) 与 f(x1

6、) 同符号 , 则根必在 (x,x2) 区间, 此时将 x 作为新的 x1。如果f(x) 与 f(x2) 同符号 , 则表示根在 (x1,x) 区间, 将 x 作为新的 x2。 4. 重复步骤 (2) 和 (3) , 直到 f(x) 为止 , 为一个很小的数 , 例如 10-6. 此时认为f(x) 0 。输入 a, b, c, d,确定一元三次方程标准形式函数来实现个部分的功能 1. 用函数 f(x) 代表 x 的函数 :ax3+bx2+cx+d=0 2. 程序从main函数开始执行。先执行一个do.while循环,其作用是输入x1和x2,判别f(x1)和f(x2)是否异号。如果不是异号,则重

7、新输入x1和x2,知道满足f(x1)和f(x2)异号为止。 3. 用函数调用xpoint (x1,x2)来求(x1,f(x1)和(x2,f(x2)的连线与x轴的交点x的坐标。 4. 用函数调用root (x1,x2)来求 (x1,x2) 区间的那个实根。显然 , 执行root函数过程中要用到函数xpoint, 而执行xpoint函数过程中要用到f 函数。Main函数root函数xpoint函数f函数调用root函数调用xpoint函数调用f函数输出根x结束(5) 结束语通过此次程序设计, 更深的体会到了 c 程序的强大的功能, 和这门语言的重要性,在编程中遇到好多困难, 也才更深的认识到自己学

8、习力度不够。通过查资料,对指针的使用才有了更深刻的了解, 还有对 的应用有了新的认识。(6) 程序的源代码清单 #include #include int a,b,c,d; /定义外部变量,使全局可以调用,生成函数f(x) 就是生成方程 y=ax3+bx2+cx+d float f(float x) /x函数 float y; y=a*x*x*x+b*x*x+c*x+d; return(y); / 生成浮点数 y 计算式 y=(x1*f(x2)-x2*f(x1)/(f(x2)-f(x1) float xpoint(float x1,float x2) /求弦与 x 轴交点坐标 float y;

9、 y=(x1*f(x2)-x2*f(x1)/(f(x2)-f(x1); return y; / 求根当 y 的绝对值小于 0.0001时返回 x float root(float x1,float x2) /求根函数 float x,y,y1; y1=f(x1); /y1 为 x1纵坐标 do x=xpoint(x1,x2); /求 x1与 x2之间弦与 x 轴交点赋值于 x y=f(x); /代入方程中求得 y if(y*y10) /判断 y 与 y1是否同号 x1=x; y1=y; else x2=x; while(fabs(y)=0.0001); /设定精度 return(x); voi

10、d main() /主函数 float x1,x2,f1,f2,x; scanf(%d,%d,%d,%d,&a,&b,&c,&d);/ 定义变量,获取 abcd 常量值do printf(input x1,x2:n); scanf(%f %f,&x1,&x2);/ 获取 x1,x2 值f1=f(x1); f2=f(x2); while(f1*f2=0); /do.while函数为了得到 x1与 x2的函数值为异号, 当f1*f20 时跳出循环 , 这样 x1 x2 中才有根x=root(x1,x2); /将 x1 x2 送到求根函数中返回值赋到x 中, 得出根 printf(A root of equalation is %8.4fn,x);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号