在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7546|回复: 1

请大家看一下这个程序错在哪儿了?

[复制链接]
发表于 2012-11-8 22:28:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
自己编写的求一元二次方程求根的函数程序:

function
y=roots12(a, b, c)
delta=b^2-4*a*c   
if a==0        
disp
     ("不是一元二次方程")   
elseif a~=0 & delta<0        
disp
      ("方程无实根")
else x1=(-b+delta^(1/2))/(2*a),x2=(-b-delta^(1/2))/(2*a)
end
endfunction

运行老是出错,不知道错哪儿了?
请大家指点一下啊
 楼主| 发表于 2012-11-10 00:42:18 | 显示全部楼层



自己回答吧,从google上得到地回答
function [x1, x2]=roots12(a, b, c)//<---- 傳回值 x1,x2x1=%nan;x2=%nan;  //<--- 初始傳回值先設為無解 (%nan 代表 Not a number)delta=b^2-4*a*cif a==0    disp("不是一元二次方程")elseif a~=0 & delta<0disp("方程无实根")else x1=(-b+delta^(1/2))/(2*a),x2=(-b-delta^(1/2))/(2*a)endendfunction
[x1,x2]=roots12(1,1,1)[x1,x2]=roots12(3,6,1)



要注意 :

    1. 函數傳回值在函數內一定要給值
       你給的函數
                 function y=roots12(a, b, c)
                        //  函數 裡面沒有給 y ,
                 endfunction
        傳回值沒計算, 且兩根沒有傳出來, 這樣不可以
   
    2 正常狀況要傳回兩實根 x1,x2 , 也要考慮無解時也需要傳回值 , 那麼用 %nan 當作無解時的傳回直
       %nan 是 scilab 內定之常數,代表 not a number
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 16:57 , Processed in 0.046182 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表