Programme

Fermé
Equilibrium - 4 oct. 2008 à 13:45
 Equilibrium - 4 oct. 2008 à 13:58
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 !!
4 oct. 2008 à 13:54
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
Merci aussi pour la rapidité des réponses, je vais regarder tout ça ;)
0
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 859
4 oct. 2008 à 13:50
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 dimanche 24 août 2008 Statut Membre Dernière intervention 3 décembre 2008 7
4 oct. 2008 à 13:51
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