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 :

Fonctions complexes - boucles - tableaux


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 71
    Points : 25
    Points
    25
    Par défaut Fonctions complexes - boucles - tableaux
    BOnjour.
    Il y a quelques jours , j'ai écris sur votre forum pour de l'aide sur un programme matlab ( d’ailleurs grâce a vous j'ai réussi ).
    J'aimerais maintenant le faire en C.
    Le problème c'est que il y a des nombres complexes et ca devient compliqué la pour moi ( je débute en C(étudiant en physique)):
    J'ai une fonction du genre :

    R= (i*a)*Somme(exp(i*B[indice]*(x*x + y*y)))
    Je travaille avec les pointeurs donc si les pixels donc x=pas*i avec i le numéro du pixel et pas la taille du pixel.B est un tableau. La somme va de indice=1 à 10.

    J'aurais 2 questions : D'habitude , on met les fonctions en dehors du programmes et on balance les arguments necessaires . Mais la j'ai un tableau (B) , est ce que je peux mettre un tableau en argument ? J'ai pensé à mettre B en variable globale mais pour arriver à B , il y a "beaucoup" de calculs.

    2eme question : Comment je définis R au début du programme ? Est ce qu'il y a un type "complex function" car c'est une fonction complexe.

    Bon après ca va se corser , faut que je prenne le module au carré de R et je sais pas si le langage C va accepter que je fasse le module d'une fonction


    Merci
    cordialement
    Novae

  2. #2
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    Si tu as des nombres complexes, tu peux utiliser les nombres complexes apparus en C99.

    Si t'as un pointeur sur un type struct pixel :alors ton deuxième pixel trouve à p+1, pas à p+sizeof(struct pixel).
    D'ailleurs, si t'as des pointeurs, tu peux les utiliser comme des tableaux. C'est fait pour. Par exemple p[1].


    Tu peux passer un tableau en argument. Mais ce qui va être réellement passé en argument c'est un pointeur sur ce tableau. Que tu peux utiliser comme un tableau à l'intérieur de la fonction.

    Ensuite, je ne suis pas bien sûr de comprendre si R est une variable ou une fonction.
    Tel que tu l'as écrit, ça ressemble à une variable, donc t'as juste besoin de l'initialiser au début de ton programme (au début du main, ou n'importe quand avant de t'en servir).

    En C, on n'exécute pas de code avant le main.


    Et sinon, même en maths, prendre le module au carré d'une fonction, ça ne veut pas dire grand chose.
    Tu peux éventuellement définir une nouvelle fonction g qui, à un argument X fait correspondre le carré du module de f(X). Mais tu ne peux pas vraiment prendre le carré du module d'une fonction. Ou alors faut me définir ce que ça veut dire.
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

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

    Citation Envoyé par Celelibi Voir le message
    Si tu as des nombres complexes, tu peux utiliser les nombres complexes apparus en C99.
    Pour aller plus loin : Les nouveautés du C99 => Les nombres complexes

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 71
    Points : 25
    Points
    25
    Par défaut
    pardon de répondre si tard.
    J'ai paufiner ce même programme sous matlab
    en fait ici c'est chiant , en gros ma fonction intensité c'est la somme de 3 fonctions et l'une d'entre elle est une somme discrete.

    Dans ma fonction définie en dehors du main , je définie ma fonction et
    j'ai I=(R+O)*SOMME
    R et O et somme sont des fonctions de x et y ( donc des pixels ) .

    j'ai toujours eu l'habitude de manipuler des variables donc j'avais ma fonction qui dépendant de variable de type int , double etc , c'était facile.
    La ca dépend de fonctions , comment je les définie au début de ma définition de ma fonction ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    unsigned char intensite(int a , int b,double *meq)
    for (indice=1;i<=10;i++)
    R= *meq[indice]*I*alpha*(a+b); // I complexe , alpha constante
    I=R*R;
    couleur = (unsigned char)I
    return couleur;
    et dans mon main *meq pointe sur un tableau de 10 valeur
    a et b seront les lignes et colonnes des pixels

    j'ai pris une fonction au hasards . MAis quel est le type de R ? c'est une fonction complexe.
    Je peux faire quelque chose ou alors je vais devoir définie 3 fonction séparément ?

  5. #5
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Tes messages sont difficiles à comprendre car tu n'utilises pas la terminologie habituelle.
    Par exemple, si R est une fonction de x et y, tu ne peux pas écrire R = ... La raison est qu'une fonction renvoie (en C) une valeur, pas un objet et ne peut donc stocker le résultat d'un calcul.

    Essaye d'expliquer ton calcul de façon plus algorithmique que l'on puisse comprendre ce que tu veux. Pour l'instant, on ne sait pas ce qui est une variable et ce qui est une (vraie) fonction.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 33
    Points : 38
    Points
    38
    Par défaut
    Salut !

    Je pense également qu'il y une erreur au sein de ta boucle for (à moins que je ne comprenne pas ce que tu veux faire), le premier indice d'un tableau est 0 et le dernier sa taille moins un. Ici, tu commences à 1 et tu finis à 10.

  7. #7
    Membre confirmé
    Homme Profil pro
    Etudiant administrateur systèmes et réseaux
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etudiant administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Points : 467
    Points
    467
    Par défaut
    J'avoue je ne comprends rien à tes calculs.
    Je connais pas trop mal matlab, j'ai fais du traitement de l'image avec notamment (Otsu entre autre).

    Si tu me balancer ton code source matlab entier en pm pour les formules, je pourrais t'aider plus facilement.

    Cdt.
    UNE REPONSE UTILE : &|| UN PROBLEME RESOLU :

Discussions similaires

  1. [Oracle 10i] Fonction Exists et Tableaux
    Par ftrifiro dans le forum SQL
    Réponses: 2
    Dernier message: 31/01/2007, 15h50
  2. Réponses: 3
    Dernier message: 03/01/2007, 21h43
  3. c++ probleme de boucles/tableaux
    Par corseb-delete dans le forum C++
    Réponses: 4
    Dernier message: 09/12/2006, 15h25
  4. Réponses: 4
    Dernier message: 08/02/2006, 08h31
  5. [SQL SERVER 2000] Fonction utilisateur : boucle sans fin
    Par galinijay dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/09/2005, 16h03

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