salut tout le monde,
je voudrais que ma fonction soit une variable.
Ainsi, le programme demanderait que l'on entre une fonction et il la calculerait
en fonction de x, une variable qui serait aussi demander.
merci d'avance,
a+
salut tout le monde,
je voudrais que ma fonction soit une variable.
Ainsi, le programme demanderait que l'on entre une fonction et il la calculerait
en fonction de x, une variable qui serait aussi demander.
merci d'avance,
a+
euh.. c'était pas trop clair
de quel fonction tu parle ?
et tu veux dire quoi par fonction variable ?
++
Je ne sais pas si c'est possible en Pascal.
Par contre, si tu as un nombre limité de fonctions possibles (que l'utilisateur peut appeler), tu peux faire un test sur ce qu'il entre au clavier et agir en conséquence :
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 function f(x : integer) : integer; begin f := x+1; end; var fonction, variable : string; begin readln(variable); readln(fonction); if (fonction = "f") then f(variable); else writeln('la fonction ',fonction,' n''existe pas ou n''est pas utilisable.'); end.
mais comment ça se fait si "variable" est une chaine de caractère ?function f(x : integer) : integer;
.
.
var
fonction, variable : string;
.
.
f(variable);![]()
tsss, que de mauvaise foi ! Il suffit de transtyper ça en entier avec la fonction val. (bon, c'est vrai que pour un si petit exemple j'aurais pu faire gaffe mais on s'en aperçoit vite à la compilation.)![]()
@leien : pense à la troisième règle de ma signatureet reformule le souci avec la fonction stp !
++
je vais donner un exemple précis.Envoyé par leien
le programme demande une fonction de type: 3x²-2x, par exemple.
le programme demande ensuite la valeur de x: 5, par exemple.
Avec ces donnés je voudrais un programme qui soit capable de donner un
résultat.
le programme mettrait le résultat suivant: 3*5²-2*5=65.
la fonction doit être variable car chaque utilisateur entrera une fonction différente.
merci, et j'espère que mon exemple est clair.
merci d'avance pour votre réponse.
@leien : poste ton code s'il te plaît, on verra ci-après
++
Bonjour,
Tu ne peux exécuter que du code compilé; ce qui veut dire que recupérer le code d'une fonction en runtime et l'exécuter n'est pas du ressort des possibilités du langage Pascal.
Tu pourrais faire un système de plug-in etc afin d'étendre la liste des fonctions à appeler mais il s'agit d'une démarche un peu plus compliquée...
Cependant, si la fonction a exécuter obéit à un certain prototype, par exemple dans ton cas, je dirai
tu peux afficher un prompt pour demander à l'utilisateur d'entrer les paramètres variables et ensuite tu fais un calcul simple. Dans le cas précédent, tu demanderas donc respectivement les valeurs de a, b et c pour établir la fonction; puis x pour effectuer le calcul.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ax² + bx + c
A+
Comment rejoindre la rédaction de www.developpez.com ?
Améliorer vos posts en faisant une correction orthographique
"Tu as tort d'abuser de ma patience" Sokar
À moins de créer un analyseur syntaxique qui analyserait la chaîne saisie (par exemple : 3x²-2x) & qui effectuerait ensuite le calcul, à la manière d'un interpréteur de commandes.
Y a du boulot !
+1, je préfère aussi l'analyseur syntaxique selon une chaine de caractère, que de donner les paramètres a, b et c puis le x chaque fois ..
mais dans ce cas, ya plein de travail à faire, la première tâche c'est de vérifier la chaine si elle contienne des erreurs syntaxiques, puis tu extraire les données, une conversion requise, et tu calcul ...
++
Dernière modification par Blue_Strike ; 13/02/2007 à 21h51.
Partager