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
bizu53 Messages postés 1274 Date d'inscription   Statut Membre Dernière intervention   861
 
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 172 Date d'inscription   Statut Membre Dernière intervention   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