2016 Update

This commit is contained in:
Tina Müller 2016-12-05 22:15:40 +01:00
parent 948b86eafa
commit dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions

View file

@ -1,17 +1,16 @@
/*REXX program returns the three middle digits of a number (or an error msg).*/
n= '123 12345 1234567 987654321 10001 -10001 -123 -100 100 -12345',
'2 -1 -10 2002 -2002 0 abc 1e3 -17e-3 1234567. 1237654.00',
'1234567890123456789012345678901234567890123456789012345678901234567'
/*REXX program returns the three middle digits of a decimal number (or an error msg).*/
n= '123 12345 1234567 987654321 10001 -10001 -123 -100 100 -12345',
'+123 0123 2 -1 -10 2002 -2002 0 abc 1e3 -17e-3 1234567.',
1237654.00 1234567890123456789012345678901234567890123456789012345678901234567
do j=1 for words(n); #=word(n,j) /* [↓] format the output number nicely*/
say 'middle 3 digits of' right(z, max(15, length(#))) '' middle3(#)
end /*j*/
exit /*stick a fork in it, we're all done. */
/*────────────────────────────────────────────────────────────────────────────*/
middle3: procedure; parse arg x; numeric digits 1e6; er=' ***error!*** '
if pos(.,x)\==0 then x=x/1 /*normalize it, contains decimal point.*/
if datatype(x,'N') then x=abs(x); L=length(x)
if \datatype(x,'W') then return er "argument isn't an integer."
if L<3 then return er "argument is less than three digits."
if L//2==0 then return er "argument isn't an odd number of digits."
return substr(x, (L-3)%2+1, 3)
do j=1 for words(n); #=word(n,j) /* [↓] format number for pretty output*/
say 'middle 3 digits of' right(#, max(15, length(#) ) ) "──►" middle3(#)
end /*j*/
exit /*stick a fork in it, we're all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
middle3: procedure; parse arg x; numeric digits 1e6; er=' ***error*** '
if datatype(x,'N') then x=abs(x)/1; L=length(x) /*use abs value; get length*/
if \datatype(x,'W') then return er "argument isn't an integer."
if L<3 then return er "argument is less than three digits."
if L//2==0 then return er "argument isn't an odd number of digits."
return substr(x, (L-3)%2+1, 3)