2017-03-23 5 views
0

Je souhaite créer un programme dans lequel l'utilisateur doit entrer une fonction, par exemple cos(x) + 2. Mon problème est que, je ne connais pas la syntaxe ou le code sur comment rendre la fonction entrée devenir une vraie fonction où je peux la manipuler, comme en obtenir la dérivée, la tracer, quelque chose comme ça. Quelqu'un peut-il s'il vous plaît m'apprendre comment faire cela? Je vous remercie!Définition de fonction à partir de l'entrée utilisateur

+0

Si vous voulez vraiment de l'aide, alors je suggère que d'abord s'il vous plaît montrer votre propre effort pour résoudre le problème, et si vous êtes frappé, publiez un message sur un problème particulier ou une erreur. Ce n'est pas un site de tutoriel à la demande je pense ... – Attila

+0

Je ne viendrais pas ici si je connaissais déjà la réponse. Je n'ai pas été en mesure de trouver une solution pour cela pendant 2 jours en raison du manque de ressources. Tout ce que je sais, c'est que x = input ("Entrez votre fonction") est la syntaxe. Mais cela ne prend que des valeurs constantes, et x = input ("Entrez votre fonction", "s") ne prend qu'une chaîne. Comment puis-je le faire où je peux faire la fonction entrée devenir une fonction réelle et non pas une constante, ou une chaîne, où je peux le manipuler comme le traçage ou prendre son dérivé –

+0

Très bien, alors s'il vous plaît voir ma réponse ci-dessous. Cela vous aide-t-il à commencer? – Attila

Répondre

0

Pour créer une fonction "réelle", vous pouvez utiliser 2 syntaxes différentes:

function [x]=myfct(a,b) 
    x=a+b; 
endfunction 

ou

deff("[x]=myfct(a,b)","x=a+b"); 

Remarque: si vous avez seulement un varaible de retour, vous pouvez omettre les crochets .

Cette dernière forme est plus simple ici, parce que vous ne devez demander 2 ou 3 chaînes de l'utilisateur:

  1. function_statement: la réponse devrait être "x=a+b"

  2. input_varaible_list (séparés par des comas): la réponse devrait être "a,b"

  3. output_varaible_list (séparés par des virgules): la réponse doit être "x"

Ensuite, mettre ensemble dans un deff:

deff("["+output_varaible_list+"]=myfct("+input_varaible_list+")",function_statement); 

Si vous fixez la sortie nom de la variable x, alors vous ne devez pas demander, et l'utilisateur doit entrer seulement le côté droit de l'instruction de fonction (après le =). Ainsi, il devient:

deff("[x]=myfct("+input_varaible_list+")","x="+function_statement); 

Pour la dérivée voir les fonctions et derivativenumdiff dans l'aide Scilab.

+0

Merci je l'apprécie. –