Algorithme_Racine_Carree

Résolu/Fermé
CALiiMERO Messages postés 69 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 - 7 déc. 2009 à 22:10
CALiiMERO Messages postés 69 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 - 8 déc. 2009 à 23:00
Bonjour,

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

Boulet moi aussi
8 déc. 2009 à 03:07
scanf("%d", nbr);
0
CALiiMERO Messages postés 69 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 8
8 déc. 2009 à 11:28
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;
}
0
CALiiMERO Messages postés 69 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 8
8 déc. 2009 à 11:44
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
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
8 déc. 2009 à 16:22
ici de même tu as oublié d'initialiser i à 0 ;)
0
dr hisoka Messages postés 71 Date d'inscription vendredi 6 novembre 2009 Statut Membre Dernière intervention 2 février 2010 3
8 déc. 2009 à 20:05
on compare carre avec nbr .... mais ou est la valeur initiale de carre ????
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CALiiMERO Messages postés 69 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 8
8 déc. 2009 à 20:35
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
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
8 déc. 2009 à 20:56
quel programme as-tu compilé exactement ? celui donné plus haut ne compile pas, il manque une accolade.
0
CALiiMERO Messages postés 69 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 8
8 déc. 2009 à 20:58
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;
}
0
Bonjour
printf("la racine est %d",carre);
Et ça t'étonne que ça affiche le carré au lieu de la racine ?
0
dr hisoka Messages postés 71 Date d'inscription vendredi 6 novembre 2009 Statut Membre Dernière intervention 2 février 2010 3
8 déc. 2009 à 22:14
il faut afficher i pas le carre
0
CALiiMERO Messages postés 69 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 8
8 déc. 2009 à 23:00
erreur de frappe lol
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
7 déc. 2009 à 22:18
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 ?
-1
dr hisoka Messages postés 71 Date d'inscription vendredi 6 novembre 2009 Statut Membre Dernière intervention 2 février 2010 3
8 déc. 2009 à 03:00
#include <stdio.h>
#include <stdlib.h>

int main()
{
int i , 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;
}

je les compiler sans prob mais ça n'exécute pas !!!??? prq ?
-1