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 :

Nombres complexes création type


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 25
    Par défaut Nombres complexes création type
    Bonjour tout le monde!
    Je débute en C et je dois faire un programme sur les nombres complexes.
    On me demande d'abord de déclarer un type de données Tcomplex incluant les données réels de double précision:
    - a et b représentant les données complexes en forme cforme cartésienne.
    - mod (module) et alfa (argument) représentant les données complexes en forme polaire cartésienne.
    Une idée ? Je ne sais pas du tout comment on fait pour déclarer des nouveaux types.
    Merci d'avance !

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Par défaut
    Bonjour,

    Pour commencer il te faudra la bibliothéque mathématique en C à inclure : #include <math.h>, elle contient des opérations pour effectuer le calcul de la racine carré (sqrt), le tangent (tan) cosinus (cos) etc... . Pour tes variables je me souviens d'avoir fait le même sujet. J'avais déclaré un structure contenant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    struct complexe{
    float a;
    float b;}
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

    N'oubliez pas de consulter les FAQ Swift, Android
    Tutoriel : Développer une application multilingue sous iOS

  3. #3
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 25
    Par défaut :ccool:
    Merci je vais tenter ça, pourrais tu m'expliquer comment marche C pour la déclaration de nouveaux types ?

  4. #4
    Membre chevronné

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Par défaut
    Citation Envoyé par julcha Voir le message
    comment marche C pour la déclaration de nouveaux types ?
    tu as le mot clé typedef en langage C qui te permet de définir des types synonymes dans le but de rendre les programmes plus clairs.
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    typedef struct {
    float a;
    float b;}s_complexe; //déclartion de variable de type struct
    Pour déclarer ensuite dans ton code une variable de type struct, tu as juste à faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /* déclare la variable nb_complexe de type s_complexe */
      s_complexe nb_complexe ;
    au de lieu de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    struct s_complexe nb_complexe;
    Tu vois bien que la premiére écriture est plus facile et plus allégée par rapport à la deuxième écriture, même si les deux sont correctes.

    On me demande d'abord de déclarer un type de données Tcomplex incluant les données réels de double précision:
    Il faut utiliser le type double à la place du float pour des réels à double précision:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    typedef struct{
    double a;
    double b;}s_complexe;
    - mod (module) et alfa (argument) représentant les données complexes en forme polaire cartésienne.
    Tu as juste à déclarer des variables de type double qui contiendront le résultat de tes calculs.
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

    N'oubliez pas de consulter les FAQ Swift, Android
    Tutoriel : Développer une application multilingue sous iOS

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Goa,
    Citation Envoyé par Seelass Voir le message
    Bonjour,

    Pour commencer il te faudra la bibliothéque mathématique en C à inclure : #include <math.h>, elle contient des opérations pour effectuer le calcul de la racine carré (sqrt), le tangent (tan) cosinus (cos) etc... . Pour tes variables je me souviens d'avoir fait le même sujet. J'avais déclaré un structure contenant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    struct complexe{
    float a;
    float b;}
    Mauvaise idée pour les noms de champs : les noms explicites facilitent la lecture et la maintenance.

  6. #6
    Membre chevronné

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Par défaut
    Citation Envoyé par droggo Voir le message
    Goa,

    Mauvaise idée pour les noms de champs : les noms explicites facilitent la lecture et la maintenance.
    Il est vrai que des noms de variables significatifs est mieux pour les raisons citées dans ton poste. C'est à lui choisir le nom de ses variables, je ne vais pas penser à sa place.
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

    N'oubliez pas de consulter les FAQ Swift, Android
    Tutoriel : Développer une application multilingue sous iOS

  7. #7
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 25
    Par défaut AVancé
    Okay, je comprends mieux, merci!
    Mais j'aimerais savoir: les deux déclarions ci-dessous sont équivalentes ?

    Citation Envoyé par Seelass Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    struct complexe{
    float a;
    float b;}
    typedef struct{
    double a;
    double b;}s_complexe;
    Bon donc j'en suis là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    typedef struct {
        double a, b;
        double mod, alfa;
    } Tcomplexe;
    Après on me demande de déclarer un type ptcomplexe qui représente un point de tcompexe... je ne comprends pas trop ce qu'il fait faire, qu'en pensez vous ?

  8. #8
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 25
    Par défaut
    Citation Envoyé par julcha Voir le message
    Après on me demande de déclarer un type ptcomplexe qui représente un point de tcompexe... je ne comprends pas trop ce qu'il fait faire, qu'en pensez vous ?
    Je vous ai dis des bêtises, je comprends mieux ma question (à la base, mon exo n'est pas en français), on me demande de déclarer un type ptcomplexe qui représente un pointeur de tcompexe...

  9. #9
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 25
    Par défaut Avancé
    Bon après quelques recherches, je décide d'ajouter à mon programme au début:
    struct *PTcomplexe;
    Sauf que mon compilateur m'indique une erreur, {, ( attendu... Ca veut dire quoi?

  10. #10
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Koa,

    Il faudrait quand même prendre le temps d'apprendre les bases du langage.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. nombre complexes en C
    Par hicham.jakjoud dans le forum C
    Réponses: 4
    Dernier message: 23/10/2006, 16h51
  2. [Nombre Complexe]affichage formatte
    Par parsy dans le forum Langage
    Réponses: 2
    Dernier message: 20/08/2005, 00h36
  3. Les nombres complexe et delphi
    Par wikers dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2005, 11h47
  4. [LG]Nombres complexes et forme polaire
    Par chavernac dans le forum Langage
    Réponses: 3
    Dernier message: 28/03/2005, 18h36
  5. [XSD] Complexe de type all mais avec maxoccur
    Par Je@nb dans le forum Valider
    Réponses: 3
    Dernier message: 06/02/2005, 19h18

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