電子書籍の厳選無料作品が豊富!

「最大」と「最小」の値が出る欄をそれぞれtextbox1・2として、button1のテキスト名を「計算」とおくことが前提です。
「計算」をクリックするとinputboxが出てきて、いくつか数字を入力していくと、該当する数字があれば入力するたびにその最大と最小が更新され、「dat」と入力するとinputboxが閉じるようなプログラムはどのようにすればいいでしょうか?
 Do While ~ Loopを使ってお教えください。よろしくお願いいたします。
 

A 回答 (6件)

回答ではありませんが、気になったことが1つ



TextBox2に表示したい値は【最小値】(←ここ重要)ですよね?

もう一度ソースをじっくり見てみましょう。
いわゆる「バグ」が見つかるはずです。


「値が表示されない」ことに対する自分的な解決法
1.値を格納する変数は宣言されているか
 →ソースを参照
2.変数に値を格納しているか
 →ソースを参照
3.変数に正しい値が格納されているか
 →ウォッチやプリント文を使って内容を表示
4.値を表示する場所は確保されているか
 →ソースを参照
5.表示する場所に正しい値が設定されているか
 →ソースを参照
6.「5.」で正しい値が表示されない場合
 →表示する直前に変数に格納された値が変更されていないか
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2006/01/16 19:12

自分のレベルに対して、難しいことをしようとしているようなので、最初は、



入力した数字が、

10より大きいなら「おおきい」、
10より小さいなら「小さい」、
10に等しいなら「等しい」、
それが数字でなければ「判定不可」

と表示する程度の物を作ればよいでしょう。
これだけでも知識が増える上に、応用も考えられるので練習にはちょうどよいです。
    • good
    • 0
この回答へのお礼

再度のご回答ありがとうございます。
そうなんです。学校で習ってるところなんですが、いきなり出された課題なので、今の自分にとってはレベルが少々高い問題なのです。C言語も習い始めなので、それも式に取り入れてみたのですがうまく行かず…。

お礼日時:2006/01/15 13:17

Visual Basicと一口に言っても、VB6, VB.NET, VBA, VBS があります。


Formを扱わないVBSは別として、他はイベントドリブンのプログラムになります。

●イベントドリブンとは?
http://e-words.jp/w/E382A4E38399E383B3E38388E383 …

Do While ~ Loopを使ってということですが、この条件が既にイベントドリブンの設計思想に逆らうものになっています。
(DoEventをループ内に挟む逃げ道がありますが、処理の流れを不透明にする諸悪の根源になってしまいます)
この条件を取らないと、一般的なVBのプログラムには納まりません。

それと「inputbox」ですが、これはInputBox関数を指しているのだと想像しますが、InputBox関数は、表示して値入力されて戻るまで、それで1ステップの命令です。
「入力するたびにその最大と最小が更新され」という処理は、TextBoxにイベント処理を設けないと出来ないことなので、InputBox関数を用いての実現は不可能です。
(何らかの方法でAPIに頼るとかは除く)

よってここは、inputboxを模したダイアログを作成して、TextBoxに変更時イベントを付けて、そこで最大最小値の更新処理と、ダイアログを閉じる判定を行えばよいでしょう。
ただし、これでも、コンソールアプリケーションのUIを、ウィンドウ上にそのまま載せた妙ちきりんなものであることに変わりはありません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。自分のVBとは、VB.NETのことです。
inputboxに入れる数字はa、最大はmax、最小はminと宣言しておいて、Loopの中で
if(a>max)
max=a
textbox1=max

if(a<min)
min=a
textbox2=max

としてみたのですが、maxに該当する数字は入力後に表示されるものの、minは数字すら表示されません。minに代入されるaにポインタを移動させたら、aには最大が代入されたままになっていることがわかりました。どのような計算式が必要なのでしょうか?最初に最小値を求めればよかったのですか?

お礼日時:2006/01/15 12:40

宿題のようで、ずばりコードを答えてはならない、との当サイトのルールのようなので、筋道だけ。


ーーーー
最大値(変数)を宣言
最小値(変数)を宣言
ーー以下を繰り返す
終了データであれば繰り返しを抜ける
 第1回目
  最大値=第1データ
  最長値=第1データ
 第2データ以下
  最大値より大か 最大値=当データ 
  次の繰り返しへ
  でなければ
  最小値より小か 最小値=当データ 
次の繰り返し
ーーループの終わり
閉じる
終了
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
inputboxに入れる数字はa、最大はmax、最小はminと宣言しておいて、Loopの中で
if(a>max)
max=a
textbox1=max

if(a<min)
min=a
textbox2=max

としてみたのですが、maxに該当する数字は入力後に表示されるものの、minは数字すら表示されません。minに代入されるaにポインタを移動させたら、aには最大が代入されたままになっていることがわかりました。どのような計算式が必要なのでしょうか?最初に最小値を求めればよかったのですか?回答者さんの筋道とは違うようですか?

お礼日時:2006/01/15 12:39

直接の答えではありませんが、ヒントです。



Do While ~ Loop はループです。条件が満たされるまで、内部の処理が繰り返し実行されます。そこで、次のような処理を記述します。

(1) Do While~Loopにdatと入力されればループを抜ける条件式を指定する。
(2) ループ内では、データを入力し、最小・最大値の判定を行う。

最小、最大を求めるには、それぞれ最小、最大値を入れる変数を定義しておきます。
入力された値が、変数に入れておいた最小値よりも小さければ、その値を最小値の変数に入れます。同じように、入力された値が、変数に入れておいた最大値よりも大きければ、その値を最大値の変数に入れます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
inputboxに入れる数字はa、最大はmax、最小はminと宣言しておいて、Loopの中で
if(a>max)
max=a
textbox1=max

if(a<min)
min=a
textbox2=max

としてみたのですが、maxに該当する数字は入力後に表示されるものの、minは数字すら表示されません。minに代入されるaにポインタを移動させたら、aには最大が代入されたままになっていることがわかりました。どのような計算式が必要なのでしょうか?最初に最小値を求めればよかったのですか?

お礼日時:2006/01/15 12:38

どこまでそれをコーディングをしてあって、


どの点が不明なのでしょうか?
    • good
    • 0
この回答へのお礼

おはようございます。
簡単にいうと、inputboxに入れる数字はa、最大はmax、最小はminと宣言しておいて、Loopの中で
if(a>max)
max=a
textbox1=max

if(a<min)
min=a
textbox2=max

としてみたのですが、maxに該当する数字は入力後に表示されるものの、minは数字すら出ません。どのような計算式が必要なのでしょうか?

お礼日時:2006/01/15 09:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!