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 :

Addition de deux polynômes [Turbo Pascal]


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 338
    Par défaut Addition de deux polynômes
    Salut à tous !

    J'ai besoin d'une fonction qui fait l'addition de 2 polynomes (representés avec les listes).
    Voilà une partie du programme que j'ai fait.
    Tout marche bien, à part la fonction ADD2 ..

    Aidez-moi svp !!!
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    program ccpolynome;
    uses crt;
    type polynome=^monome;
         monome=record
              puiss:integer;
              fac:integer;
              suiv,prec:polynome;
              end;
    var nbe1,nbe2:integer;
           p1,p2,p3:polynome;
     
     
     
    {procedure pour la creation du polynome}
    procedure creation(var tete:polynome;nbe:integer);
    var i:integer;
    l:polynome;
    begin
    for i:=1 to nbe do begin
                     new(l);
                     write('Le facteur du ',i, 'eme element svp est: ');
                     read(l^.fac);
                     write('La puissance du ',i,'eme element svp est: ');
                     read(l^.puiss);
                     l^.suiv:=tete;
    				 tete^.prec:=l;
                     tete:=l;
                     end;
     
    end;
     
    {procedure pour afficher le polynome cree}
    procedure affichage (tete:polynome);
    var q:polynome;
    begin
      q:=tete;
      while q^.suiv<>nil do q:=q^.suiv;
      writeln;
      write('le polynome= ');
      while (q<>nil) do begin
        write(' + ',q^.fac,'x^',q^.puiss);
        q:=q^.prec;
      end;
    end;
     
    {fonction puissance}
    function puissance(n:integer;p:integer):integer;
    var s,cpt:integer;
    begin
    cpt:=0;s:=1;
    while (cpt<p) do begin
                         s:=s*n;
                         cpt:=cpt+1;
                         end;
    puissance:=s;
    end;
     
     
    {fonction SOMME2}
    function add2(var p1:polynome;var p2:polynome):polynome;
    var q1,q2,q3,y,p3:polynome;
        e,exc:integer;
        exist:boolean;
    begin
      q3:=p1;
      while(q3^.suiv<>nil)do q3:=q3^.suiv;
      q3^.suiv:=p2;
      p2^.prec:=q3;
      q1:=p1;
      q2:=q1^.suiv;
      exist:=false;
      e:=0;
      exc:=0;
      while((q1<>nil)and(q2^.suiv<>nil))do begin
        new(y);
        y^.puiss:=q1^.puiss;
        while(q2<>nil)do begin
          if(q2^.puiss=y^.puiss)then begin
            exist:=true;
            e:=(q2^.fac)+e;
            if exist=true then exc:=exc+1;
          end;
          q2:=q2^.suiv;
        end;
        if (exc>0)then y^.fac:=(q1^.fac)+e
          else y^.fac:=q1^.fac;
        e:=0;exc:=0;exist:=false;
        p3^.prec:=y;
        y^.suiv:=p3;
        p3:=y;
        q1:=q1^.suiv;
        q2:=q1^.suiv;
      end;
      p3:=add2(p1,p2);
    end;
     
     
    begin
      clrscr;
      write('le nombre d`elemets du 1er polynome est: ');
      read(nbe1);
      creation(p1,nbe1); 
      affichage(p1);
      writeln;
      write('le nombre d`elemets du 2eme  polynome est: ');
      read(nbe2);
      creation(p2,nbe2);
      affichage(p2);
      writeln;
      p3:=add1(p1,p2);
      writeln('le resultat de laddition de polynomes est= ');
      affichage(p3);
      readln;
      readln
    end.

  2. #2
    Expert confirmé

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

    En formatant correctement ton code, tu nous faciliterais la vie.

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 338
    Par défaut
    Citation Envoyé par droggo Voir le message
    Mai,

    En formatant correctement ton code, tu nous faciliterais la vie.
    Dsl, j'ai pas comrpi ce que tu voulais dire!

  4. #4
    Expert confirmé

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

    En indentant correctement, de manière régulière et cohérente, pas comme tu l'as fait, à seulement quelques endroits (et pas vraiment proprement, d'ailleurs).

  5. #5
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 338
    Par défaut
    je viens de terminer mon programme ..merci a tous

  6. #6
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 338
    Par défaut
    Citation Envoyé par mohsenuss91 Voir le message
    je viens de terminer mon programme ..merci a tous
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    program ccpolynome;
    uses crt;
    type polynome=^monome;
         monome=record
              puiss:integer;
              fac:integer;
              suiv,prec:polynome;
              end;
    var nbe1,nbe2:integer;
           p1,p2,p3:polynome;
     
     
     
    {procedure pour la creation du polynome}
    procedure creation(var tete:polynome;nbe:integer);
    var i:integer;
    l:polynome;
    begin
    for i:=1 to nbe do begin
                     new(l);
                     write('Le facteur du ',i, 'eme element svp est: ');
                     read(l^.fac);
                     write('La puissance du ',i,'eme element svp est: ');
                     read(l^.puiss);
                     l^.suiv:=tete;
    				 tete^.prec:=l;
                     tete:=l;
                     end;
     
    end;
    {procedure pour afficher le polynome cree}
    procedure affichage (tete:polynome);
    var q:polynome;
    begin
    q:=tete;
    while q^.suiv<>nil do q:=q^.suiv;
    writeln;
    write('le polynome= ');
    while (q<>nil) do begin
    write(' + ',q^.fac,'x^',q^.puiss);
    q:=q^.prec;
    end;
    end;
     
    {fonction puissance}
    function puissance(n:integer;p:integer):integer;
    var s,cpt:integer;
     
    begin
    cpt:=0;s:=1;
    while (cpt<p) do begin
                         s:=s*n;
                         cpt:=cpt+1;
                         end;
    puissance:=s;
    end;
    {SOMME3}
    function add(var p1:polynome;var p2:polynome):polynome;
    var q1,q2,p,r:polynome;
    begin
    q1:=p1;
    while(q1^.suiv<>nil)do q1:=q1^.suiv;
    q1^.suiv:=p2;
    p2^.prec:=q1;
    q1:=p1;
    q2:=q1^.suiv;
    while(q1<>nil)do begin
    while(q2<>nil)do begin
    if(q1^.puiss<>q2^.puiss)then q2:=q2^.suiv
    else begin
    r:=q2;
    q2:=r^.suiv;
    p:=r^.prec;
    q1^.fac:=(q1^.fac)+(r^.fac);
    q2^.prec:=p;
    p^.suiv:=q2;
    dispose(r);
    end;
    end;
    q1:=q1^.suiv;
    q2:=q1^.suiv;
    end;
    add:=p1;
    end;
     
    begin
    clrscr;
    write('le nombre d`elemets du 1er polynome est: ');
    read(nbe1);
    creation(p1,nbe1); 
    affichage(p1);
    writeln;
    write('le nombre d`elemets du 2eme  polynome est: ');
    read(nbe2);
    creation(p2,nbe2);
    affichage(p2);
    writeln;
    p3:=add(p1,p2);
    writeln('le resultat de laddition de polynomes est= ');
    affichage(p3);
    readln;
    readln
    end.

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

Discussions similaires

  1. [Turbo Pascal] Addition de deux polynômes avec liste chaînée
    Par Ecquini dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 01/11/2011, 19h11
  2. Addition entre deux requêtes
    Par tazmania dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/10/2006, 17h17
  3. addition de deux champs et resultat dans un troisième
    Par reventlov dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/03/2006, 15h30
  4. [jsp] addition entre deux valeurs recupérées en Java
    Par LESOLEIL dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 07/06/2005, 13h19
  5. [Math]Addition de deux float : résultat faux !!!
    Par toctof dans le forum Général Java
    Réponses: 4
    Dernier message: 20/05/2005, 11h02

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