0

私は次の与えられたパラメータを持っています:

Alphabet   Provided Value

S           2
U           3
M           5

デフォルトのテキストSUMを含むテキストボックスと、SUMの結果を表示するラベルがあります。s=2、U=3、M=5の場合、S + U + Mのようにテキストボックスに挿入されたすべてのアルファベットと結果を合計したい出力としてラベルに表示されるのは 10 です

それを行うためのプログラムを書きたい... VB.NETで

編集:

Dim text = textbox1.text 
Dim sum = 0 
For Each c As Char In text 
    sum += c - 64 
Next
4

1 に答える 1

2

問題は、Char から 64 を減算しようとしていることにあると思います。コードを試すと、「-」演算子が「Char」および「Integer」型に対して定義されていません。

AscASCII 値を取得するために使用してみてください:

Dim text As String = textbox1.Text
Dim sum As Integer = 0

For Each c As Char in text
    sum += Asc(c) - 64
Next

ただし、SUM は 10 ではなく 53 になります。特定の文字の数値を決定するためにどのシステムを使用していますか? あなたが投稿したコードは、64 の減算を示しています。

編集

各文字に事前定義された数値があると仮定するとDictionary、キーとして Char を、値として Integer を使用して、それらを に配置します。次に、次のようなことができます。

Dim letterValues As New Dictionary(Of Char, Integer)

letterValues.Add("S", 2)
letterValues.Add("U", 3)
letterValues.Add("M", 5)
' You can add every letter with its predefined value this way

Dim text As String = textbox1.Text
Dim sum As Integer = 0

For Each c As Char in text
    sum += letterValues(c)
Next

結果は10になります。

于 2013-04-23T08:11:26.043 に答える