どうもお久しぶりです・・・。
受験が終り、高校にやっとなれはじめた雷電です。
今回は、文字から変更した数字についてです。
文字列を数字に変更する関数はVal関数でいいのですが、
その変更した後、変更された数字を足し算したいのです。
例えば、文字列が12345だとすると、
1+2+3+4+5の計算をしたいのです。
一字ずつ切り出して、計算したいのですが、どなたかご教授ください・・・
数字の足し算
文字列の抽出演算
お世話になります。
突貫プログラムです。
バグがあったら報告願います。
突貫プログラムです。
バグがあったら報告願います。
コード: 全て選択
#N88BASIC
Dim Mojiretu$ As String
Dim Kotae As Long
Dim q As String
Mojiretu$="0123456789"
Kotae=MojiCal(Mojiretu$,0)
Print Kotae
Input "終了しました。(Hit Enter Key)";q
End
Function MojiCal(Mojiretu$ As String,Kotae As Long) As long
Dim Mojisuu As Long
Dim i As Long
Mojisuu=Len(Mojiretu$)
For i=1 To Mojisuu
Kotae=Kotae+Val(Mid$(Mojiretu$,i,1))
Next i
MojiCal=Kotae
End Function
文字列を数値に変換した後に作業をするので、下でもいいと思います。
コード: 全て選択
#console
Dim Strings As *Byte
Strings="0123456789"
Print Calc_AddPlace(Val(Strings))
Print Calc_AddPlace(123456789)
Sleep(-1)
Function Calc_AddPlace(src As DWord) As DWord
Dim dst=0 As DWord
While src
dst=dst+(src Mod 10)
src=src\10
Wend
Calc_AddPlace=dst
End Function
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
>>tks
文字列を数字と見なした時の各桁の値の合計を求めるのが雷電さんの目的だと思ったのですが、
何かやってることが違うように見えます。
文字列を数字と見なした時の各桁の値の合計を求めるのが雷電さんの目的だと思ったのですが、
何かやってることが違うように見えます。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
文字列から数値を抽出して合計する
お世話になります。
konisiさんにはいつも勉強させられます。
tksさんのプログラムは10を入力すると1~10までの合計55が答え、
例えが「1+2+3+4+5の計算をしたいのです」どおりですね。
ちょっと拡大解釈しすぎの2桁対応バージョンも作ってみました。
「カンマ区切りの不定長桁数もありかな?」
konisiさんにはいつも勉強させられます。
tksさんのプログラムは10を入力すると1~10までの合計55が答え、
例えが「1+2+3+4+5の計算をしたいのです」どおりですね。
ちょっと拡大解釈しすぎの2桁対応バージョンも作ってみました。
「カンマ区切りの不定長桁数もありかな?」
コード: 全て選択
#N88BASIC
Dim Mojiretu$ As String
Dim Kotae As Long
Dim q As String
Mojiretu$="00112233445566778899"
Kotae=MojiCal(Mojiretu$,0)
Print Kotae
Input "終了しました。(Hit Enter Key)";q
End
Function MojiCal(Mojiretu$ As String,Kotae As Long) As long
Dim Mojisuu As Long
Dim i As Long
Mojisuu=Len(Mojiretu$)
For i=1 To Mojisuu Step 2
Kotae=Kotae+Val(Mid$(Mojiretu$,i,2))
Next i
MojiCal=Kotae
End Function
ちょっと遅れましたがCSV版を作れとの事なので作ってみました。
コード: 全て選択
#console
Dim Strings As *Byte
Strings="23,432,54,2,0,123,-43"
Print Calc_AddCSV(Strings)
Sleep(-1)
Function Calc_AddCSV(src As *Byte) As Double
Dim src$ As String,find_old=1 As Long,find=-1 As Long
Dim dst$ As String,dst=0 As Double
src$=MakeStr(src)
Do
find=InStr(find_old,src$,",")
If find then
dst$=Mid$(src$,find_old,find-find_old)
dst=dst+Val(dst$)
find_old=find+1
Else
dst$=Mid$(src$,find_old,Len(src$)-find_old+1)
dst=dst+Val(dst$)
Exit Do
End If
Loop
Calc_AddCSV=dst
End Function
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
文字列から数値を抽出し計算(CSV版)について
お世話になります。
> ちょっと遅れましたがCSV版を作れとの事なので作ってみました。
おみそれしました。
これって、実践コードモジュールに登録できるのでは?
参考になります。
ありがとうございました。
> ちょっと遅れましたがCSV版を作れとの事なので作ってみました。
おみそれしました。
これって、実践コードモジュールに登録できるのでは?
参考になります。
ありがとうございました。