http://www.dotup.org/uploda/www.dotup.org5374481.txt
上記のコードを実行し、ボタンをクリックすると プロジェクトdiscuss5.exeは例外クラスEInValidOp(メッセージ'不正な浮動小数点数演算命令')を検出しました というエラーが出ます。
そのエラーを解決したいです。
ブレイクするとprocedure discussionphase(advocacy : integer); の真ん中ほどにある for i := 1 to 3 do mean[i] := mean[i] / k2[i]; がフォーカスされます。
meanを7や7.123など変数に入っていない状態のただの数値で割るとエラーは出ないのですがk2という変数で割るとエラーが出てしまいます。
mean、k2ともに小数点の切り上げ切り下げをを試してみてもエラーが出ました。
もし解決方法をご存じの方がいらしたら教えていただけないでしょうか。
よろしくお願いします。
とりあえずループを
for i := 1 to 3 do
begin
mean[i] := mean[i] / k2[i];
end;
とばらして、mean[i] := の行にブレークポイントを置いて、エラーが発生する直前の
各ローカル変数の値を確かめてみる、というのはどうですか?あとこのループに
入る直前のmean[]とk2[]の各要素の値の確認も。
特におかしいところはありませんでした。
meanとk2にも値がちゃんと入っています。
場合によってはk[i]に0が入ることがあり、0で割っていたのでエラーが出ていました。
単純なミスでした、気が付かないまま質問していまい申し訳ありませんでした。
回答ありがとうございました。