tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
32
Task/Range-extraction/Seed7/range-extraction.seed7
Normal file
32
Task/Range-extraction/Seed7/range-extraction.seed7
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
$ include "seed7_05.s7i";
|
||||
|
||||
const func string: rangeExtraction (in array integer: numbers) is func
|
||||
result
|
||||
var string: rangeStri is "";
|
||||
local
|
||||
var integer: index is 1;
|
||||
var integer: index2 is 1;
|
||||
begin
|
||||
while index <= length(numbers) do
|
||||
while index2 <= pred(length(numbers)) and numbers[succ(index2)] = succ(numbers[index2]) do
|
||||
incr(index2);
|
||||
end while;
|
||||
if succ(index) < index2 then
|
||||
rangeStri &:= "," <& numbers[index] <& "-" <& numbers[index2];
|
||||
else
|
||||
while index <= index2 do
|
||||
rangeStri &:= "," <& numbers[index];
|
||||
incr(index);
|
||||
end while;
|
||||
end if;
|
||||
incr(index2);
|
||||
index := index2;
|
||||
end while;
|
||||
rangeStri := rangeStri[2 ..];
|
||||
end func;
|
||||
|
||||
const proc: main is func
|
||||
begin
|
||||
writeln(rangeExtraction([] (0, 1, 2, 4, 6, 7, 8, 11, 12, 14, 15, 16, 17, 18, 19,
|
||||
20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39)));
|
||||
end func;
|
||||
Loading…
Add table
Add a link
Reference in a new issue