using System;
namespace CSharpLessons
{
class Exercise
{
static void Main()
{
double number1 = 12.44,
number2 = 525.38,
number3 = 6.28,
number4 = 2448.32,
number5 = 632.04;
}
}
}
 |
Au lieu d'utiliser individuellement les
variables qui partagent les mêmes caractéristiques, vous
pouvez les grouper dans une entité comme une variable régulière
mais avez appelée rangée. Par conséquent, une rangée est
une série d'articles de la même sorte. Ce pourrait être un
groupe de nombres, un groupe de voitures, un groupe de mots,
etc. mais tous les articles de la rangée doivent être du même
type.
|
- Commencez Microsoft Visual C# et créez une application de console
appelée IceCream1
- Sauvegardez le projet, sur la barre d'outils standard, cliquez le bouton
Enregistrer tout
- Changez le nom de solution en VendingMachine1
- Pour créer une nouvelle classe, sur le menu principal, cliquez projet - >
Ajouter la classe…
- Placez le nom IceCreamOrder et appuyez Enter
- Changez le fichier comme suit
- :
using System;
using System.Collections.Generic;
using System.Text;
namespace IceCream1
{
public class IceCreamOrder
{
public const decimal BasePrice = 1.55M;
public void ProcessAnOrder()
{
int dFlv = 0,
dCont = 0,
dIngrd = 0;
int Scoops = 0;
decimal PriceIngredient = 0.00M, TotalPrice = 0.00M;
Console.WriteLine("Ice Scream Vendor Machine");
do
{
try
{
Console.WriteLine("What type of flavor do you want?");
Console.WriteLine("1 - ");
Console.WriteLine("2 - ");
Console.WriteLine("3 - ");
Console.WriteLine("4 - ");
Console.WriteLine("5 - ");
Console.WriteLine("6 - ");
Console.Write("Your Choice? ");
dFlv = int.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You must enter a valid number and no other character!");
}
if (dFlv < 1 || dFlv > 6)
Console.WriteLine("Invalid Choice - Try Again!\n");
} while (dFlv < 1 || dFlv > 6);
do
{
try
{
Console.WriteLine("What type of container do you want?");
Console.WriteLine("1 - ");
Console.WriteLine("2 - ");
Console.WriteLine("3 - ");
Console.Write("Your Choice? ");
dCont = int.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You must enter a valid number and no other character!");
}
if (dCont < 1 || dCont > 3)
Console.WriteLine("Invalid Choice - Try Again!");
} while (dCont < 1 || dCont > 3);
do
{
try
{
Console.WriteLine("Do you want an ingredient or not");
Console.WriteLine("1 - ");
Console.WriteLine("2 - ");
Console.WriteLine("3 - ");
Console.WriteLine("4 - ");
Console.Write("Your Choice? ");
dIngrd = int.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You must enter a valid number and no other character!");
}
if (dIngrd < 1 || dIngrd > 4)
Console.WriteLine("Invalid Choice - Try Again!");
} while (dIngrd < 1 || dIngrd > 4);
do
{
try
{
Console.Write("How many scoops(1, 2, or 3)? ");
Scoops = int.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You must enter a valid number and no other character!");
}
if (Scoops < 1 || Scoops > 3)
Console.WriteLine("Invalid Choice - Try Again!");
} while (Scoops < 1 || Scoops > 3);
if (dIngrd == 2 || dIngrd == 3 || dIngrd == 4)
PriceIngredient = 0.65M;
else
PriceIngredient = 0.00M;
TotalPrice = (BasePrice * Scoops) + PriceIngredient;
DisplayReceipt(dFlv, dCont, dIngrd, Scoops, TotalPrice);
}
public void DisplayReceipt(int Flv, int Cont, int Ingrd,
int spoons, decimal TotalPrice)
{
Console.WriteLine("\nIce Scream Order");
Console.WriteLine("Scoops: {0}", spoons);
Console.WriteLine("Total Price: {0:C}\n", TotalPrice);
}
}
}
|
- enregistrez le fichier
|
Avant de créer une rangée, vous devez
d'abord décider de quel type ses articles seront fait. Est-ce
un groupe de nombres, un groupe de chaises, un groupe de boutons
sur une télécommande? Cette information permet au compilateur
de connaître combien d'espace chaque article du groupe exigera.
C'est parce que chaque article du groupe occupera son propre
espace mémoire, juste comme n'importe laquelle des variables que nous
avons utilisées jusqu'ici.
Après avoir décidé du type de
données des articles qui composent la série, vous devez
utiliser un nom commun pour les identifier. Le nom est
simplement le même type de nom que vous utiliserez pour une
variable tel que nous avons utilisé jusqu'ici. Le nom permet à
vous et au compilateur d'identifier le secteur dans la mémoire où
les articles sont localisés.
|
 |
Troisièmement, vous devez indiquer le nombre
d'articles qui constitueront le groupe. Pour que le compilateur puisse
assigner une quantité adéquate d'espace pour les articles de la liste, une fois
qu'il connaît combien d'espace chaque article exigera, il doit savoir
le nombre d'articles ainsi une quantité appropriée d'espace assez grande
pourrait être
réservée. Le nombre d'articles d'une rangée est inclus entre
crochets, comme dans [5].
Dans C# (à la différence de quelques autres langages
tels que C/C++ ou Pascal), une rangée est considérée comme un type référence. Par conséquent, une rangée demande sa mémoire en
utilisant l'opérateur new. Basé sur ceci, la formule de
base pour déclarer une rangée est :
DataType[] VariableName = new DataType[Number];
Dans cette formule, le facteur DataType
peut être l'un des types que nous avons utilisé jusqu'ici. Ce peut également
être le nom d'une classe. Les crochets du côté gauche de l'opérateur
de tâche sont utilisés pour faire savoir au compilateur que vous déclarez
une rangée au lieu d'une variable régulière. L'opérateur new
permet au compilateur de réserver la mémoire.
Le facteur number est utilisé pour indiquer le nombre
d'articles de la liste.
Basé sur la formule ci-dessus, voici un exemple d'une
variable rangée:
using System;
namespace CSharpLessons
{
class Exercise
{
static void Main()
{
double[] number = new double[5];
Console.WriteLine();
}
}
}
|
Étude
pratique : Créer une rangée
|
|
- Pour créer des rangées, changez le fichier IceCreamOrder.cs
comme suit:
uusing System;
namespace IceCream1
{
class IceCreamOrder
{
public const decimal BasePrice = 1.55M;
public void ProcessAnOrder()
{
int dFlv = 0,
dCont = 0,
dIngrd = 0;
int Scoops = 0;
decimal PriceIngredient = 0.00M, TotalPrice = 0.00M;
string[] Flavor = new string[6];
string[] Container = new string[3];
string[] Ingredient = new string[4];
Console.WriteLine("Ice Scream Vendor Machine");
. . . No Change
}
}
}
|
- enregistrez le fichier
|
Initialisation d'une rangée
|
|
 |
En créant une rangée, vous pouvez indiquer
le nombre d'articles qui composent sa liste. Chaque article de
la série est désigné sous le nom de membre ou d'élément de
la rangée. Une fois la rangée créée, chacun de ses
membres est initialisée avec la valeur 0. La majeure partie du
temps,
sinon tout le temps, vous devez changer la valeur de chaque
membre en valeur de votre choix. Ceci est désigné sous le nom
initialiser la rangée.
Une rangée est principalement une variable;
elle est censée simplement porter plus d'une valeur. Comme
toute autre variable, une rangée peut être initialisée. Il y a deux
techniques principales que vous pouvez utiliser pour initialiser
une rangée. Si vous avez déclaré une rangée comme fait
ci-dessus, pour l'initialiser, vous pouvez accéder à chacun de
ses membres et lui assigner une valeur désirée mais appropriée.
|
Dans les maths, si vous créez une série de valeurs
comme X1,
X2, X3, X4, et X5, chaque membre de cette série peut être
identifié par son nombre souscrit(ou son indice inférieur). Dans ce cas-ci les indices inférieurs
sont 1, 2, 3, 4, et 5. Ce nombre souscrit s'appelle également un index.
Dans le cas également d'une rangée, chaque membre d'une rangée peut
être reférer par un nombre par incrément appelé un index. La
rangée de C# (comme C/C++) est basée à zéro. Ceci signifie que
le premier membre de la rangée a un index 0, la seconde a un index 1. Dans les maths, la série serait représentée comme X0, X1,
X2, X3, et X4. Dans C#, l'index d'un membre d'une rangée est écrit dans
des ses propres crochets. C'est la notation que vous utiliserez pour localiser chaque membre. Une des mesures que vous pouvez prendre
consisterait à lui assigner une valeur. Voici un exemple:
using System;
namespace CSharpLessons
{
class Exercise
{
static void Main()
{
double[] number = new double[5];
number[0] = 12.44;
number[1] = 525.38;
number[2] = 6.28;
number[3] = 2448.32;
number[4] = 632.04;
Console.WriteLine();
}
}
}
En plus de cette technique, vous pouvez également
initialiser la rangée comme un tout en la déclarant. Pour ce faire, du
côté droit de la déclaration, avant le point-virgule de
fermeture, tapez les valeurs des membres de la rangée entre les
accolades et séparés par une virgule. Voici un exemple:
using System;
namespace CSharpLessons
{
class Exercise
{
static void Main()
{
double[] number = new double[5]{ 12.44, 525.38, 6.28, 2448.32, 632.04 };
Console.WriteLine();
}
}
}
Si vous utilisez cette deuxième technique, vous ne
devez pas indiquer le nombre d'articles dans la série. Dans ce cas-ci,
vous pouvez laisser tous les crochets vides:
using System;
namespace CSharpLessons
{
class Exercise
{
static void Main()
{
double[] number = new double[]{ 12.44, 525.38, 6.28, 2448.32, 632.04 };
Console.WriteLine();
}
}
}
Si vous laissez les crochets vides, le compilateur
figurera out le nombre d'articles.
|
Étude
pratique : Employer les membres d'une rangée
|
|
- Pour initialiser des rangées et utiliser leurs membres, changez
le fichier IceCreamOrder.cs comme suit:
using System;
namespace IceCream1
{
class IceCreamOrder
{
public const decimal BasePrice = 1.55M;
public void ProcessAnOrder()
{
int dFlv = 0,
dCont = 0,
dIngrd = 0;
int Scoops = 0;
decimal PriceIngredient = 0.00M, TotalPrice = 0.00M;
string[] Flavor = new string[6]{ "Vanilla",
"Cream of Cocoa",
"Organic Strawberry",
"Butter Pecan",
"Cherry Coke",
"Chocolate Brownies" };
string[] Container = new string[3];
Container[0] = "Cone";
Container[1] = "Cup";
Container[2] = "Bowl";
string[] Ingredient = new string[]{"No Ingredient",
"Peanuts",
"M & M",
"Cookies" };
Console.WriteLine("Ice Scream Vendor Machine");
do
{
try
{
Console.WriteLine("What type of flavor do you want?");
Console.WriteLine("1 - {0}", Flavor[0]);
Console.WriteLine("2 - {0}", Flavor[1]);
Console.WriteLine("3 - {0}", Flavor[2]);
Console.WriteLine("4 - {0}", Flavor[3]);
Console.WriteLine("5 - {0}", Flavor[4]);
Console.WriteLine("6 - {0}", Flavor[5]);
Console.Write("Your Choice? ");
dFlv = int.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You must enter a valid number and no other character!");
}
if (dFlv < 1 || dFlv > 6)
Console.WriteLine("Invalid Choice - Try Again!\n");
} while (dFlv < 1 || dFlv > 6);
do
{
try
{
Console.WriteLine("What type of container do you want?");
Console.WriteLine("1 - {0}", Container[0]);
Console.WriteLine("2 - {0}", Container[1]);
Console.WriteLine("3 - {0}", Container[2]);
Console.Write("Your Choice? ");
dCont = int.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You must enter a valid number and no other character!");
}
if (dCont < 1 || dCont > 3)
Console.WriteLine("Invalid Choice - Try Again!");
} while (dCont < 1 || dCont > 3);
do
{
try
{
Console.WriteLine("Do you want an ingredient or not");
Console.WriteLine("1 - {0}", Ingredient[0]);
Console.WriteLine("2 - {0}", Ingredient[1]);
Console.WriteLine("3 - {0}", Ingredient[2]);
Console.WriteLine("4 - {0}", Ingredient[3]);
Console.Write("Your Choice? ");
dIngrd = int.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You must enter a valid number and no other character!");
}
if (dIngrd < 1 || dIngrd > 4)
Console.WriteLine("Invalid Choice - Try Again!");
} while (dIngrd < 1 || dIngrd > 4);
do
{
try
{
Console.Write("How many scoops(1, 2, or 3)? ");
Scoops = int.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You must enter a valid number and no other character!");
}
if (Scoops < 1 || Scoops > 3)
Console.WriteLine("Invalid Choice - Try Again!");
} while (Scoops < 1 || Scoops > 3);
if (dIngrd == 2 || dIngrd == 3 || dIngrd == 4)
PriceIngredient = 0.65M;
else
PriceIngredient = 0.00M;
TotalPrice = (BasePrice * Scoops) + PriceIngredient;
DisplayReceipt(dFlv, dCont, dIngrd, Scoops, TotalPrice);
}
public void DisplayReceipt(int Flv, int Cont, int Ingrd,
int spoons, decimal TotalPrice)
{
Console.WriteLine("\n==================================");
Console.WriteLine("Ice Scream Order");
Console.WriteLine("----------------------------------");
switch (Flv)
{
case 2:
Console.WriteLine("Flavor: Cream of Cocoa");
break;
case 3:
Console.WriteLine("Flavor: Organic Strawberry");
break;
case 4:
Console.WriteLine("Flavor: Butter Pecan");
break;
case 5:
Console.WriteLine("Flavor: Cherry Coke");
break;
case 6:
Console.WriteLine("Flavor: Chocolate Brownies");
break;
default:
Console.WriteLine("Flavor: Vavilla");
break;
}
switch (Cont)
{
case 2:
Console.WriteLine("Container: Cup");
break;
case 3:
Console.WriteLine("Container: Bowl");
break;
default:
Console.WriteLine("Container: Cone");
break;
}
switch (Ingrd)
{
case 2:
Console.WriteLine("Ingredient: Peanuts");
break;
case 3:
Console.WriteLine("Ingredient: M & M");
break;
case 4:
Console.WriteLine("Ingredient: Cookies");
break;
default:
Console.WriteLine("Ingredient: None");
break;
}
Console.WriteLine("Scoops: {0}", spoons);
Console.WriteLine("Total Price: {0:C}", TotalPrice);
Console.WriteLine("==================================\n");
}
}
}
|
- Accédez au fichier Program.cs
- Pour examiner la classe IceCreamOrder, changez le fichier comme
suit:
using System;
namespace IceCream1
{
class Program
{
static int Main()
{
IceCreamOrder IS = new IceCreamOrder();
IS.ProcessAnOrder();
return 0;
}
}
}
|
- Exécutez l'application et l'examiner. Voici un exemple
:
Ice Scream Vendor Machine
What type of flavor do you want?
1 - Vanilla
2 - Cream of Cocoa
3 - Organic Strawberry
4 - Butter Pecan
5 - Cherry Coke
6 - Chocolate Brownies
Your Choice? 5
What type of container do you want?
1 - Cone
2 - Cup
3 - Bowl
YoC# Arrays- Introductionur Choice? 3
Do you want an ingredient or not
1 - No Ingredient
2 - Peanuts
3 - M & M
4 - Cookies
Your Choice? 4
How many scoops(1, 2, or 3)? 3
==================================
Ice Scream Order
----------------------------------
Flavor: Cherry Coke
Container: Bowl
Ingredient: Cookies
Scoops: 3
Total Price: $5.30
==================================
Press any key to continue . . .
|
- Fermez la fenêtre DOS
|
|