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.





Article plus récent Article plus ancien

One Response to “TP java avec solution - Exercice java corrigé - calcul la valeur série”

Telechargement