プロが教える店舗&オフィスのセキュリティ対策術

2次方程式a*x^2+bx+c=0えお解くプログラムを考える。メインプロシージャmain1がsubプロシージャread1,solve1,display1を1回ずつ呼び出す。プロシージャread1で変数a,b,cにinputboxで整数値を入力する。プロシージャsolve1では、まず判別式D=b^2-4*a*cを計算して、D>0の場合にはx1、x2に実数解x1=(-b+sqr(D)/(2*a)、x2=(-b-sqr(d)/(2*a)を求める。D<0の場合はx1に実部-b/(2*a)を、x2に虚部sqr(-D)/(2*a)を求める。プロシージャdisplay1は入力された3つの整数値とsolve1で得られた2つの変数x1.x2の値を判別式Dの符号に応じてMsgbox関数で表示する。
以上のプログラムをモジュールレベル変数を用いてつくりなさい。

Sub read1() '問10(1)
Dim a As Integer, b As Integer, c As Integer
a = InputBox(" aの値を入力して")
b = InputBox(" bの値を入力して")

Sub solve1()
D = b ^ 2 - 4 * a * c
If D > 0 Then
x1 = (-b + Sqr(D)) / (2 * a)
x2 = (-b - Sqr(D)) / (2 * a)
Else
x1 = -b / (2 * a)
x2 = Sqr(-D) / (2 * a)

Sub display1()

End Sub

ここまでやったのですがこの先どうやるかわかりません。
おしえてください。

あとモジュールレベル変数ってなんですか?

A 回答 (5件)

ヘルプ確認しましたか??


もしかして、関数自体の使い方を知らないとか?
でも、inputbox関数使ってるしね・・・

msgbox関数は、プログラミングの基本中の基本ですよ・・・

Sub display1() <- display1というサブプロシージャ
End Sub <- display1というプロシージャの最後
ってことは、わかってるんですよね?

msgbox関数は、そのプロシージャの中に書けばいいだけなんですが・・
取り合えず、プロシージャの中に、
msgbox("メッセージです",0,me.text)
って入れて、動作を確認してみたらどうですか?
動作が確認できれば、どこにどれを書けばどうなるのかわかると思いますよ。

この回答への補足

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

初心者なんでプログラミングの基礎ができてません。
でもどんどん先に進まれてしまい・・・

とにかくヒントをもとにやってみます。

補足日時:2007/12/05 10:28
    • good
    • 0

あれれ? このままだとオーバーフローでエラーになるでしょ?


ならなかったのかな?

a,b,x1,x2がモジュールレベルで宣言してないないから、エラーになるはずだけど、どうですか?

変数というのは、ブロック内、もしくはプロシージャ内とかあらゆる場所で共有できる範囲が決まっています。ここでのモジュールレベルというのは、そのフォーム(フォームがあれば)全体で使える変数ってことでいいと思いますが・・・
    • good
    • 0
この回答へのお礼

ありがとうございます
解決しました

お礼日時:2007/12/16 19:15

問題にmsgbox関数で表示するって書いてるから、msgbox() <-引数は参考URLを。

ヘルプで「msgbox関数」を検索するとすぐ出るのですが・・

変数やリテラルなどは、一般的に & でくっつきます。

End Sub も抜けてるけど、End Ifも無いよ・・・

参考URL:http://msdn2.microsoft.com/ja-jp/library/139z2az …

この回答への補足

display1()
のヒントをもう少しもらえませんか?
msgbox関数をどのようにいれればうまくできるのでしょうか?
教えてもらえるとありがたいです。

補足日時:2007/12/04 12:29
    • good
    • 0

こんな宿題の丸写しのような質問は、規約的見地から、ご遠慮いただくタイプの質問ではないですか。

先生に聞くとか、回答の解説発表が後日あるのでしょう。
>モジュールレベル変
WEB照会(例えばGoogle)で、「モジュールレベル変数」(VBを加えるか)で照会してください。
http://www.bcap.co.jp/hanafusa/VBHLP/hensu.htm (1例)
沢山説明記事が出ます。
同時に「変数 スコープ」も照会してみたら
ーー
VBではコードの単位は
Sub
END Sub
です。End Subがないのが散見される。
それを分けると変数のスコープの外にナリ、その変数を使えないので
簡単な問題では、できるだけ、単一の中にまとめては。
例 変数入力受け取りと判別式・根の公式計算計算を分けない。
    • good
    • 0
この回答へのお礼

解決しました。

ありがとうがざいます

お礼日時:2007/12/16 19:14

そのモジュール内でのみ有効な変数です。



同じ変数(文字が同じ)でも違うモジュールでは別の変数として扱われます。

課題は、自分の力でやらないと身に付きませんよ?
出来ないのなら、出来たところまでで提出しましょう。それがあなたの実力なのですから。
なんだ、こいつは出来るんじゃないかと思われてどんどん先に進まれるよりは、立ち止まって補習などで勉強した方があなたの為になるような気がしてきました・・・
    • good
    • 0
この回答へのお礼

自分の力でやりたいんですけど初心者なんで
できないんです。
授業もどんどん進み、質問しても答えてもらえないのです。
実際に授業を受けてもらえればわかります。

答えがほしいんではありません。
ヒントがもらえればと思いしつもんしました。

理解してもらえればありがたいです。

お礼日時:2007/12/04 12:15

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