Algorithme_Racine_Carree
Résolu
CALiiMERO
Messages postés
69
Date d'inscription
Statut
Membre
Dernière intervention
-
CALiiMERO Messages postés 69 Date d'inscription Statut Membre Dernière intervention -
CALiiMERO Messages postés 69 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je trouve des problémes pour faire un algorithme :
"sans passer par la racine carrée" je trouve que cette solution : X = x^(1/2) mais ça n'arrange pas les choses pour le traduire en algo.
Vous pensez quand peut faire mieu que ça?
Je trouve des problémes pour faire un algorithme :
Ecrire un algorithme qui vérifie si X , un entier donné par l'utilisateur , est un carré , si oui retourne la valeur de l'entier dont il est le carré , sans passer par la racine carrée.
Exemple : X=9 , l'entier est 3
"sans passer par la racine carrée" je trouve que cette solution : X = x^(1/2) mais ça n'arrange pas les choses pour le traduire en algo.
Vous pensez quand peut faire mieu que ça?
10 réponses
Je crois que parce que tu n'as pas donner une valeur initiale à "i" .
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=0,carre,nbr;
printf("entrer un nbr");
scanf("%d",&nbr);
while(carre<nbr)
{
carre=i*i;
if(carre==nbr)
printf("la racine est %d",carre);
else
i++;
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=0,carre,nbr;
printf("entrer un nbr");
scanf("%d",&nbr);
while(carre<nbr)
{
carre=i*i;
if(carre==nbr)
printf("la racine est %d",carre);
else
i++;
return 0;
}
Algorithme_Carre Variables: i, carre, nbr; Debut Ecrire("Entrer un nombre :"); Lire(nbr); Tant que (carre<nbr) faire carre<-i*i; Si (carre=nbr) alors Ecrire("La racine carre est",carre); Sinon i<-i+1; FinSi FinTantque Fin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai donner comme valeur initiale de carre = 0, et j'ai compiler le programme et ça donne
X=9
La racine carre est 9
Il y a quelque chose qui cloche quelques part :s
X=9
La racine carre est 9
Il y a quelque chose qui cloche quelques part :s
Celui là :
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=0,carre,nbr;
printf("entrer un nbr");
scanf("%d",&nbr);
while(carre<nbr)
{
carre=i*i;
if(carre==nbr)
printf("la racine est %d",carre);
else
i++;
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=0,carre,nbr;
printf("entrer un nbr");
scanf("%d",&nbr);
while(carre<nbr)
{
carre=i*i;
if(carre==nbr)
printf("la racine est %d",carre);
else
i++;
return 0;
}
Bonjour
printf("la racine est %d",carre);
Et ça t'étonne que ça affiche le carré au lieu de la racine ?
printf("la racine est %d",carre);
Et ça t'étonne que ça affiche le carré au lieu de la racine ?
il faut faire plus simple et plus "naïf". Comment aurais-tu pu dire, depuis que tu as appris ce qu'est un carré, que 9 en est effectivement un ?
Et bien tu fais simplement des essais :
1 au carré -> 1 c'est pas 9
2 -> 4 , c'est pas 9
3 -> 9 , c'est 9 !!! Donc, oui, 9 est un carré et c'est le carré de 3.
Autre exemple, avec 21.
1 -> 1, c'est pas 21
2 -> 4, c'est pas 21
3 -> 9, c'est pas 21
4-> 16, c'est pas 21
5-> 25, c'est pas 21.
En plus, avec 5 on a dépassé 21. On a aucune chance qu'un nombre plus grand au carré donne 21, on s'arrette là et on constate que 21 n'est pas un carré.
Tu comprends ?
Et bien tu fais simplement des essais :
1 au carré -> 1 c'est pas 9
2 -> 4 , c'est pas 9
3 -> 9 , c'est 9 !!! Donc, oui, 9 est un carré et c'est le carré de 3.
Autre exemple, avec 21.
1 -> 1, c'est pas 21
2 -> 4, c'est pas 21
3 -> 9, c'est pas 21
4-> 16, c'est pas 21
5-> 25, c'est pas 21.
En plus, avec 5 on a dépassé 21. On a aucune chance qu'un nombre plus grand au carré donne 21, on s'arrette là et on constate que 21 n'est pas un carré.
Tu comprends ?