Les tableaux permettent de stocker plusieurs éléments de même type au sein d’une seule entité, Lorsque le type de ces éléments possède un ordre total, on peut donc les ranger en ordre croissant ou décroissant,
Trier un tableau c’est donc ranger les éléments d’un tableau en ordre croissant ou décroissant Dans ce cours on ne fera que des tris en ordre croissant Il existe plusieurs méthodes de tri qui se différencient par leur complexité d’exécution et leur complexité de compréhension pour le programmeur, nous examinons ce tutoriel le tri à bulles (Bubble Sort)
Tous les algorithmes de tri utilisent une procédure qui permet d’échanger(de permuter)la valeur de deux variables
Tri à bulles (Bubble Sort)
Principe de la méthode: Sélectionner le minimum du tableau en parcourant le tableau de la fin au début et en échangeant tout couple d’éléments consécutifs non ordonnés.
Exemple
Par exemple, pour trier <123,132,42,91,66,13>, on va avoir les boucles suivantes:
Le tri à bulle, mieux connu sous le nom de «Bubble Sort» est habituellement utilisé à des fins d’apprentissage. L’idée derrière cette technique est très simple, parcourir le tableau et permuter deux éléments lorsque cela s’avère nécessaire. Vous trouverez la réponse que vous souhaitez, à l’aide du code source C# (C Sharp) suivant :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TriBubble
{
class Program
{
static void Main(string[] args)
{
const int MaxTableau = 8;
int K,L,I,J;
int[] Tableau = { 15, 10, 23, 2, 8, 9, 14, 16 };
Console.Write("Avant:");
for(K = 0; K < MaxTableau; K++) Console.Write(Tableau[K] + ", ");
for(I = MaxTableau - 2;I >= 0; I--) {
for(J = 0; J <= I; J++) {
if(Tableau[J + 1] < Tableau[J]) {
int t = Tableau[J + 1];
Tableau[J + 1] = Tableau[J];
Tableau[J] = t;
}
}
}
Console.WriteLine();
Console.Write("Après:");
for(L = 0; L < MaxTableau; L++) {
Console.Write(", " + Tableau[L]);
}
Console.WriteLine();
}
}
}
Exercices d’application
Exercice
Écrire un programme GestionTableau qui qui va appeler les méthodes suivantes.
Déclarez un tableau tableau de type int de 10 entiers
Écrivez une méthode Remplirtableau qui remplit le tableau avec des entiers entre 1 et 100 au hasard.
Écrivez une méthode AffichageTab qui vous permet d’afficher le contenu du tableau.
Écrivez une méthode tabMini qui renvoie son plus petit élément.
Écrivez une méthode tabMax qui renvoie son plus grand élément.
Écrivez une méthode TriTab qui vous permet de trier(tri à bulles) dont l’ordre croissant et d’afficher votre tableau.
Écrivez une méthode tabSomme qui prend le type int comme valeur de retour et qui renvoie la somme des éléments du tableau.
Afficher la moyenne des éléments du tableau.
Correction
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GestionTableau
{
class Program
{
static int[] tableau = new int[10];
static void Main(string[] args)
{
remplirTableau();
AffichageTab();
tabMini();
tabMax();
TriTab();
Console.WriteLine("La somme est: " + tabSomme() + " ");
Console.WriteLine("La moyenne est: "+(tabSomme()/tableau.Length));
}
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 < 10; i++)
{
tableau[i] = rnd.Next(1, 101);
}
}
static void AffichageTab()
{
//affichage des valeurs du tableau
for (int i = 0; i < 10; i++)
{
Console.WriteLine(tableau[i] + " ");
}
}
static void tabMini()
{
int min=101;
//Recherche de minimum
for (int i = 0; i < 10; i++)
{
if (min > tableau[i])
min = tableau[i];
}
Console.WriteLine("Le minimum est: " +min + " ");
}
static void tabMax()
{
int max=0;
//Recherche de maxmimum
for (int i = 0; i < 10; i++)
{
if (max < tableau[i])
max = tableau[i];
}
Console.WriteLine("Le maximum est: " +max + " ");
}
static void TriTab()
{
int t;
//Triage du tableau
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 10 - 1; j++)
{
if (tableau[j] > tableau[j+1])
{
t = tableau[j + 1];
tableau[j+1] = tableau[j];
tableau[j]=t;
}
}
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine(tableau[i]);
}
}
static double tabSomme()
{
int somme=0;
for (int i = 0; i < 10; i++)
{
somme += tableau[i];
}
return somme;
}
}
}
Exercice
Écrire un programme qui demande à l’utilisateur de saisir 10 entiers qui seront stockés dans un tableau
Le programme doit afficher le contenu du tableau.
Le programme demande à l’utilisateur de saisir un entier n.
Le programme doit afficher l’entier.
Le programme doit rechercher si l’entier n se trouve dans le tableau et afficher “n se trouve dans le tableau” ou “n ne se trouve pas dans le tableau.
Correction
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace exercice2
{
class Program
{
static int [] tab=new int[10];
static void Main(string[] args)
{
exercice_2();
trouveelement();
}
static void exercice_2()
{
for(int i=0;i<10;i++)
{
Console.WriteLine("Saisir lélémént {0}" , i+1);
//if(isNumeric(Console.ReadLine()))
//{
tab[i] =Convert.ToInt32( Console.ReadLine());
//}
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine("L'élémént {0} est : {1}" ,i, tab[i]);
}
}
static void trouveelement()
{
int n;
Console.WriteLine("Saisir lélémént n ");
n= Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < 10; i++)
{
//Console.WriteLine("Saisir lélémént {0}" + tab[i]);
if (n==tab[i])
{
Console.WriteLine("L'élémént {0} existe dans le tableau",n);
break;
}
else
{
if(i==9)
Console.WriteLine("L'élémént {0} n'existe pas dans le tableau", n);
}
}
}
static bool isNumeric(string valeur)
{
if (string.IsNullOrEmpty(valeur))
return false;
foreach (char ch in valeur.ToCharArray())
if (char.IsLetter(ch))
return false;
return true;
}
}
}
Exercice
Écrire un programme qui demande à l’utilisateur de taper 10 entiers qui seront stockés dans un tableau.
Le programme doit afficher le contenu du tableau.
Le programme doit trier le tableau par ordre croissant et doit afficher le contenu du tableau.
Le programme doit trier le tableau par ordre décroissant et doit afficher le contenu du tableau.
Correction
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace exercice3
{
class Program
{
static int [] tab=new int[10];
static void Main(string[] args)
{
exercice_3();
TriTabCroissant();
TriTabDecroissant();
}
static void exercice_3()
{
for(int i=0;i<10;i++)
{
Console.WriteLine("Saisir lélémént {0}" , i+1);
//if(isNumeric(Console.ReadLine()))
//{
tab[i] =Convert.ToInt32( Console.ReadLine());
//}
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine("L'élémént {0} est : {1}" ,i, tab[i]);
}
}
static void TriTabCroissant()
{
Console.WriteLine("Triage du tableau dans l'ordre croissant");
int t;
//Triage du tableau
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 10 - 1; j++)
{
if (tab[j] > tab[j + 1])
{
t = tab[j + 1];
tab[j + 1] = tab[j];
tab[j] = t;
}
}
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine(tab[i]);
}
}
static void TriTabDecroissant()
{
Console.WriteLine("Triage du tableau dans l'ordre décroissant");
int t;
//Triage du tableau
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 10 - 1; j++)
{
if (tab[j] < tab[j + 1])
{
t = tab[j + 1];
tab[j + 1] = tab[j];
tab[j] = t;
}
}
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine(tab[i]);
}
}
}
}
Réponses aux exercices les variables en c sharp ex7 Réponse de l’exercice les variables c# 7: Énoncé using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace exercice_7_les_variables { class Program { static void Main(string[] args) { Single largeur, longueur, perimetre, surface; Console.WriteLine(” Entrer la Largeur du rectangle”); largeur = Convert.ToSingle(Console.ReadLine()); Console.WriteLine(“Entrer la Longueur du rectangle”); longueur= Convert.ToSingle(Console.ReadLine()); …
Réponses aux exercices les variables en c sharp ex6 Réponse de l’exercice les variables c# 6: Énoncé using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace exercice_6_les_variables { class Program { static void Main(string[] args) { double cote; double surface; Console.WriteLine(“Saisir le coté du carré”); cote = Convert.ToDouble(Console.ReadLine()); surface = cote * cote; Console.WriteLine(“La surface du carré …
Réponses aux exercices les variables en c sharp ex3 Réponse de l’exercice les variables c# 3: Énoncé using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace exercice_3_les_variables { class Program { static void Main(string[] args) { string produit; double prix; double ttc; Console.WriteLine(“Saisir le nom du produit”); produit = Console.ReadLine(); Console.WriteLine(“Saisir le prix du produit”); prix =Convert.ToDouble( …
Gérer le consentement aux cookies
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel
Toujours activé
Le stockage ou l’accès technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’utilisateur, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
Le stockage ou l’accès technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou l’utilisateur.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques.Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
Le stockage ou l’accès technique est nécessaire pour créer des profils d’utilisateurs afin d’envoyer des publicités, ou pour suivre l’utilisateur sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.