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 :

probleme succesion de boucle for


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ergonome
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Points : 29
    Points
    29
    Par défaut probleme succesion de boucle for
    Bonjour,

    Voila je realise plusieurs boucles for consecutives et mon probleme est que mon resultat final est erronné.

    Je pense que c'est du au fait que je ne recupere pas les valeurs modifié apres chaque boucle.

    pouvez vous me dirigez ds le bon chemin.

    merci a tous.

    bon apetit

    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
    i = 60;
     
                for (j = 0; j < i; j++) { h3[j] = h1[60 + j]; }
                for (j = 0; j < i; j++) { h4[j] = h2[60 + j]; }           
                for (j = 0; j < i; j++) {h1[60 + j] = h1[60 - j]; }           
                for (j = 0; j < i; j++) {h1[j] = h1[60 + j];}
                for (j = 0; j < i; j++) {h2[60 + j] = h2[60 - j];}
                for (j = 0; j < i; j++) {h2[j] = h2[60 + j];}
                for (j = 0; j < i; j++) {h1[j] = (h1[j] + h2[j] + h3[j] + h4[j]) / 4;}
                for (j = 0; j < i; j++) {h1[j] = h1[j] - Properties.Settings.Default.NF;}
                for (j = 0; j < i; j++) { h1[j] = Math.Pow(h1[j], 2); }
                for (j = 0; j < i; j++)
                {
                    if (h1[j] < 0)
                    {
                        h1[j] = 0;
                    }
                }

  2. #2
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Comment as-tu déclaré tes collections ?
    Que cherches-tu à faire exactement ?

    Tel quel c'est un peu obscur

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ergonome
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    dsl

    je les ai declaré comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                Double[] h1 = new Double[120];
                Double[] h2 = new Double[120];
                Double[] h3 = new Double[60];
                Double[] h4 = new Double[60];
    mon but est de pouvoir réaliser un calcul :

    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
     j = 60;
                i = j;
                Double SMl = 0;
                rho = 997.6;
                for (j = 0; j < i - 1; j++)
                {
                    SMl = SMl + (j + 1) * h1[j];
                }
     
                double Mc = Properties.Settings.Default.Mc;
                double Chyd = Properties.Settings.Default.Chyd;
                double Cosc = Properties.Settings.Default.Cosc;
                double Wr = Properties.Settings.Default.Wr;
     
                SMl = SMl + 0.5 * i * h1[i];
                SMl = (SMl * 2 * Math.PI * Math.Pow(0.0005, 2)) / (rho * SoundSpeed * (Wr / 1000));
                SMl = Math.Sqrt(SMl);
                Mc = Math.Round(Math.Pow(10, 9) * SMl * (Chyd + Cosc) / Chyd, 1); // Mc in nV/Pa
                SMl = Math.Round(Mc * Chyd / (Chyd + Cosc), 1);
    je souhaite recuperer la valeur de Mc et SMI ce aui marche mais nest pas coherent

  4. #4
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Ce que je comprend de tes for :
    1/ dans h3 tu mets les indices > 60 de h1
    2/ dans h4 tu mets les indices > 60 de h2
    3/ Tu inverses l'ordre dans h1 pour les indices <60
    4/ Tu inverses l'ordre dans h2 pour les indices <60
    5/ Tu sommes dans h1, les valeurs h1,h2,h3 et h4 pour tous les indices <60
    6/ Tu soustraits pour chaque indice un valeur
    7/ pour chaque indice tu mets au carré la valeur
    8/ Si la valeur est négative, tu la mets à 0.

    C'est bien çà que tu cherches à faire ?

    En débuggant chaque étape, tu sais laquelle retourne un résultat faux ?

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    Avec quelles valeurs initialises-tu tes tableaux ?

    +1 pour le debug, check à chaque fin de traitement si les valeurs attendues sont cohérentes dans tes tableaux !

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ergonome
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (j = 0; j < i; j++)
                { 
                    h1[j] = (h1[j] + h2[j] + h3[j] + h4[j]) / 4;
                }
    jqi un probleme ici.

    merci pr l idee du debug

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    - Valeur de i ?
    - Quel est le problème ? Valeur écrite non valide ?
    - Tu divises par 4, or tu as des tableau de double, divise par 4.0 si tu veux garder une valeur relative

  8. #8
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Quel genre de problème ?
    Attention au format !

    Zut grillé

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Ergonome
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    i=60

    genre de probleme : mon ressultat ne coincide pas du tout avec les valeurs attendu

  10. #10
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    T'as essayé de remplacer 4 par 4.0 dans la division ?

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Ergonome
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    oui ca change rien

    je vais retester a zero pr voir si je n ai pas oublié quelque chose

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Ergonome
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    Salut tout le monde,

    Merci pour vos conseil. J'ai finalement trouvé mon erreur. probleme de valeurs recuperées danes le tableau...

    c'etait la mauvaise

    merci pour votre aide

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

Discussions similaires

  1. VBA ACCESS probleme avec une boucle for
    Par maldini dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/04/2010, 09h52
  2. Probleme dans une boucle for, faisant appel a une fonction
    Par mapotam dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 22/01/2010, 21h41
  3. Probleme VBS et boucle For each + tableau
    Par fas3r dans le forum Windows
    Réponses: 0
    Dernier message: 26/02/2008, 03h00
  4. Probleme avec la boucle for
    Par developpeur82 dans le forum MATLAB
    Réponses: 1
    Dernier message: 31/05/2007, 11h40
  5. probleme dans un boucle for
    Par accoustic dans le forum Delphi
    Réponses: 2
    Dernier message: 26/08/2006, 10h45

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