Programme pascal calcul pi????
enseignant2012
Messages postés
12
Statut
Membre
-
enseignant2012 Messages postés 12 Statut Membre -
enseignant2012 Messages postés 12 Statut Membre -
Bonjour,
qcq un peut me donner la solution de cette exercice
ecrire bprg pascal qui permet de calculer une valeur approchée de pi
pi=6+6/22+6/32+6/42+..............................+6/n2
le calcul s'arrte lorsque la difference entre deux termes succesives devient < .0.0001
qcq un peut me donner la solution de cette exercice
ecrire bprg pascal qui permet de calculer une valeur approchée de pi
pi=6+6/22+6/32+6/42+..............................+6/n2
le calcul s'arrte lorsque la difference entre deux termes succesives devient < .0.0001
14 réponses
-
bonjour
1. au passage cette série due à Euler, approche pi² et non pi
pi² = 6(1+1/2²+1/3²+......)
2. pour qu'on puisse t'aider, et non faire le pb à ta place, tu devrais nous montrer où tu en es (un algorithme par exemple) de tes réflexions
bonne suite -
je sait pas exactement ce que tu veut faire mais pi est égal à 4 fois l'arc tangente de 1 (En vb ça s'écrit pi=4*atn(1))
-
-
-
desolé pour la faute oui ce ca:
valeur approche de pi² et non pi
pi² = 6(1+1/2²+1/3²+......)
voila ma solution
program calcul;
uses wincrt;
var
xpre,pi:real;
function calc:real;
var
xpre ,x:real;
i:integer;
begin
i:=1;
repeat
x:=xpre+6/sqrt(i);
xpre:=x;
i:=i+1;
until (abs(x-xpre)<0.0001);
end;
begin
xpre:=6;
pi:=calc;
write('la valeur est ',pi);
end.
-
-
Bonjour
http://www.commentcamarche.net/faq/10925-demander-de-l-aide-pour-vos-exercices-sur-ccm -
merci le pere
voila de nouveau
program calcul;
uses wincrt;
var
xpre,pi:real;
function calc:real;
var
xpre ,x:real;
i:integer;
begin
xpre:=6;
i:=1;
repeat
x:=xpre+6/sqrt(i);
xpre:=x;
i:=i+1;
until (abs(x-xpre)<0.0001);
end;
begin
xpre:=6;
pi:=calc;
write('la valeur est ',pi);
end. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
j'ai initialisé xpre:=6 car c la valeur du premier terme de l'expression est 6
puis xpre prend la nouvelle somme obtenue qui est x
cest juste une idée
si possible solution et merci d'avance -
-
re
RQ1. la fonction carré est sqr et non sqrt (racine carrée)
RQ2. tiens compte des remarques de le père,
- quand tu fais ton test abs(x-xpre)<0.0001, comme dès le premier tour de boucle on a, x=xpre .....
- xpre := 6 n'a rien à faire dans le programme principal
RQ3. le résultat de la fonction calc n'est jamais renvoyé, ça se fait avant le end; de la fonction calc, avec calc := xpre
RQ4. quand tu as écrit un algorithme, fais un tableau de suivi des variables et des tests, histoire de voir comment évolue ton programme
bonne suite -
merci ca devient coome ca la solution???
program calcul;
uses wincrt;
var
xpre,pi:real;
function calc:real;
var
xpre ,x:real;
i:integer;
begin
xpre:=6;
i:=1;
repeat
x:=xpre+6/sqr(i);
xpre:=x;
i:=i+1;
until (abs(x-xpre)<0.0001);
calc:=x;
end;
begin
pi:=calc;
write('la valeur est ',pi);
end. -
re
il reste quelques erreurs
1. mauvaise gestion des deux variables x et xprec (dans l'ordre)
- au depart x initialisé à 0
- dès l'entrée dans la boucle xprec = x
- calcul de la nouvelle valeur de x
- maj de i
2. calc renvoie pi² donc la le programme principal pi = racine(pi²)
RQ1. le type longint pour i me parait plus adapté (le type integer s'arrête à 32767)
bonne suite -
merci bcp
en principe c'est bon
program calcul;
uses wincrt;
var
pi:real;
function calc:real;
var
xpre ,x:real;
i:integer;
begin
x:=0;
i:=1;
repeat
xpre:=x;
x:=xpre+6/sqr(i);
i:=i+1;
until (abs(x-xpre)<0.001);
calc:=x;
end;
begin
pi:=calc;
write('la valeur de pi au carré est ',pi);
end. -
voilà, c'est OK pour obtenir pi² en sortie
bonne suite -
Vérifie l'ordre de tes instructions : tel que tu as écrit ton programme, en fin de boucle, xpre est toujours égal à x, donc x-xpre vaut toujours 0...
Tu as juste deux lignes à inverser. je te laisse réfléchir. -
C'est bien de penser à initialiser xpre dans la fonction. Mais est ce-bien la bonne valeur ?
Et à quoi sert la variable xpre en dehors de la fonction ?
Et à quoi sert la remarque que je t'ai faite dans mon message précédent ? Tu n'en as tenu aucun compte. Combien vaut x-xpre après avoir exécuté la ligne xpre:=x; ? -