Data update
This commit is contained in:
parent
72eb4943cb
commit
4d5544505c
2347 changed files with 62432 additions and 16731 deletions
10
Task/Map-range/ANSI-BASIC/map-range.basic
Normal file
10
Task/Map-range/ANSI-BASIC/map-range.basic
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
100 REM Map range
|
||||
110 DECLARE EXTERNAL FUNCTION MapRange
|
||||
120 FOR I = 0 TO 10
|
||||
130 PRINT USING "## maps to ##.#": I, MapRange(I, 0, 10, -1, 0)
|
||||
140 NEXT I
|
||||
150 END
|
||||
160 REM *****************************************
|
||||
170 EXTERNAL FUNCTION MapRange(S, A1, A2, B1, B2)
|
||||
180 LET MapRange = B1 + (S - A1) * (B2 - B1) / (A2 - A1)
|
||||
190 END FUNCTION
|
||||
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.
|
||||
13
Task/Map-range/GW-BASIC/map-range.basic
Normal file
13
Task/Map-range/GW-BASIC/map-range.basic
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
100 REM Map range
|
||||
110 DEF FN MR(S) = B1 + (S - A1) * (B2 - B1) / (A2 - A1)
|
||||
120 A1 = 0: A2 = 10: B1 = -1: B2 = 0
|
||||
130 FOR X = A1 TO A2 STEP 2
|
||||
140 PRINT USING "## maps to ##.#"; X; FN MR(X)
|
||||
150 NEXT X
|
||||
160 REM Inverse mapping to illustrate change of parameters
|
||||
170 PRINT: PRINT "Inverse mapping:"
|
||||
180 A1 = -1: A2 = 0: B1 = 0: B2 = 10
|
||||
190 FOR X = A1 TO A2 STEP .2
|
||||
200 PRINT USING "##.# maps to ##"; X; FN MR(X)
|
||||
210 NEXT X
|
||||
220 END
|
||||
|
|
@ -1,8 +1,10 @@
|
|||
For i = 0 To 10
|
||||
Print "f(";i;") maps to ";mapToRange(i, 0, 10, -1, 0)
|
||||
Next i
|
||||
End
|
||||
' map range
|
||||
for i = 0 to 10
|
||||
print using("##.#", i); " maps to ";
|
||||
print using("##.#", mapRange(i, 0, 10, -1, 0))
|
||||
next i
|
||||
end
|
||||
|
||||
Function mapToRange(value, inputMin, inputMax, outputMin, outputMax)
|
||||
mapToRange = (((value - inputMin) * (outputMax - outputMin)) / (inputMax - inputMin)) + outputMin
|
||||
End Function
|
||||
function mapRange(s, a1, a2, b1, b2)
|
||||
mapRange = b1 + (s - a1) * (b2 - b1) / (a2 - a1)
|
||||
end function
|
||||
|
|
|
|||
22
Task/Map-range/Modula-2/map-range.mod2
Normal file
22
Task/Map-range/Modula-2/map-range.mod2
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
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.
|
||||
15
Task/Map-range/PHP/map-range.php
Normal file
15
Task/Map-range/PHP/map-range.php
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
// Map range
|
||||
|
||||
function map_range($s, $a1, $a2, $b1, $b2) {
|
||||
return ($s - $a1) * ($b2 - $b1) / ($a2 - $a1) + $b1;
|
||||
}
|
||||
|
||||
for ($i = 0; $i <= 10; $i++) {
|
||||
$mr = map_range($i, 0, 10, -1, 0); // To avoid too long line.
|
||||
echo(str_pad($i, 2, ' ', STR_PAD_LEFT)
|
||||
.' maps to: '
|
||||
.str_pad(number_format($mr, 1, '.', ''), 4, ' ', STR_PAD_LEFT)
|
||||
.PHP_EOL);
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
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, ' maps to: ', MapRange([0.0, 10.0], [-1.0, 0.0], i):4:2);
|
||||
end.
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
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.
|
||||
10
Task/Map-range/QBasic/map-range.basic
Normal file
10
Task/Map-range/QBasic/map-range.basic
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
REM Map range
|
||||
DECLARE FUNCTION MapRange (S, A1, A2, B1, B2)
|
||||
FOR I = 0 TO 10
|
||||
PRINT USING "## maps to ##.#"; I; MapRange(I, 0, 10, -1, 0)
|
||||
NEXT I
|
||||
END
|
||||
|
||||
FUNCTION MapRange (S, A1, A2, B1, B2)
|
||||
MapRange = B1 + (S - A1) * (B2 - B1) / (A2 - A1)
|
||||
END FUNCTION
|
||||
11
Task/Map-range/RapidQ/map-range.rapidq
Normal file
11
Task/Map-range/RapidQ/map-range.rapidq
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
' Map range
|
||||
DECLARE FUNCTION MapRange (S#, A1#, A2#, B1#, B2#) AS DOUBLE
|
||||
FOR I = 0 TO 10
|
||||
PRINT FORMAT$("%4.1f", I); " maps to ";
|
||||
PRINT FORMAT$("%4.1f", MapRange(I, 0, 10, -1, 0))
|
||||
NEXT I
|
||||
END
|
||||
|
||||
FUNCTION MapRange (S#, A1#, A2#, B1#, B2#) AS DOUBLE
|
||||
MapRange = B1# + (S# - A1#) * (B2# - B1#) / (A2# - A1#)
|
||||
END FUNCTION
|
||||
14
Task/Map-range/TypeScript/map-range.ts
Normal file
14
Task/Map-range/TypeScript/map-range.ts
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
function mapRange(
|
||||
a: number[],
|
||||
b: number[],
|
||||
s: number
|
||||
): number {
|
||||
return b[0] + (s-a[0]) * (b[1]-b[0]) / (a[1]-a[0]);
|
||||
}
|
||||
|
||||
const a = [0, 10];
|
||||
const b = [-1, 0];
|
||||
|
||||
for (let s = 0; s < 11; s++) {
|
||||
console.log(`${s} -> ${mapRange(a, b, s)}`);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue