diff --git a/Program.cs b/Program.cs index 13a2e11..b1d171b 100644 --- a/Program.cs +++ b/Program.cs @@ -1,3 +1,4 @@ -using Programmation_objet_TLESIO21.TD1; +//using Programmation_objet_TLESIO21.TD1; +using Programmation_objet_TLESIO21.TD2; -Td1.Launch(); +Td2.Launch(); diff --git a/TD2/Personnes.cs b/TD2/Personnes.cs new file mode 100644 index 0000000..e74470b --- /dev/null +++ b/TD2/Personnes.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace Programmation_objet_TLESIO21.TD2 { + public class Personnes { + // Tableau privé interne qui contient les noms des personnes. + private string[] m_Noms { get; } + private int m_NbElt { get; } // nombre d’éléments dans le tableau + private int m_Max { get; }// nombre maximum d’éléments + // Le constructeur qui initialise le tableau. +public Personnes(int Max) { + this.m_Noms = new string[Max]; + this.m_Max = Max; + this.m_NbElt = 0; + } + // L'indexeur qui retourne l'index à partir du nom. + public int this[string Nom] { + get { + return Array.IndexOf(m_Noms, Nom); + } + } + // L'indexeur qui retourne ou affecte le nom à partir de l’index. + public string this[int i] { + get { + if (i < this.m_Noms.Length) { + return this.m_Noms[i]; + } + else { + return "null"; + } + } + + set { + this.m_Noms[i] = value; + } + } + } +} diff --git a/TD2/TabClasse.cs b/TD2/TabClasse.cs new file mode 100644 index 0000000..0e4ed1c --- /dev/null +++ b/TD2/TabClasse.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Programmation_objet_TLESIO21.TD2 { + public class TabClasse { + + private int nbMaxElts; + private int[] tab; + private int nbElts; + + public TabClasse() : this(0) { } + + public TabClasse(int nbMaxElts) { + this.nbMaxElts = nbMaxElts; + this.tab = new int[nbMaxElts]; + this.nbElts = 0; + } + + public void RemplirTableau() { + this.nbElts = 0; + for (int i = 0; i < this.nbMaxElts; ++i) { + Console.WriteLine("Entrez un entier (" + (this.nbMaxElts - i) + " restants) : "); + String input = Console.ReadLine(); + Console.Write(""); + + if (String.IsNullOrEmpty(input)) { + i--; + Console.WriteLine("Merci de renter une valeur."); + } + else { + try { + tab[i] = int.Parse(input); + this.nbElts++; + } + catch (Exception FormatException) { + i--; + Console.WriteLine("Merci de renter un entier."); + } + } + + } + } + + public void AfficherTableau() { + String s = "["; + for (int i = 0; i < this.tab.Length; ++i) { + s += this.tab[i] + ", "; + } + Console.WriteLine(s.Substring(0, s.Length - 2) + "]"); + } + + public void TrierTableau() { //tri à bulles + for (int i = (this.tab.Length - 1); i >= 1; --i) { + for (int j = 2; j <= i; ++j) { + if (this.tab[j - 1] > this.tab[j]) { + int temp = this.tab[j - 1]; + this.tab[j - 1] = this.tab[j]; + this.tab[j] = temp; + } + } + } + } + + /*public void SetValue(int index, int value) { + if (index < this.nbElts) { + this.tab[index] = value; + } + else { + Console.Error.WriteLine("Votre index dépasse la capacité de ce tableau"); + } + }*/ + + public int this[int index] { + get { + if (index < this.nbElts) { + return this.tab[index]; + } + else { + Console.Error.Write("Votre index dépasse la capacité de ce tableau"); + return -1; + } + } + + set { + + if (index < this.nbElts) { + this.tab[index] = value; + } + else { + Console.Error.Write("Votre index dépasse la capacité de ce tableau"); + } + } + + } + + } +} \ No newline at end of file diff --git a/TD2/td2.cs b/TD2/td2.cs new file mode 100644 index 0000000..3f18610 --- /dev/null +++ b/TD2/td2.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading.Tasks; + +namespace Programmation_objet_TLESIO21.TD2 { + public static class Td2 { + + public static void Exo1() { + TabClasse t = new TabClasse(5); + t.RemplirTableau(); + Console.Write("Le tableau est : "); + t.AfficherTableau(); + + Console.Write("Après tri, le tableau est : "); + t.TrierTableau(); + t.AfficherTableau(); + + Console.WriteLine("Get de l'index 8 : " + t[8]);//error + Console.WriteLine("Get de l'index 2 : " + t[2]); //ok + + Console.Write("Set de 15 à l'index 9 : "); + t[9] = 15; //error + t.AfficherTableau(); + + Console.Write("Set de 15 à l'index 1 : "); + t[1] = 15; //ok + t.AfficherTableau(); + + } + + public static void Exo3() { + Personnes Tableau = new Personnes(4); + Tableau[0] = "Anna"; + Tableau[1] = "Ingrid"; + Tableau[2] = "Maria"; + Tableau[3] = "Ulrika"; + Console.WriteLine(Tableau[1]); // Affiche "Ingrid" + Console.WriteLine(Tableau["Maria"]); //Affiche 2 + Console.WriteLine(Tableau[10]); // Affiche null + Console.WriteLine(Tableau["Toto"]); //Affiche -1 + } + public static void Launch() { + //Exo1(); + Exo3(); + + } + } +} diff --git a/pdf/CM/Cours2C#.pdf b/pdf/CM/Cours2C#.pdf new file mode 100644 index 0000000..c3b9ff7 Binary files /dev/null and b/pdf/CM/Cours2C#.pdf differ diff --git a/pdf/TD/TD2.pdf b/pdf/TD/TD2.pdf new file mode 100644 index 0000000..4e0b6c8 Binary files /dev/null and b/pdf/TD/TD2.pdf differ