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

C Discussion :

Produit de 2 polynomes


Sujet :

C

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut Produit de 2 polynomes
    bonjour a tous mon problème c'est que mon code n'arrive pas a calculer le produit de deux polynôme
    je suis sur qu'il y a un erreur logique mais j'arrive pas a le trouver
    voila le code
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    #include<stdio.h>
    #include<conio.h>
    main()
    {
          int tab[20],t[20],somme[20],produit[40],i,j,dimtab,dimt,diffdim;
          puts("CE PROGRAMME CALCULE LA SOMME ET LE PRODUIT DE 2 POLYNOMES DONT L'ORDRE EST < 20");
          puts("--------------------------------------------------------------------------------");
          puts("entrer l'ordre du premier polynome:");
          scanf("%d",&dimtab);
          for(i=0;i<=dimtab;i++)
           {
                                printf("entrer le nombre d'ordre %d:\n",i);
                                scanf("%d",&tab[i]);
                                }
          puts("entrer l'ordre du deuxième polynome:");
          scanf("%d",&dimt);
          for(j=0;j<=dimt;j++)
          {
                             printf("entrer le nombre d'ordre %d:\n",j);
                             scanf("%d",&t[j]);
                             }
                             int maxdim,ordre;
     
          if (dimtab>dimt) {
                            maxdim=dimtab;
                            ordre=dimt;
                            dimt=dimt+1;
                            for(j=dimt;j<=dimtab;j++)
                            t[j]=0;
                            }
          else if (dimt>dimtab) {
                                  maxdim=dimt;
                                  ordre=dimtab;
                                  dimtab=dimtab+1;      
                                  for(i=dimtab;i<=dimt;i++)
                                  tab[i]=0;
                                  }
                    int k;
                    int maxdim2;
             maxdim2=maxdim+ordre;
                    for (k=0;k<=maxdim2;k++)
                    for (j=0;j<=k;j++)
            {
             produit[k]=produit[k]+tab[j]*t[k-j]; 
             }
     
             printf("le produit est:\t");
         printf("%d + ",produit[0]);
         for(i=1;i<maxdim2;i++)                   
         printf("%dX^%d + ",produit[i],i);
         printf("%dX^%d",produit[maxdim2],i);
         getch();
         }
    merci d'avance

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    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
         int maxdim,ordre;
     
          if (dimtab>dimt) {
                            maxdim=dimtab;
                            ordre=dimt;
                            dimt=dimt+1;
                            for(j=dimt;j<=dimtab;j++)
                            t[j]=0;
                            }
          else if (dimt>dimtab) {
                                  maxdim=dimt;
                                  ordre=dimtab;
                                  dimtab=dimtab+1;      
                                  for(i=dimtab;i<=dimt;i++)
                                  tab[i]=0;
                                  }
    maxdim et ordre ne sont pas initialisés si les deux polynômes ont le même ordre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                    for (k=0;k<=maxdim2;k++)
                    for (j=0;j<=k;j++)
            {
             produit[k]=produit[k]+tab[j]*t[k-j]; 
             }
    produit[k] n'est pas initialisé. Les bornes du for(j...) sont fausses.

    Je pense que le code suivant fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
             for (k=0;k<=dimtab+dimt;k++)
             {
                int lim1 = k>dimt   ? k-dimt : 0;
                int lim2 = k<dimtab ? k      : dimtab;
                produit[k] = 0;
                for (j=lim1;j<=lim2;j++)
                   produit[k]=produit[k]+tab[j]*t[k-j];
             }

Discussions similaires

  1. polynomes et produit
    Par mahdouchsfaq dans le forum MATLAB
    Réponses: 0
    Dernier message: 11/10/2008, 04h13
  2. Produit de deux polynomes
    Par Tulas dans le forum Caml
    Réponses: 3
    Dernier message: 02/05/2007, 09h44
  3. comment obtenir un polynome de regression
    Par evariste_galois dans le forum Mathématiques
    Réponses: 17
    Dernier message: 19/01/2007, 15h06
  4. [info]Licence des produits Java
    Par XavierZERO dans le forum Général Java
    Réponses: 12
    Dernier message: 16/01/2004, 16h27
  5. [Dev-Pascal] Ne produit pas d'exe
    Par portix dans le forum Autres IDE
    Réponses: 8
    Dernier message: 02/07/2003, 15h14

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