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 signature et 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+
À 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.
S'il faut bien faire les choses alors il faudra gérer les regroupements.
C'est à dire dans l'évaluation, pouvoir regrouper et factoriser les termes en x², puis les termes en x puis les constantes...
Mpffff !
Nettement plus compliqué, là.
Et s'il ne s'agit pas de polynômes ?
Le programme devra-t-il en plus faire de l'analyse mathématique pour éviter toutes les erreurs du calcul numérique ?
En fait on doit pouvoir très raisonnablement postuler que l'utilisateur a fait le nécessaire. Au pire, dans le cas du polynôme, on aura plusieurs termes de même degré. La belle affaire !
De toute façon, le programme est déjà assez compliqué ainsi.
bonsoir,
Vous compliquez la tâche vous deux !
l'analyse d'erreur est meme plus dûr de la résolution de l'équation ! et si on augmente le dégré de ce polynôme chaque fois ?? ça devrait se faire de la même façon ? biensur que non ..
lire les coeffitions séparamment, c'est la plus simple méthode
++
Euh ...
Me suis-je mal exprimé ?
Il me semble que justement je disais qu'il fallait faire simple & éviter tout ce qui pourrait s'apparenter à de l'analyse mathématique par le programme.
J'ai même écrit :
Bref, si j'en crois ton précédent message, nous sommes d'accord sur la méthode.En fait on doit pouvoir très raisonnablement postuler que l'utilisateur a fait le nécessaire.
D'autant que je n'en connais pas d'autre !
je vous remercie tous pour votre réponse mais je pense que c'est trop difficile pour moi le simple programme que j'ai fait pour l'instant est un calcul de trinomes, je vous remercie tout de même. Je vous redemanderai quelques conseils quand mon niveau sera supérieur.
a+ et encore merci.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager