Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
61
Task/Middle-three-digits/Eiffel/middle-three-digits.e
Normal file
61
Task/Middle-three-digits/Eiffel/middle-three-digits.e
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
class
|
||||
APPLICATION
|
||||
|
||||
create
|
||||
make
|
||||
|
||||
feature
|
||||
|
||||
make
|
||||
-- Test of middle_three_digits.
|
||||
local
|
||||
test_1, test_2: ARRAY [INTEGER]
|
||||
do
|
||||
test_1 := <<123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345>>
|
||||
test_2 := <<1, 2, -1, -10, 2002, -2002, 0>>
|
||||
across
|
||||
test_1 as t
|
||||
loop
|
||||
io.put_string ("The middle three digits of " + t.item.out + " are: %T ")
|
||||
io.put_string (middle_three_digits (t.item) + "%N")
|
||||
end
|
||||
across
|
||||
test_2 as t
|
||||
loop
|
||||
io.put_string ("The middle three digits of " + t.item.out + " are: %T")
|
||||
io.put_string (middle_three_digits (t.item) + "%N")
|
||||
end
|
||||
end
|
||||
|
||||
middle_three_digits (n: INTEGER): STRING
|
||||
-- The middle three digits of 'n'.
|
||||
local
|
||||
k, i: INTEGER
|
||||
in: STRING
|
||||
do
|
||||
create in.make_empty
|
||||
in := n.out
|
||||
if n < 0 then
|
||||
in.prune ('-')
|
||||
end
|
||||
create Result.make_empty
|
||||
if in.count < 3 then
|
||||
io.put_string (" Not enough digits. ")
|
||||
elseif in.count \\ 2 = 0 then
|
||||
io.put_string (" Even number of digits. ")
|
||||
else
|
||||
i := (in.count - 3) // 2
|
||||
from
|
||||
k := i + 1
|
||||
until
|
||||
k > i + 3
|
||||
loop
|
||||
Result.extend (in.at (k))
|
||||
k := k + 1
|
||||
end
|
||||
end
|
||||
ensure
|
||||
length_is_three: Result.count = 3 or Result.count = 0
|
||||
end
|
||||
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue