Université de Gafsa
ISAE Gafsa
Année universitaire : 2026/2027
2ème année Licence Business Computing

Travaux Dirigés

Framework .NET (C#) — Chapitre 1 : Introduction au langage C#

Enseignant : Boubaker KHMILI
Partie 1 : Structure d'un programme C#
Exercice 1 : Compléter le squelette

Complétez le programme suivant pour qu'il affiche "Bienvenue à l'ISAE Gafsa !" :

________ System; ________ MonProgramme { ________ Program { static void _________(string[] args) { Console._________("Bienvenue à l'ISAE Gafsa !"); } } }
Exercice 2 : Identifier les erreurs

Le programme suivant contient 6 erreurs. Identifiez-les et proposez les corrections :

Using System namespace monApplication { class Program { static void main(string[] args) { Console.Writeline("Bonjour") Console.ReadLine() } } }
ErreurCorrection
1
2
3
4
5
6
Exercice 3 : Remettre en ordre

Remettez les lignes suivantes dans le bon ordre pour former un programme valide :

A. Console.WriteLine("Hello World!"); B. class Program C. namespace Application D. static void Main(string[] args) E. using System; F. } G. { H. } I. { J. } K. {

Ordre correct : _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____

Partie 2 : Variables, types et opérateurs
Exercice 4 : Choix du type approprié

Pour chaque donnée, indiquez le type C# le plus approprié :

DonnéeType C#
L'âge d'une personne
Le prix d'un produit (précision financière)
Le nom d'un étudiant
La première lettre d'un mot
Un étudiant est-il inscrit ou non
La population mondiale
La température avec décimales
Un code postal tunisien (ex: 2100)
Exercice 5 : Déclarations correctes

Indiquez si chaque déclaration est Correcte (C) ou Incorrecte (I). Si incorrecte, expliquez :

DéclarationC/IExplication si incorrecte
int nombre = 100;
double 2prix = 19.99;
string nom = 'Ali';
var x = 10;
var y;
const int MAX;
float f = 3.14f;
char c = "A";
bool test = 1;
int class = 5;
Exercice 6 : Évaluation d'expressions

Calculez le résultat de chaque expression :

ExpressionRésultatType
17 / 5
17 % 5
17 / 5.0
10 + 3 * 2
(10 + 3) * 2
15 / 4 + 15 % 4
true && false || true
!(5 > 3) || (10 <= 10)
5 > 3 ? "A" : "B"
(int)3.9 + (int)2.1
Exercice 7 : Traçage de variables

Tracez l'exécution du code suivant en complétant le tableau :

int a = 5; int b = 10; int c = a + b; a = b - a; b = c - a; c = a + b; a += 2; b -= 3; c *= 2;
Instructionabc
int a = 5;
int b = 10;
int c = a + b;
a = b - a;
b = c - a;
c = a + b;
a += 2;
b -= 3;
c *= 2;

Valeurs finales : a = _______ , b = _______ , c = _______

Partie 3 : Structures conditionnelles
Exercice 8 : if / else — Parité

Écrivez un code qui vérifie si un nombre entier n est pair ou impair et affiche le résultat.

Exercice 9 : if / else if — Classification d'âge

Écrivez un code qui classe une personne selon son âge :

  • 0-12 ans : "Enfant"
  • 13-17 ans : "Adolescent"
  • 18-64 ans : "Adulte"
  • 65 ans et plus : "Senior"
Exercice 10 : if imbriqués — Maximum de trois nombres

Écrivez un code qui détermine le maximum de trois nombres a, b et c en utilisant des if imbriqués.

Exercice 11 : switch — Calculatrice simple

Écrivez un code qui effectue une opération arithmétique entre deux nombres a et b selon un opérateur op (char : '+', '-', '*', '/'). Utilisez switch.

Gérez le cas de la division par zéro et le cas d'un opérateur invalide.

Exercice 12 : switch — Nombre de jours

Écrivez un code qui affiche le nombre de jours d'un mois donné (1-12). Février = 28 jours.

Utilisez la possibilité de regrouper plusieurs cas.

Exercice 13 : Traçage conditionnel

Déterminez la sortie du code suivant pour les valeurs données :

int x = /* valeur */; string resultat; if (x < 0) resultat = "Négatif"; else if (x == 0) resultat = "Nul"; else if (x < 10) resultat = "Petit"; else if (x < 100) resultat = "Moyen"; else resultat = "Grand"; resultat += x % 2 == 0 ? " Pair" : " Impair"; Console.WriteLine(resultat);
Valeur de xSortie affichée
-5
0
7
50
100
Partie 4 : Structures itératives
Exercice 14 : Boucle for — Table de multiplication

Écrivez un code qui affiche la table de multiplication d'un nombre n (de 1 à 10).

Exercice 15 : Boucle for — Somme et moyenne

Écrivez un code qui calcule la somme et la moyenne des entiers de 1 à N.

Exercice 16 : Boucle for — Factorielle

Écrivez un code qui calcule la factorielle d'un nombre n. (n! = 1 × 2 × ... × n, et 0! = 1)

Exercice 17 : Boucle while — Nombre de chiffres

Écrivez un code qui compte le nombre de chiffres d'un entier positif n. (Ex: 12345 → 5)

Exercice 18 : Boucle while — Somme des chiffres

Écrivez un code qui calcule la somme des chiffres d'un entier positif n. (Ex: 12345 → 15)

Exercice 19 : Boucle do-while — Validation de saisie

Écrivez un code qui demande un nombre entre 1 et 100 et redemande tant que la valeur n'est pas valide.

Exercice 20 : Boucle do-while — Menu interactif

Écrivez un code qui affiche un menu et exécute l'action jusqu'au choix "Quitter" :

  • 1. Afficher "Bonjour"
  • 2. Afficher "Au revoir"
  • 3. Quitter
Exercice 21 : Traçage de boucles

Code A :

for (int i = 1; i <= 5; i++) { for (int j = 1; j <= i; j++) Console.Write("*"); Console.WriteLine(); }

Sortie A :

Code B :

int s = 0; for (int i = 1; i <= 10; i++) { if (i % 3 == 0) continue; if (i > 7) break; s += i; } Console.WriteLine(s);

Sortie B : ______________

Code C :

int n = 5, f = 1; while (n > 1) { f *= n; n--; } Console.WriteLine(f);

Sortie C : ______________

Partie 5 : Tableaux unidimensionnels
Exercice 22 : Déclarations de tableaux

Indiquez si chaque déclaration est correcte (C) ou incorrecte (I) :

DéclarationC/I
int[] tab = new int[5];
int tab[] = new int[5];
int[] tab = {1, 2, 3};
int[] tab = new int[];
var tab = new int[] {1, 2};
int[] tab = new int[3] {1, 2, 3, 4};
Exercice 23 : foreach — Affichage

Écrivez un code qui affiche tous les éléments d'un tableau de chaînes prenoms en utilisant foreach.

Exercice 24 : Maximum et minimum

Écrivez un code qui trouve le maximum et le minimum d'un tableau d'entiers, ainsi que leurs positions.

Exercice 25 : Compter les occurrences

Écrivez un code qui compte combien de fois une valeur x apparaît dans un tableau d'entiers.

Exercice 26 : Inverser un tableau

Écrivez un code qui inverse les éléments d'un tableau sur place (sans second tableau).

Exercice 27 : Traçage tableaux
int[] tab = {2, 5, 1, 8, 3}; int result = 0; for (int i = 0; i < tab.Length; i++) { if (tab[i] % 2 == 0) result += tab[i]; else result -= tab[i]; } Console.WriteLine(result);

Sortie : ______________ — Explication : ___________________________________________

Partie 6 : Tableaux bidimensionnels (Matrices)
Exercice 28 : Déclaration et accès

Soit la matrice :

int[,] mat = { {1,2,3}, {4,5,6}, {7,8,9} };
ExpressionValeur
mat[0, 0]
mat[1, 2]
mat[2, 1]
mat.GetLength(0)
mat.GetLength(1)
mat[0, 2] + mat[2, 0]
Exercice 29 : Somme des éléments

Écrivez un code qui calcule la somme de tous les éléments d'une matrice d'entiers.

Exercice 30 : Somme par ligne

Écrivez un code qui affiche la somme de chaque ligne d'une matrice.

Exercice 31 : Diagonale principale

Écrivez un code qui affiche les éléments de la diagonale principale d'une matrice carrée et calcule leur somme.

Exercice 32 : Transposée

Écrivez un code qui calcule la transposée d'une matrice M×N. (T[j,i] = M[i,j])

Exercice 33 : Traçage matrice
int[,] m = { {1,2,3}, {4,5,6}, {7,8,9} }; int s1 = 0, s2 = 0; for (int i = 0; i < 3; i++) { s1 += m[i, i]; s2 += m[i, 2 - i]; } Console.WriteLine($"S1={s1}, S2={s2}");

Sortie : ______________________ — Que représentent s1 et s2 ? ______________________

Partie 7 : Exercices de synthèse
Exercice 34 : Nombre premier

Écrivez un code complet qui vérifie si un nombre n est premier.

Exercice 35 : Tri à bulles

Écrivez un code qui trie un tableau d'entiers en ordre croissant avec l'algorithme du tri à bulles.

Principe : Comparer les éléments adjacents et les échanger s'ils sont mal ordonnés. Répéter jusqu'à ce qu'aucun échange ne soit nécessaire.

Exercice 36 : Statistiques d'une classe

Une classe de 5 étudiants a 3 matières (matrice 5×3). Écrivez un code qui :

  • Calcule la moyenne de chaque étudiant
  • Calcule la moyenne de chaque matière
  • Trouve l'étudiant ayant la meilleure moyenne générale