Sum digits of an integer: Difference between revisions

Sum digits of an integer in various dialects BASIC (Chipmunk Basic, GW-BASIC and Run BASIC)
(Add Miranda)
(Sum digits of an integer in various dialects BASIC (Chipmunk Basic, GW-BASIC and Run BASIC))
Line 793:
print "f0e base 16 : "; SumDigits(0xf0e, 16)
end</syntaxhighlight>
 
==={{header|Chipmunk Basic}}===
{{works with|Chipmunk Basic|3.6.4}}
{{trans|BASIC256}}
<syntaxhighlight lang="qbasic">10 rem Sum digits of an integer
20 cls
30 print "The sums of the digits are:"
40 print
50 gosub 100 : print "1 base 10 : " sumdigits(1,10)
60 gosub 100 : print "1234 base 10 : ";sumdigits(1234,10)
70 gosub 100 : print "fe base 16 : " sumdigits(254,16)
80 gosub 100 : print "f0e base 16 : ";sumdigits(3854,16)
90 end
100 sub sumdigits(number,nbase)
110 if number < 0 then number = -number
120 if nbase < 2 then nbase = 2
130 sum = 0
140 while number > 0
150 sum = sum+(number-int(number/nbase)*nbase)
160 number = int(number/nbase)
170 wend
180 sumdigits = sum
190 return</syntaxhighlight>
 
==={{header|GW-BASIC}}===
{{works with|Applesoft BASIC}}
{{works with|Chipmunk Basic}}
{{works with|PC-BASIC|any}}
{{works with|QBasic}}
{{trans|Applesoft BASIC}}
<syntaxhighlight lang="qbasic">10 REM Sum digits of an integer
20 CLS : REM 20 HOME for Applesoft BASIC
30 BASE = 10
40 N$ = "1" : GOSUB 100 : PRINT "1 base 10 : " N
50 N$ = "1234" : GOSUB 100 : PRINT "1234 base 10 : " N
60 BASE = 16
70 N$ = "FE" : GOSUB 100 : PRINT "FE base 16 : " N
80 N$ = "F0E" : GOSUB 100 : PRINT "F0E base 16 : " N
90 END
100 REM SUM DIGITS OF N$, BASE
110 IF BASE = 1 THEN N = LEN(N$) : RETURN
120 IF BASE < 2 THEN BASE = 10
130 N = 0 : V$ = LEFT$("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", BASE)
140 FOR I = 1 TO LEN(N$) : C$ = MID$(N$, I, 1)
150 FOR J = 1 TO LEN(V$)
160 IF C$ <> MID$(V$, J, 1) THEN NEXT J : N = SQR(-1) : STOP
170 N = N + J - 1
180 NEXT I
190 RETURN</syntaxhighlight>
 
==={{header|Minimal BASIC}}===
Line 834 ⟶ 883:
PRINT "f0e base 16 :"; SumDigits(&HF0E, 16)
END</syntaxhighlight>
 
==={{header|Run BASIC}}===
{{trans|BASIC256}}
<syntaxhighlight lang="vb">function SumDigits(number, nBase)
if number < 0 then number = -1 * number ' convert negative numbers to positive
if nBase < 2 then nBase = 2 ' nBase can//t be less than 2
sum = 0
while number > 0
sum = sum + (number mod nBase)
number = int(number / nBase)
wend
SumDigits = sum
end function
 
print "The sums of the digits are:\n"
print "1 base 10 : "; SumDigits(1, 10)
print "1234 base 10 : "; SumDigits(1234, 10)
print "fe base 16 : "; SumDigits(hexdec("FE"), 16)
print "f0e base 16 : "; SumDigits(hexdec("F0E"), 16)
end</syntaxhighlight>
{{out}}
<pre>Same as BASIC256 entry.</pre>
 
==={{header|True BASIC}}===
2,169

edits