IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Défis C Discussion :

4ème défi C & C++ : Balade dans le métro parisien


Sujet :

Défis C

  1. #1
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut 4ème défi C & C++ : Balade dans le métro parisien
    Bonjour à toutes et à tous,

    Le 4ème défi C & C++ est lancé. Il s'agit de rechercher le meilleur itinéraire entre 2 stations dans le métro parisien. Ce défi commence aujourd'hui (samedi 9 mai 2009) et les copies sont ramassées le dimanche 14 juin 2009 à minuit.

    Pour plus d'information, les différents points d'entrée sont :
    Si vous prévoyez de participer au défi, envoyez un petit MP aux organisateurs. Il ne s'agit nullement d'un engagement de votre part mais cela nous permet de composer un jury avec suffisamment de membres en fonction du nombre de réponses prévisibles.

    Si vous avez la moindre question concernant ce défi ou si un point du règlement vous parait obscur, il suffit de poster dans la suite de ce message (les questions et les réponses sont publiques).

    Un complément d'information concernant ces critères dévaluation des différents projets et ce qu'ils sous entendent sera fourni pendant le déroulement de ce défi. Il n'est pas exclu non plus que certains critères ne disparaissent ou bien fusionnent avec d'autres critères ni que de nouveaux critères n'apparaissent. Toutefois, le poid total de chacune des 5 grandes familles de critères ne sera pas remis en cause. Toute mise à jour des critères fera l'objet d'une diffusion dans ce post.

    Bon courage à tous
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .
      0  0

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'ai une question...

    Le règlement dit :

    "Les correspondances entre les différentes lignes doivent être détectées par la concordance des noms des stations sur les différentes lignes."

    Si je l'applique à la lettre, cela signifie que la ligne de RER E n'est pas connectée au reste du réseau (qui n'a ni station Haussmann-Saint Lazare, ni station Magenta), que la station Auber (de la ligne A du RER) n'est pas connectée au reste du réseau, ou que Saint Michel et Saint Michel Notre Dame ne correspondent pas (pas plus que Neuilly Porte Maillot, ou un certain nombre de stations de la ligne C).

    Est ce le cas?

    Sinon, ne serait il pas préférable de produire une liste des correspondances, (le cas de stations comme Auber, qui correspondent avec plusieurs stations du métro, étant problématique...)?

    Francois
      0  0

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Comme vient de le dire implicitement fcharton,peut-on utiliser un autre fichier comme base de travail?
    Un fichier indiquant les correspondances par exemple....

    Edit:Quand vous dîtes "-h afffiche l'aide en ligne",je dois renvoyer l'utilisateur vers un page web?
      0  0

  4. #4
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    Cool, un nouveau défis !

    Je dois dire que je me pose la même question que les personnes ci-dessus. La gestion des correspondances est un peu ambigüe dans le fichier texte.

    Ok pour les stations utilisées par plusieurs lignes et qui ont le même nom, mais les lignes qui ont des stations de noms différents mais qui en réalité sont une correspondance ?
      0  0

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par Bueno Voir le message
    Quand vous dîtes "-h afffiche l'aide en ligne",je dois renvoyer l'utilisateur vers un page web?
    Non, cela veut dire que le programme doit affichier (par printf ou cout) le mode de lancement du programme et quelques lignes d'explication des différents paramètres.

    Regarde sur le précédent défi comment ont fait les autres. C'est une pratique courante sur beaucoup de programmes "unix like". Quand on ne sait pas quels paramètres accepte un programme, on fait programme -h pour les connaitre et avoir une petite idée sur leur signification et leur usage.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .
      0  0

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par fcharton Voir le message
    Le règlement dit :

    "Les correspondances entre les différentes lignes doivent être détectées par la concordance des noms des stations sur les différentes lignes."

    Si je l'applique à la lettre, cela signifie que la ligne de RER E n'est pas connectée au reste du réseau (qui n'a ni station Haussmann-Saint Lazare, ni station Magenta), que la station Auber (de la ligne A du RER) n'est pas connectée au reste du réseau, ou que Saint Michel et Saint Michel Notre Dame ne correspondent pas (pas plus que Neuilly Porte Maillot, ou un certain nombre de stations de la ligne C).

    Est ce le cas?
    C'est le cas et dans ce cas, il sera impossible d'aller vers auber si la station d'origine n'est pas une autre station sur la ligne A

    C'est le fichier fourni sur la page du défi qui doit être utilisé et pas un autre. Interdiction de le modifier pour coller un peu mieux à la réalité. C'est peut être frustant mais le métro parisien est plein de petites particularités et il n'apporte rien pour ce défi de toutes les prendre en compte.

    Une autre remarque, votre programme doit être le plus indépendant possible du contenu du fichier et ne doit rien supposer ou interpréter. Ce n'est peut être pas ce fichier qui sera utilisé lors de l'analyse de vos projets par les membres du jury.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .
      0  0

  7. #7
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,

    dans les argv, il y a peut-être un problème du fait des noms de stations qui peuvent contenir des espaces. Faut-il "bricoler" dans les arguments, ou spécifie t-on dans le règlement qu'il ne faut pas passer de noms composés en arguments, ou encore précise t-on qu'il faut les entourer de guillemets?

    A+

    Pfeuh
      0  0

  8. #8
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par pfeuh Voir le message
    dans les argv, il y a peut-être un problème du fait des noms de stations qui peuvent contenir des espaces. Faut-il "bricoler" dans les arguments, ou spécifie t-on dans le règlement qu'il ne faut pas passer de noms composés en arguments, ou encore précise t-on qu'il faut les entourer de guillemets?
    Je crois (mais c'est à confirmer) que si tu dois passer un argument avec des espaces à un programme, il suffit de l'encadrer avec des double quotes. Il arrive alors dans le programme (argv) sans les double quotes mais avec les espaces et tout et tout (d'ailleurs, c'est comme cela que l'on passe un nom long Microsoft comme "c:\program files")
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .
      0  0

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Points : 168
    Points
    168
    Par défaut
    Bonjour

    Chic un nouveau défi, je vais me refaire...
    Mais pour commencer, j'ai une question :
    Je vois dans les règles que l'on peut utiliser boost. Je suis interressé par boost::program_option, mais cette bibliothèque nécessite une compilation, et ne peut être utilisé directement (en header only). Cela pose t il problème ?

    De plus, je galère pour trouver un moyen de lire un fichier Unicode de manière standard (voire les FAQ par exemple...)
    --
    Jérémie
    Jérémie
      0  0

  10. #10
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 242
    Points : 354
    Points
    354
    Par défaut
    Il y a une petite contrainte supplémentaire, lors de la saisie des noms des stations des points de départ et d'arrivée. Le programme doit être insensible aux différences majuscules/minuscules, aux accents et autres signes de ponctuation. C'est à dire que si l'utilisateur saisi "champs elysees, le programme doit comprendre qu'il parle en fait de la station "Champs-Elysées". Par contre "Châtelet" est différent de "Châtelet-Les Halles"
    De ce fait dans mon code, j'ai pas encore trouvé le moyen d'effectuer la comparaison entre deux chaines sans écrire de caractères avec "accents" dans fichier source. Mon fichier est encodé UTF8... Est-ce que ça peut être pénalisant ?
      0  0

  11. #11
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par jfouche Voir le message
    De plus, je galère pour trouver un moyen de lire un fichier Unicode de manière standard (voire les FAQ par exemple...)
    Désolé si je n'ai pas mis d'exemple dans la page du défi
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .
      0  0

  12. #12
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par Climoo Voir le message
    De ce fait dans mon code, j'ai pas encore trouvé le moyen d'effectuer la comparaison entre deux chaines sans écrire de caractères avec "accents" dans fichier source. Mon fichier est encodé UTF8... Est-ce que ça peut être pénalisant ?
    Rappel, le fichier à utiliser est le fichier qui peut être téléchargé depuis la page du défi (cette URL).

    Oui, ce fichier est encodé en Unicode mais c'est une contrainte imposée par le défi.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .
      0  0

  13. #13
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 242
    Points : 354
    Points
    354
    Par défaut
    Je me suis mal exprimé je crois...
    Quand je parlais de mon fichier source, je parlais de mon fichier contenant mon code. Et dedans, j'ai écrit des 'é' ou des 'à' par exemple. Je peux me tromper, mais je crois que ça peut poser certains problèmes de portabilité pour la compilation ou l'exécution, car mon fichier n'est plus codé en ASCII.
    Et je rejoins jfouche, lire un fichier unicode de manière standard est vraiment galère. Ce que j'ai fait fonctionne, mais j'ai aucune idée de la portabilité
      0  0

  14. #14
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Citation Envoyé par Climoo Voir le message
    Je
    Et je rejoins jfouche, lire un fichier unicode de manière standard est vraiment galère
    C'est plus ou moins vrai. Et puis c'est un défi, non ?

    Le fichier fichier à lire est un fichier encodé en UTF16 avec un BOM.

    La lecture est simple mais l'interprétation plus compliquée pour faire du portable.

    De plus, les règles du défi impose du C ANSI/ISO (C89/C90) donc pas de wchar_t et les variantes wide des fonction de string.h... Dans tous les cas ce n'est pas portable aisement..

    De plus pas d'extension Microsoft autorisée !!

    L'affichage de caractères unicode sur la console sans C99 va être sympa ! Qui plus est si le prog doit être portable...

    Par contre, petite question car c'est pas clair : le prog doit être portable sur windows ET linux ou fonctionner sur l'un OU sur l'autre ?

    PS : encore heureux que les noms de stations ne comportent pas de caractères non ANSI car la lecture d'arguments non ANSI par un main() avec des char, c'est pas jojo ....
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle
      0  0

  15. #15
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Le code doit portable windows et linux...

    La raison est relativement simple: tu ne peux pas savoir, a priori, si celui qui devra le compiler utilise l'un ou l'autre système

    N'oublie pas que, malgré tout, les règles générales stipulent que le code doit être compatible avec une compilation C ANSI/ISO strict (§2.6: écriture des codes sources).

    La seule liberté que tu a concernant la compilation tient au système de compilation utilisé
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog
      0  0

  16. #16
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Donc, si le code doit être :

    - du C90
    - portable sur Linux et windows
    - ne pas utiliser de lib tierce

    les gars vont s'amuser !!!

    Il est aberrant d'imposer un jeu de donnée UTF16 (dont on ne peut supposer le contenu) avec une E/S ASCII/ANSI (imposée par le C90) !

    Il faudrait au moins autoriser du C99 (ou révision 95)... ou gérer les stations d'entrée et l'itinéraire de sortie par des fichiers en entrée et en sortie...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle
      0  0

  17. #17
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Points : 168
    Points
    168
    Par défaut
    Désolé de remettre 10 balles dans le nourrain :

    Citation Envoyé par jfouche Voir le message
    j'ai une question :
    Je vois dans les règles que l'on peut utiliser boost. Je suis intéressé par boost::program_option, mais cette bibliothèque nécessite une compilation, et ne peut être utilisé directement (en header only). Cela pose t il problème ?
    Peut on utiliser les bibliothèques à compiler de boost ?

    Merci
    --
    Jérémie
    Jérémie
      0  0

  18. #18
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Citation Envoyé par jfouche Voir le message
    Désolé de remettre 10 balles dans le nourrain :



    Peut on utiliser les bibliothèques à compiler de boost ?

    Merci
    --
    Jérémie
    Personnellement, je ne vois pas pourquoi on ne pourrait pas...

    Si l'on accepte l'utilisation éventuelle de boost, on accepte l'ensemble de la suite

    De plus, il est malgré tout rare que quelqu'un décide de n'installer que les bibliothèques "headers only" de boost
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog
      0  0

  19. #19
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 242
    Points : 354
    Points
    354
    Par défaut
    De plus, les règles du défi impose du C ANSI/ISO (C89/C90) donc pas de wchar_t et les variantes wide des fonction de string.h... Dans tous les cas ce n'est pas portable aisement..
    .
    Pas de wchar_t ?
    J'y connais pas grand chose aux normes alors (pour pas dire rien du tout)... Mince... J'ai aucune idée comment faire sans ça !
    PS : encore heureux que les noms de stations ne comportent pas de caractères non ANSI car la lecture d'arguments non ANSI par un main() avec des char, c'est pas jojo ....
    Ben dans le fichier, y'a plusieurs accents etc. Je croyais que les accents c'était pas ANSI. non?
      0  0

  20. #20
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Points : 168
    Points
    168
    Par défaut
    J'ai bien trouvé une solution sans wchar_t mais cela me parait gore
    On verra bien ce que cela donne...
    --
    Jérémie
    Jérémie
      0  0

Discussion fermée
Cette discussion est résolue.
Signaler un problème
Page 1 sur 5 12345 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/05/2009, 12h31
  2. Réponses: 0
    Dernier message: 09/05/2009, 12h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo