Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
44
Task/Middle-three-digits/ERRE/middle-three-digits.erre
Normal file
44
Task/Middle-three-digits/ERRE/middle-three-digits.erre
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
PROGRAM MIDDLE
|
||||
|
||||
!$DOUBLE
|
||||
|
||||
FUNCTION LUNG(N)
|
||||
LUNG=LEN(STR$(INT(ABS(N))))+1
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION NCNT(N)
|
||||
NCNT=VAL(MID$(STR$(INT(ABS(N))),(LUNG(N)-1)/2,3))
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION EVEN(N)
|
||||
EVEN=INT(N/2)=N/2
|
||||
END FUNCTION
|
||||
|
||||
PROCEDURE NUMBER_EXAM(N->R$)
|
||||
R$="" LG%=LUNG(N)-2
|
||||
IF EVEN(LG%) THEN R$="?EVEN," END IF
|
||||
IF LG%<3 THEN
|
||||
R$=R$+"ONLY"+STR$(LG%)+" DIGIT"
|
||||
IF LG%=1 THEN
|
||||
R$=R$+"S"
|
||||
END IF
|
||||
END IF
|
||||
IF RIGHT$(R$,1)="," THEN R$=LEFT$(R$,LEN(R$)-1) EXIT PROCEDURE END IF
|
||||
IF LEFT$(R$,1)="?" THEN EXIT PROCEDURE END IF
|
||||
IF R$<>"" THEN R$="?"+R$ EXIT PROCEDURE END IF
|
||||
R$=STR$(NCNT(N))
|
||||
IF LEFT$(R$,1)=" " THEN R$=MID$(R$,2) END IF
|
||||
IF LEN(R$)=1 THEN R$="00"+R$ END IF
|
||||
IF LEN(R$)=2 THEN R$="0"+R$ END IF
|
||||
END PROCEDURE
|
||||
|
||||
BEGIN
|
||||
DATA(123,12345,1234567,987654321,10001,-10001,-123,-100,100,-12345)
|
||||
DATA(1,2,-1,-10,2002,-2002,0)
|
||||
FOR I%=1 TO 17 DO
|
||||
READ(N)
|
||||
PRINT(N;" ",)
|
||||
NUMBER_EXAM(N->R$)
|
||||
PRINT(R$)
|
||||
END FOR
|
||||
END PROGRAM
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
' FB 1.05.0 Win64
|
||||
|
||||
Function middleThreeDigits (n As Integer) As String
|
||||
If n < 0 Then n = -n
|
||||
If n < 100 Then Return "" '' error code
|
||||
If n < 1000 Then Return Str(n)
|
||||
If n < 10000 Then Return ""
|
||||
Dim ns As String = Str(n)
|
||||
If Len(ns) Mod 2 = 0 Then Return "" '' need to have an odd number of digits for there to be 3 middle
|
||||
Return Mid(ns, Len(ns) \ 2, 3)
|
||||
End Function
|
||||
|
||||
Dim a(1 To 16) As Integer => _
|
||||
{123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -123451, 2, -1, -10, 2002, -2002, 0}
|
||||
|
||||
Dim As Integer i
|
||||
Dim As String result
|
||||
|
||||
Print "The 3 middle digits of the following numbers are : "
|
||||
Print
|
||||
For i = 1 To 16
|
||||
result = middleThreeDigits(a(i))
|
||||
Print a(i), " => ";
|
||||
If result <> "" Then
|
||||
Print result
|
||||
Else
|
||||
Print "Error: does not have 3 middle digits"
|
||||
End If
|
||||
Next
|
||||
Print
|
||||
Print "Press any key to quit"
|
||||
Sleep
|
||||
4
Task/Middle-three-digits/Klong/middle-three-digits.klong
Normal file
4
Task/Middle-three-digits/Klong/middle-three-digits.klong
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
items::[123 12345 1234567 987654321 10001 -10001 -123 -100 100 -12345 1 2 -1 -10 2002 -2002 0]
|
||||
|
||||
mid3::{[d k];:[3>k::#$#x;"small":|0=k!2;"even";(-d)_(d::_(k%2)-1)_$#x]}
|
||||
.p(mid3'items)
|
||||
22
Task/Middle-three-digits/Lasso/middle-three-digits.lasso
Normal file
22
Task/Middle-three-digits/Lasso/middle-three-digits.lasso
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
define middlethree(value::integer) => {
|
||||
local(
|
||||
pos_value = math_abs(#value),
|
||||
stringvalue = #pos_value -> asstring,
|
||||
intlength = #stringvalue -> size,
|
||||
middle = integer((#intlength + 1) / 2),
|
||||
prefix = string(#value) -> padleading(15)& + ': '
|
||||
)
|
||||
|
||||
#intlength < 3 ? return #prefix + 'Error: too few digits'
|
||||
not(#intlength % 2) ? return #prefix + 'Error: even number of digits'
|
||||
|
||||
return #prefix + #stringvalue -> sub(#middle -1, 3)
|
||||
|
||||
}
|
||||
'<pre>'
|
||||
with number in array(123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345, 1, 2, -1, -10, 2002, -2002, 0) do {^
|
||||
|
||||
middlethree(#number)
|
||||
'<br />'
|
||||
^}
|
||||
'</pre>'
|
||||
16
Task/Middle-three-digits/Nim/middle-three-digits.nim
Normal file
16
Task/Middle-three-digits/Nim/middle-three-digits.nim
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import math
|
||||
|
||||
proc middleThreeDigits(i): auto =
|
||||
var s = $abs(i)
|
||||
if s.len < 3 or s.len mod 2 == 0:
|
||||
raise newException(ValueError, "Need odd and >= 3 digits")
|
||||
let mid = s.len div 2
|
||||
return s[mid-1..mid+1]
|
||||
|
||||
const passing = @[123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345]
|
||||
const failing = @[1, 2, -1, -10, 2002, -2002, 0]
|
||||
|
||||
for i in passing & failing:
|
||||
var answer = try: middleThreeDigits(i)
|
||||
except ValueError: getCurrentExceptionMsg()
|
||||
echo "middleThreeDigits(",i,") returned: ",answer
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
: middle3
|
||||
| s sz |
|
||||
abs asString dup ->s size ->sz
|
||||
sz 3 < ifTrue: [ "Too short" println return ]
|
||||
sz isEven ifTrue: [ "Not odd number of digits" println return ]
|
||||
sz 3 - 2 / 1+ dup 2 + s extract ;
|
||||
10
Task/Middle-three-digits/Ring/middle-three-digits.ring
Normal file
10
Task/Middle-three-digits/Ring/middle-three-digits.ring
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
n = 1234567
|
||||
middle(n)
|
||||
|
||||
func middle nr
|
||||
mnr = floor(len(string(nr))/2)
|
||||
lennr = len(string(nr))
|
||||
if lennr = 3 see "" + nr + nl
|
||||
but lennr < 3 see "Number must have at least three digits"
|
||||
but lennr%2=0 see "Number must have an odd number of digits"
|
||||
else cnr = substr(string(nr),mnr,3) see cnr + nl ok
|
||||
16
Task/Middle-three-digits/Sidef/middle-three-digits.sidef
Normal file
16
Task/Middle-three-digits/Sidef/middle-three-digits.sidef
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
func middle_three(n) {
|
||||
var l = n.len;
|
||||
if (l < 3) {
|
||||
"#{n} is too short"
|
||||
} elsif (l.is_even) {
|
||||
"#{n} has an even number of digits"
|
||||
} else {
|
||||
"The three middle digits of #{n} are: " + n.digits.ft(l-3 / 2, l/2 + 1).join
|
||||
}
|
||||
}
|
||||
|
||||
var nums = %n(
|
||||
123 12345 1234567 987654321 10001 -10001 -123 -100 100 -12345
|
||||
1 2 -1 -10 2002 -2002 0
|
||||
);
|
||||
nums.each { say middle_three(_) };
|
||||
7
Task/Middle-three-digits/Wart/middle-three-digits.wart
Normal file
7
Task/Middle-three-digits/Wart/middle-three-digits.wart
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
def (mid3 n)
|
||||
withs (digits (with outstring # itoa
|
||||
(pr abs.n))
|
||||
max len.digits
|
||||
mid (int max/2))
|
||||
if (and odd?.max (max >= 3))
|
||||
(digits mid-1 mid+2)
|
||||
10
Task/Middle-three-digits/jq/middle-three-digits-1.jq
Normal file
10
Task/Middle-three-digits/jq/middle-three-digits-1.jq
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
def middle3:
|
||||
if . < 0 then -. else . end
|
||||
| tostring as $s
|
||||
| ($s | length) as $n
|
||||
| if $n<3 or ($n % 2) == 0 then "invalid length: \($n)"
|
||||
else (($n - 1) / 2) as $n | $s[$n - 1 : $n + 2]
|
||||
end ;
|
||||
|
||||
(123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345, 1, 2, -1, -10, 2002, -2002, 0)
|
||||
| "\(.) => \( .|middle3 )"
|
||||
18
Task/Middle-three-digits/jq/middle-three-digits-2.jq
Normal file
18
Task/Middle-three-digits/jq/middle-three-digits-2.jq
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
$ jq -r -n -f Middle_three_digits.jq
|
||||
123 => 123
|
||||
12345 => 234
|
||||
1234567 => 345
|
||||
987654321 => 654
|
||||
10001 => 000
|
||||
-10001 => 000
|
||||
-123 => 123
|
||||
-100 => 100
|
||||
100 => 100
|
||||
-12345 => 234
|
||||
1 => invalid length: 1
|
||||
2 => invalid length: 1
|
||||
-1 => invalid length: 1
|
||||
-10 => invalid length: 2
|
||||
2002 => invalid length: 4
|
||||
-2002 => invalid length: 4
|
||||
0 => invalid length: 1
|
||||
Loading…
Add table
Add a link
Reference in a new issue