c#: Correction des exercices tableaux et matrices 13

c#: Correction des exercices tableaux et matrices 13





  1. Enoncé Exercice 13
  2. Buts:
    • Cet exercice a pour but de vérifier les points techniques suivants :
      • Déclaration et initialisation de tableaux en c#.
      • Affichage des éléments du tableau
      • Parcourir des tableaux en c#.
      • Fusionner deux tables en une seule.

  3. Rappel
    1. Copie d’un tableau
      • La copie d’un tableau implique la copie de ses éléments dans un autre tableau.
      • Dans le cas d’un tableau d’objets, seules les références à ces objets sont copiées, aucun nouvel objet n’est créé.
      • La méthode arraycopy de la classe System permet de copier tout ou partie d’un tableau vers un autre tableau déjà alloué.

    2. Explications
        • Cette version implante une solution non optimisée où 2 tableaux auxiliaires sont utilisés pour héberger temporairement les valeurs paires pour le premier et les valeurs impaires pour le second.
        • Ces deux tableaux sont dimensionnés à la valeur maximale possible : la taille de tableau principal.
        • Une fois qu’ils contiennent toutes les valeurs de tableau, ces deux tableaux sont fusionnés par recopie dans le tableau tableau.
        • Cette solution n’est pas optimisée
        • Dans l’exercice suivant le programme copie le contenu du tableau en employant une boucle for, quoiqu’il ait pu tout simplement utiliser la méthode Copy de la classe Array, comme suit:
        • Array.Copy(Valeurs, 0,Temp,0 Valeurs.Lenth)

  4. Correction Exercice 13
  5. using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace exercice_13
    {
        class Program
        {
            static int[] tableau = new int[20];
            static void Main(string[] args)
            {
                remplirTableau();
                AffichageTab();
                ReorganiseTab();
            }
            static void remplirTableau()
            {
    
                Random rnd = new Random();
                // affectation de valeurs entières, pris au hasard entre 1 et 100, au tableau
                for (int i = 0; i < 20; i++)
                {
                    tableau[i] = rnd.Next(1, 101);
                }
            }
            static void AffichageTab()
            {
                //affichage des valeurs du tableau
                for (int i = 0; i < 20; i++)
                {
                    Console.WriteLine(tableau[i] + " ");
                }
            }
            static void ReorganiseTab()
            {
                //déclaration de deux tableaux temporaires
                int [] tabpair=new int[20];
                int[] tabimpair = new int[20];
                //déclaration de deux compteurs
                int ctpair=0;
                int ctimpair=0;
                //Recherche de minimum
                for (int i = 0; i < 20; i++)
                {
                    if ((tableau[i] % 2) == 0)
                    {
                    //int[] tabpair;
                    tabpair[ctpair] = tableau[i];
                    ctpair++;
                    }
                    else
                    {
                    tabimpair[ctimpair] = tableau[i];
                    ctimpair++;
                    }
                }
                for (int i = 0; i < ctpair; i++)
                {
                    tableau[i] = tabpair[i];
                }
                for (int i = 0; i < ctimpair; i++)
                {
                    tableau[i+ ctpair] = tabimpair[i];
                }
                Console.WriteLine("Tableau réorganisé");
                Console.WriteLine("---------------------");
                Console.WriteLine("Les entiers pairs");
                for (int i = 0; i < 20; i++)
                {
                    if(i== ctpair)
                    {
                        Console.WriteLine("Les entiers impairs");
                    }
                    Console.WriteLine(tableau[i]);
                }
                Console.WriteLine("---------------------");
                Console.WriteLine("Nombre des entiers pairs: "+ctpair);
                Console.WriteLine("Nombre des entiers impairs: " + ctimpair);
            }
        }
    }
    

Abonnez vous à notre chaîne YouTube gratuitement