Problème mathématique dans un programme
Salut, j'ai un problème mathématique et c'est urgent dans l'exercice suivant:
Voici l'exercice:
Soit la suite U définie par U0=3/4 et la relation:
pour tout n appartient N, Un+1=Un-Un²
On admet que la suite U est décroissante et converge vers 0.
Ecrire un programme qui détermine le premier entier n pour lequel Un< 0.001
voici ma solution
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| program exercice;
uses crt;
var n:integer;
function u(n:integer):real;
var i:integer;v:real;
begin
v:=3/4;
for i:=1 to n do
v:=v-v*v;
u:=v;
end;
begin
clrscr;
n:=0;
repeat
n:=n+1;
until u(n)<1/1000;
write('le premier entier n pour lequel Un<1/1000 est=',n);
readln;
end. |
Alors mon problème est qu'on est pas sûr que les valeurs de la suite passeront par 0.001 (on a l'information que la suite est décroissante mais pas qu'elle est strictement décroissante) .lorsque on exécute le programme oui c'est juste mais coté algorithmique est ce qu'il y a un problème de ne pas faire un test..
aidez moi s'il vous plait