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

 C Discussion :

Pseudo - Dictionnaire Anglais


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Septembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Expert sécurité informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 2
    Par défaut Pseudo - Dictionnaire Anglais
    Bonjour

    J'ai un TP à rendre dans 2 semaines et je suis toujours bloquée. Je n'arrive pas à bien comprendre ce qui nous est demandé là.
    Est-ce que vous pouvez m'aider??
    Nom : Enonce.PNG
Affichages : 1903
Taille : 56,8 Ko
    Nom : Travail.PNG
Affichages : 1390
Taille : 56,3 Ko

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 853
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 853
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Chouette projet. Il t'apprend à manipuler les listes chainées et les recherches qui vont avec.

    Donc d'après ce que moi je comprends, il te faut créer, pour chaque mot français, une liste chainée contenant la signification de ce mot. Cette signification sera écrite de façon à ce que chaque mot soit écrit dans un maillon de la liste.
    Exemple: maison; batiment construit pour servir d'habitation aux personnes
    Donc pour le mot "maison", sa liste contiendra "batiment", "construit", "pour", "servir", "de", "habitation", "à", "personne"

    Ensuite, un second ensemble contiendra le mot en français et le mot en anglais
    Exemple:
    • maison, home
    • batiment, building
    • construit, built
    • pour, to
    • servir, serve
    • de, of
    • habitation, inhabitation
    • etc


    Le client de ton traducteur tapera "home". Ca amènera alors sur "maison". De "maison" ça récupèrera tous les mots de sa définition et chaque mot de sa définition ("batiment", "construit", etc) sera traduit en anglais (en utilisant le second ensemble) ce qui donnera alors "home: building built to serve of inhabitation to people"

    Voilà. C'est pas un super traducteur mais son rôle n'est pas de traduire réellement mais surtout t'apprendre à manipuler les structures, les tableaux et les listes. Perso je penserais déjà au fait qu'un mot français peut avoir plusieurs significations (voir maison dnas le larousse) et j'utiliserais alors pour chaque mot non pas une liste chainée mais un tableau de listes.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Candidat au Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Septembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Expert sécurité informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 2
    Par défaut
    Merci pour votre réponse
    Donc si j'ai bien compris la structure utilisée sera un enregistrement de 4 champs??
    Mot_Ang, Mot_Fr, LLC_Sign_Fr et LLC_Sign_Ang. Tout ça dans un tableau??
    Ou est-ce qu'il faut créer un autre tableau dont chaque case contient deux champs: l'un pour les mots de la signification en français et l'autre son correspondant en anglais, et à chaque recherche il faut parcourir ce tableau pour trouver la traduction??

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 853
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 853
    Billets dans le blog
    1
    Par défaut
    Ben c'est à toi de découper tes éléments pour pouvoir effectuer les meilleures manipulations possibles. Par exemple moi, je créerais mes structures ainsi
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #define CAR_MAX      (100)
     
    // Structure associant mot français et mot anglais
    typedef struct {
        char fr[CAR_MAX + 1];
        char en[CAR_MAX + 1];
    } t_traduc;
     
    // Structure pour gérer un mot dans une liste chainée
    typedef struct s_noeud {
        t_traduc *mot;       // Chaque noeud stockera un pointeur vers le mot français et sa traduction anglaise
        struct s_noeud *next;
    } t_noeud;
     
    // Structure pour gérer une liste chainée
    typedef struct {
        t_noeud *racine;
        size_t nb_elem;
    } t_liste;   // J'aime bien définir un type dédié à la liste elle-même - Ca allège les paramètres envoyés aux fonctions d'insertion et suppression et ça facilite l'évolutivité
     
    // Structure pour gérer les définitions d'un mot
    typedef struct {
         t_traduc *mot;   // Comme pour le noeud, un pointeur vers le couple mot français/mot anglais
         t_liste def[10];    // Parce qu'un mot peut avoir plusieurs définitions (on va dire 10 max)
    } t_larousse;

    Bon c'est juste une idée sur le vif. Peut-être qu'on peut regrouper ensemble certains items mais vu d'ici à mon avis ce serait un bon point de départ...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 779
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 779
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Ensuite, un second ensemble contiendra le mot en français et le mot en anglais
    Exemple:
    • maison, home
    • batiment, building
    • construit, built
    • pour, to
    • servir, serve
    • de, of
    • habitation, inhabitation
    • etc
    Tu te fourvoies: Il y a, en plus, un pointeur vers la liste chaînée "Définition"

    • maison, home, pointeur
    • batiment, building, pointeur
    • construit, built, pointeur
    • pour, to, pointeur
    • servir, serve, pointeur
    • de, of, pointeur
    • habitation, inhabitation, pointeur
    • etc



    Citation Envoyé par Sve@r Voir le message
    Donc pour le mot "maison", sa liste contiendra "bâtiment ", "construit", "pour", "servir", "de", "habitation", "à", "personne"
    Justement je me demande si tu as le vrai mot ou alors un pointeur vers ton dictionnaire

    Édit: Le problème du pointeur c'est qu'il ne peut pas rester fixe (ou alors il faut allouer un tableau statique) et qu'il faut faire un système "double chaînage" pour qu'on puisse modifier le pointeur d'un mot vers toutes les listes (c'est très lourd). Donc plutôt associer un id avec un mot et mettre cet id au lieu du pointeur

    Donc
    Soit "bâtiment" -> "construit" -> "pour" -> "servir" -> "de" -> "habitation" -> "à" -> "personne"

    Soit pointeur vers mot "bâtiment" -> pointeur vers mot "construire" (*) -> pointeur vers mot "pour" -> pointeur vers mot "servir" -> pointeur vers mot "de" -> pointeur vers mot "habitation" -> pointeur vers mot "à" -> pointeur vers mot "personne"

    * -> à voire pour la conjugaison

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 853
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 853
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par foetus Voir le message
    Tu te fourvoies: Il y a, en plus, un pointeur vers la liste chaînée "Définition"

    • maison, home, pointeur
    • batiment, building, pointeur
    • construit, built, pointeur
    • pour, to, pointeur
    • servir, serve, pointeur
    • de, of, pointeur
    • habitation, inhabitation, pointeur
    • etc
    C'est aussi une façon de voir les choses. Toi tu pars du mot avec sa traduction et tu embrayes directement sur la définition de ce même mot, alors que moi je stocke de façon plus atomique d'un coté le mot et sa traduction et de l'autre le mot et sa définition.
    Mais bon, mon exemple n'était qu'un point de départ pour la réflexion

    Citation Envoyé par foetus Voir le message
    Donc
    Soit "bâtiment" -> "construit" -> "pour" -> "servir" -> "de" -> "habitation" -> "à" -> "personne"

    Soit pointeur vers mot "bâtiment" -> pointeur vers mot "construire" (*) -> pointeur vers mot "pour" -> pointeur vers mot "servir" -> pointeur vers mot "de" -> pointeur vers mot "habitation" -> pointeur vers mot "à" -> pointeur vers mot "personne"
    Oui, c'est ainsi que je vois ma structure "t_larousse". Elle contient un pointeur vers la traduction "maison/home" et 10 définitions possibles de ce mot "maison", chaque définition étant codée sous forme d'une liste chainée de mots.

    PS: j'ai corrigé mes structures. Au lieu de restocker le mot et sa traduction à plusieurs endroits, je ne le stocke qu'une fois et les autres structures n'ont que des pointeurs vers ce mot. C'est sûr, en mémoire ça va se croiser dans tous les sens mais si c'est bien programmé de façon bien atomique (une fonction pour une chose et une chose par fonction) ça ne devrait pas poser de soucis...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 779
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 779
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    C'est aussi une façon de voir les choses.
    C'est dans l'énoncé "contiendra le mot et son synonyme en Anglais, en plus d'un pointeur..."

    Citation Envoyé par Sve@r Voir le message
    C'est sûr, en mémoire ça va se croiser dans tous les sens mais si c'est bien programmé de façon bien atomique
    Le problème vient de où sont stockées les traductions (c'est ta structure t_traduc): dans un tableau fixe, dans une liste chaînée, dans un tableau dynamique (soyons fous un arbre) ...

    Parce que si les traductions sont déplacées suite à une opération de ta structure de stockage (ajout, suppression d'une traduction ou réservation pour X traductions ou autre) tes pointeurs seront invalides et c'est le Bronx pour les mettre à jour (je parlais d'un système de "double-chaînage").

    Je proposais un id au lieu d'un pointeur, mais c'est vrai qu'avec un pointeur c'est un accès direct à la traduction et non pas une recherche d'un id ou d'un mot.

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 853
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 853
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par foetus Voir le message
    Le problème vient de où sont stockées les traductions (c'est ta structure t_traduc): dans un tableau fixe, dans une liste chaînée, dans un tableau dynamique (soyons fous un arbre) ...
    Oui je vois ce que tu veux dire. Evidemment dans mes structures il manque un lien entre le mot lui-même ("maison") et ses définitions. Mais bon, encore une fois c'était juste un brouillon pour servir de point de départ de réflexion. Le lien peut très bien se faire de façon logicielle (exploration de toutes les listes jusqu'à trouver celle qui commence par "maison". Et bon après-tout c'est pas non plus mon TP quoi


    [edit] Dommage, ce topic m'intéressait mais je semble être le seul.

    Je pense avoir trouvé les bonnes structures
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #define NB_CAR		(100)
     
    // Structure gérant un noeud dans une liste chainée
    typedef struct s_noeud {
    	struct s_traduc *mot;
    	struct s_noeud *next;
    } t_noeud;
     
    // Structure gérant la liste chainée elle-même
    typedef struct {
    	size_t nb_elem;
    	t_noeud *first;
    } t_liste;
     
    // Structure gérant une traduction
    typedef struct s_traduc {
    	char fr[NB_CAR + 1];
    	char en[NB_CAR + 1];
    	t_liste def[10];
    } t_traduc;

    Ainsi chaque mot ("maison", "batiment", etc) accède directement à ses 10 définitions possibles. Et chaque définition est un début de liste chainée où chaque noeud contient l'adresse d'un mot.

    J'étais embêté de devoir créer un pointeur vers une structure s_traduc pas encore définie mais ça n'a pas gêné le compilo. J'ai même tenté de modifier le nom de la structure "s_traduc" utilisée comme pointeur dans mon type "t_noeud" et là non plus ça ne l'a pas gêné. Et même pas pour afficher sizeof(t_noeud). Ca doit être le même principe qui permet de créer un noeud (avec un next pointant vers la structure en cours d'écriture) mais bon, dans ce cas là la structure est quand-même écrite (son nom existe déjà) alors que dans ce cas ci, la structure est écrite bien plus tard dans le code. Mais bon, il s'y retrouve et c'est l'essentiel.

    Bon moi ce TP m'intéresse et je vais le faire à mes moments perdus. Si un intervenant (habitué s'entend !!!) veut que je le lui file une fois terminé, il me MP...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Conseils achat : Dictionnaire Anglais / Français
    Par joan-74 dans le forum La taverne du Club : Humour et divers
    Réponses: 2
    Dernier message: 01/07/2014, 07h15
  2. [OpenOffice][Texte] dictionnaire anglais français
    Par ledisciple dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 25/07/2012, 17h16
  3. [XL-2003] Dictionnaire anglais – français
    Par RéviAT dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/09/2009, 09h42
  4. Comment gérer un dictionnaire Anglais vers Français ?
    Par sbadecoder dans le forum Langage
    Réponses: 7
    Dernier message: 13/10/2007, 08h41

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