- ベストアンサー
プログラムで入力した数値を変更する方法は?
- Scilabを用いてプログラムを書いている場合、入力変数の間違いを修正するためのプログラムを作成したい。
- 入力変数は毎回異なるため、保存することはできない。
- 入力変数に誤りがある場合にループを戻す方法を教えてほしい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
今までScilabを使ったことがなく作法など知りませんので参考と思ってください。 こういうので用は足せるかと思います。 ・ループのカウントはforに任せず自前で行う。 ・入力は一旦文字列で行う。 ・入力がeだったらループ終了。 ・入力がdだったらひとつまえのループに戻る。 ・入力が数字だったら文字列を数値に変換して配列に値を入れて次のループへ。 ・入力が上記以外だったら今のループを維持。 なぜeで終わりみたいなふうにするかというと、こうしておけば例えば入力する数値が100個だったとして、100個目を入れそこなった時でも修正できるからです。 y=[]; x=1; while %t in=input('y('+string(x)+')=','string'); if in <> '' select in case 'e' break; case 'd' if x>1 x=x-1; end else ierr=execstr('num=eval(in)','errcatch'); if ierr == 0 y(x)=num; x=x+1; end end end end disp(y);
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
入力を後から編集できるようにする、ということは、テキストエディタのような機能を追加する、ということです。 大分、面倒だと思います。 テキストファイルから入力するようにするのが、簡単だと思います。 入力は、普段お使いのテキストエディタなり、Excelなりでできます。 データを確認できたら保存して、そのプログラムから読みこませます。 Scilabは使ったことないので詳しくは解りませんが、ファイルから入力する方法があるはずです。 あるいは、その例にあるプログラムに < でリダイレクトして入力することができるかもしれません。
お礼
さっそくのご回答ありがとうございます。返信が遅くなり申し訳ありません。 たしかに、テキストファイルから読み込むほうが、間違いが修正できて、変数が変更になった場合に便利かもしれませんね。 さっそく試してみます。 ご回答ありがとうございました。
お礼
なるほど。この考えは思いつきませんでした。 たしかにこれなら、入力を失敗しても一つ前に戻ることができますね。 親切な回答ありがとうございました。