Page d'Accueil

La rangée: Une série d'articles semblables

 

Introduction

Imaginez que vous voulez créer un programme qui utiliserait une série de nombres. Dans les maths, nous représentons une telle série comme suit : X1, X2, X3, X4, X5. Vous pouvez également représenter une liste d'articles comme suit :

Alex
Gaston
Hermine
Jerry

Dans C#, jusqu'ici, pour utiliser une série d'articles, nous déclarions une variable pour chacun de eux. Si la liste était faite de nombres, nous déclarerions des variables pour de tels nombres comme suit :

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.

Étude pratiqueÉtude pratique : Présentation des rangées

  1. Commencez Microsoft Visual C# et créez une application de console appelée IceCream1
  2. Sauvegardez le projet, sur la barre d'outils standard, cliquez le bouton Enregistrer tout 
  3. Changez le nom de solution en VendingMachine1
  4. Pour créer une nouvelle classe, sur le menu principal, cliquez projet - > Ajouter la classe…
  5. Placez le nom IceCreamOrder et appuyez Enter
  6. Changez le fichier comme suit 
  7. :
     
    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);
            }
        }
    }
  8. enregistrez le fichier

Création d'une rangée

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.

Ice Cream

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Étude pratique : Créer une rangée

  1. 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
            }
        }
    }
  2. 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Étude pratique : Employer les membres d'une rangée

  1. 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");
            }
        }
    }
  2. Accédez au fichier Program.cs
  3. 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;
            }
        }
    }
  4. 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 . . .

  5. Fermez la fenêtre DOS
  

Page d'Accueil Copyright © 2007, Yevol Suivant