2 procédures en 1 fonctions

Fermé
Utilisateur anonyme - 28 nov. 2012 à 21:01
 Utilisateur anonyme - 30 nov. 2012 à 18:31
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 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
Modifié par Heliotte le 28/11/2012 à 21:15
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
28 nov. 2012 à 21:19
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 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
28 nov. 2012 à 21:31
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
28 nov. 2012 à 21:43
la fonction doit s'appelait CalculMajoRem
Je pense que CalculMajoration et CalculRemise doivent disparaitre
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
28 nov. 2012 à 21:51
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
28 nov. 2012 à 22:03
il faut que ma fonction retourne le montant de ma remise et le montant de ma majoration
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
28 nov. 2012 à 22:19
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
29 nov. 2012 à 01:42
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
29 nov. 2012 à 01:51
J'ai vu deux petites erreurs
montantRemise & montantMajoration n'existe pas il faut mettre un float devant !
0
Utilisateur anonyme
30 nov. 2012 à 18:31
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