Data update
This commit is contained in:
parent
72eb4943cb
commit
4d5544505c
2347 changed files with 62432 additions and 16731 deletions
13
Task/Map-range/Free-Pascal-Lazarus/map-range-1.pas
Normal file
13
Task/Map-range/Free-Pascal-Lazarus/map-range-1.pas
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
Program Map(output);
|
||||
function MapRange(fromRange, toRange: array of real; value: real): real;
|
||||
begin
|
||||
MapRange := (value - fromRange[0]) * (toRange[1] - toRange[0]) /
|
||||
(fromRange[1] - fromRange[0]) + toRange[0];
|
||||
end;
|
||||
|
||||
var
|
||||
i: integer;
|
||||
begin
|
||||
for i := 0 to 10 do
|
||||
writeln(i: 2, ' maps to: ', MapRange([0.0, 10.0], [-1.0, 0.0], i): 5: 2);
|
||||
end.
|
||||
58
Task/Map-range/Free-Pascal-Lazarus/map-range-2.pas
Normal file
58
Task/Map-range/Free-Pascal-Lazarus/map-range-2.pas
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
Program Map(output);
|
||||
|
||||
type
|
||||
real = double;
|
||||
tRange = array [0..1] of real;
|
||||
|
||||
tMapRec = record
|
||||
mrFrom,
|
||||
mrTo: tRange;
|
||||
mrScale: real
|
||||
end;
|
||||
|
||||
function InitRange(rfrom, rTo: real): tRange;
|
||||
begin
|
||||
InitRange[0] := rfrom;
|
||||
InitRange[1] := rTo;
|
||||
end;
|
||||
|
||||
function InitMapRec(const fromRange, toRange: tRange): tMapRec;
|
||||
begin
|
||||
with InitMapRec do
|
||||
begin
|
||||
mrFrom := fromRange;
|
||||
mrTo := toRange;
|
||||
mrScale := (toRange[1] - toRange[0]) / (fromRange[1] - fromRange[0]);
|
||||
end;
|
||||
end;
|
||||
|
||||
function MapRecRange(const value: real; var MR: tMapRec): real;
|
||||
begin
|
||||
with MR do
|
||||
MapRecRange := (value - mrFrom[0]) * mrScale + mrTo[0];
|
||||
end;
|
||||
|
||||
function MapRange(const value: real; const fromRange, toRange: tRange): real;
|
||||
begin
|
||||
MapRange := (value - fromRange[0]) * (toRange[1] - toRange[0]) /
|
||||
(fromRange[1] - fromRange[0]) + toRange[0];
|
||||
end;
|
||||
|
||||
var
|
||||
value: real;
|
||||
rFrom, rTo: tRange;
|
||||
mr: tMapRec;
|
||||
i: longint;
|
||||
|
||||
begin
|
||||
rFrom := InitRange(0, 10);
|
||||
rTo := InitRange(-1, 0);
|
||||
mr := InitMapRec(rFrom, rTo);
|
||||
|
||||
for i := 0 to 10 do
|
||||
begin
|
||||
value := i;
|
||||
writeln(i: 4, ' maps to: ', MapRange(value, rFrom, rTo): 10: 6,
|
||||
MapRecRange(value, mr): 10: 6);
|
||||
end;
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue