Exercice programation Java

Dr_Charlatan Messages postés 3 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour, vous pouvez m'aider à résoudre les exercices suivants s'il vous plaît :

Soient p un réel positif et r sa racine carrée. On a r^2 = p, d'où r^2 + r = r + p puis r = (r+p)/(r+1). Une approximation de r est alors obtenue par un calcul itératif : r(i+1) = (r(i)+p)/(r(i) + 1) avec r(0) que l'on choisit ici égal à p/2.

1) Écrire une méthode termeN qui prend en arguments un réel p et un entier n et qui renvoie le terme r(n).

2) Écrire une méthode termeE qui prend en arguments deux réels p et e et qui renvoie le terme r(i) de plus petit indice vérifiant - e < r(i)+1 - r(i) < e.


1)
import fr.deug.script.*;
          public class terme {
               public static int termeN (int p, int n) {
                  double r = p/2;
                   int i = 1;
                   while(i<=n){
                        r = (r+p)/(r+1);
                        i = i + 1;
                       }
                   return r;
                }
             ]
          


2) Pour la 2) je n'ai pas compris, ce que l'exercice veut que je fasse...

Merci.
A voir également:

2 réponses

Dr_Charlatan
 
Aidez-moi.
0
KX Messages postés 19031 Statut Modérateur 3 020
 
1) "en arguments un réel p et un entier n" : p ne peut pas être int, car p est réel.

Ensuite, un plus gros détail : tu fais une initialisation de i, puis une condition sur i, et une incrémentation de i... dans une boucle while ! Pourquoi pas une boucle for ?

2) Ce qu'on te demande c'est la valeur r telle que la précision est plus petite qu'un epsilon e (la première puisqu'elle nous suffit)
En gros, si on te demande un calcul avec e=0.01, ça signifie qu'entre r(i) et r(i+1) tu n'as gagné en précision moins de 0.01, dans ce cas on peut considérer que pour l'epsilon donné le résultat r(i+1) est suffisant.
0