ShadowBuilder Quake Addicted | Salut,
J'ai utilisé le BASIC et QBASIC il y a longtemps, quand j'étais au collège et au lycée. J'ai retrouvé une disquette contenant des programmes que j'avais fait alors et je souhaite les améliorer un peu. La plupart sont des programmes de maths. J'ai toujours été fan de Pocket computers et, il y a pas longtemps, j'ai acheté entre autres une Casio fx-850p avec son extension mémoire RP33. Première fois que je code en BASIC Casio et j'aime beaucoup. J'ai téléchargé QB64 sur le PC, et bien entendu, j'ai constaté des différences entre les deux langages, c'est pourquoi je suis ici.
J'ai une tripotée de programmes de maths, et aujourd'hui, je fais un programme qui dessine des fonctions. Simple et efficace. Le programme me demande l'échelle du repère, puis dessine la fonction qui est stockée dans une routine FUNCTION... END FUNCTION. J'aimerais que le programme me demande de saisir la fonction, comme le reste car pour le moment il faut que j'édite le programme pour modifier la fonction en question. Pas toptop. Sur la Casio, il y a une fonction nommée VALF qui est intéressante. Je stocke la fonction dans une variable alphanumérique (par exemple F$), et VALF calcule sa valeur numérique et la stocke dans une variable numérique (par example Z : Z=VALF(F$)). Pour illustrer, voici le code pour ma Casio qui me permet de calculer des intégrales via la méthode des trapèzes :
Code :
- 10 CLS : PRINT "Calcul d'aires";: LOCATE 0,1 : PRINT "Méthode des trapezes :"
- 20 CLS : INPUT "Fonction f(x) "; F$
- 30 CLS : INPUT "a "; A : CLS : 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
|
Ci-dessous, le code sur lequel je travaille aujourd'hui, en QB64, et qui me permet de tracer des fonctions :
Code :
- 'Draw Function
- 1
- SCREEN 12
- COLOR 11
- CLEAR
- CLS
- DEFDBL A-Z
- PRINT
- PRINT TAB(20); " Tracé d'une fonction"
- PRINT
- PRINT " Echelle :"
- PRINT
- 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, xmax / 320)
- NEXT i
- FOR j = ymin TO ymax STEP 1
- PSET (ymin / 320, 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
- Fin:
- LOCATE 28, 1
- PRINT " Encore (o/n) ?";: z$ = INKEY$
- IF z$ = "o" THEN 1 ELSE IF z$ = "n" THEN END
- GOTO Fin
- END
- FUNCTION f (x)
- f = x ^ 3 - 3 * x ^ 2 + 2
- END FUNCTION
|
Vous l'aurez compris, je cherche un équivalent à VALF dans QB64, afin de m'affranchir de FUNCTION... END FUNCTION, pour ne pas avoir à éditer le programme à chaque fois que je veux remplacer une fonction.
Est-ce possible ?
Merci.
W. Message édité par ShadowBuilder le 24-04-2016 à 09:05:39 ---------------
••• Thinkpad Community rules ! •••
|