diviseur d'un nombre entier

diviseur d'un nombre entier - Ada - Programmation

Marsh Posté le 31-10-2005 à 10:56:40    

Bonjour.
 
Il me faut écrire un programme qui trouve tous les diviseurs d'un nombre entier donné par l'utilisateur.
Voici ce que j'ai fait :
 

with ada.text_io, ada.integer_text_io;
i,p,k = integer;
begin;
   ada.text_io.put("saisie d'un nombre =" ); ada.integer_text_io.get(i);
   ada.text_io.new_line;
   ada.text_io.put("les diviseurs de :" ); ada.integer_text_io.put(i);
   ada.text_io.put("sont :" );
   p:=2;
   while p<=i/2 loop
      if i rem p = 0  then  -- Calcul du reste de la division de i par p
         k:=i/p;
         ada.integer_text_io.put(k); ada.text_io.put("," );
         ada.integer_text_io.put(p); ada.text_io.put("," );
         ada.text_io.new_line;
      else
         p:=p+1;
      end if;
   end loop;
end;


est ce correct?


Message édité par Profil supprimé le 31-10-2005 à 10:57:02
Reply

Marsh Posté le 31-10-2005 à 10:56:40   

Reply

Marsh Posté le 31-10-2005 à 12:52:34    

Il manque toujours l'unité de compilation.

Citation :

i,p,k = integer;

C'est deux-points, pas un signe égal.
Il n'y a pas de point virgule après begin.
 
 
Pour l'algorithme : prends du papier, un crayon et essaye !!! Regarde juste avec 4 et tu verras qu'il y a une erreur [:spamafote]  
 
 
 
Tu devrais peut être chercher un compilateur ADA. Il y en a probablement des gratuits pour ton système. Mais je ne peux pas t'aider pour ça, il va te falloir utiliser ça [:dawa]


Message édité par Pillow le 31-10-2005 à 12:53:26
Reply

Marsh Posté le 31-10-2005 à 13:28:33    

Bon j'espère que cette fois ça marche :
 

with ada.text_io, ada.integer_text_io;
i,p : integer;
begin
   ada.text_io.put("saisie d'un nombre =" ); ada.integer_text_io.get(i);
   ada.text_io.new_line;
   ada.text_io.put("les diviseurs de :" ); ada.integer_text_io.put(i);
   ada.text_io.put("sont : 1, lui même et" );
   p:=2;
   while p<=i/2 loop
      if i rem p = 0  then  -- Calcul du reste de la division de i par p
         ada.integer_text_io.put(k);  ada.text_io.put(", " );  
         p:=p+1;
      else
         p:=p+1;
      end if;
   end loop;
end;


 
J'ai adagide mais je n'arrive pas à compiler. Je ne suis pas arriver à trouver le problème...

Reply

Marsh Posté le 31-10-2005 à 14:54:57    

Tu affiches k au lieu de p dans tes résultats :D  
 
A part ça (et l'absence d'unité de compilation :whistle: ), ça doit être bon.


Message édité par Pillow le 31-10-2005 à 14:55:49
Reply

Marsh Posté le 31-10-2005 à 16:34:38    

Merci bcp pour ton aide :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed