IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Calculer une racine carrée


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Calculer une racine carrée
    Bonjour je bloque sur un exercice en programmation en C, voici l'enoncé:

    Pour calculer la racine carree d’un nombre a, il est possible
    d’utiliser l’algorithme de Heron d’Alexandrie. Cette methode est la suivante.
    Supposons que l’on cherche la racine x de a (x2 = a). Nous avons donc
    2x2 = x2 + a, on en deduit 2x = x + a/x . Et finalement, on trouve que x est
    solution de x = x/2 + a/2x . Nous pouvons donc construire la suite suivante :
    x0 = a
    xi+1 = xi/2 + a/2xi
    Ecrire une fonction prenant en parametre un reel a et un entier n, qui calcule
    et affiche les n premiers termes de la suite. On affichera egalement la racine
    carree de a a titre de comparaison (on utilisera pour cela la fonction sqrt de
    la bibliotheque math.h).

    Voici mon programme qui ne marche pas, je ne vois pas ou est mon erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    void Heron_Alex ( float a, int n); //Prototype de la fonction Heron_Alex
     
     
    int main()
    {
     
        int n = 0, compteur;
        float a = 0, racine = 0, c;
     
        printf("Racine carree d'un nombre par l'algorithme de Heron d'Alexandrie (exercice 1): \n\n\n");
        printf("Valeur de a:  ");
        scanf("%f", &a);
        printf("\n");
        printf("Valeur de n:  ");
        scanf("%d",& n);
        printf("\n\n");
     
        Heron_Alex(a,n);  //appel de la fonction Heron_Alex
        racine = sqrt(a);     //fonction sqrt(racine carree) présente dans math.h
        printf("la racine carre par la fonction sqrt vaut %lf\n", racine);
     
    return 0;
    }
     
    void Heron_Alex (float a, int n)  //fonction Heron_Alext
    {
        int compteur = 1;
        float c = 1;
     
        printf("Les %d premieres valeurs sont:\n",n);
     
        while (compteur <= n)
        {
            c = 1/2 * (c + a / c);
            printf("%f\n", c);
            compteur++;
        }
    }

  2. #2
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 887
    Points : 1 531
    Points
    1 531
    Par défaut
    Citation Envoyé par eldiablo7 Voir le message
    1 / 2 = 0 ! (c'est des entiers)

    Essaye plutôt 1.0 / 2.0 (ou plus simple 0.5)

Discussions similaires

  1. Comprendre mon exercice : formule récurrente de calcul d'une racine carrée
    Par djmhdi dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 15/01/2015, 18h30
  2. Réponses: 3
    Dernier message: 07/08/2013, 12h44
  3. Calculer la racine carrée d'un nombre d'une façon particulière
    Par Roud9 dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 29/09/2010, 03h11
  4. Réponses: 2
    Dernier message: 17/02/2007, 05h43
  5. Comment calculer une racine carrée ?
    Par Poseidon62 dans le forum Ada
    Réponses: 9
    Dernier message: 28/11/2006, 00h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo