$ include "seed7_05.s7i"; include "float.s7i"; const func float: mapRange (in float: a1, in float: a2, in float: b1, in float: b2, ref float: s) is return b1 + (s-a1)*(b2-b1)/(a2-a1); const proc: main is func local var integer: number is 0; begin writeln("Mapping [0,10] to [-1,0] at intervals of 1:"); for number range 0 to 10 do writeln("f(" <& number <& ") = " <& mapRange(0.0, 10.0, -1.0, 0.0, flt(number)) digits 1); end for; end func;