プログラムで入力した数値を変更したい場合はどのようにすればよいのでしょうか?
初めまして。現在Scilabを用いてプログラムを書いているのですが、入力変数が多いために、入力ミスをしたときに修正するプログラムを書こうとしています。たとえば、
for x=1:100
y(x)=input('y=');disp(y);
end;
という、100個変数を入力する場合を考えているのですが、変数を入力し間違えた場合に、最初からやり直すのは面倒なので、これを補うプログラムを考えてほしいのです><;
入力変数は毎回ことなるので、どこかに保存ということもできず・・・。入力をし間違えた場合にループを一つ戻るようにするにはどのようにすればよいのでしょうか?
No.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);
なるほど。この考えは思いつきませんでした。
たしかにこれなら、入力を失敗しても一つ前に戻ることができますね。
親切な回答ありがとうございました。
No.1
- 回答日時:
入力を後から編集できるようにする、ということは、テキストエディタのような機能を追加する、ということです。
大分、面倒だと思います。
テキストファイルから入力するようにするのが、簡単だと思います。
入力は、普段お使いのテキストエディタなり、Excelなりでできます。
データを確認できたら保存して、そのプログラムから読みこませます。
Scilabは使ったことないので詳しくは解りませんが、ファイルから入力する方法があるはずです。
あるいは、その例にあるプログラムに < でリダイレクトして入力することができるかもしれません。
さっそくのご回答ありがとうございます。返信が遅くなり申し訳ありません。
たしかに、テキストファイルから読み込むほうが、間違いが修正できて、変数が変更になった場合に便利かもしれませんね。
さっそく試してみます。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- Java Java 年数計算 3 2023/01/28 10:52
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Java Java 南京錠 2 2023/02/04 11:46
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- Ruby プログラミング 3 2023/06/09 14:30
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数字以外が入力されたらエラー...
-
*をユーザーが入力した数字の数...
-
Eclipseコンソール表示を、リセ...
-
プログラミング初心者です。 Py...
-
正負を反転させて出力するプロ...
-
C言語について
-
プログラミングC言語について
-
cout関数を使っているのですが...
-
C言語でつるかめ算をするにはど...
-
switch文 defaultについて
-
至急教えてください!プログラ...
-
java初心者です。入力されたの...
-
Userformの入力順序をタブオー...
-
WindowsでEOF
-
C言語
-
MinGWのC言語でCTRL+Zで処理が...
-
C言語scanf_sで何故か2回入力に...
-
C++のcinの動作
-
プログラムの進行が一時ストッ...
-
漢字のソートについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
正負を反転させて出力するプロ...
-
数字以外が入力されたらエラー...
-
プログラミング初心者です。 Py...
-
double型が正常に認識されてい...
-
java初心者です。入力されたの...
-
Eclipseコンソール表示を、リセ...
-
scanfが2回使えない・・・?;
-
C言語scanf_sで何故か2回入力に...
-
if文の条件にscanf関数を使うと…?
-
プログラミングの問題です 「金...
-
Linuxで入力待ちなしkeyread関...
-
ワードで文字を入力する時の変...
-
cout関数を使っているのですが...
-
batプログラム上で文字列を入力...
-
Userformの入力順序をタブオー...
-
scanf が無視されます
-
C言語 逆ピラミッドの作り方
-
gets_sがうまく動かない
-
Excel VBAで、Application.Inpu...
おすすめ情報