IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lisp Discussion :

comment afficher x^2


Sujet :

Lisp

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut comment afficher x^2
    Bonjour

    j'ai un petit problème dans une de mes fonctions. Je dois dériver la fonction inverse
    au début j'ai testé si le premier elmt de la liste était bien un divisé et ensuite je veux afficher -1/x^2. Je ne doit pas traiter les fonctionc composées.
    J'ai donc fait
    (if (equal (car liste) '/)
    (/ (-(cadr liste)) (expt x 2)))
    Mais je me doute bien qu'il ne peut pas évaluer mon diviser et mon expt vu que x n'est pas un nombre. moi je ne veux pas qu'il l'évalue je veux qu'il l'affiche comme je lui marche.
    Du coup je rencontre les mêmes prblèmes pour ma fonction cosinus.

    Y-a-t-il une fonction que je ne connais pas?
    Merci de votre aide

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    En premier lieu, merci de

    Ensuite je ne comprends pas ton problème...
    Si c'est afficher « x^2 » et bien afficher le.. Tu ne sais pas comment faire un affichage c'est ça ?

    N'est ce pas plutôt que tu veux retourner quelque chose ?
    Dans ce cas, ton entrée est une liste qui représente l'expression. Je suppose donc que ce que tu veux obtenir est une liste en retour qui représente la dérivée.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    non je ne veux pas une liste en retour
    je dois juste traiter le cas où la liste est (/ 1 x), la fonction inverse et dérivée celle là. Du coup je veux retourné le premier élément de la liste avec un - pour ca j'ai fait un cadr et ensuite je veux le diviser avec x^2. En fait quand j'appelle ma fonction avec comme liste (/ 1 x) je veux qu'il me retourne enfin m'affiche 1/x^2.
    C'est cela que je n'arrive pas à faire. Comprends tu mieux mon problème ou est ce que je m'exprime mal? J'avoue que je sais pas trop l'expliquer. Ces mes premiers pas en LISP soit doit un être un truc tout simple mais je bloque.

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par pepsister Voir le message
    non je ne veux pas une liste en retour
    je dois juste traiter le cas où la liste est (/ 1 x), la fonction inverse et dérivée celle là. Du coup je veux retourné le premier élément de la liste avec un - pour ca j'ai fait un cadr et ensuite je veux le diviser avec x^2. En fait quand j'appelle ma fonction avec comme liste (/ 1 x) je veux qu'il me retourne enfin m'affiche 1/x^2.
    C'est cela que je n'arrive pas à faire. Comprends tu mieux mon problème ou est ce que je m'exprime mal? J'avoue que je sais pas trop l'expliquer. Ces mes premiers pas en LISP soit doit un être un truc tout simple mais je bloque.
    En fait, tu n'as pas répondu à ma première question:
    « Tu ne sais pas comment faire un affichage c'est ça ? »

    Ton erreur c'est aussi de vouloir appeler des fonctions expt ou /.
    Si tu veux procéder à un affichage, tu peux
    1) construire quelque chose à afficher comme une liste d'éléments ou un chaîne de caractère (mauvaise idée en LISP)
    2) afficher au fur et à mesure.

    Tu as WRITE ou PRINT qui te permettent de faire de l'affichage.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    Comme je te l'ai dit je commence le lisp, alors je ne sais pas comment marche la fonction write et la fonction print.
    En fait je veux juste afficher -1/x^2

    merci

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par pepsister Voir le message
    Comme je te l'ai dit je commence le lisp, alors je ne sais pas comment marche la fonction write et la fonction print.
    En fait je veux juste afficher -1/x^2

    merci
    Donc c'est ça... tu ne sais pas comment afficher.

    Bon bin
    1) construit toi une liste qui contient ce que tu veux
    2) appelles une fonction (que tu vas créer) qui permet d'afficher une liste
    3) créer ta fonction d'affichage d'une liste: celle-ci procèdera récursivement sur la liste en affichant chaque élément, avec write ou print (whatever)

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    j'ai essayé quelque chose mais ca me l'affiche dans une liste donc je pense que ce n'est pas top. Revenons au sujet je dois creer une fonction qui dérive n'importe quelle expression mais simple pas composé.
    j'ai donc creer ma dérivation pour une expression du type 3x+1 j'ai fait de même pour la soustraction et pour la multiplication mais dans ces trois cas jamais de x à afficher car je n'ai pas le droits au fonction composé.
    Voici mon bout de code pour la fonction derivé une division
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    (defun derive_division (liste)
      (setq liste (list -1 '/ 'x^2))  )
     
    (defun derive (liste x)
      (if (equal (car liste) '/) 
          (derive_division liste)
          nil)
    )
    mais moi je voudrais vraiment qu'il m'affiche 1/x^2
    J'espère avoir été plus claire dans mon énoncé
    Merci de m'expliquer

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par pepsister Voir le message
    je comprend strictement rien à ce que tu dis.
    Citation Envoyé par pepsister Voir le message
    j'ai essayé quelque chose mais ca me l'affiche dans une liste donc je pense que ce n'est pas top. [...]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    (defun derive_division (liste)
      (setq liste (list -1 '/ 'x^2))  )
     
    (defun derive (liste x)
      (if (equal (car liste) '/) 
          (derive_division liste)
          nil)
    )
    mais moi je voudrais vraiment qu'il m'affiche 1/x^2
    J'espère avoir été plus claire dans mon énoncé
    Merci de m'expliquer
    un setq ? Tu as déjà programmer en autre chose toi ?
    Sinon tu n'écrirais pas ce genre de chose.

    À mon avis tu devrais aller chercher de l'aide auprès de ton prog pour commencer. Tu me sembles manquer de certaines bases, et ton premier message me pousse à le croire encore plus.

    Une fonction en programmation fonctionnelle ressemble à une fonction en math. Et en math, on ne modifie pas les valeurs des variables dans une fonction.

    En fait, il faudrait reprendre ton problème à zéro pour te faire comprendre ce que tu fais. Mais j'avoue manquer de motivation.

    Analyses ce que tu fais en math quand tu dérives, et cherche à retourner une liste correspondant à ce que tu cherches. Une fois que tu as ça tu chercheras après comment l'afficher.

    Je suppose que tu n'as rédigé aucune analyse et aucun conception pour ton problème ?

    Tu n'affiches rien parce que tu n'utilises NI print NI write. Ce sont des fonctions qui affiche ce que tu passes en paramètre. Essayes d'afficher quelque chose dans l'interpréteur. N'attends pas que je te donne tout. Et j'ai du mal à comprendre comment tu peux avoir un exercice qui te demande d'afficher si tu n'as rien vu pour : 1) tu vas trop vite dans tes exercices 2) tu suis pas en classe 3) le prof est à côté de la plaque... mais je ne miserais pas sur le 3

    S'il n'accepte pas ton x c'est parce que tu lui donnes une variable (qui n'a pas de valeur) et non un symbole. Pourtant dans l'exemple après tu utilises des symboles. Je le répète donc, commence par voir ton professeur et revoit les bases du langages. Ensuite réfléchie sur papier avant d'entreprendre quoique ce soit.

Discussions similaires

  1. [web] comment afficher les erreur d'un cgi
    Par chtiboss dans le forum Web
    Réponses: 6
    Dernier message: 24/12/2003, 11h22
  2. Comment afficher les accent sous mysql v4.0.13
    Par buildozer dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 09h33
  3. [debutant] Comment afficher un integer a l'ecran
    Par Johngame dans le forum DirectX
    Réponses: 1
    Dernier message: 05/06/2003, 20h35
  4. Comment afficher FLASH directement dans le EMAIL
    Par Bilmagic dans le forum Flash
    Réponses: 3
    Dernier message: 05/06/2003, 00h38
  5. [TP][MULTI-PROBLEME]Comment afficher des images pcx
    Par mikoeur dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 24/10/2002, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo