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 :

double complex


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Youyayouyou
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2020
    Messages : 42
    Par défaut double complex
    Bonsoir,

    Je suis en train de manipuler les nombres complexes en C; j'ai donc importé la librairie <complex.h> pour utiliser "double complex". Voici un petit exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double complex z = 2.0 + 1.0*I;
    et là la variable z est souligné en rouge et il m'affiche :
    ';' attendu
    Pourquoi et comment faire pour résoudre le problème?

    Merci d'avance

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    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 833
    Billets dans le blog
    1
    Par défaut
    Bonsoir
    Citation Envoyé par Youyayouyou Voir le message
    et là la variable z est souligné en rouge et il m'affiche : ';' attendu.

    Pourquoi et comment faire pour résoudre le problème?
    Il faudrait le code complet pour être sûr mais à mon avis, il y a une erreur sur la ligne d'avant. C'est un comportement habituel du compilateur quand il part dans les choux. Si la ligne "n" est mal écrite ou incomplète, il continue à tenter l'évaluation sur la ligne "n+1". Et une fois qu'il est bien planté sans remède possible, il indique alors la ligne sur laquelle il se trouve, soit la "n+1" (voire la n+2 ou n+3 ou n+4 s'il a réussi à aller jusque là).

    Ou alors (autre hypothèse), la librairie complex n'accepte pas la déclaration avec initialisation. Autrement dit, interdit d'écrire ça en une fois. Donc remplacer double complex z = 2.0 + 1.0*I; par double complex z; z = 2.0 + 1.0*I;.
    J'aimerais d'ailleurs bien savoir d'où elle vient cette librairie (histoire de voir sa doc). Parce que cette syntaxe 2.0 + 1.0*I; me semble étrange. Ben oui, comment le compilateur fait-il la différence avec int I=123; float z; z = 2.0 + 1.0*I; ???
    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
    Membre averti Avatar de Youyayouyou
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2020
    Messages : 42
    Par défaut
    Voici une partie de mon 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
    // Déclaration de la fonction:
    double iter (double complex c);
     
     
    // Définition de la fonction: 
    double iter (double complex c) {
     
    	double complex z0 = 0.0 + 0.0*I;
    	double complex S[MAX];
    	S[0] = z0;
     
    	for (int i = 0; i < 200; i++) {
    		S[i+1] = S[i]*S[i] + c;
    }
    .
    .
    .
    }
    Vous avez raison je crois : dès que j'ai commenté la déclaration de la fonction et sa définition, le soulignage a disparu! Mais je ne sais pas du coup comment faire?

    Je suis très débutante en C et cette librairie c'est notre enseignant qui nous l'a écrite dans les consignes de son exercice. J'en ai aucune idée je suis désolée

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Bonjour,

    L'erreur semble être juste avant le code que tu indiques, il faudrait toutes les lignes jusqu'à celle de l'erreur. Ça semble dû à une accolade fermante qui manquerait.

  5. #5
    Membre très actif
    Homme Profil pro
    Programmeur des cavernes
    Inscrit en
    Août 2017
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Programmeur des cavernes
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2017
    Messages : 364
    Par défaut
    Je pense que voir le contenu du fichier complex.h ne serait pas inutile non plus. C n'est pas C++, et en C une ligne comme :

    me semble pour le moins curieuse.

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    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 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Youyayouyou Voir le message
    cette librairie c'est notre enseignant qui nous l'a écrite dans les consignes de son exercice. J'en ai aucune idée je suis désolée
    Il vous l'a "écrite" (sous-entendu "codée") ?
    Ou bien plus probablement il vous l'a donnée (sous-entendu pécho quelque part sur le web dans la foultitude des codes offerts) ?
    Si c'est le second cas (qui me semble pour moi le plus probable), again j'aimerais bien savoir d'où elle vient. Remarque si c'est votre prof qui l'a codée, j'aimerais quand-même avoir son source histoire de comprendre comment on s'en sert. Il n'y a que comme ça qu'on pourra t'aider.

    Et attention aux indentations dans tes codes, il faut indenter correctement sinon ça nuit à sa lisibilité.

    Citation Envoyé par Jamatronic Voir le message
    Je pense que voir le contenu du fichier complex.h ne serait pas inutile non plus. C n'est pas C++, et en C une ligne comme :

    me semble pour le moins curieuse.
    Hé oui, moi aussi. Comme je l'ai dit, même si "z" est un objet (ou une structure qui est l'ersatz C de ce qui peut être un objet en POO), je ne vois pas comment le compilateur comprend qu'il s'agit d'un découpage en "réel + img" et non une simple opération mathématique standard.
    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]

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

Discussions similaires

  1. Double binding sur objet complex
    Par babass77 dans le forum Flex
    Réponses: 5
    Dernier message: 29/04/2011, 10h08
  2. Réponses: 2
    Dernier message: 30/12/2010, 17h02
  3. Réponses: 0
    Dernier message: 17/08/2010, 17h23
  4. Optimisation multiplication complexe : problème de retour de valeur en double
    Par Antonin08 dans le forum x86 32-bits / 64-bits
    Réponses: 8
    Dernier message: 06/06/2008, 08h52
  5. Réponses: 3
    Dernier message: 12/06/2002, 21h15

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