Probleme algorithmique

Fermé
pearsoks Messages postés 7 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 4 juin 2012 - 13 juin 2008 à 19:12
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 - 14 juin 2008 à 13:37
Bonjour,
jé besoin d'aide pour me donner un algorithme du carré parfait. 49=7²

6 réponses

archi-dessin
13 juin 2008 à 20:05
slt,
7² =7*7
debut
lire valeur
lire puiss
somme=1
i=1
tanque i<=puiss faire
somme=somme*valeur
i=i+1
fintantque
ecrire somme

fin
2
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
13 juin 2008 à 20:11
là tu donnes une boucle pour calculer un nombre x élevé à l'exposant n avec n € N+
plus simple
lire puissance
lire nombre
pour i=2 à puissance par pas de 1 /*pourquoi commencer à 2? si tu commences à 0 ou 1 il fera une boucle de trop*/
nombre=nombre*nombre
finpour
ecrire nombre
0
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
13 juin 2008 à 19:41
gné?
alors je te réponds un petit algorythme qui te permet de calculer le carré d'un nombre
nombre integer
lire nombre
nombr*nombre==>nombre
ecrire nombre


et un qui te permet de vérifier si un nombre est un carré parfait et d'écrire le nombre de départ si c'est bon
nombre integer
racine integer
racinefloat flottant

lire nombre
partieentiere(racine(nombre))==>racine
racine(nombre)==>racinefloat
si racine=racinefloat alors
ecrire "ce nombre est le carré parfait de" + racine.convertienstring
sinon
ecrire "ce nombre n'est pas un carré parfait, le carré parfait le plus proche est " + (racine*racine).convertienstring + "carré parfait de" + racine.convertienstring
fin si
0
pearsoks Messages postés 7 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 4 juin 2012
13 juin 2008 à 19:49
moi jé fé


si (nombre div sqrt(nombre))= sqrt(nombre) alors ecrire ('Le nombre ',nb,'est un carré parfait'); le probleme est dans les nombres réel
0
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146 > pearsoks Messages postés 7 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 4 juin 2012
13 juin 2008 à 19:55
ton algorythme est faut car 0 est le carré de 0... or si tu divise 0 par racine de 0 tu auras une division par 0 qui est impossible même pour l'ordinateur.
ça signifie quoi "le problème est dans les nombres reels"?
0
archi-dessin
13 juin 2008 à 20:32
sitaution général, quel que soit la valeur et aussi la puissance
0
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
13 juin 2008 à 20:40
avec une puissance entiere et positive.
car dès qu'elle est négative tu as une autre chose à faire
de même si la puissance est relative (1.1 par exemple)
0
archi-dessin
13 juin 2008 à 20:41
votre boucle est fausse mon cher, tu dois comprendre les conteurs des valeurs et des entrer,
pour verifier essayer de le faire manuellement ce que vous avez écrit
0

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

Posez votre question
archi-dessin
13 juin 2008 à 20:53
si vous voulez quand généralise pour tout les valeurs de puissance déclmale et/ou négative et positive
on peut le faire sans problèmed'ailleur ce problème parmis les sujets qui sont facile à refaire
0
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
13 juin 2008 à 21:43
ma boucle je la fais
soit puissance = 9
pour ide 2 à 9 par pas de 1

i= 2
=>nomrbre = nombre * nombre
i=3
nombre= nombre * nombre = nombre ^3
i=4
nombre^4
i=5
nombre^5
[..]
i=9
nombre puissance 9 fin de boucle

pour les autres cas de puissance il faut juste utiliser des clauses "if"
(je n'ai pas encore le niveau en math pour avoir vu les puissance décimale, je sais juste que ça a rapport avec l'exponentiel et ln(x))

donc
/*déclaration variable*/
nombre floatdouble
puissance floatsimple
negative
decimale

lire nombre
lire puissance
si non partieeentiere(puissance)=puissance alors
calculer avec la formule que je connais pas
ecrire nombre
sinon si puissance>0 alors
faire la boucle que je t'ai proposée
ecrire nombre
sinon 
faire la boucle que je t'ai prpoposée
inverse = 1/nombre
ecrire inverse
finsi
0
Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009 25
14 juin 2008 à 08:32
vous faite n'impote quoi .... essayer de faire mon algori. et le comparer avec le votre
en plus je vous consiel d'aller rechercher des exercice simple avec des solutions pour comment les autres en fait et savoir faire la logique...... fin
0
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
14 juin 2008 à 13:37
j'ai regardé et mon algo, et mes cours et j'ai même tenté de faire cela en le programmant en VB... et j'ai vu mon erreur.
en fait voici l'algorithme corrigé
nombre
nombrelu
puissance

pour i 2 à puissance par pas de 1
nombre = nombre * nombrelu

j'ai bon là non?
0