Exo Java SRC
Aulë
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en première année src et je commence la prog en java. Je suis pas le meilleur, loin de là, et je bloque sur un des exercices de mon TP (qui est à rendre et noté accessoirement :/)
Merci de m'aider :D
Voici ce que j'ai :
Calculez à l'aide d'un programme la limite d'une suite Sn = Somme des n par pas de i=1 de : 1/i² sachant que l'on arrête l'exécution lorsque |Sn+1 - Sn| < E avec E proche de zéro.
Vous vérifierez que la limite de la suite est une bonne approximation de pi²/6 et en déduirez la valeur approchée de pi.
J'ai un peu bûcher dessus, et pour l'instant, voici ce que j'ai tenté de faire pour résoudre ce problème :
class Exo6
{
public static void main(String [] args)
{
double res=0, n=10, i=1, e=0.00000000000001;
while(1/(n+1)*(n+1)<e){
res=res+(1/i*i);
i++;
}
System.out.println(res);
}
}
Merci de m'aider rapidement :D
Aulë
Je suis en première année src et je commence la prog en java. Je suis pas le meilleur, loin de là, et je bloque sur un des exercices de mon TP (qui est à rendre et noté accessoirement :/)
Merci de m'aider :D
Voici ce que j'ai :
Calculez à l'aide d'un programme la limite d'une suite Sn = Somme des n par pas de i=1 de : 1/i² sachant que l'on arrête l'exécution lorsque |Sn+1 - Sn| < E avec E proche de zéro.
Vous vérifierez que la limite de la suite est une bonne approximation de pi²/6 et en déduirez la valeur approchée de pi.
J'ai un peu bûcher dessus, et pour l'instant, voici ce que j'ai tenté de faire pour résoudre ce problème :
class Exo6
{
public static void main(String [] args)
{
double res=0, n=10, i=1, e=0.00000000000001;
while(1/(n+1)*(n+1)<e){
res=res+(1/i*i);
i++;
}
System.out.println(res);
}
}
Merci de m'aider rapidement :D
Aulë
A voir également:
- Exo Java SRC
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
3 réponses
1/(n+1)*(n+1)
1/i*i
attention !
C'est comme dans les calculettes, il manque une parenthèse à chaque fois
1/(i*i) et 1/( (n+1)*(n+1) )
par contre le deuxième, le truc avec le 1/ ((n+1)*(n+1)), comme condition de boucle je ne pense pas que c'est ça : ça vaut toujours la même chose ce calcul, peu importe l'étape...
pour traduire ton " |Sn+1 - Sn| < e " il faut que tu mémorises l'ancienne valeur de res calculée.
1/i*i
attention !
C'est comme dans les calculettes, il manque une parenthèse à chaque fois
1/(i*i) et 1/( (n+1)*(n+1) )
par contre le deuxième, le truc avec le 1/ ((n+1)*(n+1)), comme condition de boucle je ne pense pas que c'est ça : ça vaut toujours la même chose ce calcul, peu importe l'étape...
pour traduire ton " |Sn+1 - Sn| < e " il faut que tu mémorises l'ancienne valeur de res calculée.
class Exo6
{
public static void main(String [] args)
{
double Sn=0, Snadd=1, stop=1, i=0, e=0.00000000000001;
while(Snadd<e){
i++;
Sn=Snadd+(1/(i*i));
stop=Math.abs(Snadd-Sn);
Sn=Snadd;
}
System.out.println(Snadd)
System.out.println(Math.pi*Math.pi/6);
}
}
J'en arrive là....bon, je me suis fait aider et j y comprends pas grand chose (un comble alors que c'est moi en final qui écrit...). Merci pour les parenthèses, même si je pensais que le * était prioritaire sur le /
{
public static void main(String [] args)
{
double Sn=0, Snadd=1, stop=1, i=0, e=0.00000000000001;
while(Snadd<e){
i++;
Sn=Snadd+(1/(i*i));
stop=Math.abs(Snadd-Sn);
Sn=Snadd;
}
System.out.println(Snadd)
System.out.println(Math.pi*Math.pi/6);
}
}
J'en arrive là....bon, je me suis fait aider et j y comprends pas grand chose (un comble alors que c'est moi en final qui écrit...). Merci pour les parenthèses, même si je pensais que le * était prioritaire sur le /
Sn=Snadd+(1/(i*i));
Sn=Snadd;
La première ligne devient inutile à cause de la deuxième....
C'est Snadd = Snadd + .... que tu veux faire je pense...
Que signifie exactement pour toi "Snadd" et "sn" ?
de plus
stop=Math.abs(Snadd-Sn);
ok, là la valeur de stop va contenir ce que tu souhaites tester pour savoir si tu continues ou pas, en supposant que Snadd contient le pas après Sn.
mais dans la condition que tu testes : while(Snadd<e) tu ne l'utilises pas...
Il faut que tu prennes l'habitude de tester toi-même ton code.
Évidemment que le résultat sort faux à chaque fois, mais ce que je veux dire par là c'est qu'il te faut afficher les valeurs de tes variables pendant la boucle, tu sauras ainsi dès les première étapes s'il y a un problème. (car les bonnes étapes tu peux les faire toi-même avec un papier, un crayon et une calculette pour comparer). ça te permettra de mieux voir ce qu'il se passe et de mieux comprendre ce que tu écris.
Sn=Snadd;
La première ligne devient inutile à cause de la deuxième....
C'est Snadd = Snadd + .... que tu veux faire je pense...
Que signifie exactement pour toi "Snadd" et "sn" ?
de plus
stop=Math.abs(Snadd-Sn);
ok, là la valeur de stop va contenir ce que tu souhaites tester pour savoir si tu continues ou pas, en supposant que Snadd contient le pas après Sn.
mais dans la condition que tu testes : while(Snadd<e) tu ne l'utilises pas...
Il faut que tu prennes l'habitude de tester toi-même ton code.
Évidemment que le résultat sort faux à chaque fois, mais ce que je veux dire par là c'est qu'il te faut afficher les valeurs de tes variables pendant la boucle, tu sauras ainsi dès les première étapes s'il y a un problème. (car les bonnes étapes tu peux les faire toi-même avec un papier, un crayon et une calculette pour comparer). ça te permettra de mieux voir ce qu'il se passe et de mieux comprendre ce que tu écris.