C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 >>
■12241  Re[1]: 質問)コマンドライン引数を使った加算・減算
□投稿者/ Azulean -(2008/01/06(Sun) 01:08:46)
    コード上で対処すべきこと
    ・argsは0番目から参照して下さい

    コード上で対処した方が良いこと
    ・args[0]を参照する前にargs.Lengthを事前にチェックする(3個以上引数がなければ、コマンドライン引数が不正ですとエラーにする等)
    ・Int32.Parseではなく、Int32.TryParseを使う(数値以外が入力されたときに落ちないようにする)

    > の部分で「配列の境界外」という警告が出ました。
    どうした時にその例外が表示されたのですか?(警告ではありません)
    F5キーやCtrl+F5キーで起動したときですか?

    デバッグ時にコマンドライン引数を指定したいときは、プロジェクトのプロパティのデバッグタブから設定できます。
    ここで何も設定しなかったときはコマンドライン引数がありませんので、要素数0の配列の1番目を参照しているので例外となるのは当然といえます。

    > が原因(と思いますが)
    > 「プログラムを指定して実行」を起動→引数をとって
    > 実行したのですが一瞬だけしかコマンドラインが表示されないので
    > 対処法を教えてください。
    デバッグ時は前述の方法で対処してください。
    リリース時はスタート→すべてのプログラム→アクセサリ→コマンドプロンプトを開き、C:\(省略)\ConsoleApllication1.exe 12 + 32といったコマンドを打ち込んでください。
記事No.12238 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12240  Re[2]: 質問)コマンドライン引数を使った加算・減算
□投稿者/ Yosi -(2008/01/06(Sun) 01:06:08)
    No12239 (いしだ さん) に返信
    >>value1 = Int32.Parse(args[1]);
    > args[0]ですね。
    > その他も同様に修正してください。
    >

    args[0]に戻したんですが
    「インデックスが配列の境界外です」と表示されました
記事No.12238 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12242  Re[3]: 質問)コマンドライン引数を使った加算・減算
□投稿者/ いしだ -(2008/01/06(Sun) 01:08:54)
    > > args[0]に戻したんですが
    > 「インデックスが配列の境界外です」と表示されました
    全てなおしましたか?


    value1 = Int32.Parse(args[1]);
    value2 = Int32.Parse(args[3]);
    kigou = (args[2])[0];


    value1 = Int32.Parse(args[0]);
    value2 = Int32.Parse(args[2]);
    kigou = (args[1])[0];

    コマンドライン引数はたとえば、
    1 + 2
    って感じですよね?
記事No.12238 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12244  Re[4]: 質問)コマンドライン引数を使った加算・減算
□投稿者/ Yosi -(2008/01/06(Sun) 01:12:34)
    No12242 (いしだ さん) に返信
    > コマンドライン引数はたとえば、
    > 1 + 2
    > って感じですよね?
    >

    さっきのargs[0]のところは
    全部修正しなおしました。

    そうですね、「数字 +か- 数字」と
    いうやつです
記事No.12238 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12246  Re[5]: 質問)コマンドライン引数を使った加算・減算
□投稿者/ いしだ -(2008/01/06(Sun) 01:20:02)
    2008/01/06(Sun) 01:23:53 編集(投稿者)

    以下のようにしてみて、コマンドライン引数がちゃんと設定
    されているかみてみてはどうでしょう?

    static void Main(string[] args)
    {
    int value1;
    int value2;
    char kigou;

    Console.WriteLine("arg[0] = [" + args[0] + "]");
    Console.ReadLine();
    Console.WriteLine("arg[1] = [" + args[1] + "]");
    Console.ReadLine();
    Console.WriteLine("arg[2] = [" + args[2] + "]");
    Console.ReadLine();

    value1 = Int32.Parse(args[0]);
    value2 = Int32.Parse(args[2]);
    kigou = (args[1])[0];

    int answer = 0;
    switch (kigou)
    {
    case '-':
    answer = value1 - value2;
    break;
    case '+':
    answer = value1 + value2;
    break;
    }

    Console.WriteLine("答えは" + answer + "です");

    Console.ReadLine();
    }

    本当は、ブレークポイントを置いてみてみるのが一番だと思います。
記事No.12238 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12245  Re[5]: 質問)コマンドライン引数を使った加算・減算
□投稿者/ επιστημη -(2008/01/06(Sun) 01:19:11)
>
    空白で区切らずに

    sample19 1+2

    とか入力したんじゃなくて?
記事No.12238 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12243  Re[2]: 質問)コマンドライン引数を使った加算・減算
□投稿者/ Azulean -(2008/01/06(Sun) 01:10:23)
    > リリース時はスタート→すべてのプログラム→アクセサリ→コマンドプロンプトを開き、C:\(省略)\ConsoleApllication1.exe 12 + 32といったコマンドを打ち込んでください。
    「リリース時」は「Visual C#を使わずに確かめるとき」に訂正しておきます。
記事No.12238 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12247  Re[3]: 質問)コマンドライン引数を使った加算・減算
□投稿者/ Yosi -(2008/01/06(Sun) 01:24:15)
    No12243 (Azulean さん) に返信
    >>リリース時はスタート→すべてのプログラム→アクセサリ→コマンドプロンプトを開き、C:\(省略)\ConsoleApllication1.exe 12 + 32といったコマンドを打ち込んでください。
    > 「リリース時」は「Visual C#を使わずに確かめるとき」に訂正しておきます。

    みなさんありがとうございます。
    参考にします
記事No.12238 のレス / END /過去ログ26より / 関連記事表示
削除チェック/

■12248  Re[4]: 質問)コマンドライン引数を使った加算・減算
□投稿者/ Azulean -(2008/01/06(Sun) 01:41:26)
    結果として次の点が問題だったのでしょうか?

    ・argsのインデックスの間違い
    ・コマンドライン引数の与え方が分からない or すぐにウィンドウが消えて確認ができない

    Visual C#の環境からでもコマンドライン引数は与えられますので、この機会に試してみてください。

    1.「プロジェクト」メニューから「(プロジェクト名)のプロパティ」を選択する
    2.表示される画面の左側に「デバッグ」という項目があるので選択する
    3.「コマンド ライン引数」というテキストボックスがあるので、ここにコマンドライン引数として与えたい文字列を入力する。
    〜ここまでで設定〜
    4.デバッグ開始(F5キーまたは右向きの緑色の三角ボタン)やデバッグなしで実行(Ctrl+F5キー)を行う
記事No.12238 のレス / END /過去ログ26より / 関連記事表示
削除チェック/

■12183  For nextについて
□投稿者/ ドラゴン -(2008/01/03(Thu) 14:24:40)

    分類:[VB.NET/VB2005] 

    三度目の質問ですが、
    今回はFor...Nextを使って 銀行預金額を計算するというプログラム作成にあたっていたのですが
    2週間ほど、手詰まりをしております

    Dim StartAge1 As Single '銀行預金を始めた年齢
    Dim StopAge1 As Single '銀行預金を終えた年齢
    Dim AnDepo1 As Single '毎年の預金額
    Dim IntRate1 As Double '銀行利子
    Dim Age As Single '年
    Dim IRA As Single '利子のパーセンテージ
    Dim Profit As Single '利子増加額

    StartAge1 = Val(StartAge.Text) '銀行預金開始時の年齢
    StopAge1 = Val(StopAge.Text) '銀行預金を終えた年齢
    AnDepo1 = Val(AnDepo.Text) '毎年の預金額
    IntRate1 = Val(IntRate.Text) / 100 '利子を100で割ってパーセンテージ化に




    For StartAge1 = StartAge.Text To StopAge.Text '銀行預金開始した年から終える年まで計算(開始時を1とする)

    Age = StartAge1 + (StopAge1 - StartAge1) '銀行預金開始してから終了するまでの年数を計算
    AnDepo1 = AnDepo1 * Age '毎年の預金額×
    IRA = AnDepo1 + Profit '合計預金額+利子
    Profit = (AnDepo1 * IntRate1) '銀行の預金額を利子分割って、利子による増加額を計算


    Result.Text = Result.Text & Age & vbTab & AnDepo1 & vbTab & IRA & vbTab & vbTab & Profit & vbNewLine '結果として、X歳時の合計預金額、合計預金+利子、合計利子を表示する

    Next

    End Sub

    問題点1: Ageの数値が全て同じ()
    問題点2: 利子が小数点2個以内に納まらない
親記事 /過去ログ26より / 関連記事表示
削除チェック/

■12184  Re[1]: For nextについて
□投稿者/ επιστημη -(2008/01/03(Thu) 14:48:31)
>
    > 問題点1:   Ageの数値が全て同じ()
    
         Age = StartAge1 + (StopAge1 - StartAge1) '銀行預金開始してから終了するまでの年数を計
             = StartAge1 + StopAge1 - StartAge1
             = StopAge1
    
      ... そりゃそーだ。
    
    > 問題点2:   利子が小数点2個以内に納まらない
    
     小数点2個以内に納める処理はどこですか? どこにも見当たりませんけど。
    
    
記事No.12183 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12185  Re[1]: For nextについて
□投稿者/ 通りすがり -(2008/01/03(Thu) 16:49:05)
    型とかまったく意識できてないし。
    掲示板で聞く前の段階だと思う。
記事No.12183 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12191  Re[1]: For nextについて
□投稿者/ Jitta -(2008/01/03(Thu) 21:46:02)
>
    No12183 (ドラゴン さん) に返信
    > 三度目の質問ですが、
    > 今回はFor...Nextを使って 銀行預金額を計算するというプログラム作成にあたっていたのですが
    > 2週間ほど、手詰まりをしております
    >
    > Dim StartAge1 As Single '銀行預金を始めた年齢
    > Dim StopAge1 As Single '銀行預金を終えた年齢
    > Dim AnDepo1 As Single '毎年の預金額
    > Dim IntRate1 As Double '銀行利子
    > Dim Age As Single '年
    > Dim IRA As Single '利子のパーセンテージ
    > Dim Profit As Single '利子増加額

     Single って。。。いや、まぁ、いいんだけど。。。


    > StartAge1 = Val(StartAge.Text) '銀行預金開始時の年齢
    > StopAge1 = Val(StopAge.Text) '銀行預金を終えた年齢
    > AnDepo1 = Val(AnDepo.Text) '毎年の預金額

     TextBox.Text は「文字」です。Single は「数値」です。数値と文字は違うものです。
    どっちかというと、Single.TryParse を使ってほしい。。。


    > IntRate1 = Val(IntRate.Text) / 100 '利子を100で割ってパーセンテージ化に

     ん。。。まぁ、あれです。デバッガで、IntRate1 がいくらになっているか、確認してください。
    おそらく、IntRate には、3% なら "3" という数値を入れていると思います。
    すると、これは「整数」に変換されます。
    割る数である 100 も整数です。ここは、「整数÷整数」の計算が行われ、結果が「整数」で取り出されます。
    その後、IntRate1 の型である Double に変換されます。結果、0.0 になっていると思います。



    >
    > For StartAge1 = StartAge.Text To StopAge.Text '銀行預金開始した年から終える年まで計算(開始時を1とする)

     文字を、ある文字から他の文字まで、変化させることはできません。
    (まぁ、VB は、勝手に変換してくれたりしちゃうんだ)



    > Age = StartAge1 + (StopAge1 - StartAge1) '銀行預金開始してから終了するまでの年数を計算

     (StopAge1 - StartAge1) が負数だったら、どうします?
    で、「銀行預金を始めた年齢+(銀行預金を終えた年齢−銀行預金を始めた年齢)」は、「銀行預金を終えた年齢」と同じになっていると思うのですが、どうでしょう?



    > AnDepo1 = AnDepo1 * Age '毎年の預金額×
    > IRA = AnDepo1 + Profit '合計預金額+利子
    > Profit = (AnDepo1 * IntRate1) '銀行の預金額を利子分割って、利子による増加額を計算

     んっと。。。ここって、こんな計算でいいんです?
    あ、Age の計算が間違っているんだった。



    >
    >
    > Result.Text = Result.Text & Age & vbTab & AnDepo1 & vbTab & IRA & vbTab & vbTab & Profit & vbNewLine '結果として、X歳時の合計預金額、合計預金+利子、合計利子を表示する

     ん。。。String.Format 使ってください。



    >
    > Next
    >
    > End Sub
    >
    > 問題点1: Ageの数値が全て同じ()
    > 問題点2: 利子が小数点2個以内に納まらない
    >
記事No.12183 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12201  Re[2]: For nextについて
□投稿者/ 未記入 -(2008/01/04(Fri) 20:48:21)
    理屈で理解できない状況だと思われるので Option Strict On にして潰すところから始めることをお勧めします。
記事No.12183 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12249  Re[2]: For nextについて
□投稿者/ よねKEN -(2008/01/06(Sun) 04:52:51)
    部分的にツッコミ。

    No12191 (Jitta さん) に返信
    >> IntRate1 = Val(IntRate.Text) / 100 '利子を100で割ってパーセンテージ化に
    >
    >  ん。。。まぁ、あれです。デバッガで、IntRate1 がいくらになっているか、確認してください。
    > おそらく、IntRate には、3% なら "3" という数値を入れていると思います。
    > すると、これは「整数」に変換されます。

    Val関数は基本的にDouble型を返す関数ですので、整数には変換されていないのではないでしょうか。
    #Option Strict Offで、入力が1桁の数字の場合、
    #Val(IntRate.Text)がひょっとしたら整数を返すかもしれませんが、その辺は未検証です。

    > 割る数である 100 も整数です。ここは、「整数÷整数」の計算が行われ、結果が「整数」で取り出されます。
    > その後、IntRate1 の型である Double に変換されます。結果、0.0 になっていると思います。

    VBの / 演算子は小数同士の演算ですので、整数 / 整数はDouble / Doubleとして処理されます。
記事No.12183 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12198  データ型について
□投稿者/ ゴン太 -(2008/01/04(Fri) 20:29:47)

    分類:[.NET 全般] 

    データ型ですが、言語によっては、型を宣言しなくても自動的に解釈
    してくれる言語がありますが、あれは、OSがそうした機能をもっている
    と解釈してよろしいのでしょうか?
親記事 /過去ログ26より / 関連記事表示
削除チェック/

■12200  Re[1]: データ型について
□投稿者/ 未記入 -(2008/01/04(Fri) 20:43:48)
    No12198 (ゴン太 さん) に返信
    > データ型ですが、言語によっては、型を宣言しなくても自動的に解釈
    > してくれる言語がありますが、あれは、OSがそうした機能をもっている
    > と解釈してよろしいのでしょうか?

    いいえ、ケフィアです。

    OS に依存しちゃまずいでしょう・・・
記事No.12198 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12203  Re[2]: データ型について
□投稿者/ 未記入 -(2008/01/04(Fri) 21:01:28)
    書き忘れましたが、「自動的に解釈」というのが var のことなのかそれとも VB なんかにある遅延バインディングのことなのかわからないですね。具体的にどの言語のどの機能を言っているのでしょう? とりあえず OS はありえないと書いてしまいましたが。
記事No.12198 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12206  Re[3]: データ型について
□投稿者/ ゴン太 -(2008/01/04(Fri) 21:54:33)
    No12203 (未記入 さん) に返信
    > 書き忘れましたが、「自動的に解釈」というのが var のことなのかそれとも VB なんかにある遅延バインディングのことなのかわからないですね。具体的にどの言語のどの機能を言っているのでしょう? とりあえず OS はありえないと書いてしまいましたが。
    何と説明したらよいのかわかりませんが、例えばrubyなどはデータ型を宣言しなくても
    よいですよね。これらの言語はどのようにデータ型を判別するようにできているのでしょうか?

    それとVB2008は、データ型を宣言しなくてもよくなったという噂を聞きましたが本当でしょうか?
記事No.12198 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12210  Re[4]: データ型について
□投稿者/ Tom Yama -(2008/01/04(Fri) 23:53:36)
    No12206 (ゴン太 さん) に返信
    > 何と説明したらよいのかわかりませんが、例えばrubyなどはデータ型を宣言しなくても
    > よいですよね。これらの言語はどのようにデータ型を判別するようにできているのでしょうか?
    データ自身が、自分の型を知っているのです。

    > それとVB2008は、データ型を宣言しなくてもよくなったという噂を聞きましたが本当でしょうか?
    未記入さんが書かれている var のことですね。
    データ型を明示的に宣言せずに、コンパイラに推論させる機能が追加されています。
    が、いつでも、使えるわけではありません。ので、「しなくてもよくなった」というのは、誤解だと、言っておきます。
記事No.12198 のレス /過去ログ26より / 関連記事表示
削除チェック/

<前の20件 | 次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 >>

ヒット件数が多いので過去ログ1〜26 までの検索結果 / 過去ログ27からさらに検索→

パスワード/

- Child Tree -