RosettaCodeData/Task/Map-range/Modula-2/map-range.mod2

23 lines
434 B
Plaintext

MODULE MapRange;
FROM STextIO IMPORT WriteLn, WriteString;
FROM SWholeIO IMPORT WriteInt;
FROM SRealIO IMPORT WriteFixed;
VAR
I: INTEGER;
PROCEDURE MapRange(S, A1, A2, B1, B2: REAL): REAL;
BEGIN
RETURN B1 + (S - A1) * (B2 - B1) / (A2 - A1)
END MapRange;
BEGIN
FOR I := 0 TO 10 DO
WriteInt(I, 2);
WriteString(" maps to ");
WriteFixed(MapRange(FLOAT(I), 0., 10., -1., 0.), 1, 4);
WriteLn;
END;
END MapRange.