Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/11/2012, à 15:29

The Uploader

/* Topic des codeurs [8] */

Bienvenue dans le TdC 0x8.
Ceci est la suite de ce fil.

Historique des précédents fils :
        • Topic des codeurs couche-tard [0] : du 14 avril 2010 au 12 juin 2010 (100 pages).
        • Topic des codeurs couche-tard [1] : du 12 juin 2010 au 5 septembre 2010 (100 pages).
        • Topic des codeurs couche-tard [2] : du 5 septembre 2010 au 16 décembre 2010 (100 pages).
        • Topic des codeurs couche-tard [3] : du 16 décembre 2010 au 28 février 2011 (100 pages).
        • Topic des codeurs couche-tard [4] : du 28 février 2011 au 6 juin 2011 (101 pages).
        • Topic des codeurs couche-tard [5] : du 6 juin 2011 au 10 septembre 2011 (100 pages).
        • Topic des codeurs [6] : du 10 septembre 2011 au 4 février 2012 (100 pages).
        • Topic des codeurs [7] : du 04 février 2012 au 17 novembre 2012 (100 pages).

N’oubliez pas les Défis du TdC wink

Le défi actuel est toujours :bah voui, faut croire que les défis sont secondaires :-P

grim7reaper a écrit :

Je propose la mise au point d’une bibliothèque ou d’un module ou truc du genre (faut que le code soit réutilisable ailleurs quoi) qui propose des fonctions pour récupérer des quotes sur Internet.

Vous êtes libre de choisir les sites que vous voulez gérez dans votre code (VDM, DTC, PEBKAC, etc.), au niveau de leur nombre (gestion d’un seul site ou de plusieurs) aussi et au niveau des options offertes (par exemple, pour VDM vous pouvez soit toujours tirer une quote aléatoire soit offrir la possibilité de choisir sa catégorie).

Le seul truc que je fixe c’est le format de sortie : vos fonctions doivent fournir au final juste la quote en texte simple.
Comme ça, c’est plus souple pour la réutilisation ou la combinaison avec d’autres trucs (pour donner des trucs comme ça par exemple).

Amusez-vous bien, et produisez-nous du beau code. smile

Et n’oubliez pas notre devise :

#!/usr/bin/env ruby
devise = ['In', 'Code', 'We', 'Trust!'] 
loop do
  devise.each do |str|
    puts str
    sleep 1
  end
end

Dernière modification par The Uploader (Le 17/11/2012, à 15:29)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#2 Le 17/11/2012, à 15:39

:!pakman

Re : /* Topic des codeurs [8] */

Une question existentielle me vient soudain à l'esprit :
Le Topic des codeurs [0] existe t-il ?
tongue

Edit : * facepalm * Exacte grim, la réponse est dans les liens, m'apprendra à lire neutral

Dernière modification par :!pakman (Le 17/11/2012, à 20:46)


...

Hors ligne

#3 Le 17/11/2012, à 15:53

afilmore

Re : /* Topic des codeurs [8] */

The Uploader a écrit :

Et n’oubliez pas notre devise :

#!/usr/bin/env ruby
devise = ['In', 'Code', 'We', 'Trust!'] 
loop do
  devise.each do |str|
    puts str
    sleep 1
  end
end
public static int main (string[] args) {

    string [] devise = {"In", "Vala", "We", "Trust!"};
    foreach (string str in devise) {
        
        stdout.printf ("%s\n", str);
        Thread.usleep (1000000);
    } 
    
    return 0;
}
valac devise.vala && ./devise

tongue

Hors ligne

#4 Le 17/11/2012, à 16:00

The Uploader

Re : /* Topic des codeurs [8] */

Si je compte que les lignes de code (pas le shebang de ma version, et pas tes lignes vides), tu as 8 lignes là où j'en ai 7. cool

La ligne en trop :

public static int main (string[] args)

Quant au lignes ruby en elles-mêmes, elles sont bien moins bavardes et pourtant tout à fait claires. tongue

(sinon faudrait que je commence à faire du vala. Le peu que j'ai testé m'a plu. Surtout que depuis la sortie de xfce4-vala-bindings 4.10, ça m'donne encore plus envie. Mais paraît que ça fait du C pas propre... Puis j'ai pas trop d'idée d'application Xfce à faire en fait...)

Dernière modification par The Uploader (Le 17/11/2012, à 16:05)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#5 Le 17/11/2012, à 16:18

afilmore

Re : /* Topic des codeurs [8] */

L'explorateur de fichiers à gauche et le Panel que tu vois ici, c'est du Vala :
http://pix.toile-libre.org/upload/origi … 033461.png

L'explorateur de fichier est un fork de PcManFm et le Panel est codé avec mes pieds.

https://code.launchpad.net/~axel-filmore

C'est encore très expérimental. tongue

Hors ligne

#6 Le 17/11/2012, à 16:34

grim7reaper

Re : /* Topic des codeurs [8] */

:!pakman a écrit :

Une question existentielle me vient soudain à l'esprit :
Le Topic des codeurs [0] existe t-il ?
tongue

Bah suffit de regarder les liens, et tu verras que oui wink



afilmore a écrit :
public static int main (string[] args) {

    string [] devise = {"In", "Vala", "We", "Trust!"};
    foreach (string str in devise) {
        
        stdout.printf ("%s\n", str);
        Thread.usleep (1000000);
    } 
    
    return 0;
}
valac devise.vala && ./devise

tongue

T’auras qu’a ouvrir le prochain si tu veux caler du Vala dans le post d’ouverture tongue



The Uploader a écrit :

Mais paraît que ça fait du C pas propre... Puis j'ai pas trop d'idée d'application Xfce à faire en fait...)

Y’a deux ans c’était le cas (c’était utilisé pour Vala, et le code généré faisait des warnings à la compilation, c’était très chiant…), je ne sais pas ce que ça donne maintenant.

Dernière modification par grim7reaper (Le 17/11/2012, à 16:35)

Hors ligne

#7 Le 17/11/2012, à 17:14

Mindiell

Re : /* Topic des codeurs [8] */

drapal

Hors ligne

#8 Le 17/11/2012, à 17:49

Shanx

Re : /* Topic des codeurs [8] */

Bonjour,
aujourd'hui j'ai tenté de faire un mastermind en C. Sur le papier, mon algo me semble correct, mais dans les faits ça ne marche pas des masses... Bon, je trouve que ce que j'ai fait est assez compliqué, je suis sûr qu'on pourrait faire plus simple. Mais avant d'améliorer tout ça, j'aimerais rendre mon code fonctionnel et comprendre pourquoi ça ne fonctionne pas.
Pour expliquer vaguement, je travaille avec deux tableaux : un constant où il y a les couleurs à deviner (t1), l'autre qui varie à chaque essai (t2) et qui correspond aux couleurs entrées par l'utilisateur. Il y a une liste chaînée qui reprend le premier tableau. Ainsi, quand on parcourt les deux tableaux à la recherche de couleurs en commun, on compare t2 et la liste chainée. Si on en trouve une couleur en commun, on retire la case correspondante au niveau de la liste, histoire d'éviter de la comptabiliser plusieurs fois. Je ne vois pas où est la faille (si c'est au niveau de l'algo ou du code), mais je sèche complètement malgré le temps passé dessus... hmm
Voici le code :

/**** MASTERMIND ****/

#include<stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

#define NOMBRE_CASE 2

/* Déclaration d'une liste chainée */
/* J'utilise une liste chainée pour pouvoir retirer les couleurs déjà trouvées */
/* Une partie du code concernant les listes chainées provient du sdz */
typedef struct element element;
struct element {
	int val;
	struct element *nxt;
};
typedef element* llist;

/* Pour remplir la liste */
llist ajouterEnFin(llist liste, char valeur) {
	element* nouvelElement = malloc(sizeof(element));
	nouvelElement->val = valeur;
	nouvelElement->nxt = NULL;
	if(liste == NULL) {
		return nouvelElement; 
	}
	else {
		element* temp=liste;
		while(temp->nxt != NULL) {
			temp = temp->nxt;
		}
	temp->nxt = nouvelElement;
	return liste;
	}
}

/* Pour supprimer un élément */
llist supprimerElement(llist liste, char i) {
	/* Si la liste est vide, on retourne NULL */
	if(liste == NULL)
		return NULL;
	/* Si la liste contient un seul élément */
	if(liste->val == i) {
		free(liste);
		return NULL;
	}
	/* Si la liste contient au moins deux éléments */
	element* tmp = liste;
	element* ptmp = liste;
	while(tmp->val == i | tmp->nxt != NULL) {
		ptmp = tmp;
		tmp = tmp->nxt; 
	}
	if(tmp->val == i) {
		ptmp->nxt = tmp->nxt;
		free(tmp);
	}
	return liste;
}

/* Pour afficher la liste */
void afficherListe(llist liste) {
	element *tmp = liste;
	while(tmp != NULL){
		printf("%d ", tmp->val);
		tmp = tmp->nxt;
	}
}

int main(void) {
	int i, j, a; /* i et j sont des compteurs */
	int z = 0; /* booléen pour savoir quand l'user a trouvé */
	int b, r; /* Nombre de rouge, de blanc */
	char t1[NOMBRE_CASE], t2[NOMBRE_CASE]; /* t1 tableau de départ, t2 tableau proposé par l'user */

	/* Création de la liste chainée */
	llist liste = NULL;

	/* Préparation des couleurs à trouver */
	srand(time(NULL));
	for (i=0; i<NOMBRE_CASE ; i++) {
		a=(rand() % NOMBRE_CASE) + 1;
		printf("%d ", a);
		if (a==1){
			t1[i]='R';
		}
		else {
			t1[i]='B';
		}
	}

	/* Affichage du tableau ainsi fait (à supprimer après) */
	puts(" ");
	puts("Le tableau de départ est :");
	for (i=0; i<NOMBRE_CASE ; i++) {
		printf("%c - ", t1[i]);
	}
	puts(" ");

	/* On remplit la liste chainée */
	for (i=0; i<NOMBRE_CASE ; i++) {
		ajouterEnFin(liste, t1[i]);
	}
	afficherListe(liste); /* Affichage de la liste pour vérifier ; ne fonctionne pas pour l'instant */

	/* À l'utilisateur de jouer */
	puts("À toi de jouer.");
	
	while (z == 0){
		b = 0;
		r = 0;
		/* Remplissage du tableau */
		for (j=0; j<NOMBRE_CASE ; j++) {
			while (t2[j] != 'B' && t2[j] != 'R' /*&& strlen(t2)>2*/) { 
				printf("Que proposes-tu pour la case %d ? ", j+1); 
                                fgets(t2 +j, sizeof t2 + j, stdin);
			}
		}
		/* Comparaison des tableau */
		for (i=0; i<NOMBRE_CASE ; i++) {
			for (j=0; j<NOMBRE_CASE ; j++) {
				if (t2[i] == t1[j]) {
					/* On supprime l'élément de la liste chainée correspondant, 
					pour ne pas qu'il soit recomparé plus tard */
                                        printf("Supression de %c\n", t1[j]);
					supprimerElement(liste, t1[j]);
					/* On incrémente les compteurs de couleurs trouvées */
					if (i == j) {
						r++; /* Si la couleur est à la bonne place, un rouge en plus */
					}
					else if (i != j) {
						b++; /* Si la couleur n'est pas à la bonne place, un blanc en plus */
					}
				}
			}			
		}	
		/* On vérifie si les tableaux sont identiques */
		/* S'ils le sont, tous les éléments de la liste ont été supprimés */
		for (i=0; i<NOMBRE_CASE ; i++) {	
			if (t2[i] == t1[i]) {
				z = 1;
			}
			else {
				printf("Le nombre de pion bien placé est %d, celui de pion mal placé est %d.\n", r, b);
			}
		}
	}
	puts("Bravo, tu as trouvé !");
        return 0;
}

Voilà ce que j'obtiens quand je lance le programme :

$ ./mastermind
1 1  
Le tableau de départ est :
R - R -  
À toi de jouer.
Que proposes-tu pour la case 1 ? B
Que proposes-tu pour la case 2 ? Que proposes-tu pour la case 2 ? R
Supression de R
Supression de R
Le nombre de pion bien placé est 1, celui de pion mal placé est 1.
Bravo, tu as trouvé !

Quelqu'un peut m'aider ?


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#9 Le 17/11/2012, à 18:17

afilmore

Re : /* Topic des codeurs [8] */

grim7reaper a écrit :

le code généré faisait des warnings à la compilation, c’était très chiant…), je ne sais pas ce que ça donne maintenant.

Il y a parfois quelques bugs dans les bindings, toujours quelques warnings pendant la compilation du code C mais ça c'est rien par rapport aux messages de "déprécation" des mecs de GTK+. mad

Une autre difficulté c'est de localiser les fuites mémoires, le même problème qu'en C.

Voili.

Hors ligne

#10 Le 17/11/2012, à 19:32

grim7reaper

Re : /* Topic des codeurs [8] */

Pour ça :

Que proposes-tu pour la case 1 ? B
Que proposes-tu pour la case 2 ? Que proposes-tu pour la case 2 ? R

C’est parce que tu ne vides pas le buffer clavier entre 2 appels.
Tu tapes B puis Entrée, tu lis B mais après le buffer contient Entrée (que tu lis lorsque tu demandes la case 2) puis il te redemande la case 2.
Pour éviter purge le buffer. Fait comme ça, et n’utilise surtout pas fflush (même si c’est recommandé par un bon paquet d’ignorant, dont une masse incroyable de prof’) car il c’est un UB (Undefined Behavior) sur les flux d’entrées.

Au passage, le fgets pour lire une seul caractère : bof…
Fait plutôt :

t2[j] = getchar();

Je regarde la suite après, si quelqu’un ne passe pas avant.

Édit : Ha ! Et ici je sûr à 100% qu’il te manque un pipe :

	while(tmp->val == i | tmp->nxt != NULL) {


@afilmore : pour les messages de déprécations, c’est pas difficile à éviter, suffit de pas appeler de vieilles fonctions.

Dernière modification par grim7reaper (Le 17/11/2012, à 19:46)

Hors ligne

#11 Le 17/11/2012, à 20:00

grim7reaper

Re : /* Topic des codeurs [8] */

Bon, partie 2 :

		for (i=0; i<NOMBRE_CASE ; i++) {	
			if (t2[i] == t1[i]) {
				z = 1;
			}
			else {
				printf("Le nombre de pion bien placé est %d, celui de pion mal placé est %d.\n", r, b);
			}
		}

Imagine, le premier est bon, le second non.
Tu mets z à 1 au premier tour, au second tu ne le changes pas.
En sortie de boucle z vaut 1, donc tu affiches victoire : remet z à zéro dans le else.
Après cette modif’, tu as le problème inverse : si le premier est mauvais mais le second bon. Tu vas mettre z à 1 et sortir.
Je te conseille de faire un z++ si les lettres sont égales, et dans ton while tu sors si z vaut NOMBRE_CASE.

Deuxième problème, qui va te foutre dans une boucle infinie (si tu ne vois pas pourquoi, teste) : tu ne remets pas t2 à zéro.
Un coup de memset et on n’en parle plus.

Voilà le code mis à jour :

        for(i = 0; i < NB_CELL; i++)
        {
            if (t2[i] == t1[i])
                z++;
            else {
                printf("Le nombre de pion bien placé est %d, celui de pion mal placé est %d.\n", r, b);
                z = 0;
            }
        }
        memset(t2, 0, sizeof t2);

Sinon, évite les caractères non-ASCII dans les chaînes littérales de type char, la sortie va dépendre de l’encodage du terminal, c’est moche.
En fait, évite le français tout court (surtout pour le code lui-même).
Et évite les noms de variables d’une seule lettre comme r et b (red et black c’est beaucoup plus parlant…), sauf pour les compteurs et 2 -3 exceptions.

Dernière modification par grim7reaper (Le 17/11/2012, à 20:01)

Hors ligne

#12 Le 17/11/2012, à 20:21

Shanx

Re : /* Topic des codeurs [8] */

Merci beaucoup grim !
C'est presque bon, il reste juste un problème...

$ ./mastermind                  
1 1  
Le tableau de départ est :
R - R -  
À toi de jouer.
Que proposes-tu pour la case 1 ? B
Que proposes-tu pour la case 2 ? B
Le nombre de pion bien placé est 0, celui de pion mal placé est 0.
Le nombre de pion bien placé est 0, celui de pion mal placé est 0.
Que proposes-tu pour la case 1 ? R
Que proposes-tu pour la case 2 ? B
Supression de R
Supression de R
Le nombre de pion bien placé est 1, celui de pion mal placé est 1.
Que proposes-tu pour la case 1 ? 

Il y a deux fois "Supression de R" (au lieu d'une), et normalement il ne devrait pas y avoir de pion mal placé...


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#13 Le 17/11/2012, à 20:52

Mindiell

Re : /* Topic des codeurs [8] */

Au hasard, tu vides le premier R de ta liste chainée, mais il y en a un deuxième qu'il recomptabilise lors du test suivant. Il faudrait aussi vider ton tableau 2 wink (ou alors tu remplaces par un X

Hors ligne

#14 Le 17/11/2012, à 21:02

Shanx

Re : /* Topic des codeurs [8] */

Mindiell a écrit :

Au hasard, tu vides le premier R de ta liste chainée, mais il y en a un deuxième qu'il recomptabilise lors du test suivant. Il faudrait aussi vider ton tableau 2 wink (ou alors tu remplaces par un X

Mais t2 est déjà vidé par le memset que m'a donné Grim...


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#15 Le 17/11/2012, à 21:16

Mindiell

Re : /* Topic des codeurs [8] */

Ah ben j'i pas lu, c'tait trop long.
Affiche tes 2 tableaux à chaque fois, avant et après pour être sûr que tout est ok alors wink

Hors ligne

#16 Le 17/11/2012, à 21:34

tshirtman

Re : /* Topic des codeurs [8] */

@grim: connais-tu, as-tu un avis? http://shop.oreilly.com/product/0636920 … 0025108.IP (mon avis est que c'est un peu cher, mais bon ^^)

Dernière modification par tshirtman (Le 17/11/2012, à 21:35)

Hors ligne

#17 Le 17/11/2012, à 23:05

xapantu

Re : /* Topic des codeurs [8] */

afilmore a écrit :
grim7reaper a écrit :

le code généré faisait des warnings à la compilation, c’était très chiant…), je ne sais pas ce que ça donne maintenant.

Il y a parfois quelques bugs dans les bindings, toujours quelques warnings pendant la compilation du code C mais ça c'est rien par rapport aux messages de "déprécation" des mecs de GTK+. mad

Boarf, ça se discute, une fois que tu as quelques dizaines de milliers de lignes de code, il y a quand même pas mal de warning tongue

Et sinon, faut pas croire tout ce qui est écrit dans leur manuel, le stdout.printf, c'est peut être vaguement plus propre, mais il faut juste utiliser print, ça va un peu plus vite à écrire smile

Hors ligne

#18 Le 17/11/2012, à 23:39

Pylades

Re : /* Topic des codeurs [8] */

Shanx, ton paste pour le pendu a expiré. neutral


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#19 Le 18/11/2012, à 03:33

grim7reaper

Re : /* Topic des codeurs [8] */

tshirtman a écrit :

@grim: connais-tu, as-tu un avis? http://shop.oreilly.com/product/0636920 … 0025108.IP (mon avis est que c'est un peu cher, mais bon ^^)

Non, je ne connais pas.
À vue de nez le contenu semble pas mal, mais la partie « Use Autotools » me choque un peu pour un truc qui se veut moderne… Il aurait plutôt intérêt à présenter CMake ou Scons hmm



xapantu a écrit :
afilmore a écrit :
grim7reaper a écrit :

le code généré faisait des warnings à la compilation, c’était très chiant…), je ne sais pas ce que ça donne maintenant.

Il y a parfois quelques bugs dans les bindings, toujours quelques warnings pendant la compilation du code C mais ça c'est rien par rapport aux messages de "déprécation" des mecs de GTK+. mad

Boarf, ça se discute, une fois que tu as quelques dizaines de milliers de lignes de code, il y a quand même pas mal de warning tongue

Pas si tu codes proprement…
Tu peux en avoir quelques uns ouais, si ta ligne de compil’ est super stricte, mais sinon c’est que tu codes de manière un peu à l’arrache.

Hors ligne

#20 Le 18/11/2012, à 09:12

grim7reaper

Re : /* Topic des codeurs [8] */

Y’a des gens très très fort neutral

Hors ligne

#21 Le 18/11/2012, à 10:46

tshirtman

Re : /* Topic des codeurs [8] */

grim7reaper a écrit :
tshirtman a écrit :

@grim: connais-tu, as-tu un avis? http://shop.oreilly.com/product/0636920 … 0025108.IP (mon avis est que c'est un peu cher, mais bon ^^)

Non, je ne connais pas.
À vue de nez le contenu semble pas mal, mais la partie « Use Autotools » me choque un peu pour un truc qui se veut moderne… Il aurait plutôt intérêt à présenter CMake ou Scons hmm

oui, je trouve ça un peu bizarre aussi, mais c'est tellement omniprésent, peut être qu'il considère qu'on ne peut pas vraiment y échapper…

grim7reaper a écrit :

Y’a des gens très très fort neutral

effectivement, très intéressant :] comme d'hab, c'est largement en dehors de mes connaissances utilisables actuelles, donc peu de chances que ça me serve, mais c'est toujours intéressant de comprendre un peu mieux comment le kernel marche via ce genre de choses smile.

edit: heu, en plus de sécu kernel en C, le mec fait des trucs funs en python, des trucs très théoriques en scheme, des trucs en C++, en haskell… oO, c'est pas légal des gens pareils…

Dernière modification par tshirtman (Le 18/11/2012, à 11:31)

Hors ligne

#22 Le 18/11/2012, à 11:22

Pylades

Re : /* Topic des codeurs [8] */

Shanx, tu ne te défileras pas (rapport à ton ping timeout) :

##tdct@freenode a écrit :

<Pylade> bon, Shanx, dans un excès de bonté, je suis allé vérifier le standard à ta place…
<Pylade> section 5.2.1 : c’est bon, tu peux utiliser islower
<Pylade> (paragraphe 3 tongue)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#23 Le 18/11/2012, à 11:29

Shanx

Re : /* Topic des codeurs [8] */

Πυλάδης a écrit :

Shanx, tu ne te défileras pas (rapport à ton ping timeout) :

##tdct@freenode a écrit :

<Pylade> bon, Shanx, dans un excès de bonté, je suis allé vérifier le standard à ta place…
<Pylade> section 5.2.1 : c’est bon, tu peux utiliser islower
<Pylade> (paragraphe 3 tongue)

Merde, depuis tout à l'heure je te parle aussi ^^' J'avais même pas vu que j'étais déco... hmm

##tdct@freenode a écrit :

Shanx | Pylade: http://paste.tdct.org/index.php?fi  Mais pour l'instant, j'ai un problème à la ligne 38, qui fait que la ligne 40 ne s'affiche pas et que la boucle de la ligne 43 est infinie... 
Shanx | Et j'ai changé TOUTES les indentations. big_smile
Shanx | Bon, y'a deux ou trois puts() qui ne servent qu'à des tests...


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#24 Le 18/11/2012, à 12:11

Pylades

Re : /* Topic des codeurs [8] */

Ouais, bah t’aurais mieux fait de ne pas toucher à l’indentation, maintenant elle est incohérente. tongue
(Et t’as toujours des espaces qui se baladent en fin de ligne…)

Bon, sinon, tu découpes main et tu renomme tes variables en quelque chose de descriptif et bref (en anglais de préférence), et ce sera déjà plus clair…


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#25 Le 18/11/2012, à 12:15

grim7reaper

Re : /* Topic des codeurs [8] */

Je plussoie Πυλάδης, j’avais aussi fait la remarque hier wink

Sinon, juste en passant :

        for (i=0; i<longueurMot ; i++) { /* On vérifie qu'on a pas trouvé le mot entier */
            if (t[i] == mot[i])
                z++;
            else {
                z = 0;
            }
        }

Je pense qu’un bon vieux strcmp (ou strncmp) ferait l’affaire et serait plus clair.

Hors ligne