2 procédures en 1 fonctions

natier -  
 natier -
Bonjour,

J'ai deux procédures qui permettent de calculer un montant de remise et un montant de majoration. Je doit les transformer en fonctions qui s'appel CalculMajoRem mais je vois pas comment faire.
Voici les procédures:
static void CalculRemise(float tauxRemise, float montantApplicationRemise, out float montantRemise)
{
montantRemise = montantApplicationRemise * tauxRemise / 100;
}

static void CalculMajoration(float tauxMajoration, float montantApplicationMajoration, out float montantMajoration)
{
montantMajoration = montantApplicationMajoration * tauxMajoration / 100;
}

Voici l'appel des procédures:
float mtRem;
CalculRemise(txRemise*100, prixSejour*nbPersonnes, out mtRem);
Console.WriteLine("Le montant de la remise est de " + mtRem);

float mtMaj;
CalculMajoration(txMajoration*100, prixSejour*nbPersonnes, out mtMaj);
Console.WriteLine("Le montant de la majoration est de " + mtMaj);

Merci de votre aide

4 réponses

  1. Heliotte Messages postés 1561 Statut Membre 92
     
    Bonsoir natier,
    Quelque chose comme ça ?
    static float CalculMajoRem(float taux, float montantApplication, bool Remise, out float montantAjuste) 
    { 
     if(Remise==true) 
     { 
      montantAjuste = montantApplicationRemise * tauxRemise / 100; 
     } 
     else 
     { 
      montantAjuste = montantApplicationMajoration * tauxMajoration / 100; 
     } 
    }
    0
  2. natier
     
    Pas vraiment car les deux peuvent être appliqués et on ne saisie pas les taux, ils sont définis dans le programme
    0
    1. Heliotte Messages postés 1561 Statut Membre 92
       
      dsl, mais d'après ce que j'ai pu comprendre, l'appel aux deux procédures passent leur taux respectif en paramètre ou je me trompe ?
      Donc, je n'ai rien changé, en terme de paramètre, pour permettre à ta fonction d'accomplir exactement la même chose que les deux procédures. Le seul paramètre ajouté valide le fait que l'on fait appel, soit à une remise, soit à une majoration.
      Les deux appels de fonctions possible, sont donc :

      - float mtRem;
      CalculRemise(txRemise*100, prixSejour*nbPersonnes, true, out mtRem);
      Console.WriteLine("Le montant de la remise est de " + mtRem);
      
      - float mtMaj;
      CalculMajoration(txMajoration*100, prixSejour*nbPersonnes, false, out mtMaj);
      Console.WriteLine("Le montant de la majoration est de " + mtMaj); 

      J'espère ne pas avoir dit de bêtise !
      0
    2. natier
       
      la fonction doit s'appelait CalculMajoRem
      Je pense que CalculMajoration et CalculRemise doivent disparaitre
      0
    3. Heliotte Messages postés 1561 Statut Membre 92
       
      C'est ce que j'ai fait dans le post de 21h14.
      La fonction "CalculMajoRem" remplace les procédures "CalculRemise" et "CalculMajoration"
      0
    4. natier
       
      il faut que ma fonction retourne le montant de ma remise et le montant de ma majoration
      0
    5. Heliotte Messages postés 1561 Statut Membre 92
       
      En règle générale, une fonction ne renvoi (return) qu'un seul élément.
      Pour contourner cela, on peut renvoyer un tableau d'élément, un objet, une liste.
      Donc, à toi de trouver ce qui te serait le plus plausible.
      0
  3. Utilisateur anonyme
     
    Bonsoir,

    Tu créer un objet Comtabilite par exemple qui à deux attribues
    float remise, majoration

    et ensuite tu fais une fonction qui te retourne cet objet

    Un peu de code sera surement plus clair :

    class Compta{
    private float remise;
    private float majoration;
    
        public Compta(r,m){remise = r; majoration = m;}
    
        public float getRemise(){return this.remise;}
        public float getMajoration(){return this.majoration;}
    };
    
    
    et dans ton autre classe 
    
    
    Compta c;
    
    
    static Compta CalculMajoRem(float tauxRemise, float montantApplicationRemise,
    float tauxMajoration, float montantApplicationMajoration)
    { 
    montantRemise = montantApplicationRemise * tauxRemise / 100; 
    
    montantMajoration = montantApplicationMajoration * tauxMajoration / 100; 
    
       return new Compta(montantRemise , montantMajoration );
    } 
    
    Voici l'appel des procédures: 
    float mtRem;
    float mtMaj;
     
    c = CalculMajoRem(txRemise*100, prixSejour*nbPersonnes, txMajoration*100, prixSejour*nbPersonnes); 
    
    Console.WriteLine("Le montant de la remise est de " + c.getRemise().toString()); 
    Console.WriteLine("Le montant de la majoration est de " + c.getMajoration().toString()); 
    
    


    Ça devrait être correct je pense.
    0
    1. Utilisateur anonyme
       
      J'ai vu deux petites erreurs
      montantRemise & montantMajoration n'existe pas il faut mettre un float devant !
      0
  4. natier
     
    C pas de la programmation objet que je fai, on n'a pas encore vu sa. C'est un programme en application console là.
    0