bonjour est ce quelque peut m aider a faire cet exo (itératives imbriquées)
écrire un algorithme permettant de calculer X^y avec X et Y entiers positifs.
seul l'addition des possible
merci
-----
bonjour est ce quelque peut m aider a faire cet exo (itératives imbriquées)
écrire un algorithme permettant de calculer X^y avec X et Y entiers positifs.
seul l'addition des possible
merci
Bonjour,
Avec un nombre de Y chiffres en base X on a X^Y valeurs possibles
exemple en base 3 avec 2 chiffres
00
01
02
10
11
12
20
21
22
On prend donc un tableau de Y postes initialisés a 0 et on compte tous les possibilités (en remettant a zero les postes a droite chaque fois qu'on incremente un poste)
Hello!
Et pourquoi ce sujet est en "Logiciel-software-open-source"?
Veuillez contacter l'administrateur si votre date de naissance a changé
(Futura Sciences)
je n'ai pas vraiment compris
Dans mon exemple tu vois comment on obtient 3^2 = 9 avec un tableau à 2 cases.
pour avoir 3^3 essaie avec 3 cases
de
000
001
002
010
à
222
tu as 27 cas
Quand tu en es à 022 par exemple Il faut incrémenter la case 1 remettre à 0 les cases à sa droite et recommencer:
100
101
102 etc
en programme en C
#include <stdio.h>
int main(void)
{
/*DONNEES D'ENTREE*/
int X, Y, P;
while (X>0 && Y>0)
{
printf("Entrez un nombre entier");
scanf("%d" ,&X) ;
printf("Entrez une puissance entière") ;
scanf("%d", &Y) ;
}
for() >>> je sais pas koi mettre dans for ?
{
P=X^Y
printf("^ , = : %d\n" , X , Y , P) ;
}
return (0);
}
vous pouvez m dire si c'est bon
De meme en partant du principe que c'est qu'avec l'addition, il suffit de décomposer à la main et mettre des parenthèses comme il faut pour voir ce qu'il faut mettre dans tes for :
3^3 =
3 * 3 * 3 =
(3 * 3 ) * 3 =
( 3 + 3 + 3 ) * 3 =
( 3 + 3 + 3 ) + (3 + 3 + 3 ) + ( 3 + 3 + 3 )
3 ^ 4 =
3 * 3 * 3 * 3 =
((3 * 3) * 3) * 3 =
((3 + 3 + 3) *3) * 3 =
(( 3 + 3 + 3 ) + (3 + 3 + 3 ) + ( 3 + 3 + 3 )) * 3 =
(( 3 + 3 + 3 ) + (3 + 3 + 3 ) + ( 3 + 3 + 3 )) + ((3 + 3 + 3) *3) * 3 =
(( 3 + 3 + 3 ) + (3 + 3 + 3 ) + ( 3 + 3 + 3 )) + (( 3 + 3 + 3 ) + (3 + 3 + 3 ) + ( 3 + 3 + 3 )) + (( 3 + 3 + 3 ) + (3 + 3 + 3 ) + ( 3 + 3 + 3 ))
Avec ca, tu devrais voir facilement les bornes à mettre et la facon d'implémenter ton algo
Bonjour,
As tu trouvé avec la méthode de Towl
Au lieu de toujours ajouter des 1, tu ajoutes avec des 1 pour le 1er poste et tu trouves x^1
tu mets le resultat en reserve. x->W
pour le deuxieme poste tu ajoutes avec W
tu touive ainsi x*x qe tu mets dans W etc.
Il faut 2 boucjes imbriquées
For i de 1 a Y
.For j de 1 a X
tu peut monter comment faire pour mettre dans for en programme c
merci
je suis de retour ce soir;
salut
cherche entretemps
n'hésite pas a donner tes idees.
int P=0;
for(i=1; i<=Y; i++)
{P+=X;
for (j=1; j<=X; j++)
{P+=Y;
}
printf("X ^ Y = P: %d\n", X,Y,P);
}
Si on prends ton algo, on a, pour 2^3 (x=2, y=3):
- for j ... nous donne 3+3
- for i ... nous donne 2 + [for j] + 2 + [for j] + 2 + [for j] = 2*3 + 3*(3+3) = 3 * (2 + (3 + 3))
Or 2^3 = (2+2) + (2 + 2).
Pour ma part, je te conseillerais de faire 2 fonctions :
- une qui prend 2 parametre et te ressort sa multiplication
- une qui prend 2 parametre et te ressort sa puissance.
Indice : chaque fonction dispose d'une boucle for.Code:int mul(x, y) { .... [code de x*y] } int pow(x, y) { .... [ code de x*y, soit mul(..., ...) ] }
Ma réponse (en Pascal)
Cliquez pour afficher
xpuisy := 0;
w := 1;
for i := 1 to y do begin
.. xpuisy := 0;
.. for j := 1 to x xpuisy := xpuisy + w;
.. w := xpuisy;
end;
j'ai pas encore fait en pascal
p=?
je dois avoir que des additions et non des multiplication
par ex:2^3=(2+2)+(2+2)=8
5^2=(5+5)+(5+5)+5=25
qu est ce que je dois mettre dans p en fonction de x et y
Je ne comprends pas trop pourquoi tu te mets à écrire un programme en C alors qu'on te demande un algo C'est un peu ce qu'alovesupreme t'a écrit.
P.S. Par ailleurs, si je ne m'abuse, il te faut mettre
si tu veux te servir de la puissance... Et ne pas oublier qu'elle admet deux paramètres : pow(nombre à élever à la puissance, puissance elle-même), comme Towl l'a précisé plus haut.Code:#include <math.h>
je veux pas utiliser la puissance je veux que des addition
apres je dois en c
Si tu souhaites suivre mon exemple d'architecture de code (pas la plus "rapide", mais plus réutilisable ), essaye déjà d'écrire la fonction "int mul(x, y)" qui va multiplier x par y qu'avec des additions.
Pour faire un algorithme, il faut apprendre à diviser en "petit" probleme le probleme énnoncé : tu souhaites faire des puissances avec des additions.
Une puissance, c'est une répétition de multiplication. Répétition signifie généralement boucle. Il ne te reste plus qu'a déterminer ce qu'est une multiplication
une multiplication c'est une répétition d'addition, donc une boucle d'addition.
Et voila, tu as obtenu ton schéma : boucle de boucle d'addition (pour reprendre l'algo d'alveosupreme). Ou alors, c'est une boucle de multiplication (et on se fiche de savoir ce qu'est une multiplication à ce niveau la), et une multiplication est une boucle d'addition. Et la tu retombes sur mon algo avec deux fonctions
je suis vraiment perdu
est ce que tu pourer me donner la reponse stp
Il est contraire à l'usage de ce forum de fournir la solution toute prête d'un exercice. C'est à toi à le faire avec les aides qui t'ont été apportées.
Rien ne sert de penser, il faut réfléchir avant - Pierre Dac
merci quand meme j'ai reusis a faire