Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ada 1.29 KB | None | 0 0
  1. function Additionner_monome(p1 : in polynome; p2: in polynome) return polynome is
  2.       p_final, p_ins: polynome;
  3.  
  4.    begin
  5.  
  6.      
  7.       --Première vérification pour regarder si on a un arbre vide, dans ce cas on retourne l'autre ; si les deux sont vides on retourne null
  8.       if An_Vide(p2) then
  9.          p_final:=new noeud;
  10.          p_final.all:=p1.all;
  11.          
  12.       elsif An_valeur(p1).val = '0' then
  13.          if An_valeur(p1).exposant+An_valeur(p2).exposant /=0 then
  14.             p_final:= new noeud;
  15.             p_final.all:=p1.all;
  16.             An_Changer_Valeur(p_final,('0',An_valeur(p1).exposant+An_valeur(p2).exposant));
  17.          else
  18.             p_final:=An_Creer_Vide;
  19.          end if;
  20.       else
  21.          if An_valeur(p1).exposant = An_valeur(p2).exposant then
  22.             p_final:=Additionner_monome(An_Fils(p1,1),An_Fils(p2,1));
  23.          else
  24.             if An_Frere(p1, 1) /=null then
  25.                p_final:=Additionner_monome(An_Frere(p1,1),p2);
  26.             else
  27.                p_ins:= new noeud;
  28.                p_ins.all:=p2.all;
  29.                p_final:= new noeud;
  30.                p_final.all:=p1.all;
  31.                An_Inserer_Frere(p_final, p_ins);              
  32.             end if;
  33.          end if;
  34.       end if;
  35.       return p_final;
  36.    end Additionner_monome;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement