Additionner,Soustraire,Multiplier et diviser [Résolu]

cs_v1 9 Messages postés jeudi 22 janvier 2004Date d'inscription 28 novembre 2005 Dernière intervention - 27 nov. 2005 à 13:03 - Dernière réponse : LUDINSKI 441 Messages postés mardi 2 décembre 2003Date d'inscription 22 mai 2012 Dernière intervention
- 29 nov. 2005 à 09:15
Salut à tous, voici ma question:
Dans le code suivant, il faut choisir entre additionner, soustraire, multiplier et diviser. Quelqu'un peut-il m'aider à réorganiser le code pour que dans chaque Case de Switch je ne sois pas obligé de retaper la portion concernant la saisie du premier et du deuxième nombre (en italique souligné dans le code), puisqu'à chaque fois c'est la même chose. Je suis vraiment novice, alors soyez indulgent et aidez-moi !


using System
;


namespace Operators


{


/// <summary>


/// Effectue des multiplications additions divisions soustractions


/// </summary>


public class Class1



{


public static void Main(string[] args
)


{ // Demande le type d'opération à effectuer :


// 1 pour additionner


// 2 pour multiplier


// 3 pour diviser


// 4 pour soustraire


Console
.WriteLine("Type d'opération à effectuer :");


Console
.WriteLine(); // Saut de ligne


Console
.WriteLine("1-Addition");


Console
.WriteLine("2-Multiplication");


Console
.WriteLine("3-Division");


Console
.WriteLine("4-Soustraction");


Console
.WriteLine(); // Saut de ligne


Console
.WriteLine("Choisissez le numéro correspondant à l'opération que vous souhaitez faire : ");


string sMyChoice
= Console
. ReadLine ();


// Convertit ce qui a été saisi en un entier


int nMyChoice
= Convert
.ToInt32(sMyChoice
);


string sFirstNbr
;


string sSecondNbr
;


decimal mFirstNbr
;


decimal mSecondNbr
;


decimal mResult
;


switch(nMyChoice
)


{


case 1:



//Demande le premier nombre


Console.Write("Entrez le premier nombre : " );


sFirstNbr = Console
.ReadLine
();


// Convertit ce qui a été saisi en un decimal


mFirstNbr = Convert
.ToDecimal(sFirstNbr
);





//Demande le second nombre


Console.Write("Entrez le deuxième nombre : " );


sSecondNbr = Console
.ReadLine
();


//Convertit ce qui a été saisi en un decimal


mSecondNbr = Convert
.ToDecimal(sSecondNbr
);


// Additionne le premier et le deuxième nombre


mResult
= mFirstNbr
+ mSecondNbr
;


// Affiche le résultat


Console
. WriteLine (); // Saute une ligne


Console
.WriteLine(mFirstNbr
+ " plus " + mSecondNbr
+ " est égal à " + mResult
);


break;


case 2:



//Demande le premier nombre


Console
.Write("Entrez le premier nombre : ");


sFirstNbr
= Console
.ReadLine();


// Convertit ce qui a été saisi en un decimal


mFirstNbr
= Convert
. ToDecimal (sFirstNbr
);


//Demande le second nombre


Console
.Write("Entrez le deuxième nombre : ");


sSecondNbr
= Console
.ReadLine();


//Convertit ce qui a été saisi en un decimal


mSecondNbr
= Convert
. ToDecimal (sSecondNbr
);


// Multiplie le premier et le deuxième nombre


mResult
= mFirstNbr
* mSecondNbr
;


// Affiche le résultat


Console
.WriteLine(); // Saute une ligne


Console
.WriteLine(mFirstNbr
+ " multiplié par " + mSecondNbr
+ " est égal à " + mResult
);


break;


case 3:



//Demande le premier nombre


Console
.Write("Entrez le premier nombre : ");


sFirstNbr
= Console
. ReadLine ();


// Convertit ce qui a été saisi en un decimal


mFirstNbr
= Convert
.ToDecimal(sFirstNbr
);


//Demande le second nombre


Console
.Write("Entrez le deuxième nombre : ");


sSecondNbr
= Console
. ReadLine ();


//Convertit ce qui a été saisi en un decimal


mSecondNbr
= Convert
.ToDecimal(sSecondNbr
);


// Divise le premier et le deuxième nombre


mResult
= mFirstNbr
/ mSecondNbr
;


// Affiche le résultat


Console
. WriteLine (); // Saute une ligne


Console
.WriteLine(mFirstNbr
+ " divisé par " + mSecondNbr
+ " est égal à " + mResult
);


break;


case 4:



//Demande le premier nombre


Console
.Write("Entrez le premier nombre : ");


sFirstNbr
= Console
.ReadLine();


// Convertit ce qui a été saisi en un decimal


mFirstNbr
= Convert
. ToDecimal (sFirstNbr
);


//Demande le second nombre


Console
.Write("Entrez le deuxième nombre : ");


sSecondNbr
= Console
.ReadLine();


//Convertit ce qui a été saisi en un decimal


mSecondNbr
= Convert
. ToDecimal (sSecondNbr
);


// Divise le premier et le deuxième nombre


mResult
= mFirstNbr
- mSecondNbr
;


// Affiche le résultat


Console
.WriteLine(); // Saute une ligne


Console
.WriteLine(mFirstNbr
+ " moins " + mSecondNbr
+ " est égal à " + mResult
);


break;


default:


Console
.WriteLine("Vous devez saisir un nombre compris entre 1 et 4, Veuillez recommencer.");


Console
.WriteLine(); // Saute une ligne


break;


}


}


}


}
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 27 nov. 2005 à 14:41
3
Merci
Salut,

Une méthode ?
private decimal GetNumber(string question)
{
Console.Write(question);
string sNb = Console.ReadLine();
// Convertit ce qui a été saisi en un decimal
return Convert.ToDecimal(sNb);
}

Appel :
//Demande le premier nombre
mFirstNbr = this.GetNumber("Entrez le premier nombre : ");
//Demande le second nombre
mSecondNbr = this.GetNumber("Entrez le deuxième nombre : ");

/*
coq
MVP Visual C#
*/

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_coq
Meilleure réponse
LUDINSKI 441 Messages postés mardi 2 décembre 2003Date d'inscription 22 mai 2012 Dernière intervention - 29 nov. 2005 à 09:15
3
Merci
Salut V1,

static void Main(string
[] args)
{
Console.WriteLine( "Type d'opération à effectuer :\n" );
Console.WriteLine( "1-Addition\n2-Multiplication\n3-Division\n4-Soustraction\n" );


bool operatorOK = false
;
int
nMyChoice = 0;
do
{
Console.WriteLine( "Choisissez le numéro correspondant à l'opération que vous souhaitez faire : " );
string
sMyChoice = Console.ReadLine();
nMyChoice = Convert.ToInt32( sMyChoice );

if( nMyChoice < 1 || nMyChoice > 4 )
{
Console.WriteLine( "Vous devez saisir un nombre compris entre 1 et 4, Veuillez recommencer.\n" );
}
else
operatorOK = true
;
}
while
( ! operatorOK );

string sFirstNbr, sSecondNbr;
decimal
mFirstNbr, mSecondNbr;

Console.Write( "Entrez le premier nombre : " );
sFirstNbr = Console.ReadLine();
mFirstNbr = Convert.ToDecimal( sFirstNbr );

Console.Write( "Entrez le deuxième nombre : " );
sSecondNbr = Console.ReadLine();
mSecondNbr = Convert.ToDecimal( sSecondNbr );

Console.WriteLine(); // Saute une ligne

decimal mResult;
string
operation = "";
switch
( nMyChoice )
{
case
1:

mResult = mFirstNbr + mSecondNbr;
operation = " plus ";
break
;

case
2:

mResult = mFirstNbr * mSecondNbr;
operation = " multiplié par ";
break
;

case 3:

if( mSecondNbr == 0 )
{
Console.WriteLine( "division par zéro impossible" );
return
;
}

mResult = mFirstNbr / mSecondNbr;
operation = " divisé par ";
break
;

default:

mResult = mFirstNbr - mSecondNbr;
operation = " moins ";
break
;
}

Console.WriteLine( mFirstNbr + operation + mSecondNbr + " est égal à " + mResult );
}

Ca devrait faire ce qui faut qu'ça fasse... ;)

Merci LUDINSKI 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de LUDINSKI
cs_v1 9 Messages postés jeudi 22 janvier 2004Date d'inscription 28 novembre 2005 Dernière intervention - 27 nov. 2005 à 17:20
0
Merci
J'ai validé la réponse car je suis sûr qu'il faut faire comme ça, mais le compiler me dit "keyword this is not valid in a static property, static method, or static field initializer". Voici ce que j'ai mis (j'ai retiré le reste des Case, je n'ai laissé que le 1 et le default, pour simplifier), mais je pense que je me suis trompé en remettant la méthode telle quelle dans le code. Si tu m'aides encore une fois ce serait bien, (-coq-) après je te fous le paix pour aujourd'hui, et je vais m'informer sur les méthodes et les fonctions !

ps : ben dis-donc c'est pas évident quand on débute, quelle galère !


using System
;


namespace Operators


{


/// <summary>


/// Effectue des multiplications


/// </summary>


public class Class1



{


public static void Main(string[] args
)


{ // Demande le type d'opération à effectuer :


// 1 pour additionner


// 2 pour multiplier


// 3 pour diviser


// 4 pour soustraire


Console
.WriteLine("Type d'opération à effectuer :");


Console
.WriteLine(); // Saut de ligne


Console
.WriteLine("1-Addition");


Console
.WriteLine("2-Multiplication");


Console
.WriteLine("3-Division");


Console
.WriteLine("4-Soustraction");


Console
.WriteLine(); // Saut de ligne


Console
.WriteLine("Choisissez le numéro correspondant à l'opération que vous souhaitez faire : ");


string sMyChoice
= Console
. ReadLine ();


// Convertit ce qui a été saisi en un entier


int nMyChoice
= Convert
.ToInt32(sMyChoice
);


string sFirstNbr
;


string sSecondNbr
;


decimal mFirstNbr
;


decimal mSecondNbr
;


decimal mResult
;


switch(nMyChoice
)


{


case 1:



//Demande le premier nombre


mFirstNbr = this
.GetNumber("Entrez le premier nombre : "
);


//Demande le second nombre


mSecondNbr = this
.GetNumber("Entrez le deuxième nombre : "
);


// Affiche le résultat


Console
.WriteLine(); // Saute une ligne


Console
.WriteLine(mFirstNbr
+ " plus " + mSecondNbr
+ " est égal à " + mResult
);


break;


default:


Console
.WriteLine("Vous devez saisir un nombre compris entre 1 et 4, Veuillez recommencer.");


Console
.WriteLine(); // Saute une ligne


break;


}


}


private decimal GetNumber(string question
)


{


Console
.Write(question
);


string sNb
= Console
.ReadLine();


// Convertit ce qui a été saisi en un decimal


return Convert
.ToDecimal(sNb
);


}


}


}



Commenter la réponse de cs_v1
cs_badrbadr 475 Messages postés jeudi 19 juin 2003Date d'inscription 3 novembre 2008 Dernière intervention - 27 nov. 2005 à 18:28
0
Merci
Code source modifié pour économiser d'avantage d'espace


using System;


namespace Operators


{


public
class Class1


{


public
static
void Main(
string[] args)


{ Console.WriteLine("Type d'opération à effectuer :");


Console.WriteLine();
// Saut de ligne


Console.WriteLine("1-Addition\n2-Multiplication\n3-Division\n4-Soustraction\n");


Console.WriteLine("Choisissez le numéro correspondant à l'opération que vous souhaitez faire : ");



string sMyChoice = Console.ReadLine();



// Convertit ce qui a été saisi en un entier



int nMyChoice = Convert.ToInt32(sMyChoice);



string sFirstNbr;
string sSecondNbr;



decimal mFirstNbr;
decimal mSecondNbr;



decimal mResult;


Console.Write("Entrez le premier nombre : ");


sFirstNbr = Console.ReadLine();


mFirstNbr = Convert.ToDecimal(sFirstNbr);


Console.Write("Entrez le deuxième nombre : ");


sSecondNbr = Console.ReadLine();


mSecondNbr = Convert.ToDecimal(sSecondNbr);



switch(nMyChoice)


{



case 1:


mResult = mFirstNbr + mSecondNbr;


Console.WriteLine();
// Saute une ligne


Console.WriteLine(mFirstNbr + " plus " + mSecondNbr + " est égal à " + mResult);



break;



case 2:


mResult = mFirstNbr * mSecondNbr;


Console.WriteLine();
// Saute une ligne


Console.WriteLine(mFirstNbr + " multiplié par " + mSecondNbr + " est égal à " + mResult);



break;



case 3:



if(mSecondNbr!=0)


{


mResult = mFirstNbr / mSecondNbr;


Console.WriteLine();
// Saute une ligne


Console.WriteLine(mFirstNbr + " divisé par " + mSecondNbr + " est égal à " + mResult);


}



else


{


Console.WriteLine();
// Saute une ligne


Console.WriteLine("division par zéro impossible");


}



break;



case 4:


mResult = mFirstNbr - mSecondNbr;


Console.WriteLine();
// Saute une ligne


Console.WriteLine(mFirstNbr + " moins " + mSecondNbr + " est égal à " + mResult);



break;



default:


Console.WriteLine("Vous devez saisir un nombre compris entre 1 et 4, Veuillez recommencer.");


Console.WriteLine();
// Saute une ligne



break;


}


}


}


}

@++
Commenter la réponse de cs_badrbadr
cs_v1 9 Messages postés jeudi 22 janvier 2004Date d'inscription 28 novembre 2005 Dernière intervention - 28 nov. 2005 à 15:22
0
Merci
Oui c'est pas mal badrbadr, mais ce n'est plus très logique dans de cas, parce que si je recopie le code, je me rend compte que je peux sasir des nombres supérieur à 4 au début, et c'est seulement après avoir saisi les deux nombres que la phrase du "Default" apparaît !
Commenter la réponse de cs_v1

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.