多倍長計算

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
メッセージ
作成者
TTP

ありがとうございます

#16 投稿記事 by TTP »

修正ありがとうございます。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#17 投稿記事 by konisi »

どういたしまして。

んで、ちょっと暇だったからって言う理由で関数をもう二つ作った。

コード: 全て選択


'差分

Sub Val_t(A As *Word,A$ As String)
	Dim i As Long
	Dim a$ As String
	Dim b$ As String
	a$=A$
	i=0
	while Len(a$)>4
		b$=Mid$(a$,Len(a$)-3,4)
		A(i)=Val(b$)
		i=i+1
		a$=Left$(a$,Len(a$)-4)
	Wend
	if a$<>"" then
		A(i)=Val(a$)
	End If
End Sub

Sub Input_t(A As *Word)
	Dim a$ As String
	Input a$
	Val_t(A,a$)
End Sub
使用方法
■Val_t(A As *Word,A$ As String)
Aに結果を返す多倍数を入れてください。
A$に変換元の文字列を入れてください。

備考:数字で出来た文字列を多倍数として認識させ、代入します。

■Input_t(A As *Word)
Aに結果を返す多倍数を入れてください。

備考:#N88BASIC,#prompt,#consoleのどれかを有効にしてから使ってください。
Input文の多倍数バージョンです。


修正するべき関数が見つかったので、関数を直しておいてください。
Print_t関数

コード: 全て選択


Sub Print_t(A As *Word)
	Dim i As Long
	Dim j As Long
	Dim a$ As String
	For i=Keta To 0 Step -1 
		if A(i)<>0 then 
			Exit For 
		End If 
	Next i 
	if i=-1 then
		Print "0"
		Exit Sub
	End If
	a$=Str$(A(i)) 
	j=0 
	i=i-1
	Do 
		a$=a$+Str2$(A(i)) 
		i=i-1 
		if i=-1 then Exit Do 
		j=j+1 
		if j=20 then 
			Print a$ 
			a$="" 
			j=0 
		End If 
	Loop
	if a$<>"" then Print a$
End Sub
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
返信する