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++Builder Discussion :

Calcul de recette...


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de arti2004
    Inscrit en
    Février 2004
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 253
    Par défaut Calcul de recette...
    SLT

    je voudrais pouvoir calculer les recettes saisies dans une table . là où ça bloque c'est lorsque je veux calculer pour un mois précis à une année par exemple:
    le mois de février de l'an 2004
    voiçi mon code

    //CALCUL cas DU MOIS

    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
    39
    40
    41
    42
    43
    44
    45
    46
    if(RadioButton2->Checked==true)
             {
             M1 =combo2->Text;
             switch ('M1')
                 {
                 case  'Jan' : NM =1;  break;
                 case  'Fév' : NM= 2;break;
                 case  'Mars' : NM= 3;  break;
                 case  'Avr' : NM=4; break;
                 case  'Mai' : NM= 5; break;
                 case  'Juin' : NM= 6; break;
                 case  'Juil' : NM=7;break;
                 case  'Août' : NM=8; break;
                 case  'Sept' : NM=9;break;
                 case  'Oct' : NM=10; break;
                 case  'Nov' : NM=11; break;
                 case  'Déc' : NM=12; break;
                 }
     
    //Fixer une année
     
            if(RadioButton3->Checked==true)
                {  
                A1= combo3->Text;
                }
     
     
             for (int i = Mini; i <= Max; i++) // Mini et max et le nbre  d'enregistrement de ma table
                {dtDepense=StrToDate(Form1->Table->FieldByName("Date")->Text);
             //TDateTime dtDatesys =Date();
                 DecodeDate(dtDepense, Year, Month, Day);
             M2 = IntToStr(Month);
     
             A2= IntToStr(Year);
     
                if  (NM == M2) && (A1==A2)
                {
                imois = imois + StrToFloat(Form1->Table->FieldByName("Total")->Text);
                 Form1->Table->Next();
                  // do something with record...
                }
                  else Form1->Table->Next();
                }
    //            Label6->Caption = FloatToStr(imois);
      Label6->Caption =StrToInt(M1);
                }
    où le pb??

    Balises de [Code] rajoutées par henderson. Il faudra y penser la prochaine fois !

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut

    tu es sûr de ça : :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     switch ('M1')
    {case 'Jan' : NM =1; break;
    case 'Fév' : NM= 2;break;
    case 'Mars' : NM= 3; break;
    case 'Avr' : NM=4; break;
    case 'Mai' : NM= 5; break;
    case 'Juin' : NM= 6; break;
    case 'Juil' : NM=7;break;
    case 'Août' : NM=8; break;
    case 'Sept' : NM=9;break;
    case 'Oct' : NM=10; break;
    case 'Nov' : NM=11; break;
    case 'Déc' : NM=12; break;
    }
    Le switch ne fonctionne qu'avec des valeurs entieres ce que ne sont pas 'M1', 'Jan' ....
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Au cas ou le switch poserait un problème (comme le souligne Trap D), voici un bout de code
    qui convertit le nom du mois en int :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AnsiString Mois[12]=  {"JAN", "FEV", "MAR", "AVR", "MAI", "JUIN",
                           "JUIL", "AOU", "SEP", "OCT", "NOV", "DEC"};
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int CodeMois(AnsiString M)
    {
    int n = M.Pos("é"); if(n != 0) M[n] = 'e';
     
    AnsiString A = M.UpperCase();
    for(int j = 0; j < 12; j++)
        {
        if(A.Pos(Mois[j]) == 1) //ou != 0 ...pour trouver n'importe où dans la chaîne
            {
            return j;
            }
        }
    return -1;
    }
    Donc à l'usage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int mois = CodeMois(Edit1->Text);
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Label1->Caption = CodeMois("Février");
    etc...

    A plus !

  4. #4
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par défaut
    J'ai aussi une proposition qui a l'avantage d'avoir un code plus lisible (mais peut-être moins rapide): une suite de if else if...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (M1=="Jan") { NM=1; }
    else if (M1=="Fév") { NM=2; }
    else if (M1=="Mars") { NM=3; }
    else ...
    ...
    else { // Autre valeur };

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

Discussions similaires

  1. [TP7] Calculer sin, cos, tan, sqrt via le FPU
    Par zdra dans le forum Assembleur
    Réponses: 8
    Dernier message: 25/11/2002, 04h09
  2. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29
  3. Réponses: 8
    Dernier message: 18/09/2002, 03h20
  4. Récupérer 10 nb différents avec un calcul aléatoire
    Par BXDSPORT dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2002, 02h35
  5. Algo de calcul de FFT
    Par djlex03 dans le forum Traitement du signal
    Réponses: 15
    Dernier message: 02/08/2002, 17h45

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