Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
VAL incomplete
#3
(06-26-2023, 07:32 AM)boriel Wrote: VAL "2*x" will need the ROM VAL.



Then, I will do it the hard way:

LET X = 5
LET F$ = "2*X"

LET G$ = VALx$( F$)
( G$ = "2*5" )

PRINT VAL G$
(result = 10)


Code:
' PROGRAM VALx
' (c) ZarSoft 2023 Pascalated Boriel ZX BASIC
' Written by Ze Oliveira

#include <input.bas>  ' number = VAL INPUT(12)
#include <screen.bas> ' SCREEN$ function
#include <attr.bas>   ' ATTR function

'--- Pascalated Boriel ---
#define PROGRAM   REM
#define BEGIN    REM
'#define CONST     CONST
#define VAR       DIM
#define INTEGER   LONG
#define REAL      FLOAT
#define CHAR      STRING
'#define STRING    STRING
#define BOOLEAN   UBYTE
#define TYPE      AS
'#define WHILE    WHILE
#define REPEAT    DO
#define UNTIL     LOOP UNTIL
#define PROCEDURE  SUB
CONST   TRUE      TYPE BOOLEAN = 1
CONST   FALSE     TYPE BOOLEAN = 0

PROGRAM VALx

VAR X TYPE REAL
VAR Y TYPE REAL

FUNCTION VARaz (V$ TYPE STRING) TYPE REAL
VAR R TYPE REAL
IF V$ = "Z"
  R = Z
ELSE IF V$ = "Y"
  R = Y
ELSE IF V$ = "X"
  R = X
ENDIF 
RETURN R
END FUNCTION

FUNCTION VALx$ (S$ TYPE STRING) TYPE STRING
VAR R$ TYPE STRING
R$ = ""
FOR i = 0 TO LEN S$ -1
  IF S$(i) >= "A"
    LET R$ = R$ + STR$ VARaz( S$(i) )
  ELSE
    LET R$ = R$ + S$(i)
  ENDIF 
NEXT i
RETURN R$
END FUNCTION

PROGRAM VALx
VAR x,y,z TYPE INTEGER
VAR F$ TYPE STRING
VAR G$ TYPE STRING
VAR sx,sy TYPE REAL
VAR sx0,sy0 TYPE REAL
VAR first TYPE BOOLEAN
LET F$ = "9/(1+8*X*X+8*Y*Y)"
FOR y = -3 TO 0
  LET first = TRUE
  FOR x = -5 TO 5
    LET X = x*0.5
    LET Y = y*0.5
    LET G$ = VALx(F$)
    PRINT AT 0,0;"F(x,y)=";G$,,
    LET z = VAL(G$)
    LET sx = 120 + 20*x - 2.5*y
    LET sy = 75 + 6*y + 2.5*x + 10.1*z
    IF first
      first = FALSE
      PLOT sx,sy
    ELSE
      DRAW sx-sx0,sy-sy0
    ENDIF
    LET sx0 = sx
    LET sy0 = sy 
  NEXT x
NEXT y
END PROGRAM
Reply


Messages In This Thread
VAL incomplete - by zarsoft - 06-24-2023, 11:54 AM
RE: VAL incomplete - by boriel - 06-26-2023, 07:32 AM
RE: VAL incomplete - by zarsoft - 06-26-2023, 09:25 AM
RE: VAL incomplete - by zarsoft - 06-26-2023, 11:04 AM

Forum Jump:


Users browsing this thread: 2 Guest(s)