# TP C#
Proposition de correction : https://dotnetfiddle.net/6TeGqn
## Première partie
1. Compéltez le code suivant pour afficher un message à l'écran
```csharp
using System;
public class Program
{
public static void Main()
{
Console.WriteLine("...");
}
}
```
2. Déclarez et initialisez 4 variables qui contiendront le nom, prénom, age et la moyenne d'un étudiant.
3. Affichez les valeurs des quatres variables.
Exemple d'output :
```csharp
Nom : Benabbou, Prénom : Azzeddine, age : 32, moyenne : 15.5
```
4. Déclarez et initialisez un tableau de réels qui contiendra 4 notes.
5. En utilisant une boucle, affichez toutes les notes du tableau.
7. Utilisez un dictionnaire à la place du tableau de notes. Les clés du dictionnaires représentent les noms des modules, et les valeurs correspondent aux notes reçues dans chaque module. Ajoutez ensuite au moins 3 modules-notes.
```csharp
Dictionary<string, double> notes = new Dictionary<string, double>();
```
8. Créez une fonction ```AfficherNotes``` qui permet d'afficher l'ensemble des modules et leurs notes.
```csharp
public static void afficherNotes(Dictionary<string, double> notes)
```
10. Créez une fonction `calculMax` qui renvoie la note maximale. Utilisez `using System.Linq;` s'il le faut.
```csharp
public static float calculMax(Dictionary<string, double> notes)
```
12. Créez une fonction `calculMin` qui renvoie la note minimale.
```csharp
public static float calculMin(Dictionary<string, float> notes)
```
14. Creez une fonction `calculMoyenne` qui renvoie la moyenne des notes.
```csharp
public static float calculMoyenne(Dictionary<string, float> notes)
```
---
## Deuxième partie
12. Créer une classe Personne qui contient les attributs publiques (variables) Nom, Prenom et Age
13. Créer un constructeur qui permet de construire un objet en précisant un Nom, Prenom et un Age.
```csharp
public Personne(string name, string firstName, int age){
...
}
```
14. Créez les getters et les setters des attributs. Dans le setter de l'attribut *Age* vérifiez que le paramètre entré n'est pas négatif.
15. Créez une classe ```Etudiant``` qui hérite de la classe ```Personne``` et ajoutez une propriété ```Notes``` qui consiste en un dictionnaire <module, note> (voir plus haut)
```csharp
public class Etudiant : Personne {
}
```
16. Créez un constructeur à trois paramètres : name, firstName et age, qui initialise ces éléments et initialise également le dictionnaire de notes.
```csharp
public Etudiant(string name, string firstName, int age) ... {
...
}
```
17. Créez une méthode (fonction) `AjouterNote` dans la classe `Etudiant` qui permet d'ajouter un module et sa note au dictionnaire de notes.
```csharp
public void AjouterNote(string module, float note){
}
```
19. Créez une fonction qui affiche le nom, prénom, age et les notes de l'étudiant. Pour afficher les notes, pensez à utiliser la fonction ```AfficherNotes``` développée plus haut en l'intégrant dans la classe ```Etudiant```
```csharp
private void afficherNotes(Dictionary<string, float> notes){{
...
}
```