数字の足し算

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 数字の足し算

文字列から数値を抽出し計算(CSV版)について

by omasu » 2008年4月12日(土) 22:48

お世話になります。

 > ちょっと遅れましたがCSV版を作れとの事なので作ってみました。

おみそれしました。

 これって、実践コードモジュールに登録できるのでは?

参考になります。

 ありがとうございました。

by konisi » 2008年4月12日(土) 21:28

ちょっと遅れましたが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

by 雷電 » 2008年4月12日(土) 21:15

多数の返信ありがとうございます。
一応できましたww

ありがとうございましたw

文字列から数値を抽出して合計する

by omasu » 2008年4月12日(土) 20:56

お世話になります。

 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

by konisi » 2008年4月12日(土) 20:23

>>tks
文字列を数字と見なした時の各桁の値の合計を求めるのが雷電さんの目的だと思ったのですが、
何かやってることが違うように見えます。

数字の足し算

by tks » 2008年4月12日(土) 19:35

コード: 全て選択


#prompt
2 Dim A As Long'数字の入力用
3 Dim B As Long'数字の計算用
4 Dim C As Long'数字の表示用
5 A=0:C=0
6 Input "数字を入力してください";A
7 For B=1 TO A 
8 C=C+B
9 NEXT
10 PRINT"答えは";C'答えの表示
11 GOTO 5
end

by konisi » 2008年4月12日(土) 18:58

文字列を数値に変換した後に作業をするので、下でもいいと思います。

コード: 全て選択

#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

文字列の抽出演算

by omasu » 2008年4月12日(土) 18:42

お世話になります。

 突貫プログラムです。

バグがあったら報告願います。

コード: 全て選択

#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

数字の足し算

by 雷電 » 2008年4月12日(土) 16:07

どうもお久しぶりです・・・。
受験が終り、高校にやっとなれはじめた雷電です。

今回は、文字から変更した数字についてです。
文字列を数字に変更する関数はVal関数でいいのですが、
その変更した後、変更された数字を足し算したいのです。

例えば、文字列が12345だとすると、
1+2+3+4+5の計算をしたいのです。
一字ずつ切り出して、計算したいのですが、どなたかご教授ください・・・

ページトップ