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 :

projet C code morse


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut projet C code morse
    Bonjour, le but du projet et de convertir un fichier texte en code morse et inversement.
    Le projet se decompose comme suit :
    1) creation d'une liste de convertion
    2) operationde base sur cette liste(ajout d'un code,supression d'un code,recherche d'un code dans une liste)
    3)traduire un fichier texte en fichier morse et inversement

    je me suis donc lancer dans la création d'une structure "morse" voici ce que cela donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #include...
     
    struct morse 
    {
    char caractere;
    ]char carmorse[7];
    }
    main(){
     
    struct morse table [37] = {{'a',".-"},{'b',"-..."}.....
    ensuite il me faudra donc lire le fichier texte en entré et le traduire grace a cette structure!
    ce que je ne parvient pa a comprendre c'est comment distinguer par exemple le caractere "A" donc le code morse est .-
    du "L" "" " " " " " " " " " " " .-..


    si quelqu'un pouvez se lancer avec toute ses forces dans ce projet ac moi merci!!!!!!!
    help

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Tu dois mettre un espace (ou un '/', comme ça se voit couramment") entre chaque code morse.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par marchoun Voir le message
    ce que je ne parvient pa a comprendre c'est comment distinguer par exemple le caractere "A" donc le code morse est .-
    du "L" "" " " " " " " " " " " " .-..
    En morse non écrit, on laisse un temps entre deux caractère, un temps encore plus long entre deux mots.
    En morse écrit, on doit logiquement avoir quelque chose pour traduire ces temps, soit une espace " ", soit un slash "/".

    Sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    struct morse 
    {
        char caractere;
        /* que fait ce ] en début de ligne ?*/
        ]char carmorse[7];
    }
    /* la fonction main est de type int */
    int main(void) {
       return 0;
    }

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    j'ai recommencé mon code j'ai decidé de créer une liste je crée donc ma strcture comme voici:

    Code : 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
     
    #include <stdio.h>
    #include <stdlib.h>
     
    #include <string.h>
     
     
    struct element {
    char lettre;
    char morse[7];
    struct element *suiv;
    };
     
    typedef struct element Element;
    typedef struct Element *Liste;
     
    main(){
    Liste q;
     
    		 q=(Liste)malloc(sizeof(Element));
    		q->lettre='a';
    		q->morse[0]=".-";
    		q->suiv= NULL;
    }
    je n'arrive pas a compiler j'ai notament les errerus suivantes:
    déreferencement d'un pointeur de type imcomplet
    ce sont q->lettre;q->morse et q->val qui ne passe pas
    pouvez vous m'aider merci

  5. #5
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    typedef struct Element *Liste;
    Ca, ca ne compile Pas.
    Dans ton cas tu aurais juste besoin de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    typedef Element *Liste;
    Ensuite
    Ne compile pas non plus car q->morse[0] est de type char, et ".-" est de type const char * .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strcpy(q->morse,".-");
    Devrait déjà aller mieux...

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    merci beaucoup !!
    j'ai bien avancé !

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    bonjour je souhaiterai remplir une liste dont voici la structure :
    a partir d'un fichier texte de la forme : a/.--,b/...-,c/-....- .......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    struct element {
    char lettre;
    char morse[7];
    struct element *suiv;
    };
    si quelqu'un pouvait m'aider car je ne sais pas lire dans un fichier texte merci beaucoup

  8. #8
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    En c, on ouvre et ferme un fichier avec fopen / fclose.

    On lit dans un fichier avec fgetc, fgets, fread...

    Tout dépend de ce qu'on veut faire.

    Et ce qu'on veut faire, c'est à dire comment parcourir le fichier et récupérer les info qu'il contient, c'est à toi de le faire.

    Première chose à faire : décrire précisément le format du fichier.
    Puis écrire (pas coder) l'algorithme à utiliser, il peut ressembler à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    FAIRE
        lire un caractère -> lettre
        lire un caractère.
        SI dernier caractère lu différent de '/' 
            erreur fatale
        FIN SI
        FAIRE
            lire caractère 
            ajouter denier caractère lu à code
        TANT QUE dernier caractère lu différent de ','
        créer un nouveau couple (lettre / code) 
    TANT QUE il est possible de lire le fichier
    Une fois l'algo écrit, on peut le coder pour vérifier qu'on li bien les info du fichier.

    Une fois qu'on les lit bien, on peut remplir la liste chainée avec les info lues.

  9. #9
    Invité
    Invité(e)
    Par défaut
    T'as pas besoin de stocker l'alphabet normal (abcd) dans ta structure.
    Tu mets juste les codes morse (dans l'ordre alphabétique). Pour passer du texte au morse, tu convertit ton caractère en code ascii (tu les mets tous en minuscule d'abord), et tu obtiens l'équivalent morse en allant voir l'élément d'indice : code_ascii-0x61.

    Dans l'autre sens c'est le même principe : tu parcours le tableau jusqu'à trouver le code morse qui t'intéresse, tu récupère l'indice i correspondant, et ton caractère aura le code ascii : i+0x61.

  10. #10
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    le cahier des charges m'obligent a passer par une structure : j'ai un peu fouillé voici un debut de code:

    Code : 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
    26
    27
    void essai()
     
    {
     
         FILE* fichier = NULL;
     
        fichier = fopen("txtMorse.txt", "r");
     
        char lettre;
     
        char *morse=NULL;
     
        char chaine[TAILLE_MAX] = "";
     
     
     
     
     
        if (fichier != NULL)
     
        {
     
            while (fgets(chaine, TAILLE_MAX, fichier)!= NULL) // On lit le fichier tant qu'on ne reçoit pas d'erreur (NULL)
     
     lettre=chaine[0];
    ......
            {
    je seche un pêu pour remplir ma structure voir ci-dessus
    mon fichier txtMorse.txt est de la forme:

    A .-

    B -...

    C -.-.

    ...............

    merci de m'aider .

  11. #11
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Quelque chose comme ça:
    Faire
    -> Lire le caractère
    -> Lire le code morse
    -> Créer un nouvel élément avec ces valeurs
    -> L'ajouter à la liste
    Tant que la lecture se déroule bien.
    Bien sûr, veiller à gérer les erreurs (de lecture, de validité, d'allocation....).

  12. #12
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    oui c'est dans l'exercice

    lire un caractere --> traduction en C ! (je ne sais pas comment faire)
    lire code morse (idem)
    créer un nouvel element ac ces valeurs et l'ajouter a la liste sa je sais faire!!

    merci de m'aider pour coder.

  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
    Pour lire un caractère à partir d'un fichier, tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char c;
    fscanf(fichier,"%c",&c);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char c;
    c = fgetc(fichier);
    Après tu peux aussi lire une ligne d'un coup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #define MAX_STR 32
    <...>
    char chaine[MAX_STR];
    fgets(chaine,MAX_STR,CHAINE,fichier);
    et apres, au moyen dun sscanf, par exemple (lecture dans une chaine)..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char cmorse;
    char code[5];
    sscanf(chaine,"%c %5c", &cmorse,&code);
    Enfin un truc ressemblant à ca devrait fonctionner, ca devrait t'inspirer...

Discussions similaires

  1. structure projet scolaire (Code Morse)
    Par marchoun dans le forum Débuter
    Réponses: 5
    Dernier message: 10/12/2008, 11h57
  2. Lancement d'un projet en code source à partir d'un groupe de projet
    Par Domi63 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 28/12/2006, 16h06
  3. [Linker dans le projet .cbp Code::Blocks]GTKmm
    Par Jean_Benoit dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 04/10/2006, 12h39
  4. enregister un projet sous code Blocks
    Par rimbaut dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 09/04/2006, 21h20
  5. Convertir des caractères en code Morse
    Par programation dans le forum C++
    Réponses: 3
    Dernier message: 04/02/2006, 00h08

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