Programme pascal calcul pi????
enseignant2012
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
enseignant2012 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
enseignant2012 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
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
A voir également:
- Pi in pascal
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Navigation in private - Guide
- Aux in ✓ - Forum Enceintes / HiFi
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
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.
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.
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.
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
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
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.
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
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.
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.
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.
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; ?
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; ?