2 procédures en 1 fonctions

Utilisateur anonyme -  
 Utilisateur anonyme -
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

A voir également:

4 réponses

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
Utilisateur anonyme
 
Pas vraiment car les deux peuvent être appliqués et on ne saisie pas les taux, ils sont définis dans le programme
0
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
Utilisateur anonyme
 
la fonction doit s'appelait CalculMajoRem
Je pense que CalculMajoration et CalculRemise doivent disparaitre
0
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
Utilisateur anonyme
 
il faut que ma fonction retourne le montant de ma remise et le montant de ma majoration
0
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
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
Utilisateur anonyme
 
J'ai vu deux petites erreurs
montantRemise & montantMajoration n'existe pas il faut mettre un float devant !
0
Utilisateur anonyme
 
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