31 lines
647 B
Plaintext
31 lines
647 B
Plaintext
INCLUDE "D2:REAL.ACT" ;from the Action! Tool Kit
|
|
|
|
PROC Map(REAL POINTER a1,a2,b1,b2,s,res)
|
|
REAL tmp1,tmp2,tmp3
|
|
|
|
RealSub(s,a1,tmp1) ;tmp1=s-a1
|
|
RealSub(b2,b1,tmp2) ;tmp2=b2-b1
|
|
RealMult(tmp1,tmp2,tmp3) ;tmp3=(s-a1)*(b2-b1)
|
|
RealSub(a2,a1,tmp1) ;tmp1=a2-a1
|
|
RealDiv(tmp3,tmp1,tmp2) ;tmp2=(s-a1)*(b2-b1)/(a2-a1)
|
|
RealAdd(b1,tmp2,res) ;res=b1+(s-a1)*(b2-b1)/(a2-a1)
|
|
RETURN
|
|
|
|
PROC Main()
|
|
BYTE i
|
|
REAL a1,a2,b1,b2,s,res
|
|
|
|
Put(125) PutE() ;clear screen
|
|
|
|
ValR("0",a1) ValR("10",a2)
|
|
ValR("-1",b1) ValR("0",b2)
|
|
|
|
FOR i=0 TO 10
|
|
DO
|
|
IntToReal(i,s)
|
|
Map(a1,a2,b1,b2,s,res)
|
|
PrintR(s) Print(" maps to ")
|
|
PrintRE(res)
|
|
OD
|
|
RETURN
|