1/5 (33 avis)
Snippet vu 7 214 fois - Téléchargée 20 fois
/* ============================================================================= OBJET : Programme permettant la détermination du jour de la semaine d'aprés l'Algorithme de "Maurice Kraitchik". -------------------------------------------------------------------------------- DATE DE CREATION : 30/04/2010 AUTEUR : Thebroyeur -------------------------------------------------------------------------------- MODIFICATIONS ( n) date - auteur - description ) ============================================================================= */ #include <stdio.h> /*================================= FONCTION main =================================*/ /*===============================*/ int main() { int a; /* l'année, ie. 2004. */ int m; /* le rang du mois de l'année; sauf pour janvier et février qui sont considérés respectivement comme les 13e et 14e mois de l'année précédente. */ int q ; /* le quantième du mois (1 à 31).*/ int j; /* le rang du jour de la semaine, avec par convention 0=Sam., 1=Dim., 2=Lun., ..., 6=Ven*/ /* Modif : Commentaire de Menuki*/ static const char * s_jours[]={"samedi","dimanche","lundi","mardi","mercredi","jeudi","vendredi"}; printf("Entrez une date sous la forme JJ MM AAAA : "); scanf("%d %d %d",&q,&m,&a); /* Modif suite au commentaire de LeFauve42 */ if (m <= 2) {a--;m+=12;} j=(q + 2*m + ((3*(m + 1))/5) + a + (a/4) - (a/100) + (a/400) + 2) % 7; /* Modif commentaire de ghuysmans99 */ printf("\nLe jour de la semaine correspondant au %02d/%02d/%02d est %s.",q,m,a,s_jours[j]); return 0; }
8 nov. 2010 à 01:08
11 juin 2010 à 21:01
J'ai fait de nouvelles modifs. Au programme : ajout du support de l'Unicode et purification du code. Pour ce petit nettoyage de code, j'ai viré les commentaires différentiels qui ne facilitaient pas la lecture (et pis pour les modifs c'est décrit ici).
Le code est disponible à cette adresse : http://pastebin.com/Zh0WpWmp
3 juin 2010 à 21:05
3 juin 2010 à 09:34
Le problème est que, si tu tolères des exceptions, tu trouveras toujours quelques "tout-fous" pour réclamer d'autres passe-droits.
Au final, tes règles de bonne conduite, censées être établies pour permettre un meilleur échange dans le groupe, ne seront qu'un ramassis de bonnes paroles.
Non, chez nous, cela fait partie de la discipline à laquelle tout le monde s'astreint (volontairement, je précise). Il est vrai que c'est un peu déroutant au début. Un oeil non habitué peut trouver cela moins lisible. Mais après peu de temps, c'est l'inverse qui se produit. Si on ne voit pas les accolades après le if, on est choqué.
Et puis, laisse-moi te raconter une histoire. Un gars de chez nous faisait la forte tête. "Je n'ai qu'une instruction, je ne mets pas d'accolade!". Un jour, il a dû rajouter une deuxième instruction à son if et... il a oublié de rajouter les accolades!
C'est moi qui ait trouvé le bug, pas lui. Comme j'étais choqué à chaque if, ça m'a sauté aux yeux.
Je pense que chez certains, c'est l'orgueil qui parle plus qu'autres choses. Ils pensent prouver leur maîtrise en utilisant toutes les subtilités du langage.
Je ne parle pas de toi. Je ne te connais pas, je ne me permettrais donc pas de te juger.
Certes, c'est bien de savoir ces choses mais si tu les appliques pour qu'au final, ça te complique la vie...
Pour ma part, je suis capable d'écrire du code ultra-condensé mais l'expérience m'a montré que 6 mois plus tard, ce qui était si clair et évident le devient beaucoup moins...
2 juin 2010 à 19:14
# if (*mois > 12 || *mois < 1)
# break;
Beaucoup plus lisible du coup. Mais quand c'est comme ici une série de if avec toujours la même chose dedans, tu peux bien comprendre que ça ne serve à rien dans ce cas-ci.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.