0% ont trouvé ce document utile (0 vote)
11 vues6 pages

Csharp TP2

Le document présente une série d'exercices pratiques en C# pour le développement .Net, abordant des concepts avancés tels que la manipulation de chaînes, les énumérations, les structures, les exceptions, les délégués et les expressions lambda. Chaque exercice inclut des instructions pour créer des projets, écrire du code et observer les résultats. L'objectif est d'améliorer les compétences en programmation orientée objet et en gestion des données en C#.

Transféré par

oumaima.bounouara
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues6 pages

Csharp TP2

Le document présente une série d'exercices pratiques en C# pour le développement .Net, abordant des concepts avancés tels que la manipulation de chaînes, les énumérations, les structures, les exceptions, les délégués et les expressions lambda. Chaque exercice inclut des instructions pour créer des projets, écrire du code et observer les résultats. L'objectif est d'améliorer les compétences en programmation orientée objet et en gestion des données en C#.

Transféré par

oumaima.bounouara
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

SIG/GI Module : Développement .

Net
Langage C#

Série N°2 : Notions avancées

Exercice 1 : String & StringBuilder


1- Créer un nouveau projet
2- Insérez le code suivant dans le main puis exécuter l’application
string returnNumber = "";
for (long i = 0; i < 100000; i++)
{
returnNumber = returnNumber + [Link]();
}
[Link]("ok !!");

3- Remplacer le code précédant par le suivant puis ré-exécuter l’application

StringBuilder returnNumber = new StringBuilder();


for (int i = 0; i < 100000; i++)
{
[Link]([Link]());
}
[Link]("ok !!");

4- Quesque vous remarquez ?!

Exercice 2 : for, foreach, var (déclarations implicites)


1- Implémenter une fonction static Join simulant [Link]:
public static string Join(string[] list)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < [Link]; i++)
{
[Link](list[i]);
}
return [Link]();
}

2- Testez le fonctionnement de la méthode :

public static void Main()


{
string[] list = {"a","b","c","d"};
[Link](Join(list));
}

3- Compactez le code de la méthode Join en utilisant l’instruction foreach:


public static string Join(string[] list)
{
StringBuilder sb = new StringBuilder();
foreach (string s in list)
F. BARRAMOU P a g e 1|6
SIG/GI Module : Développement .Net
Langage C#
{
[Link](s);
}
return [Link]();
}

4- Compacter le code en entier en utilisant le mot clé var :


public static string Join(string[] list)
{
var sb = new StringBuilder();
foreach (var s in list) [Link](s);
return [Link]();

Exercice 3 : Parse

Ecrire une application console servant à calculer la valeur absolue d'un nombre reel saisie par
l’utilisateur.

Exercice 4 : String & Array

1- Créer un nouveau projet

2- Définir un string et utiliser [Link] pour séparer le string en tableau de caractères

string s = "Microsoft .NET Framework Application Development


Foundation";
string[] sa = [Link](' ');

3- Trier le tableau résultant

4- Joindre le tableau de nouveau dans un string et l’afficher

Exercice 5 : Enum

1- Dans un programme console boucler sur les jours de la semaine (en utilisant
l’énumération DayOfWeek) et afficher leurs valeurs string équivalentes
static void Main(string[] args)
{
foreach (string item in [Link](typeof(DayOfWeek)))
{
[Link](item);
}

}
2- Dans un programme console boucler sur les jours de la semaine (en utilisant
l’énumération DayOfWeek) et afficher leurs valeurs entière équivalentes

F. BARRAMOU P a g e 2|6
SIG/GI Module : Développement .Net
Langage C#
3- Ecrire un programme console qui propose à l’utilisateur de saisir un chiffre,
comme résultat il faut lui afficher le jour de la semaine correspondant (en utilisant
l’énumération DayOfWeek)

Exercice 6 : Structure

1- Ajouter un nouveau projet « Application Console »


2- Créer une nouvelle structure Personne
3- Définir 3 membres public dans la structure

public string nom;


public string prenom;
public int age;

4- Créer un constructeur pour pouvoir initialiser tous les membres


5- Dans le main créer une instance de la structure Personne et la passer comme paramètre
à la méthode [Link]
6- Exécutez votre programme. Quesque vous remarquez ?
7- Redéfinir la méthode ToString() pour afficher le nom, prénom et âge séparé par des
espaces
8- Dans le main créer une instance de la structure Personne et la passer comme paramètre
à la méthode [Link]
9- Exécutez votre programme. Quesque vous remarquez ?
10- Dans votre programme déclarer une énumération
public enum Civilite { Homme, Femme };
11- Ajouter à la structure un membre Civilité
public Civilite civilite;
12- Modifier le constructeur pour prendre en charge le nouveau membre.
13- Modifier ToString() pour prendre en charge le nouveau membre.
14- Modifier l’instanciation de Personne dans le main pour prendre en charge le nouveau
membre.

Exercice 7 : Calculatrice

1) Dans Visual Studio, créer un programme CSharpCalculatrice, en utilisant une


énumération « operation » contenant les types d'opération « plus », « moins »,
« multiplication » et « division ».

Exercice 8 : List & indexeur

1- Soit la classe suivante ListePersonne permettant d’agréger une liste de type


List<personne> :
public class personne
{
public string nom { get; set; }
F. BARRAMOU P a g e 3|6
SIG/GI Module : Développement .Net
Langage C#
public int age { get; set; }
}
public class ListePersonne
{
List<personne> _list = new List<personne>();
public void Ajouter(personne p)
{
_list.Add(p);
}
}
2- Afin de pouvoir extraire un élément de liste, ajouter un indexeur permettant d’extraire
une personne de la liste par sa position
public personne this[int index] {
get { return _list[index]; }
set { _list[index] = value; } }

3- Ajouter un indexeur permettant d’extraire une personne de la liste par le nom de la


personne
Exécutez et testez l’application (Ajouter trois personnes à Listepersonne)

Exercice 9 : Exception

1- Créer les 2 exceptions suivantes dont l’instanciation nécessite le passage du message


d’erreur en paramètre:
class GreaterThan42Exception : Exception
{
public GreaterThan42Exception(string msg)
: base(msg) { }
}
class LessThan12Exception : Exception
{
public LessThan12Exception(string msg)
: base(msg) { }
}

2- Créer la classe de test :

public class UserInputTest


{
public static void Main()
{
try
{
int x;
[Link]("Enter an integer between 12 and 42 : ");
x = [Link]([Link]());
if (x > 42)
throw new GreaterThan42Exception("Please enter a smaller number"); //home-
grown exception
else if (x < 12)
throw new LessThan12Exception("Please enter a bigger number"); // home-
grown exception
}
catch (GreaterThan42Exception g)
{
[Link]([Link]);
}
F. BARRAMOU P a g e 4|6
SIG/GI Module : Développement .Net
Langage C#
catch (LessThan12Exception l)
{
[Link]([Link]);
[Link]();
}
catch (Exception e)
{
[Link]([Link]);
[Link]();
}
}
}
3- Factoriser la répétition de [Link]() en utilisant un bloc finally
4- Quesque vous remarquez sur l’ordre des blocs catch ?

Exercice 10 : Delegate

1- Créer un nouveau projet console C#, remplacer le code de la classe [Link] par :
using System;
using [Link];
using [Link];
namespace exoDelegate
{
class Calcul
{
public static int somme(int a, int b)
{
return a + b;
}
public static int produit(int a, int b)
{
return a * b;
}
}
class Program
{
static void Main(string[] args)
{
int result = 0;
[Link]("premier nb svp:");
int n1 = Convert.ToInt32([Link]());
[Link]("deuxième nb svp:");
int n2 = Convert.ToInt32([Link]());
[Link]("quelle opération '+' ou '*' : ");
char choix = (char)[Link]();
switch (choix)
{
case '+':
{ result = [Link](n1, n2); break; }
case '*':
{ result = [Link](n1, n2); break; }
}
[Link]("resultat:" + [Link]());
}
}
}
2- Sans modifier la classe Calcul, mettre en oeuvre un delegate pour effectuer le même
traitement.
F. BARRAMOU P a g e 5|6
SIG/GI Module : Développement .Net
Langage C#

Exercice 11 : expression Lambda

Modifier le code suivant afin de permettre l’affichage des entiers multiples de 7 :

class Program
{
//methode pour filtrer une array list
static ArrayList filtre(ArrayList liste, Func<int, bool> f)
{
ArrayList uneListe = new ArrayList();
foreach (int i in liste)
//appel de la fonction delegate (f) pou chaque valeur de la liste
if (f((int)i))
[Link](i);
return uneListe;
}
// methode pour afficher les élements d'une arraylist
static void afficher(ArrayList ar)
{
foreach (int i in ar)
[Link](i);
}
static void Main(string[] args)
{
ArrayList maListe = new ArrayList();
for (int i = 1; i < 100; i++)
[Link](i);
afficher(filtre(maListe, a => a % 9 == 0));

}
}

F. BARRAMOU P a g e 6|6

Vous aimerez peut-être aussi