欢迎来到天天文库
浏览记录
ID:38361904
大小:19.93 KB
页数:3页
时间:2019-06-11
《伪代码经典案例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、求一元二次方程的根设计并编写一个程序,用来求解一元二次方程的根。答案:我们将本章开头介绍的方法进行编程。1.陈述问题这个问题的陈述非常的简单,我们要求一元二次方程的根,不管它的根是实根还是复根,有一个根还是两个根。2.定义输入和输出本程序的输入应为系数a,b,cax2+bx+c=0(3.1)输出量应为两个不相等的实数。两个相等的实数或两个复数。3.写出算法本程序可分为三大块,它的函数分别为输入,运算过程和输出。我们把每一个大块分解成更小的,更细微的工作。根据判别式的值,可能有三种计算途径。读取输入的数
2、据计算出根输入出根所以我们要用到有三种选项的if结构。产生的伪代码如下Prompttheuserforthecoefficientsa,b,andc.Reada,b,andcdiscriminant←b^2-4*a*cifdiscriminat>0x1←(-b+sqrt(discriminant))/(2*a)x1←(-b-sqrt(discriminant))/(2*a)Writemsgthatequationhastwodistinctrealroots.Writeoutthetworoots.e
3、lseifdiscriminant==0x1←-b/(2*a)Writemsgthatequationhastwoidenticalrealroots.Writeouttherepeatedroots.elsereal_part←-b/(2*a)imag_part←sqrt(abs(discriminant))/(2*a)Writemsgthatequationhastwocomplexroots.Writeoutthetworoots.end4.把算法转化为MATLAB语言%Scriptfile:c
4、alc_roots.m%%Purpose:%Thisprogramsolvesfortherootsofaquadraticequation%oftheforma*x^2+b*x+c=0.Itcalculatestheanswers%regardlessofthetypeofrootsthattheequationpossesses.%%Recordofrevisions:%DateProgrammerDescriptionofchange%==============================
5、===%12/04/98S.J.ChapmanOriginalcode%%Definevariables:%a--Coefficientofx^2termofequation%b--Coefficientofxtermofequation%c--Constanttermofequation%discriminant--Discriminantoftheequation%imag_part--Imagpartofequation(forcomplexroots)%real_part--Realparto
6、fequation(forcomplexroots)%x1--Firstsolutionofequation(forrealroots)%x2--Secondsolutionofequation(forrealroots)%Prompttheuserforthecoefficientsoftheequationdisp('Thisprogramsolvesfortherootsofaquadratic');disp('equationoftheformA*X^2+B*X+C=0.');a=input(
7、'EnterthecoefficientA:');b=input('EnterthecoefficientB:');c=input('EnterthecoefficientC:');%Calculatediscriminantdiscriminant=b^2-4*a*c;%Solvefortheroots,dependingonthevlaueofthediscriminant.ifdiscriminant>0%therearetworealroots,so...x1=(-b+sqrt(discrim
8、inant))/(2*a);x2=(-b-sqrt(discriminant))/(2*a);disp('Thisequationhastworealroots:');fprintf('x1=%f',x1);fprintf('x2=%f',x2);elseifdiscriminant==0%thereisonerepeatedroot,so...x1=(-b)/(2*a);disp('Thisequationhastwoidenticalreal
此文档下载收益归作者所有