function [x1, x2]=roots12(a, b, c)//<---- 傳回值 x1,x2
x1=%nan;x2=%nan; //<--- 初始傳回值先設為無解 (%nan 代表 Not a number)
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
[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