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 :

Convertir un complexe sous forme de chaine en un complexe sous forme de nombre


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Convertir un complexe sous forme de chaine en un complexe sous forme de nombre
    Bonjour,
    Débutant en langage C, j'ai un devoir à faire qui me pose des difficultés.
    voici l'énoncé :
    Chercher un algorithme qui convertit un nombre complexe écrit sous forme de chaîne en un nombre complexe

    exemple : chaîne "-1234,56 -i234,56" donne --> -1234,56 (partie réelle) et -i234,56 (partie imaginaire)

    Cet algo sera écrit sous forme d'une fonction ex: (conv_ComplexCh_to_ComplexNb)

    Merci par avance.

  2. #2
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Qu'as-tu essayé jusqu'à présent ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Matt_Houston Voir le message
    Qu'as-tu essayé jusqu'à présent ?
    Rien de concluant, je bloque sur comment démarrer.

  4. #4
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Tu bloques sur quoi, la partie algorithmique ou la transcription en C ? La première doit être claire dans ta tête avant même de penser à la seconde.

  5. #5
    Membre habitué Avatar de Abacar94
    Homme Profil pro
    L2 Math-informatique
    Inscrit en
    Novembre 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : L2 Math-informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 103
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par Matt_Houston Voir le message
    Tu bloques sur quoi, la partie algorithmique ou la transcription en C ? La première doit être claire dans ta tête avant même de penser à la seconde.
    Oui tu as raison, il doit d’abord savoir ce qu'il faut faire avant de passer au code...

    Citation Envoyé par CodeJack
    Bonjour,
    Débutant en langage C, j'ai un devoir à faire qui me pose des difficultés.
    voici l'énoncé :
    Chercher un algorithme qui convertit un nombre complexe écrit sous forme de chaîne en un nombre complexe

    exemple : chaîne "-1234,56 -i234,56" donne --> -1234,56 (partie réelle) et -i234,56 (partie imaginaire)

    Cet algo sera écrit sous forme d'une fonction ex: (conv_ComplexCh_to_ComplexNb)

    Merci par avance.
    Tu pourrais par exemple commencer par te dire quelque chose genre tu dois couper la chaine de caractères au niveau de i et de vérifier son signe en suite convertir selon ta coupure de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #include<stdlib.h> /*obligatoire si non atof() ne marche pas */
    char R[] = "1234,56";
    nombre = atof(R);
    De ce fait, nombre=1234,56; mais le plus important il est de type float.

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 678
    Points
    13 678
    Billets dans le blog
    1
    Par défaut
    Il vaut mieux utiliser strtod pour la conversion : http://man.developpez.com/man3/strtod/

    Elle permet en effet de détecter les erreurs de conversion, ce que ne peut pas faire atof : http://man.developpez.com/man3/atof/

  7. #7
    Membre habitué Avatar de Abacar94
    Homme Profil pro
    L2 Math-informatique
    Inscrit en
    Novembre 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : L2 Math-informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 103
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Il vaut mieux utiliser strtod pour la conversion : http://man.developpez.com/man3/strtod/

    Elle permet en effet de détecter les erreurs de conversion, ce que ne peut pas faire atof : http://man.developpez.com/man3/atof/
    Tu as raison, je n'y avais pas pensé.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    J'ai réussi à faire ça transforme les caractère "1234" en long,
    comment puis-je améliorer pour une chaine contenant (, + et i) du nombre complexe ?

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <errno.h>
     
    int str_to_long(const char *s, long *p);
    int main(void)
    {
        long n;
        int ret = str_to_long("1234", &n);
        if (ret == 0)
            printf("n = %d\n", n);
        else
            printf("str_to_long a retourne une erreur : %d\n", ret);
        return 0;
    }
     
    int str_to_long(const char *s, long *p)
    {
        int ret = 0; /* code d'erreur 0 : succès. */
     
        return ret;
    }

  9. #9
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 678
    Points
    13 678
    Billets dans le blog
    1
    Par défaut
    C'est quoi ce code ?


    Il faut que tu regardes un peu plus en détails du côté de sscanf(). Pour comprendre les formateurs attendus, intéresse toi à scanf() puisque ces 2 fonctions travaillent de la même manière http://xrenault.developpez.com/tutoriels/c/scanf/

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    J'ai fait ce programme pour convertir un réel écrit sous forme de chaine en un nombre réel.
    le 2e exo demande la même chose mais avec une chaine contenant un complexe et en sortie afficher la partie réelle et la partie imaginaire.
    Il faut de plus utiliser une structure.
    Puis-je reprendre cette base ?
    comment intégrer une structure ?
    merci d'avance


    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #include <stdio.h>
    double conv_Dec(char ch_nb[]);	   
     
    double conv_Dec(char ch_nb[])	    
    long int nb_Ent,nb_Dec;		         
    double m;			            
    unsigned char i;			        
    nb_Ent=ch_nb[0]-48;		            
    i=1;				                   
    while (ch_nb[i]!=',')		         
    {
        nb_Ent=nb_Ent*10+ch_nb[i]-48;
        i++;					        
    }
    i++;					           
    m=0.1;					            
    nb_Dec=ch_nb[i]-48;		        	
    i++;					          
    while (ch_nb[i])				    
    {
        nb_Dec=nb_Dec*10+ch_nb[i]-48;	
        i=i+1;					        
        m=m/10;				            
    }
    return(nb_Ent+nb_Dec*m);		     
    }
     
    int main()				            /*Début fonction principale*/
    {
        double nombre;			
        char ch_nombre[10];			
        printf("Entrer un nombre: ");		
        scanf("%s",&ch_nombre);		
        nombre=conv_Dec(ch_nombre);		
        printf("Convertion : ");			
        printf("%f",nombre);			
        return 0;
    }

Discussions similaires

  1. Ajouter des jours à une date stockée sous forme de chaine
    Par Christophe Charron dans le forum Firebird
    Réponses: 9
    Dernier message: 17/09/2011, 08h38
  2. Réponses: 19
    Dernier message: 18/05/2010, 23h53
  3. Réponses: 2
    Dernier message: 10/09/2009, 12h22
  4. Extraction des lignes d'un fichier sous forme de chaine
    Par rahalfat10 dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2009, 16h40
  5. Réponses: 5
    Dernier message: 08/03/2006, 16h22

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