cs_v1
Messages postés9Date d'inscriptionjeudi 22 janvier 2004StatutMembreDernière intervention28 novembre 2005
-
27 nov. 2005 à 13:03
LUDINSKI
Messages postés441Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention22 mai 2012
-
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.");
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 27 nov. 2005 à 14:41
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 : ");
cs_v1
Messages postés9Date d'inscriptionjeudi 22 janvier 2004StatutMembreDernière intervention28 novembre 2005 27 nov. 2005 à 17:20
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.");
cs_v1
Messages postés9Date d'inscriptionjeudi 22 janvier 2004StatutMembreDernière intervention28 novembre 2005 28 nov. 2005 à 15:22
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 !