TP java avec solution - Exercice java corrigé - calcul la valeur série
Synthèse : calcul de la valeur d’une série
Écrire un programme calculant la
somme des n premiers termes de la "série harmonique", c’est-à-dire la somme :
1 + 1/2 + 1/3 + 1/4 + ..... + 1/n
La valeur de n sera lue en donnée.
SOLUTION
public class Serie
{ public static void main (String[] args)
{ int nt ; // nombre de termes de la serie harmonique
float som ; // pour la somme de la serie
int i ;
do
{ System.out.print ("combien de termes : ") ;
nt = Clavier.lireInt() ;
}
while (nt<1) ;
for (i=1, som=0 ; i<=nt ; i++) som += (float)1/i ;
System.out.println ("Somme des " + nt + " premiers termes = " + som) ;
}
}
Remarque
1. Rappelons que dans :
som += (float)1/i
l’opérateur float porte sur l’entier 1. Le premier opérande de l’opérateur / est donc de type float ; par conséquent, son second opérande sera soumis à une promotion numérique en float, avant qu’on ne procède à la division.
Notez qu’il faut éviter d’écrire :
som += 1/i
En effet dans ce cas l’opérateur / porterait sur deux entiers et correspondrait à la division entière. Le résultat serait toujours nul (sauf pour i = 1).
De même, en écrivant :
som += (float)(1/i)
le résultat ne serait pas plus satisfaisant puisque la conversion en flottant n’aurait lieu qu’après la division (en entier).
En revanche, on pourrait écrire :
som += 1.0f/i
2. On peut améliorer la précision du résultat en effectuant la somme "à l’envers", c’est-à-dire en allant de n vers 1 et non pas de 1 vers n. La différence ne deviendra cependant perceptible que pour de grandes valeurs de n.
Merci :D
RépondreSupprimer