Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ada 2.11 KB | None | 0 0
  1. if An_valeur(p1).val /= '0' then
  2.             for I in Integer range 0 .. 9 loop
  3.                if An_Nombre_Noeuds_Valeur(p1,(An_Valeur(p1).val, I))/=0 and An_Nombre_Noeuds_Valeur(p2,(An_Valeur(p1).val, I))/=0 then -- On a les mêmes exposants, on descend aux valeurs suivantes
  4.                   p_final:=An_Creer_Feuille(An_Valeur(p1));
  5.                   p_final_fils:=Additionner(An_Fils(p1,1),An_Fils(p2,1));
  6.                   An_Inserer_Fils(p_final,p_final_fils);
  7.  
  8.                elsif An_Nombre_Noeuds_Valeur(p1,(An_Valeur(p1).val, I))/=0 or An_Nombre_Noeuds_Valeur(p2,(An_Valeur(p1).val, I))/=0 then -- On a un un des deux polynômes possédant un couple valeur/exposant non nul
  9.  
  10.                   if An_Nombre_Noeuds_Valeur(p1,(An_Valeur(p1).val, I))/=0 then -- Si c'est p1
  11.                      if An_Vide(p_final) = True then
  12.                         p_final:=new noeud;
  13.                         p_final.all:=p1.all;
  14.                        
  15.                      else
  16.                         p_final_fils:= new noeud;
  17.                         p_final_fils.all:=p1.all;
  18.                         An_Inserer_Frere(p_final, p_final_fils);
  19.                        
  20.                      end if;
  21.  
  22.                   else  -- Si c'est p2
  23.                      if An_Vide(p_final) = True then
  24.                         p_final:=new noeud;
  25.                         p_final.all:=p2.all;
  26.                        
  27.                      else
  28.  
  29.                         p_final_fils:= new noeud;
  30.                         p_final_fils.all:=p2.all;
  31.                         An_Inserer_Frere(p_final, p_final_fils);
  32.                        
  33.                      end if;
  34.  
  35.                   end if;
  36.                end if;
  37.             end loop;
  38.  
  39.          else -- On est au multiplicateur, toutes les valeurs précèdentes étaient donc égales, on additionne les multiplicateurs
  40.             if An_valeur(p1).exposant+An_valeur(p2).exposant /=0 then
  41.                p_final:=An_Creer_Feuille(('0',An_valeur(p1).exposant+An_valeur(p2).exposant));
  42.             else
  43.                p_final:=An_Creer_Vide;
  44.             end if;
  45.  
  46.          end if;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement