63 lines
853 B
Text
63 lines
853 B
Text
INCLUDE "D2:REAL.ACT" ;from the Action! Tool Kit
|
|
|
|
BYTE FUNC AreEqual(CHAR ARRAY a,b)
|
|
BYTE i
|
|
|
|
IF a(0)#b(0) THEN
|
|
RETURN (0)
|
|
FI
|
|
FOR i=1 to a(0)
|
|
DO
|
|
IF a(i)#b(i) THEN
|
|
RETURN (0)
|
|
FI
|
|
OD
|
|
RETURN (1)
|
|
|
|
BYTE FUNC IsNumeric(CHAR ARRAY s)
|
|
CHAR ARRAY tmp(20)
|
|
INT i
|
|
CARD c
|
|
REAL r
|
|
|
|
i=ValI(s)
|
|
StrI(i,tmp)
|
|
IF AreEqual(s,tmp) THEN
|
|
RETURN (1)
|
|
FI
|
|
|
|
c=ValC(s)
|
|
StrC(c,tmp)
|
|
IF AreEqual(s,tmp) THEN
|
|
RETURN (1)
|
|
FI
|
|
|
|
ValR(s,r)
|
|
StrR(r,tmp)
|
|
IF AreEqual(s,tmp) THEN
|
|
RETURN (1)
|
|
FI
|
|
RETURN (0)
|
|
|
|
PROC Test(CHAR ARRAY s)
|
|
BYTE res
|
|
|
|
res=IsNumeric(s)
|
|
Print(s)
|
|
Print(" is ")
|
|
IF res=0 THEN
|
|
Print("not ")
|
|
FI
|
|
PrintE("a number.")
|
|
RETURN
|
|
|
|
PROC Main()
|
|
Put(125) PutE() ;clear the screen
|
|
Test("56233")
|
|
Test("-315")
|
|
Test("1.36")
|
|
Test("-5.126")
|
|
Test("3.7E-05")
|
|
Test("1.23BC")
|
|
Test("5.6.3")
|
|
RETURN
|