Calcule de somme saisie et moyenne.

Calcule de somme saisie et moyenne. - Ada - Programmation

Marsh Posté le 04-11-2006 à 15:08:39    

Bonjour,  
 
je souhaite faire un programme qui fait le calcul de note à rentrer, en indiquant  a chaque saisie :" rentrer la saisie au rang 1: N".
"N" étant n entier.
 
Puis avec une operation de moyenne des differrentes sommes rentré.
ex :  
saisie au rang 1: N
saisie au rang 2: N
saisie au rang 3: N
...
Et faire stopper l'operation en rentrant la somme 0.
 
saisie au rang 1: 0
 
Fin de la saisie.
La somme est ?
La moyenne est ?.
 
 
Merci.
 


---------------
www.cyberlife.fr.cc
Reply

Marsh Posté le 04-11-2006 à 15:08:39   

Reply

Marsh Posté le 04-11-2006 à 18:55:38    

Lis les règles :o
Pas question de faire l'exo pour toi
 
Lis tes cours, tente de coder un truc et revient le poster si tu as des erreurs :o


---------------
Töp of the plöp
Reply

Marsh Posté le 05-11-2006 à 01:05:36    

voila ce que j'ai fais, pouvez vouz me dire ce qu'il ne va pas?
 

Code :
  1. with Ada.Text_Io, ada.float_text_io, Ada.Integer_Text_Io;
  2. use Ada.Text_Io, ada.float_text_io, Ada.Integer_Text_Io;
  3. procedure Ed05 is
  4.    Rang  : Integer := 1; 
  5.    N     : Integer; 
  6.    Somme : Integer:=0 ; 
  7.    moy: float
  8.    -- Debut du programme                 
  9. begin
  10.    Put_Line ("**************************" );
  11.    Put_Line ("*                        *" );
  12.    Put_Line ("*  Calcul d'une moyenne  *" );
  13.    Put_Line ("*                        *" );
  14.    Put_Line ("**************************" );
  15.    New_Line;
  16.    Put_Line ("   Entrer une saisie  " );
  17.    Put_Line ("----------------------" );
  18.    New_Line;
  19.    New_Line;
  20.    Put ("Nombre saisie au Rang 1:" );
  21.    Get (N);
  22.    loop
  23.       if N /= 0 then
  24.          Put ("Nombre saisie au Rang" );
  25.          Put (Rang +1);
  26.          Put (":" );
  27.          Get (N);
  28.          New_Line;
  29.          Somme := somme + N;
  30.          Rang := Rang + 1;
  31.       end if;
  32.       if rang -1 =0 then
  33.       put_line ("Aucun nombre saisie." );
  34.      
  35.       else
  36.       put_line ("La moyenne est de " );
  37.       moy := float (somme)/ float (rang -1);
  38.       put (moy);
  39.       end if;
  40.    end loop;
  41. end Ed05;


Merci.


Message édité par kOrt3zZz le 05-11-2006 à 01:07:47

---------------
www.cyberlife.fr.cc
Reply

Marsh Posté le 05-11-2006 à 01:11:33    

Bah toi déjà dis nous ce qui ne vas pas:
- ca ne compile pas ?
- ca s'execute mais ca plante ?
- ca s'execute, ca ne plante pas, mais ca ne fait pas ce que tu veux ?
 
On va y aller pas à pas ...


---------------
Töp of the plöp
Reply

Marsh Posté le 05-11-2006 à 01:25:43    

le problème pour effectuer la somme des saisies rentré.
et aussi que la boucle ne s'arrete pas a la saisie de 0.


---------------
www.cyberlife.fr.cc
Reply

Marsh Posté le 05-11-2006 à 02:39:05    

Là c'est ok, mais il y a un petit problème avec le calcule de la moyen.
 

Code :
  1. with Ada.Text_Io, Ada.Float_Text_Io, Ada.Integer_Text_Io;
  2. use Ada.Text_Io, Ada.Float_Text_Io, Ada.Integer_Text_Io;
  3. procedure Ed05 is
  4.    Rang  : Integer := 1; 
  5.    N     : Integer; 
  6.    Somme : Integer := 0; 
  7.    Moy   : Float; 
  8.    -- Debut du programme                 
  9. begin
  10.    Put_Line ("**************************" );
  11.    Put_Line ("*                        *" );
  12.    Put_Line ("*  Calcul d'une moyenne  *" );
  13.    Put_Line ("*                        *" );
  14.    Put_Line ("**************************" );
  15.    New_Line;
  16.    Put_Line ("   Entrer une saisie  " );
  17.    Put_Line ("----------------------" );
  18.    New_Line;
  19.    New_Line;
  20.    Put ("Nombre saisie au Rang 1" );
  21. put (":" );
  22.    Get (N);
  23.    New_Line;
  24.    while N /=0 loop
  25.       Put ("Nombre saisie au Rang" );
  26.       Put (Rang +1, 2);
  27.       Put (":" );
  28.       Get (N);
  29.       New_Line;
  30.       if N /= 0 then
  31.          Somme := Somme + N;
  32.          Rang := Rang + 1;
  33.       else
  34.          if Rang -1 =0 then
  35.             Put_Line ("Aucun nombre saisie." );
  36.          else
  37.             Moy := Float (Somme)/ Float (Rang -1);
  38.             Put ("La moyenne est de " );
  39.             Put (Moy, 1);
  40.             new_line;
  41.          end if;
  42.       end if;
  43.    end loop;
  44. put_line ("Fin du Programme." );
  45. end Ed05;


 
??


Message édité par kOrt3zZz le 05-11-2006 à 12:36:46

---------------
www.cyberlife.fr.cc
Reply

Marsh Posté le 05-11-2006 à 12:23:21    

(utilise les balises code stp)


---------------
Töp of the plöp
Reply

Marsh Posté le 05-11-2006 à 12:24:41    

Vérifie tes valeurs pas à pas, en détaillant dans ta boucle l'affichage de tes valeurs pour "somme" et "rang", ainsi que la moyenne pour chaque tour de boucle.
 
Constate.


---------------
Töp of the plöp
Reply

Marsh Posté le 05-11-2006 à 12:52:34    

Je viens de modifier le code.
 
Les valeurs sont déjà misent avant .


---------------
www.cyberlife.fr.cc
Reply

Marsh Posté le 01-12-2006 à 11:21:48    

il manque "somme := N;" après le premier "Get(N);"
et la moyenne se calcule en divisant "somme" par "rang", et non "rang -1".
Voila

Reply

Marsh Posté le 01-12-2006 à 11:21:48   

Reply

Marsh Posté le 01-12-2006 à 11:24:17    

Vieux motard que jamais !

Reply

Marsh Posté le 01-12-2006 à 12:26:02    

:) Et c'est le retour de Jovalise sur le forum !!! :)

Reply

Sujets relatifs:

Leave a Replay

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