This commit is contained in:
OMGiTzPomPom 2022-09-20 09:46:35 +02:00
parent 1a9f86cff5
commit 585300ff6a
6 changed files with 196 additions and 2 deletions

View File

@ -1,3 +1,4 @@
using Programmation_objet_TLESIO21.TD1;
//using Programmation_objet_TLESIO21.TD1;
using Programmation_objet_TLESIO21.TD2;
Td1.Launch();
Td2.Launch();

42
TD2/Personnes.cs Normal file
View File

@ -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 lindex.
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;
}
}
}
}

100
TD2/TabClasse.cs Normal file
View File

@ -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");
}
}
}
}
}

51
TD2/td2.cs Normal file
View File

@ -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();
}
}
}

BIN
pdf/CM/Cours2C#.pdf Normal file

Binary file not shown.

BIN
pdf/TD/TD2.pdf Normal file

Binary file not shown.