I'm new to this forum. I've used BASIC and QBASIC long time ago, when I was in college. I've discovered a floppy disk with programs I wrote years ago, and I want to improve them a little. Most of these programs are math ones. I've always been a big fan of Pocket Computers, back in the 90s. I still like them today, and I recently bought, among others, a Casio fx-850p with its RP33 memory extension (with its 40 kb of memory, I'm the King of the World ! ). It was the 1st time I was using Casio BASIC, and I like it very much. I've downloaded QB64 on my PC, and I see there are some differences between the two languages. And that's why I'm here.
I've numerous math programs, and today, I'm working on a one that allows me to draw functions. It's simple and runs quite nice. The program asks me minimum and maximum values of the x and y axis, then draws the function I've stored in a routine. I'd like to be able to let the program ask me to input the function. For now, I must edit the program to type the function I want to work with. On my Casio, there is a function name VALF which is interesting. I store the function in an alphanumeric variable (for exemple F$), and VALF calculate its numeric value and store it in a numeric variable (for example Z : Z=VALF(f$)). Here is the code I have for an integration program :
Code: Select all
10 CLS:PRINT "Calcul d'aires - Méthode des trapèzes :"
20 INPUT "Fonction f(x) "; F$
30 INPUT "a "; A : INPUT "b "; B
40 INPUT "Nombre d'iterations "; N
50 H=(B-A)/N
60 X=A : Z1=VALF(F$) : X=B : Z2=VALF(F$) : S=.5*(Z1+Z2)
70 X=A
80 FOR I=1 TO N-1
90 X=X+H
100 Z=VALF(F$) : S=S+Z
110 NEXT I
120 S=S*H
130 PRINT CHR$(129); "f(x) dx ="; S
140 END
Code: Select all
'Draw Function
1
SCREEN 12
COLOR 11
CLEAR
CLS
DEFDBL A-Z
PRINT
PRINT TAB(20); " Tracé d'une fonction"
PRINT
PRINT " Echelle :"
INPUT " Valeur minimale de x "; xmin
INPUT " Valeur maximale de x "; xmax
INPUT " Valeur minimale de y "; ymin
INPUT " Valeur maximale de y "; ymax
CLS
WINDOW (xmin + xmin / 10, ymin + ymin / 10)-(xmax + xmax / 10, ymax + ymax / 10)
LINE (xmin, 0)-(xmax, 0)
LINE (0, ymin)-(0, ymax)
FOR i = xmin TO xmax STEP 1
PSET (i, .125)
NEXT i
FOR j = ymin TO ymax STEP 1
PSET (.125, j)
NEXT j
FOR x = xmin TO xmax STEP 1 / 128
IF x = xmin THEN PSET (x, f(x)), 14
LINE -(x, f(x)), 14
NEXT x
LOCATE 28, 1
INPUT " Encore (o/n) "; z$
IF z$ = "o" THEN 1 ELSE END
FUNCTION f (x)
f = x ^ 3 - 3 * x ^ 2 + 2
END FUNCTION
Thank you very much !
W.