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

 


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

need beta tester pour mon program (100 ko)

n°257571
COULIX
un pc pour les attirer ...
Posté le 30-11-2002 à 00:40:15  profilanswer
 

Reprise du message précédent :

Leirn a écrit a écrit :

ta declaré m comme un tableau de string?




string m[13]; c ca non ?  :(

mood
Publicité
Posté le 30-11-2002 à 00:40:15  profilanswer
 

n°257572
charlene
Verba volant, scripta manent
Posté le 30-11-2002 à 00:40:23  profilanswer
 

Taz@PPC a écrit a écrit :

 
 
 :heink: je te prends pas pour une conne, mais comme tu le dis , le problème vient des macros.
 
pour ma part, je les proscris complètement pour cette usage: je ne m'en sers que comme directive de pré-compilation



OK
moi je disais juste que je connais une filiale d'une SSII qui interdisait son usage dans ses conventions de codage


---------------
Défiance (ou méfiance) est mère de sûreté  
n°257573
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 30-11-2002 à 00:40:54  profilanswer
 

pourquoi pas 12 et commencé à 0 tout betement?


---------------
du bon usage de rand [C] / [C++]
n°257575
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 30-11-2002 à 00:42:45  profilanswer
 

charlene a écrit a écrit :

OK
moi je disais juste que je connais une filiale d'une SSII qui interdisait son usage dans ses conventions de codage




 
ben c'est bien dommage, par ce que leur code est alors plus lourd, moins performant. J'aurais eu tendance a bannir les macros plutot que les expressions qui peuvent engendrer les effets de bords dans les dites macros...
 
sur ce bonne nuit


---------------
du bon usage de rand [C] / [C++]
n°257576
COULIX
un pc pour les attirer ...
Posté le 30-11-2002 à 00:43:39  profilanswer
 

Taz@PPC a écrit a écrit :

pourquoi pas 12 et commencé à 0 tout betement?




parceque je devrai changer tpout les b aui sonmt calculer dan le send de 1= janvier ect..

n°257577
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 30-11-2002 à 00:44:47  profilanswer
 

coulix a écrit a écrit :

 
parceque je devrai changer tpout les b aui sonmt calculer dan le send de 1= janvier ect..
 




 
ben non tu fais juste
 
MonthAsString=months[i-1]  :D


---------------
du bon usage de rand [C] / [C++]
n°257586
antp
Super Administrateur
Champion des excuses bidons
Posté le 30-11-2002 à 00:59:16  profilanswer
 

Taz@PPC a écrit a écrit :

c'est quoi ces ==?




 
en effet c'est une manie de mettre == là où il faut =
en général c'est l'erreur contraire qu'on fait :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°257591
leirn
A.D.I.D.A.S.
Posté le 30-11-2002 à 01:10:01  profilanswer
 

antp a écrit a écrit :

 
 
en effet c'est une manie de mettre == là où il faut =
en général c'est l'erreur contraire qu'on fait :D




 
je confirme :D


---------------
"Je brandirai une épée d'orichalque, je m'assouvirai sur des Templiers." | "Avec dans son sillage l'Ombre du Diable, Leirn appelait les morts pour une danse macabre et déchainaît les horreurs de la nuit..."
n°257674
ToxicAveng​er
Posté le 30-11-2002 à 11:44:37  profilanswer
 

Taz@PPC a écrit a écrit :

 
 
 :lol:  :lol:  :lol:
j'attends ton exlication




 
Extrait d'un thread sur fclc :
 

Le mardi 26 nov. 2002, 18:12:31,
  MP (...) a écrit
  dans fr.comp.lang.c :
 
> Je ne comprends absolument pas les effets de bords
> et je désespère  :-((
> Ici même on m'a dit que dans l'expression suivante :
> tab[i] = i++;
> on aura
> - soit   tab[i] = i  et  i = i + 1   (cas 1)
> - soit   tab[i + 1] = i  et  i = i +  1  (cas 2)
>  
> Si je veux comprendre comment on arrive au cas 1,
> est-ce que le raisonnement suivant est correct :
>  - le compilateur évalue D'ABORD  le membre de gauche
> tab[i] et y affecte la valeur de i DU MEMBRE DROIT
> AVANT son incrémentation ??
 
Oui.
 
>  - le compilateur évalue ENSUITE le membre de droite
> (i++), ce qui donne i = i + 1
 
Pas tout à fait. Il a déjà évalué i tout à l'heure (pour l'affecter).  
Ce qu'il fait maintenant, c'est générer  l'effet secondaire  
(incrémenter). Autrement dit, avec ce premier compilateur :
 
   tab[i] = i++;
 
est équivalent à :
 
   tab[i] = i;
   i++;
 
L'effet secondaire est rejeté tout à la fin de l'évaluation de  
l'expression complète.
 
> Pour le cas 2, est-ce que le raisonnement suivant est
> correct :
>  je ne sais pas du tout..........
 
On évalue i (en vue de l'affecter), on incrémente i (effet  
secondaire), on évalue l'adresse tab[i], on affecte. Avec ce  
deuxième compilateur :
 
   tab[i] = i++;
 
est équivalent à :
 
   temp_ = i;
   i++;
   tab[i] = temp_;
 
L'effet secondaire a lieu juste après l'évaluation de i, et avant  
l'évaluation de l'adresse de tab[i].
 
Dans tab[i] = i++; il y a quatre opérations :
 
   1) évaluer l'emplacement de tab[i]
   2) évaluer i
   3) incrémenter i;
   4) affecter la valeur 2) à l'emplacement 1)
 
Les seuls ordres garantis entre toutes ces opérations sont :
 
   3) a lieu après 2).
   4) a lieu après 1) et 2)
 
> Et dans l'expression suivante, y a t-il effet de bord :
> tab[i] = ++i;
 
Oui, mais pas le même. Et il y a encore un risque d'ambiguïté :
 
   ++i; tab[i] = i;
 
ou :
 
   adr_ = &tab[i]; ++i; *adr_ = i;
 
On a les mêmes quatre opérations élémentaires, avec les contraintes :
 
  3) a lieu avant 2)
  4) a lieu après 1) et 2)
 
--  
  ___________    
_/ _ \_`_`_`_)  Serge PACCALIN -- sp ad mailclub.net
 \  \_L_)   Il faut donc que les hommes commencent
   -'(__)   par n'être pas fanatiques pour mériter
_/___(_)    la tolérance. -- Voltaire, 1763

n°257676
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 30-11-2002 à 11:55:31  profilanswer
 

ben oui, mais ca fait ca dans tous les langages, c'est des effets de bords, quand on les cherches, on les trouves.
cette anée en licence, on a etudié les différents types de apssages par paramètres, et quelque soit le mode, y en a toujours.
 
alros arretez ce troll, c'est lourd et injustifié.


---------------
du bon usage de rand [C] / [C++]
mood
Publicité
Posté le 30-11-2002 à 11:55:31  profilanswer
 

n°257677
chrisbk
-
Posté le 30-11-2002 à 11:55:41  profilanswer
 

dans l'absolu j'evite d'emmeler les "++" avec d'autres instructions, le trucs genre :
 
tab[--machin] = i++;
 
 
je supporte pas :D

n°257678
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 30-11-2002 à 11:56:17  profilanswer
 

c'est vrai que c'est un problème de lisibilité  :D


---------------
du bon usage de rand [C] / [C++]
n°257680
chrisbk
-
Posté le 30-11-2002 à 11:56:29  profilanswer
 

Taz@PPC a écrit a écrit :

ben oui, mais ca fait ca dans tous les langages, c'est des effets de bords, quand on les cherches, on les trouves.
cette anée en licence, on a etudié les différents types de apssages par paramètres, et quelque soit le mode, y en a toujours.
 
alros arretez ce troll, c'est lourd et injustifié.




 
ce n'est pas un troll, c'est juste pour dire d'etre prudent avec ces opérateurs, pratique certes, mais pouvant parfois faire partir un prog en sucette si mal maitrisé

n°257681
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 30-11-2002 à 11:58:38  profilanswer
 

ben oui, mais y a un moment ouil faut grandir et savoir ce qu'on fait
 
 
d'ailleurs, pour moi ++i a plus de sens que i=i+1


Message édité par Taz@PPC le 30-11-2002 à 11:59:12

---------------
du bon usage de rand [C] / [C++]
n°257682
chrisbk
-
Posté le 30-11-2002 à 12:00:59  profilanswer
 

Taz@PPC a écrit a écrit :

ben oui, mais y a un moment ouil faut grandir et savoir ce qu'on fait
 
 
d'ailleurs, pour moi ++i a plus de sens que i=i+1




 
bah si tout le monde savait ce qu'il faisait en toute occasion, y'aurait pas de bug, s'pas ? :D Et bon, dans le fond, tout ca la dedans est surtout une question d'habitude et de gout perso, i++ generera le meme code que i=i+1, alors bon....

n°257690
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 30-11-2002 à 12:12:50  profilanswer
 

non, ca générera âs le meme code.
 
++i, i++ et i=i+1, pour n'importe quel type d'objet ne génère aps du tout le meme code.


---------------
du bon usage de rand [C] / [C++]
n°257695
chrisbk
-
Posté le 30-11-2002 à 12:28:28  profilanswer
 

Taz@PPC a écrit a écrit :

non, ca générera âs le meme code.
 
++i, i++ et i=i+1, pour n'importe quel type d'objet ne génère aps du tout le meme code.




 
tu me vois surpris. Bon, pour remettre tout ca en place je parlais de :
 
i++;
++i;
i = i+1;
 
 
(le ; est l'element clé ici). avec les types prédéfinies (int & cie ) Visu me traduit invariablement ca par les memes instructions asm (ce qui me semble perso assez logique). Pourquoi penses tu qu'il n'en serait pas ainsi ?


Message édité par chrisbk le 30-11-2002 à 12:29:00
n°257698
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 30-11-2002 à 12:30:59  profilanswer
 

ben ca vient de d'une optimisation.
 
mais si tu mets c'est instruction dans un contexte d'appel de fonction ou autre, ca ne sera pas le cas. et j'ai dit pour tout type d'objet, et la je t'assure que ce genre d'optimisation n'a pas lieu (puisque ces opérations sont user-defined)


---------------
du bon usage de rand [C] / [C++]
n°257699
chrisbk
-
Posté le 30-11-2002 à 12:35:25  profilanswer
 

Taz@PPC a écrit a écrit :

ben ca vient de d'une optimisation.
 
mais si tu mets c'est instruction dans un contexte d'appel de fonction ou autre, ca ne sera pas le cas. et j'ai dit pour tout type d'objet, et la je t'assure que ce genre d'optimisation n'a pas lieu (puisque ces opérations sont user-defined)




 
Vi, je sentais bien qu'on parlait pas de la meme chose, spour ca que j'ai mis toute ces précision. Sinon c'est sur que pour ce qui est surcharge d'op & cie ca ne sera pas la meme chose, et pour le contexte suffit de lire le post de toxicavenger pour voir que ca genera evidemment pas non plus la meme chose. voila, nous sommes donc d'accord :D

n°258143
Musaran
Cerveaulté
Posté le 01-12-2002 à 02:37:05  profilanswer
 

À mon tour !

Code :
  1. y==true

:pfff:  
Si y est une valeur logique, c'est complètement inutile.
Si y est un nombre, alors c'est bogué !
 

Code :
  1. string h;
  2. //...
  3. switch (month){
  4. case 1:  h="January  "  ; break;
  5. //...
  6. case 12: h="December "  ; break;
  7. }


Je propose comme ça:

Code :
  1. string monthnames[12]= {
  2. "January"  ,
  3. //...
  4. "December" ,
  5. };
  6. //...
  7. string& h= monthnames[month-1];
  8. //...


 
Ton programme est du style monlithe, c'est à dire tout en une maousse fonction. C'est mal !
 
Par exemple, ceci...

Code :
  1. if(month==2 && bissextile(year))
  2. { l=l-29;
  3. month=month+1; }
  4. else if (month==2)
  5. { l=l-28 ;
  6. month=month+1; }
  7. else if (month==12)
  8. {l=l-31 ;
  9. year=year+1;
  10. month=1; }
  11. else if (month==1 || month==3 || month==5 || month==8 || month==10)
  12. {l=l-31;
  13. month=month+1;}
  14. else if (month==4 || month==6 || month==7 || month==9 || month==11)
  15. {l=l-30;
  16. month=month+1;}


...peut être simplifié et séparé:

Code :
  1. int days_of_months[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
  2. int days_in_month(int f_month, int f_year){
  3. if(f_month==2 && bissextile(f_year))
  4.  return 29; //longer february
  5. return days_of_months[f_month-1];
  6. }
  7. //dans une fonction
  8. l-= days_in_month(month,year);


 
Il y a encore beaucoup à faire, mais ce sera tout pour ce soir.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°258605
COULIX
un pc pour les attirer ...
Posté le 02-12-2002 à 07:30:14  profilanswer
 

Musaran a écrit a écrit :

À mon tour !

Code :
  1. y==true

:pfff:  
Si y est une valeur logique, c'est complètement inutile.
Si y est un nombre, alors c'est bogué !
 

Code :
  1. string h;
  2. //...
  3. switch (month){
  4. case 1:  h="January  "  ; break;
  5. //...
  6. case 12: h="December "  ; break;
  7. }


Je propose comme ça:

Code :
  1. string monthnames[12]= {
  2. "January"  ,
  3. //...
  4. "December" ,
  5. };
  6. //...
  7. string& h= monthnames[month-1];
  8. //...


 
Ton programme est du style monlithe, c'est à dire tout en une maousse fonction. C'est mal !
 
Par exemple, ceci...

Code :
  1. if(month==2 && bissextile(year))
  2. { l=l-29;
  3. month=month+1; }
  4. else if (month==2)
  5. { l=l-28 ;
  6. month=month+1; }
  7. else if (month==12)
  8. {l=l-31 ;
  9. year=year+1;
  10. month=1; }
  11. else if (month==1 || month==3 || month==5 || month==8 || month==10)
  12. {l=l-31;
  13. month=month+1;}
  14. else if (month==4 || month==6 || month==7 || month==9 || month==11)
  15. {l=l-30;
  16. month=month+1;}


...peut être simplifié et séparé:

Code :
  1. int days_of_months[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
  2. int days_in_month(int f_month, int f_year){
  3. if(f_month==2 && bissextile(f_year))
  4.  return 29; //longer february
  5. return days_of_months[f_month-1];
  6. }
  7. //dans une fonction
  8. l-= days_in_month(month,year);


 
Il y a encore beaucoup à faire, mais ce sera tout pour ce soir.




mais je savais pas qu on pouvais faire comme ca thanks =)

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[PHP] Ca marche pas..... mais pkoi ? Need help! ;-)[sql] Tester ses requetes à la maison ??
[SDK] SDK de 3D studio max ! need assistance !Tester l'existence d'une fenetre (popup) que je cree ?
[HTML, JS] tester la présence de Javascript ?tester sur un window.opener existe??
[HTML,JS] Tester si une popup est toujours ouverteTester si la variable est un nombre....
[VB]: comment tester qu'une instance d'objet OLE est disponible?[JAVA] Méthode pour tester si une variable est initialisée ?
Plus de sujets relatifs à : need beta tester pour mon program (100 ko)


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