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.

#501 Le 27/12/2010, à 20:01

Elzen

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

Fortement déconseillé (dans n'importe quel langage) à cause des problèmes d'arrondis induits pas la représentation interne des des flottants (des fois ça fonctionne, des fois pas donc c'est pas portable).
Même combat pour le test de différence.

Logique.
Ceci dit, dans certains cas, c'est bien une égalité réelle que tu veux tester (de la même façon que tu peux vouloir tester une égalité entre deux pointeurs ou, en java, tester un == sur deux objets plutôt qu'un .equals()).
Donc effectivement, normal que ce soit une option à rajouter si t'en as besoin et pas un truc requis.

Pylade a écrit :

Et si tu utilisais ça à la place de Yacc ? Il semblerait que tu ne sois pas obligé de réécrire le code…

Mon yacc est déjà celui fourni par bison, mais n'empêche que pour ma fac, c'est en yacc qu'on doit faire les TP et pas en bison (et ça ne change rien pour flex, t'façon)

grim7reaper a écrit :

Au pire, il y a moyen de « berner le warning ». C'est dommage de ce priver d'une bonne option pour ça…

Disons que bon, j'ai peut-être pas encore un niveau de C suffisant pour mettre tous les warnings à fond non plus…
Faire un truc -pedanticproof et presque -Wallproof (il reste deux warnings de variables non utilisées dues à flex dont je n'arrive pas à me débarrasser), c'est déjà un bon début, quand c'est pour un simple TP et que tu dois manipuler des biblis externes que tu ne connais pas encore super bien.

Soyez patients, si je continue le C, je vais probablement finir par rajouter des options wink

Hors ligne

#502 Le 27/12/2010, à 20:12

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

ArkSeth a écrit :
grim7reaper a écrit :

Fortement déconseillé (dans n'importe quel langage) à cause des problèmes d'arrondis induits pas la représentation interne des des flottants (des fois ça fonctionne, des fois pas donc c'est pas portable).
Même combat pour le test de différence.

Logique.
Ceci dit, dans certains cas, c'est bien une égalité réelle que tu veux tester (de la même façon que tu peux vouloir tester une égalité entre deux pointeurs ou, en java, tester un == sur deux objets plutôt qu'un .equals()).
Donc effectivement, normal que ce soit une option à rajouter si t'en as besoin et pas un truc requis.

Oui enfin, tu n'auras jamais de résultat bizarre en testant l'égalité de deux adresses alors qu'avec les flottants ça dépends de facteurs externe (codage des nombres, architecture,…)

Disons que bon, j'ai peut-être pas encore un niveau de C suffisant pour mettre tous les warnings à fond non plus…

Je me dis qu'il vaut mieux s'habituer à être exigeant dès le début plutôt que d'avoir à changer de mauvaises habitudes par le suite. Mais c'est toi qui voit smile.

Sinon, tu as vu mon « évaluation » des points pour le CLFB ?

Dernière modification par grim7reaper (Le 27/12/2010, à 20:14)

Hors ligne

#503 Le 27/12/2010, à 20:23

Elzen

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

Je me dis qu'il vaut mieux s'habituer à être exigeant dès le début plutôt que d'avoir à changer de mauvaises habitudes par le suite. Mais c'est toi qui voit smile.

En théorie, j'suis d'accord, en pratique je sais que tu prends quand même toujours des mauvaises habitudes, donc bon ^^

Se faire de bonnes règles de codage est un truc qu'on ne peut faire que quand on a bien compris comment fonctionnait le langage, ce qui dans mon cas et pour le C n'est pas encore assuré.

grim7reaper a écrit :

Sinon, tu as vu mon « évaluation » des points pour le CLFB ?

Ouaip, mais j'attendais d'autres réactions pour donner mon avis.

Hors ligne

#504 Le 27/12/2010, à 20:35

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Je vois ça plutôt dans l'autre sens.
Quand tu connais peu le langage, tu as plus de chance de faire des « mauvaises » choses donc mieux vaut régler le compilo pour qu'il te le dise et te permette de te recadrer.

En ce moment j'apprend Haskell, et bien je compile en -Wall.

Dernière modification par grim7reaper (Le 27/12/2010, à 20:35)

Hors ligne

#505 Le 27/12/2010, à 20:36

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Je suis plutôt d'accord ; ça a été salutaire, pour moi… ^^


“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

#506 Le 27/12/2010, à 20:43

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Bon ma fonction pour « découper » l'entrée utilisateur semble fonctionner.
À partir de

filename\ with\ spaces +> yet\ another\ filename\ with\ spaces

j'obtient

["filename with spaces","+>","yet another filename with spaces"]

Le code en question

getUserArgs :: String -> [String]
getUserArgs input = getUserArgs' tokens False []
    where tokens = words input



getUserArgs' :: [String] -> Bool -> [String] -> [String]
getUserArgs' [] _ args         = reverse args
getUserArgs' (x:xs) False args = getUserArgs' xs (last x == '\\') (x : args)
getUserArgs' (x:xs) True  args = getUserArgs' xs (last x == '\\') newArgs
    where newArgs = (((init.head) args) ++ newX) : tail args
          newX    = " " ++ x

Faudra que j'ajoute un commentaire en tête de fonction pour définir le rôle des arguments.

Dernière modification par grim7reaper (Le 27/12/2010, à 20:43)

Hors ligne

#507 Le 27/12/2010, à 22:50

helly

Re : /* Topic des codeurs couche-tard [3] */

Jcode pas, mais je BNise !
Faut que je re-avance clfb, je suis en train de retravailler haskell, j'oublie le projet hmm.

Dernière modification par helly (Le 27/12/2010, à 22:50)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#508 Le 27/12/2010, à 22:53

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Bah fait le en Haskell comme moi, tu feras d'une bière deux coups big_smile

Hors ligne

#509 Le 28/12/2010, à 00:21

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Bon, en fait il faut que je revoie ma fonction getUserArgs (elle était trop simple pour être juste…) et j'ai commencé à étudier la complétion niveau commande (c'est pas gagné ^_^).

BN World !

Dernière modification par grim7reaper (Le 28/12/2010, à 00:21)

Hors ligne

#510 Le 28/12/2010, à 00:40

Elzen

Re : /* Topic des codeurs couche-tard [3] */

T'entends quoi par « complétion niveau commandes » ? Pour les éventuels noms de fichiers en paramètres ?
(Parce que pour les opérateurs, il n'y a que deux caractères au max, donc j'pense qu'il n'y a pas besoin d'auto-complétion dessus…)

Hors ligne

#511 Le 28/12/2010, à 00:46

\\Ouranos//

Re : /* Topic des codeurs couche-tard [3] */

neutral


Ubuntu facile, c'est :
- Dire "Bonjour"
- Lire la doc et les règles du forum avant de poster. Savoir poser une question intelligemment.
- Mettre des balises url autour des liens et un tiret à su.

Hors ligne

#512 Le 28/12/2010, à 00:54

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

ArkSeth a écrit :

T'entends quoi par « complétion niveau commandes » ? Pour les éventuels noms de fichiers en paramètres ?
(Parce que pour les opérateurs, il n'y a que deux caractères au max, donc j'pense qu'il n'y a pas besoin d'auto-complétion dessus…)

J'ai déjà la complétion au niveau des noms de fichiers, je voulais voir si je pouvais aussi l'avoir pour les opérateurs.
Mais c'est vrai que vu la longueur des opérateurs c'est peut-être pas la peine, je verrais…
En tout cas, j'en fait pas une priorité.

Bon bah finalement je ne suis pas couché donc je vais attendre minuit pour les points big_smile.

Dernière modification par grim7reaper (Le 28/12/2010, à 01:03)

Hors ligne

#513 Le 28/12/2010, à 01:09

compte supprimé

Re : /* Topic des codeurs couche-tard [3] */

Bn;

#514 Le 28/12/2010, à 01:27

Pylades

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :
ArkSeth a écrit :

T'entends quoi par « complétion niveau commandes » ? Pour les éventuels noms de fichiers en paramètres ?
(Parce que pour les opérateurs, il n'y a que deux caractères au max, donc j'pense qu'il n'y a pas besoin d'auto-complétion dessus…)

J'ai déjà la complétion au niveau des noms de fichiers, je voulais voir si je pouvais aussi l'avoir pour les opérateurs.
Mais c'est vrai que vu la longueur des opérateurs c'est peut-être pas la peine, je verrais…
En tout cas, j'en fait pas une priorité.
[…]

J'ai vraiment du mal à comprendre l'intérêt, étant donné que comme les commandes font au maximum deux caractères qu'il y a suffisamment peu de caractères en jeu, l'autocomplétion des commandes est un peu impossible.


“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

#515 Le 28/12/2010, à 02:18

gnuuat

Re : /* Topic des codeurs couche-tard [3] */

<?php
$mots = array (
    'adjectif' => 'Bonne',
    'nom' => 'nuit',
    'ponctuation' => '.'
);
echo "{$mots['adjectif']} {$mots['nom']}{$mots['ponctuation']}";

Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !

Hors ligne

#516 Le 28/12/2010, à 03:08

Кຼزດ

Re : /* Topic des codeurs couche-tard [3] */

plop


dou

Hors ligne

#517 Le 28/12/2010, à 08:42

Compteur du TdCCT

Re : /* Topic des codeurs couche-tard [3] */

Scores totaux, depuis le début :

1) 2171    nesthib
2) 2042    samuncle
3) 1748    Pylade
4) 1379    Кຼزດ
5) 1048    cm-t
6) 1036+5  grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
7) 762    \\Ouranos//
8) 725    helly
9) 716    Р☢w ! ✰ :mad: ✰ (эй !)
10) 522    gnuuat
11) 497    Lagierl
12) 348    tshirtman
13) 196    Askelon
14) 185    Kanor
15) 172    nathéo
16) 121    ǤƦƯƝƬ
17) 93    petifrancais
18) 88    The Uploader
19) 81    Rolinh
20) 78    edge_one
20) 78    pierguiard
22) 70    gulp
23) 59    kamui57
24) 37    ilagas
25) 32    Le Rouge
26) 30    keny
27) 25    GentooUser
27) 25    Morgiver
29) 24    ไ୦บเઢ'
30) 22    xapantu
31) 21    Steap
32) 20    CROWD
33) 18    Ph3nix_
34) 15    timsy
35) 14    kouskous
36) 12    stratoboy
36) 12    sailing
36) 12    sakul
39) 11    alexises
39) 11    Crocoii
41) 10    Toineo
41) 10    NutMotion
41) 10    pseudovingtcinqcaracteres
41) 10    pfriedZ
41) 10    d10g3n
46) 8    Mornagest
47) 7    Vista
48) 6    Zeibux
48) 6    ubuntlin
48) 6    asma.geek
51) 5    tendances-tdct
51) 5    kinouchou
53) 4    danychou56
53) 4    Neros
53) 4    Biaise
53) 4    totoflute
53) 4    pinballyoda ㋛
58) 3    Revan26914
59) 2    SoJaS
59) 2    ceric
61) 1    geenux

chart?chs=675x280&cht=p3&chco=d80020,d88000,ffd840,20d820,2080ff,101080,a020d8&chf=bg,s,fbf9f4&chl=00h%20-%2000h59|01h%20-%2001h59|02h%20-%2002h59|07h%20-%2007h59|11h%20-%2011h59|14h%20-%2014h59|15h%20-%2015h59|16h%20-%2016h59|17h%20-%2017h59|18h%20-%2018h59|19h%20-%2019h59|21h%20-%2021h59|23h%20-%2023h59&chd=t:2,1,1,2,1,2,5,1,3,3,5,2,4&chp=1.6&chtt=R%C3%A9partition%20des%20posts&chts=606060,16chart?chs=675x250&cht=bvs&chxt=x,y&chds=0,10&chxr=1,0,10&chf=b0,lg,0,803000,0,ffc080,1|bg,s,fbf9f4&chxl=0:|05h|06h|07h|08h|09h|10h|11h|12h|13h|14h|15h|16h|17h|18h|19h|20h|21h|22h|23h|00h|01h|02h|03h|04h&chxp=0,0.7,4.9,9.1,13.2,17.3,21.5,25.6,29.8,33.9,38,42.2,46.3,50.5,54.6,58.8,62.9,67,71.2,75.3,79.4,83.6,87.7,91.8,96&chd=t:0,0,2,0,0,0,1,0,0,2,5,1,3,3,5,0,2,0,4,2,1,1,0,0&chm=N,803000,0,-1,12&chtt=|Nombre%20de%20posts%20par%20heure&chts=606060,16


Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !

J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).

Hors ligne

#518 Le 28/12/2010, à 08:42

Compteur du TdCCT

Re : /* Topic des codeurs couche-tard [3] */

Scores de la période en cours :

1) 194    nesthib
2) 162    Кຼزດ
3) 161    Pylade
4) 152    samuncle
5) 149    grim7reaper
6) 95    gnuuat
7) 89    Lagierl
8) 73    Rolinh
9) 69    helly
10) 63    \\Ouranos//
11) 55    tshirtman
12) 41    cm-t
13) 29    The Uploader
14) 25    Р☢w ! ✰ :mad: ✰ (эй !)
15) 18    Kanor
16) 16    Steap
17) 12    sakul
18) 10    pierguiard
18) 10    d10g3n
20) 5    kinouchou
20) 5    Morgiver
22) 3    xapantu
22) 3    Revan26914

Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !

J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).

Hors ligne

#519 Le 28/12/2010, à 11:16

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Hello World !



Pylade a écrit :

l'autocomplétion des commandes est un peu impossible.

Non, c'est possible. L'intérêt est proche de zéro certes mais je ne vois pas en quoi c'est impossible…

Si la personne n'a rien écrit, un coup de « Tab » lui propose des noms de fichiers ou !verbose ou !quit ou !help.
S'il y a déjà un nom de fichier tu proposes un opérateur ou un nombre positif (voir mieux smile).
S'il y a un nom de fichier suivi d'un opérateur binaire, tu proposes des noms de fichiers.

Voilà, en gros, comment pourrai fonctionner le truc, donc je ne vois pas ce qui est impossible là-dedans (même si, certes, l'intérêt n'est pas transcendant).

Hors ligne

#520 Le 28/12/2010, à 12:56

helly

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

Bah fait le en Haskell comme moi, tu feras d'une bière deux coups big_smile

T'as juste utilisé le tuto en anglais, rien de plus ?


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#521 Le 28/12/2010, à 13:49

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Oui, et encore je ne l'ai pas entièrement lu (bien que je commence à en voir le bout maintenant smile).


Pour la complétion et le gestion des types Mime j'utilise aussi la doc des modules kivonbien. Par contre, les docs manquent un peu d'exemple donc en complément je lit aussi des codes sources pour voir comment ont les utilises.
J'évite au maximum Google, mais pour le coup ils sont les seuls à ma connaissance à proposer ce genre de service

Pour le type Mime j'utilise le binding de la libmagic, magic (dispo dans AUR).
Pour la complétion j'ai laissé tombé le binding de GNU Readline, readline (doc à chier des briques : juste cinq fonctions documentées et un exemple, pour le reste il faut se contenter des prototypes hmm) au bénéfice d'Haskeline (la doc est pas transcendante, mais au moins les prototypes et les types sont expliqués) qui à le mérite d'être du « pur » Haskell (même s'il est basé sur les transformeurs de monades, chose que je ne connais pas et qui m'a donc donné un peu de fil à retordre, mais maintenant ça fonctionne ^_^).

readline est dispo dans AUR et Haskeline est dispo dans extra.

Dernière modification par grim7reaper (Le 28/12/2010, à 13:52)

Hors ligne

#522 Le 28/12/2010, à 13:57

Pylades

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

[…]
Si la personne n'a rien écrit, un coup de « Tab » lui propose des noms de fichiers ou !verbose ou !quit ou !help.
[…]

Ah, oui, je les avais oublié, ceux-là…
Sinon, OK, tu parles d'une complétion « à la Vim » alors que je parlais d'une complétion « à la Bash », ça explique le malentendu… ^^


“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

#523 Le 28/12/2010, à 14:06

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Pylade a écrit :
grim7reaper a écrit :

[…]
Si la personne n'a rien écrit, un coup de « Tab » lui propose des noms de fichiers ou !verbose ou !quit ou !help.
[…]

Ah, oui, je les avais oublié, ceux-là…

Sans compter !show warranty et !show copying, vu que j'ai mis mon code sous GPL et que je suis un « bon élève »

GPL a écrit :

If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:

    <program>  Copyright (C) <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box".

big_smile
C'est d'ailleurs ça qui explique le

import CLFB.Copyleft

dans mon code ^_^

Sinon, OK, tu parles d'une complétion « à la Vim » alors que je parlais d'une complétion « à la Bash », ça explique le malentendu… ^^

C'est quoi une completion « à la Bash » ?
Je ne vois pas trop la différence là.

Dernière modification par grim7reaper (Le 28/12/2010, à 14:08)

Hors ligne

#524 Le 28/12/2010, à 14:16

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Avec Vim de multiples appuis font défiler les solutions possibles, avec Bash non.


“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

#525 Le 28/12/2010, à 14:18

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Bah là c'est « à la Bash » alors.
Un appui sur « Tab » te donne toute les solutions possibles (selon les contextes que j'ai précédemment cités bien sûr). Pas de navigation dans les propositions comme dans Vim ou zsh.

Dernière modification par grim7reaper (Le 28/12/2010, à 14:19)

Hors ligne