| 2022/05/01(Sun) 11:41:37 編集(投稿者)
■No99580 (魔界の仮面弁士 さん) に返信 > ■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
すみません。 三つ目の【】以外は【】は整数3桁(マイナスあり)まで 三つ目の【】は少数3桁まで 四捨五入 |