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

Turbo Pascal Discussion :

[TP] Calcul d'un polynôme


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Par défaut [TP] Calcul d'un polynôme
    Bonjour, le but de l'exercice est le calcul d'un polynôme p(x).
    Le programme doit demander : le degré du polynôme, les coefficients et une valeur de x.

    J'ai fait ceci :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    PROGRAM polynome;
    USES CRT;
    VAR I,D : INTEGER;
    P: ARRAY[0..100] of real;
    Y,X,R : REAL ;
    BEGIN
    CLRSCR;
    WRITELN('Entrez le degré de votre polynôme');
    READ(D);
    FOR I:= 0 TO D DO
      BEGIN
      WRITELN('Donnez le coefficient de x puissance',I);
      READ(P[I]);
      END;
    WRITELN('Entrez une valeur de x');
    READ(x);
     
    R:=0;
    Y:=1;
    Y:=Y*x;
    FOR I:=0 TO D DO R:=R+P[I]*Y;
    WRITELN('Le polynôme pris en',x,'vaut',R);
    READKEY;
    END.
    Le problème c'est que la valeur trouvée du polynôme, pour des coefficients donnés et une valeur de x donnée, n'est pas la bonne valeur et je n'arrive pas à trouver mon erreur.
    Quelqu'un peut-il m'aider ? Merci !

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 971
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 971
    Par défaut
    Hi,

    Pour montrer ton code, encadre le par les balises [ code] [ /code] (sans les espaces, qui ne sont là que pour invalider les balises ).

    Pour ton problème, fait tourner ton algorithme "à la main", c'est à dire avec un crayon et une feuille de papier, en notant la valeur que chaque variable prend au passage, et tu trouveras ton erreur. (pas la peine pour ça de tester des degrés de polynôme très élevés, degré 2, et même 1 devraient suffire.

    Normalement, on s'assure que l'algorithme prévu est correct avant de coder, surtout quand il est simple et peut être rapidement simulé à la main.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Par défaut
    En fait mon problème c'est qu'il faut que je fasse évoluer mon Y en même temps que mon R et à mon avis c'est ça qui pose problème, je ne vois vraiment pas comment faire ...

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 971
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 971
    Par défaut
    Ha,

    Comme je te l'ai déjà dit, fait tourner ton algorithme à la main, ou mieux, réécris ton algorithme (algorithme, pas "code").

    Méthode pour faire ton algorithme : comment fais-tu à la main ? Ecris-le en clair, et ton problème sera résolu.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Par défaut
    J'ai essayé mais je ne vois toujours pas...

    Ce qu'on veut :
    1e coefficient*1 + 2e coeff*x+...+(n+1)e coeff*x^n
    Donc mon coeff et ma 'valeur' de x changent en même temps.
    Pour cela je voudrais mettre

    en même temps que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FOR Y:= 1 TO (euh là je ne sais pas)
    mais comment faire ?

    Si vous pouviez me donner un peu plus d'indices ça m'aiderait beaucoup. Je débute alors ce n'est pas très facile pour moi. Merci.

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 971
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 971
    Par défaut
    Hi,
    Citation Envoyé par stabiloboss
    Ce qu'on veut :
    1e coefficient*1 + 2e coeff*x+...+(n+1)e coeff*x^n
    Donc mon coeff et ma 'valeur' de x changent en même temps.
    Regarde ton code.

    Penses-tu qu'il fait cela ?

    Pourquoi ton Y, qui va contenir les puissances de x successives, et que tu initialises à x, intervient-il dès l'indice 0 ?
    Et pouquoi n'est-il pas remultiplié par x à chaque tour de la boucle ?

    En faisant marcher ton code à la main, et en notant les valeurs successives des varaibles comme je te l'avais dit, tu aurais dû trouver ça : ta variable Y une fois initialisée à x ne bouge plus.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Turbo Pascal] Calculatrice 2D (avec pile) + calcul de polynômes
    Par Webistory dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 26/04/2014, 14h36
  2. Algorithme pour le calcul de Polynômes orthogonaux
    Par Ankhotep dans le forum Mathématiques
    Réponses: 2
    Dernier message: 10/03/2014, 11h35
  3. Calcul dérivée Polynôme
    Par mc4456 dans le forum Fortran
    Réponses: 5
    Dernier message: 02/08/2013, 08h04
  4. Réponses: 3
    Dernier message: 10/05/2013, 16h23

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