Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1560 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Auteur Sujet :

[C] ah la la .... comment chercher la complication ... !

n°867529
ze nerdz
gné ?
Posté le 07-10-2004 à 22:03:42  profilanswer
 

Reprise du message précédent :

Taz a écrit :

ah bon ? ben il est où alors ?


C la zone code du premier post

mood
Publicité
Posté le 07-10-2004 à 22:03:42  profilanswer
 

n°867532
Taz
bisounours-codeur
Posté le 07-10-2004 à 22:05:54  profilanswer
 

# for(b=1;b<=y;b++){
#     r=r*x;
# }  
 
-->
 
# for(b=1;b<=y;b++){
#     r=mutliplication(r, x);
# }  
 
et op tu code multiplication ...

n°867533
Taz
bisounours-codeur
Posté le 07-10-2004 à 22:06:11  profilanswer
 

bon TTFN, y en a marre de batailler sur un problème de CM1

n°867534
masklinn
í dag viðrar vel til loftárása
Posté le 07-10-2004 à 22:06:32  profilanswer
 

noldor a écrit :

comme le dit Taz, si tu sais faire des multiplications avec des additions, et si tu sais faire des puissances avec des multiplications, y a pas de raiso que tu saches pas faire des puissances avec des additions


C'est là ou le bât blesse


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°867536
ze nerdz
gné ?
Posté le 07-10-2004 à 22:06:56  profilanswer
 

Masklinn a écrit :

déroule la boucle pour x=2 et y=8
 
b=1
a=1
r=r+2=2
a=2
r=r+2=4
b=2
a=1
r=r+2=6
a=2
r=r+2=8
// on en est à 2^2=8, pas classe
b=3
a=1
r=r+2=10
a=2
r=r+2=12
// 2^3 = 12 yay
b=4
a=1
r=r+2=14
a=2
r=r+2=16
// 2^4 = 16, ca marche!
b=5
a=1
r=r+2=18
a=2
r=r+2=20
// 2^5 = 20?? hum hum
 
en fait, tu génères une multiplication pour le premier terme, mais c'est tout, tu ne multiplies rien du tout tu fais des additions en chaine, tu fais non pas x^y mais x*x*y (a vue d'oeuil)


ouais je vois ou est l erreur, j essaye de reflechir comment modifer ca ...
 
pourtant en prenant les boucles une par une :
 
for(b=1;b<=y;b++){  
   r=r*x
}  
for(a=1;a<=x;a++){  
   r=r+x;  
}  
 
la premiere décompose une puissance en multiplication et la deuxieme la multiplication en somme non ?
 
 

n°867537
ze nerdz
gné ?
Posté le 07-10-2004 à 22:07:40  profilanswer
 

Taz a écrit :

# for(b=1;b<=y;b++){
#     r=r*x;
# }  
 
-->
 
# for(b=1;b<=y;b++){
#     r=mutliplication(r, x);
# }  
 
et op tu code multiplication ...


 
oui en gros tu ne lis tjrs pas, il ne faut pas de fonctions ...

n°867538
ze nerdz
gné ?
Posté le 07-10-2004 à 22:08:18  profilanswer
 

Taz a écrit :

bon TTFN, y en a marre de batailler sur un problème de CM1


D accord, merci quand meme d avoir essayé de le résoudre !  :hello:

n°867539
Taz
bisounours-codeur
Posté le 07-10-2004 à 22:09:43  profilanswer
 

ze nerdz a écrit :

oui en gros tu ne lis tjrs pas, il ne faut pas de fonctions ...

en gros tu fais toujours pas la différence entre algorithme et implémentation. si t'es pas capable de décomposer un problème simple comme ça, branche toi sur M6 :o


Message édité par Taz le 07-10-2004 à 22:10:00
n°867542
masklinn
í dag viðrar vel til loftárása
Posté le 07-10-2004 à 22:10:44  profilanswer
 

ze nerdz a écrit :

oui en gros tu ne lis tjrs pas, il ne faut pas de fonctions ...


pas marqué dans le premier post (et on comprend la réaction de taz, du C sans fonctions c'est débile :/), donc pas marqué dans ta recopie du sujet
 

ze nerdz a écrit :

ouais je vois ou est l erreur, j essaye de reflechir comment modifer ca ...
 
pourtant en prenant les boucles une par une :
 
for(b=1;b<=y;b++){  
   r=r*x
}  
for(a=1;a<=x;a++){  
   r=r+x;  
}  
 
la premiere décompose une puissance en multiplication et la deuxieme la multiplication en somme non ?


oui, si ces deux boucles sont totalement indépendantes l'une de l'autre ca marche
 
maintenant si elles sont imbriquées, ca va sûrement pas marcher directement


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°867543
ze nerdz
gné ?
Posté le 07-10-2004 à 22:11:41  profilanswer
 

Taz a écrit :

en gros tu fais toujours pas la différence entre algorithme et multiplication. si t'es pas capable de décomposer un problème simple comme ça, branche toi sur M6 :o


 
il me semble que tu ne lis tjrs pas, puisque j ai posté juste apres la décomposition, donc quitte le topic et va regarder M6.  :hello:  
 
Maintenant j aimerai que ce topic ne dérappe plus ..

mood
Publicité
Posté le 07-10-2004 à 22:11:41  profilanswer
 

n°867546
Taz
bisounours-codeur
Posté le 07-10-2004 à 22:13:06  profilanswer
 

en gros t'as là capacité de concentration d'un poisson rouge :  demain à l'école, demande à tes potes combien de temps ils ont mis pour résoudre ça. "10s mais faut dire que je blablatais pas sur HFR"

n°867548
ze nerdz
gné ?
Posté le 07-10-2004 à 22:13:41  profilanswer
 

Masklinn a écrit :

pas marqué dans le premier post (et on comprend la réaction de taz, du C sans fonctions c'est débile :/), donc pas marqué dans ta recopie du sujet


 

Citation :

je precise que c pour un cours de Base de Programmation, donc les boucles sont le max de ce qu on doit utiliser ... (pas de fonctions), en fait dans le meme style qu au dessus ...  


 
Je crois que pas beaucoup de monde ont lu le premier post, pourtant je ne l ai pas encore édité

n°867551
masklinn
í dag viðrar vel til loftárása
Posté le 07-10-2004 à 22:15:48  profilanswer
 

ze nerdz a écrit :

Citation :

je precise que c pour un cours de Base de Programmation, donc les boucles sont le max de ce qu on doit utiliser ... (pas de fonctions), en fait dans le meme style qu au dessus ...  


 
Je crois que pas beaucoup de monde ont lu le premier post, pourtant je ne l ai pas encore édité


pour moi le sujet c'est:

Citation :

tout d abord le sujet qui a été donné :
"Ecrire un programme C permettant de claculer x^y avec x et y entiers positifs.
 a/ en utilisant une multiplication
 b/ en utilisant que l'addition"


 [:necris]  
 
Dans tous les cas, je t'ai donné suffisament de pistes au cours de mes posts (relis ceux de la page précédente) pour le faire sans fonctions et avec imbrications de 2 "for"
 
 
Tiens, conseil: fais le avec des fonctions (comme Taz le propose) puis décompose ta fonction de multiplication pour la foutre à plat dans ton for principal


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°867552
noldor
Rockn'roll
Posté le 07-10-2004 à 22:16:31  profilanswer
 

mais on s'en fout de l'implémentation

n°867553
masklinn
í dag viðrar vel til loftárása
Posté le 07-10-2004 à 22:17:24  profilanswer
 

noldor a écrit :

mais on s'en fout de l'implémentation


il est pas capable de conceptualiser l'imbrication des deux for en algo alors bon [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°867554
Taz
bisounours-codeur
Posté le 07-10-2004 à 22:18:24  profilanswer
 

parce qu'il est pas capable de conceptualiser les deux choses ... y a pas de difficultés à imbriquer quoique ce soit

n°867555
ze nerdz
gné ?
Posté le 07-10-2004 à 22:18:32  profilanswer
 

Masklinn a écrit :

pour moi le sujet c'est:

Citation :

tout d abord le sujet qui a été donné :
"Ecrire un programme C permettant de claculer x^y avec x et y entiers positifs.
 a/ en utilisant une multiplication
 b/ en utilisant que l'addition"


 [:necris]  
 
Dans tous les cas, je t'ai donné suffisament de pistes au cours de mes posts (relis ceux de la page précédente) pour le faire sans fonctions et avec imbrications de 2 "for"
 
 
Tiens, conseil: fais le avec des fonctions (comme Taz le propose) puis décompose ta fonction de multiplication pour la foutre à plat dans ton for principal


evidemment, dans le sujet, il n est pas précisé le niveau requis, et c normal, je le precise juste apres.
D autre part, comme je débute, je ne sais pas faire de fonctions.

n°867558
Taz
bisounours-codeur
Posté le 07-10-2004 à 22:19:39  profilanswer
 

mais c'est pas ça le problème. si tu sais le faire sur le papier, tu sais le faire en C.

n°867560
ze nerdz
gné ?
Posté le 07-10-2004 à 22:20:15  profilanswer
 

Masklinn a écrit :

Dans tous les cas, je t'ai donné suffisament de pistes au cours de mes posts (relis ceux de la page précédente) pour le faire sans fonctions et avec imbrications de 2 "for"
 


Je n ai pas dit le contraire, et je t en remercie car tu es vraisemblablement le seul a t etre vraiment penché sur la question, et grace a toi j ai deja pu comprendre d ou venait l erreur ! :hello:

n°867574
masklinn
í dag viðrar vel til loftárása
Posté le 07-10-2004 à 22:27:00  profilanswer
 

Citation :

parce qu'il est pas capable de conceptualiser les deux choses ... y a pas de difficultés à imbriquer quoique ce soit


il y a quand même un mini trick (bon ca a strictement rien de compliqué, mais hein :o)
essaies de le faire en vitesse, tu vas voir :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°867577
kao98
...
Posté le 07-10-2004 à 22:31:57  profilanswer
 

Je n'ai qu'une remarque à faire :  

Citation :


Ecrire un programme C permettant de claculer x^y avec x et y entiers positifs.  


Pouruqoi tu utilises des float tout le temps !?
 
Bon, ben en voyant ça, j'ai plus envie de te dire "Ré-étudie tes cours correctement" plutôt que te donner la réponse !

n°867582
masklinn
í dag viðrar vel til loftárása
Posté le 07-10-2004 à 22:34:19  profilanswer
 

Citation :

Pouruqoi tu utilises des float tout le temps !?
 
Bon, ben en voyant ça, j'ai plus envie de te dire "Ré-étudie tes cours correctement" plutôt que te donner la réponse !


ouch, je l'avais pas vue celle là


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°867583
ze nerdz
gné ?
Posté le 07-10-2004 à 22:35:38  profilanswer
 

kao98 a écrit :

Je n'ai qu'une remarque à faire :  

Citation :


Ecrire un programme C permettant de claculer x^y avec x et y entiers positifs.  


Pouruqoi tu utilises des float tout le temps !?
 
Bon, ben en voyant ça, j'ai plus envie de te dire "Ré-étudie tes cours correctement" plutôt que te donner la réponse !


Merci pour ta remarque ! :hello:
 
je m en suis rendu compte apres, masi cela ne change rien au pb, et vu qu il y a vait deja des citations etc,  j ai laissé tel quel ... histoire de ne pas embrouillé avec ce genre d erreur !
Par contre en aucun cas j ai demandé une réponse !
 
Mais merci kan meme d avoir lu le probleme ! :jap:


Message édité par ze nerdz le 07-10-2004 à 22:36:15
n°867589
ze nerdz
gné ?
Posté le 07-10-2004 à 22:38:18  profilanswer
 

Masklinn a écrit :

Citation :

Pouruqoi tu utilises des float tout le temps !?
 
Bon, ben en voyant ça, j'ai plus envie de te dire "Ré-étudie tes cours correctement" plutôt que te donner la réponse !


ouch, je l'avais pas vue celle là


Il y en a meme une autre que tu n a pas vu ... masi j ai préféré laissé en plan, pour éviter d embrouiller , et d en venir au fait !
dans ton déroulement de mon algo faux, il n y avait pas d initialisation de r, et tu a dit r=r+2 donc r=2
 
Mais bon il vaut mieux éviter de les relever car ca ne change pas le concept


Message édité par ze nerdz le 07-10-2004 à 22:38:49
n°867617
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-10-2004 à 22:51:46  profilanswer
 

on a demandé un modo ici ? Taz, tu fais encore des misères aux newbies ? :o
pourtant il est tout gentil celui ci, pour une fois qu'un gars s'est un peu cassé le cul à faire un truc au lieu de poster bêtement son sujet, ça serait peut être sympa de faire un effort avec lui, non ? ;)


---------------
J'ai un string dans l'array (Paris Hilton)
n°867622
Taz
bisounours-codeur
Posté le 07-10-2004 à 22:53:18  profilanswer
 

ben ouais mais bon, son exo c'est d'écrire une seule ligne, alors on peut pas plus maché que ce qu'on a déjà fait :/

n°867623
gilou
Modérateur
Modzilla
Posté le 07-10-2004 à 22:53:38  profilanswer
 

ze nerdz a écrit :

je suis tout a fait d accord avec toi, c pour ca que la premiere question est sans difficulté, et se fiat avec une boucle "for". PAr contre la deuxieme question, ils demandent une deuxieme décomposition avec uniquement l addition, sans aucune multiplication ..et la je blocke

Ben il suffit que tu te souvienne que une multiplication n'est qu'une suite d'addition...
Ca s'apprend en primaire, ça
2*3 c'est 2 fois l'addition de 3 ou 3 fois l'addition de 2
5*7 c'est 5 fois l'addition de 7 ou 7 fois l'addition de 5
etc etc
 
Donc comme l'a tres bien dit Taz, tu codes un truc du style
int produit(int x, int y, bool mul)
{
 int r = 0;
 if (mul)
   r = x*y;
 else
  {
  // et la tu codes le truc uniquement avec des additions et basta...
   while (y)
    {
     r += x;
     y--;
    }
  }
  return r;
}
A+,
PS le bool en parametre et le while au lieu d'un for sont volontaire afin de pas faire un truc clean et l'obliger a penser a ameliorer...


Message édité par gilou le 07-10-2004 à 23:15:44

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°867668
masklinn
í dag viðrar vel til loftárása
Posté le 07-10-2004 à 23:33:26  profilanswer
 

gilou pris en flag de pas lisage de sujet !
 
(il peut pas utiliser de fonctions)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°867676
gilou
Modérateur
Modzilla
Posté le 07-10-2004 à 23:40:31  profilanswer
 

Masklinn a écrit :

gilou pris en flag de pas lisage de sujet !
 
(il peut pas utiliser de fonctions)


Et alors, c'est pas a moi de lui pondre un truc tout adapte a son pb, c'est a lui de faire les adaptations necessaires. Voir le postscriptum de mon precedent post.
Et j'avais lu le sujet. :p
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°867677
Taz
bisounours-codeur
Posté le 07-10-2004 à 23:41:57  profilanswer
 

gilou a écrit :

Et alors, c'est pas a moi de lui pondre un truc tout adapte a son pb, c'est a lui de faire les adaptations necessaires. Voir le postscriptum de mon precedent post.
Et j'avais lu le sujet. :p
A+,

IOCCC 2005 va bientôt commencer

n°867693
masklinn
í dag viðrar vel til loftárása
Posté le 08-10-2004 à 00:18:45  profilanswer
 

Taz a écrit :

IOCCC 2005 va bientôt commencer


c'est petit ca [:atsuko]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°868387
Sve@r
Posté le 08-10-2004 à 18:56:52  profilanswer
 

ze nerdz a écrit :

ra la la je ne vois pas qu est ce qui cloche dans mon raisonnement :  

Code :
  1. int x,y,r;
  2. demander("x",x);
  3. demander("y",y);
  4. for(b=1;b<=y;b++){
  5.     for(a=1;a<=x;a++){
  6.         r=r+x;
  7.     } 
  8. }


 
c de l algo je precise


 
Tu tentes de réécrire le "r * x" de ton premier algo par une suite d'additions. Mais au-lieu de calculer "r + r" x fois, tu fais "r + x" x fois.
Essaye plutôt ceci...

Code :
  1. int x,y,r,sum;
  2. demander("x",x);
  3. demander("y",y);
  4. r=1;
  5. for(b=1;b<=y;b++)
  6. {
  7.     sum=r;
  8.     for(a=2;a<=x;a++) // commencer à "2" car l'initialisation compte pour 1
  9.     {
  10.         r=r+sum;
  11.     } 
  12. }



---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°868407
masklinn
í dag viðrar vel til loftárása
Posté le 08-10-2004 à 19:23:47  profilanswer
 

Sve@r a écrit :

Tu tentes de réécrire le "r * x" de ton premier algo par une suite d'additions. Mais au-lieu de calculer "r + r" x fois, tu fais "r + x" x fois.
Essaye plutôt ceci...


Là t'abuses un poil quand même, sans toutefois vouloir être méchant.
 
Tu lui a quand même fait son exercice [:spamafote]  
C'était un peu pas le but [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°868416
ze nerdz
gné ?
Posté le 08-10-2004 à 19:29:36  profilanswer
 

Masklinn a écrit :

Là t'abuses un poil quand même, sans toutefois vouloir être méchant.
 
Tu lui a quand même fait son exercice [:spamafote]  
C'était un peu pas le but [:spamafote]


En fait je viens de reussir l exercice hier soir.
 
Mais ta solution est tres interessante ...
 
je compare avec ce que j ai fait
si ca interesse qq j envoi mon prg

n°868418
ze nerdz
gné ?
Posté le 08-10-2004 à 19:36:30  profilanswer
 

Masklinn a écrit :

Là t'abuses un poil quand même, sans toutefois vouloir être méchant.
 
Tu lui a quand même fait son exercice [:spamafote]  
C'était un peu pas le but [:spamafote]


 
n empeche quelle mentalité des fois ...je ne suis pas de mauvaise foi, je pense que j ai été assez clair ...

n°868423
masklinn
í dag viðrar vel til loftárása
Posté le 08-10-2004 à 19:38:53  profilanswer
 

ze nerdz a écrit :

n empeche quelle mentalité des fois ...je ne suis pas de mauvaise foi, je pense que j ai été assez clair ...


j'ai jamais dit que t'étais de mauvaise foi :ouch:  
 
pour ton code, poste le ici comme ca on pourra en parler [:cupra]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°868425
ze nerdz
gné ?
Posté le 08-10-2004 à 19:40:08  profilanswer
 

Je poste ma solution, mais je regarde ce que tu a fait, histoire d ameliorer le raisonnement :
 

Code :
  1. #include <stdio.h>
  2. int main(void){
  3. int x,y;
  4. int resultatFin;
  5. int resultatAux;
  6. int i,j;
  7. printf("\nx?" );
  8. scanf("%d",&x);
  9. printf("\ny?" );
  10. scanf("%d",&y);
  11. resultatFin = x;
  12. if(y == 0){
  13.   resultatFin = 1;
  14. }
  15. else{
  16.   for(i = 1; i < y ; i++){              //repetition de la puissance,  nombre de multiplication    
  17.     resultatAux = 0;                    //resultat précedent * x
  18.     for(j = 0 ; j < resultatFin ; j++){    //resultat final * x
  19.       resultatAux = resultatAux + x;
  20.     }
  21.     resultatFin = resultatAux;             //Affectation de resultatAux=resultat
  22.   }
  23. }
  24. printf("resultat = %d",resultatFin);    // affichage du resultat
  25. return 0;
  26. }


 

n°868456
gilou
Modérateur
Modzilla
Posté le 08-10-2004 à 20:19:43  profilanswer
 

Et ca donne quoi pour 0 puissance 0 :whistle:  
 
Bon faudrait peut etre faire du controlle d'erreur:
1) si les entrées sont invalides
2) si x et y valent 0
3) si a une étape, ton resultat depasse la valeur maximale d'un int
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°868509
ze nerdz
gné ?
Posté le 08-10-2004 à 20:54:32  profilanswer
 

gilou a écrit :

Et ca donne quoi pour 0 puissance 0 :whistle:  
 
Bon faudrait peut etre faire du controlle d'erreur:
1) si les entrées sont invalides
2) si x et y valent 0
3) si a une étape, ton resultat depasse la valeur maximale d'un int
 
A+,


 
c est vrai que ce n est pas la version finale ! :D
 
Mais ca me parait un peu bourrin de faire des if pour des valeurs type non ?
 
par contre je ne connait pas ce qu est la valeur maximale d un int ?

n°868522
Taz
bisounours-codeur
Posté le 08-10-2004 à 21:02:00  profilanswer
 

INT_MAX

n°868526
gilou
Modérateur
Modzilla
Posté le 08-10-2004 à 21:05:06  profilanswer
 

ze nerdz a écrit :

c est vrai que ce n est pas la version finale ! :D
 
Mais ca me parait un peu bourrin de faire des if pour des valeurs type non ?
 
par contre je ne connait pas ce qu est la valeur maximale d un int ?


Il y a rien de bourrin la dedans. Si tu ecris un programme, tu dois faire de la verification de la validite des données et des resultats.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3

Aller à :
Ajouter une réponse
 

Sujets relatifs
Cmnt aller chercher une valeur dans des champs générés aleatoirement ?[algo/proba] je chercher une fonction de probabilite
chercher code nouvelles par phpChercher une chaine dans un tableau PHP
[expression réguliére] Comment chercher toutes les chaines sans espace[PHP] Chercher un caractère dans une chaine... Quel fonction ?
chercher une chaine de caractere dans un fichier texteVB.NET (smart device application) [arrêtez de chercher]
chercher valeur...chercher la position d'un noeuds?
Plus de sujets relatifs à : [C] ah la la .... comment chercher la complication ... !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR