[過去ログ] 高校数学の質問スレ Part434 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
486
(1): 2024/04/24(水)13:43 ID:4QhK5edU(2/2) AAS
>>482
逆の言い方をすると、Rがあれで上手くいっているのは、
真になるif文に出会った時、return命令に従って関数を抜けているから。
その際、returnの直後に書かれているものが、関数の値となる。

mathematica方の、re=...はただの代入文。関数から抜ける命令など含まれていない。
流れに従って次の命令が実行される。
あの書き方では、三つのIf文は、必ず処理され、reに何かの値が代入されるかもしれないが、いずれ場合であろうとも、
re=x+y*Iが最終的な値になる。その計算の最中にエラーが生じる。

If文をネストして正しい流れのプログラムにする方法もあるが、次のような方法もある。
re=Which[
(a2-b2)(c1-d1)==(a1-b1)(c2-d2),Null,
(a-b)*(c-d)==0,Null,
a1==b1 && c1!=d1,a1+((d2-c2)/(d1-c1)(a1-c1)+c2),
a1!=b1 && c1==d1,re=c1+((a2-b2)/(a1-b1)(c1-a1)+a2)I,
True,p=(a2-b2)/(a1-b1);q=(c2-d2)/(c1-d1);x= ((p*a1 - a2) - (q*c1 - c2))/ (p-q);y= p*x - (p*a1 - a2);x+y*I
]
1-
あと 516 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.012s