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

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

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

No.99580 の関連記事表示

<< 0 >>
■99580  Re[1]: 乗数  繰り返し処理
□投稿者/ 魔界の仮面弁士 -(2022/05/01(Sun) 11:12:38)
    No99571 (yama さん) に返信
    > 繰り返しの処理を用いて作りたいです
    > 答えというよりはヒントが欲しいです。答えでもいいです

    作成するにあたり、『何に対して繰り返しを行いたい』でしょうか?
    そもそも繰り返しを必要とするような処理には見えなかったです。

    あえて繰り返すとすれば、選択肢として思い当たるのはこの辺り。
     
    (1) 累乗演算部を、繰り返しの掛け算処理として実装する。
    (2) 掛け算処理を、繰り返しの足し算処理として実装する。
    (3) 画面からの入力値が、数値として適切かを繰り返し処理で判定する。

    ---
    (1) や (2) で繰り返し処理を使う手法は、
     【2】の【0.5】乗は【1.4142135623731】
    といった、小数値や負数の場合に実装が複雑になりすぎるので、
    あまり良い処理方法ではないですね。
    設問が『数値を入れて』ではなく、『0 以上の整数を入れて』とか
    『自然数を入れて』といった内容であれば、利用できたのですけれども…。


    (3) については、コンソールアプリで Console.ReadLine() の入力を
    数値判定するような順次処理に対しては有効です。
     Dim num1 As Single, num As Single
     Do
      Console.Write("数値1を入れてください:")
     Loop Until Single.TryParse(Console.ReadLine(), num1)
     Do
      Console.Write("数値2を入れてください:")
     Loop Until Single.TryParse(Console.ReadLine(), num2)


    しかし、WinForms などで、TextBox の入力を
    数値判定するような場面には向かないですね。

    無理矢理、(3) のパターンを Loop ステートメントで実装してみたものがこちら。
    普通は If 文を使うところなので、繰り返し処理になっているかと言うと微妙ですが…。

    Private Sub TextBoxes_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged
      Dim a, b As Double
      Do Until Double.TryParse(TextBox1.Text, a) AndAlso Double.TryParse(TextBox2.Text, b)
        TextBox3.Text = ""
        Return
      Loop
      TextBox3.Text = (a ^ b).ToString()
    End Sub
記事No.99571 のレス /過去ログ173より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -