Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
109
Task/Number-names/Liberty-BASIC/number-names.basic
Normal file
109
Task/Number-names/Liberty-BASIC/number-names.basic
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
global outnum$
|
||||
dim ones$(20),tens$(9),gr$(5),group(5)
|
||||
for a = 0 to 19
|
||||
read a$:ones$(a)=a$
|
||||
next a
|
||||
for a = 1 to 8
|
||||
read a$:tens$(a)=a$
|
||||
next a
|
||||
|
||||
[start]
|
||||
redim gr$(5)
|
||||
redim group(5)
|
||||
|
||||
input "Enter a number (nonzero positive integers only less than 1 quadrillion, no commas): ";num$
|
||||
|
||||
num$=trim$(num$)
|
||||
numVal=int(val(num$))
|
||||
if numVal=0 or numVal>999999999999999 then print "Ended" : end
|
||||
|
||||
numParse = numVal
|
||||
numLen = len(str$(numParse))
|
||||
|
||||
if numLen<=15 then groupCount=5
|
||||
if numLen<=12 then groupCount=4
|
||||
if numLen<=9 then groupCount=3
|
||||
if numLen<=6 then groupCount=2
|
||||
if numLen<=3 then groupCount=1
|
||||
|
||||
if numLen>12 and numLen<=15 then
|
||||
group(5)=int(numParse/1000000000000)
|
||||
call convert group(5)," trillion"
|
||||
gr$(5)=outnum$
|
||||
numParse=nP(numParse,12)
|
||||
numLen=len(str$(numParse))
|
||||
end if
|
||||
|
||||
if numLen>9 and numLen<=12 then
|
||||
group(4)=int(numParse/1000000000)
|
||||
call convert group(4)," billion"
|
||||
gr$(4)=outnum$
|
||||
numParse=nP(numParse,9)
|
||||
numLen=len(str$(numParse))
|
||||
end if
|
||||
|
||||
if numLen>6 and numLen<=9 then
|
||||
group(3)=int(numParse/1000000)
|
||||
call convert group(3)," million"
|
||||
gr$(3)=outnum$
|
||||
numParse=nP(numParse,6)
|
||||
numLen=len(str$(numParse))
|
||||
end if
|
||||
|
||||
if numLen>3 and numLen<=6 then
|
||||
group(2)=int(numParse/1000)
|
||||
call convert group(2)," thousand"
|
||||
gr$(2)=outnum$
|
||||
numParse=nP(numParse,3)
|
||||
numLen=len(str$(numParse))
|
||||
end if
|
||||
|
||||
if numLen<=3 then
|
||||
group(1)=numParse
|
||||
call convert group(1),""
|
||||
gr$(1)=outnum$
|
||||
numLen=len(str$(numParse))
|
||||
end if
|
||||
|
||||
print
|
||||
for a=groupCount to 1 step -1
|
||||
print gr$(a);" ";
|
||||
next a
|
||||
print
|
||||
print
|
||||
|
||||
goto [start]
|
||||
|
||||
sub convert num, dem$
|
||||
outnum$=""
|
||||
for a=len(str$(num)) to 1 step -1
|
||||
b$=mid$(str$(num),a,1)
|
||||
c=val(b$)
|
||||
d=len(str$(num))-a+1
|
||||
select case
|
||||
case d=1
|
||||
outnum$=ones$(c)
|
||||
case d=2
|
||||
if c<2 then
|
||||
outnum$=ones$(val(right$(str$(num),2)))
|
||||
else
|
||||
if c>=2 and val(right$(str$(num),1))<>0 then
|
||||
outnum$=tens$(c-1)+"-"+outnum$
|
||||
else
|
||||
outnum$=tens$(c-1)
|
||||
end if
|
||||
end if
|
||||
case d=3
|
||||
if c<>0 then outnum$=ones$(c)+" hundred "+outnum$
|
||||
end select
|
||||
next a
|
||||
outnum$=outnum$+dem$
|
||||
end sub
|
||||
|
||||
function nP(num,L)
|
||||
nP=val(right$(str$(num),L))
|
||||
end function
|
||||
|
||||
data "","one","two","three","four","five","six","seven","eight","nine"
|
||||
data "ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"
|
||||
data "twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"
|
||||
Loading…
Add table
Add a link
Reference in a new issue