Programme

Equilibrium -  
 Equilibrium -
Bonjour,

j'ai un programme à écrire en fortran : il doit donner la racine carrée d'un nombre a en utilisant la suite un+1= 1/2*(un+a/un) .
Le voilà :

program racine



implicit none
real :: valeur,u
integer :: maxiter,i

PRINT*,'donnez la valeur dont vous voulez calculer la racine'
READ*,valeur
PRINT*,'donnez le nombre ditérations'
READ*,maxiter

u=valeur

!on enlève la possibilité de prendre une racine négative!
if (valeur<0) then
PRINT*,'ce nombre est négatif il nadmet pas de racine'
ELSEIF (valeur==0) then
PRINT*,'la racine de 0 est 0'
ELSE

do i=1,maxiter
u=(1/2)*(u+valeur/u);
enddo
endif
print*,u
end program



Il ne marche pas : à chaque fois que j'entre la valeur du nombre dont on veut la racine et le nombre d'itérations, il me renvoie " NaN" ...J'ai beau chercher je vois pas le problème !

Merci de m'aider !

4 réponses

Rollin'babe !!
 
Bjour,

En ce qui concerne le calcul d'une racine carrée par la méthode de "Héron d’Alexandrie", voici un lien qui peut vous aider :

http://membres.lycos.fr/ericmer/Racines/racines.htm

En effet, votre algorithme semble inexact.

Cordialement.
0
Equilibrium
 
Merci aussi pour la rapidité des réponses, je vais regarder tout ça ;)
0
Utilisateur anonyme
 
Je ne vois pas non plus comme ça
mais le meilleur moyen pour toi dans ces cas là c'est d'ajouter des print*,u (et éventuellement des print*,valeur) pour voir jusqu'où ton programme se déroule normalement
-1
societeserieuse Messages postés 202 Statut Membre 7
 
je ne connais pas ce language mais en javascript quand ca dis "NAN" c'est qu'il y a un caractere qui n'est pas numerique comme si par exemple tu fé : 5+aa et bien tu auras cette erreur j'espere que ca t'aidera a trouver le probleme
-1