Exercice 1 : Calcul du Prix TTC
Écrivez un programme qui demande à l'utilisateur :
- De saisir le nom d'un produit.
- De saisir le prix hors TVA (Taxe sur la Valeur Ajoutée) du produit.
Le programme devra ensuite afficher le nom du produit et son prix TTC (Toutes Taxes Comprises), en considérant un taux de TVA de 20%.
La phrase finale à afficher doit être : "Le prix du {produit} TTC est de xx DH"
Explication : La TVA est un impôt indirect perçu sur la consommation. Pour calculer le prix TTC à partir du prix hors TVA, on utilise la formule : Prix TTC = Prix HT * (1 + Taux de TVA). Dans cet exercice, le taux de TVA est de 20%, soit 0.20.
Exercice 2 : Résolution d'une Équation du Second Degré
Écrivez un programme C# pour résoudre dans l'ensemble des nombres réels (R) une équation du second degré de la forme : Ax² + Bx + C = 0.
Le programme devra demander à l'utilisateur de saisir les coefficients A, B et C, puis afficher les solutions de l'équation.
Rappel : La nature des solutions dépend du discriminant Δ (Delta), calculé comme Δ = B² - 4AC.
- Si Δ > 0, il y a deux solutions réelles distinctes.
- Si Δ = 0, il y a une unique solution réelle (double).
- Si Δ < 0, il n'y a pas de solutions réelles.
Exercice 3 : Détection des Nombres de Armstrong
Un nombre de Armstrong (ou nombre narcissique parfait) est un entier naturel qui est égal à la somme des cubes des chiffres qui le composent.
Exemple : Le nombre 153 est un nombre de Armstrong car 153 = 1³ + 5³ + 3³ = 1 + 125 + 27.
Il est connu qu'il n'existe que quatre nombres de Armstrong composés de trois chiffres (ils sont compris entre 100 et 500).
L'exercice consiste à écrire un programme pour trouver ces nombres. Si l'on suppose qu'un tel nombre est écrit ijk (où i est le chiffre des centaines, j le chiffre des dizaines et k le chiffre des unités), il suffit d'envisager tous les nombres possibles en faisant varier les chiffres entre 0 et 9 et de tester si le nombre est de Armstrong.
Exercice 4 : Gestion des Notes d'Apprenants
Écrire une méthode NoteApprenant
Cette méthode demandera à l'utilisateur de saisir :
- Le nombre d'apprenants dans un groupe.
- Les notes de chaque apprenant, selon le nombre spécifié.
Puis la méthode affichera :
- Toutes les notes saisies.
- La somme des notes.
- La plus grande note obtenue.
- La plus petite note obtenue.
- La moyenne des notes du groupe.
Exercice 5 : Manipulation de Tableau d'Entiers
Cet exercice se compose de plusieurs parties, toutes centrées sur la manipulation d'un tableau d'entiers.
- Déclarez un tableau de type
intcapable de contenir 20 entiers. - Écrivez une méthode
RemplirTabqui permet de remplir ce tableau avec des entiers générés aléatoirement entre 1 et 100. - Écrivez une méthode
AfficheTabqui permet d'afficher tous les éléments du tableau. - Écrivez une méthode
RechercheTableauqui demande à l'utilisateur de saisir un entier au clavier et qui recherche si cet entier appartient au tableau. - En cas de réponse positive (l'entier est trouvé), affichez l'indice de cet entier dans le tableau. S'il y a plusieurs occurrences du même entier, le dernier indice trouvé doit être affiché.
- En cas de réponse négative (l'entier n'est pas trouvé), affichez un message approprié.
Exercice 6 : Détection de Phrase Palindrome
Une phrase est dite palindrome si, en éliminant les espaces entre les mots et en ignorant la casse et la ponctuation, elle représente la même lecture dans les deux sens.
Exemples :
- « Élu par cette crapule »
- « Engage le jeu que je le gagne »
- « Mon nom »
Écrire les méthodes compresser et Inverser
Il est demandé d'écrire deux versions de la méthode Inverser :
- La première version de la méthode
Inverserconstruira une chaîne locale à la méthode, caractère par caractère, en utilisant une boucleforavec un seul indice. - La deuxième version de la méthode
Inversermodifiera les positions des caractères ayant des positions symétriques dans la chaîne, en utilisant une boucleforà deux indices et un tableau de caractères (char[]).
Exercice 7 : Conversion de Date Numérique en Clair
Construisez un programme permettant, lorsqu'on lui fournit une date sous la forme numérique (par exemple, 3/2/5), de la convertir en une date en toutes lettres (par exemple, mercredi 2 mai).
Le format numérique est le suivant :
- Le premier chiffre (ex: 3) indique le numéro du jour de la semaine (lundi=1, dimanche=7).
- Le deuxième chiffre (ex: 2) indique le jour du mois.
- Le troisième chiffre (ex: 5) indique le numéro du mois.
Le programme devra prendre en compte les différentes ponctuations de séparation possibles pour la date numérique : « / », « . », « : », « - ».
Exemple de conversion : 3/2/5 est converti en mercredi 2 mai.
Exercice 8 : Incrémentation de Tableau avec Différentes Méthodes
Le but de cet exercice est d'écrire trois méthodes pour incrémenter les éléments d'un même tableau, en explorant différentes formes de paramétrage. Vous déclarerez ces trois méthodes comme des méthodes de classe (static) afin de pouvoir les utiliser directement depuis la méthode principale (Main), comme s'il s'agissait de simples fonctions.
Dans la méthode principale, déclarez et initialisez un tableau d'entiers qui vous servira de base pour tester ces trois méthodes. Utilisez des boucles foreach pour afficher les différents résultats après chaque appel de méthode.
Méthode IncTab
Cette méthode prend en argument un tableau d'entiers et incrémente chaque case du tableau de 1. Après l'appel de cette méthode, le tableau fourni en argument est modifié directement (passage par référence).
Utilisez une boucle for pour parcourir et modifier le tableau.
Méthode IncNewTab
Cette méthode prend en paramètre un tableau d'entiers et retourne un nouveau tableau de même taille. Ce nouveau tableau contiendra les valeurs du tableau passé en paramètre, mais incrémentées de 1.
Méthode IncNewTabOut
Cette méthode prend en paramètre un tableau d'entiers et retourne le résultat de l'incrémentation dans un autre tableau, également passé en paramètre, mais avec le mot-clé out. Le deuxième tableau en sortie (celui marqué out) doit contenir les éléments du premier tableau incrémentés de 1.
Foire Aux Questions (FAQ)
Qu'est-ce qu'un nombre de Armstrong ?
Un nombre de Armstrong est un entier naturel qui est égal à la somme des cubes de ses chiffres. Par exemple, 153 est un nombre de Armstrong car 1³ + 5³ + 3³ = 1 + 125 + 27 = 153. Ces nombres sont rares et sont souvent utilisés dans des exercices de programmation pour illustrer les boucles et les manipulations de chiffres.
Quelle est la différence entre le passage de paramètres par valeur et par référence en C# ?
En C#, le passage par valeur (par défaut pour les types valeur et les objets) signifie qu'une copie de la variable est transmise à la méthode, donc les modifications à l'intérieur de la méthode n'affectent pas la variable originale. Le passage par référence (avec ref ou out, ou pour les types référence comme les tableaux) signifie que la méthode travaille directement sur la variable originale, et toute modification affecte la variable d'origine.
À quoi sert le mot-clé out en C# ?
Le mot-clé out est utilisé pour passer des arguments par référence. Il est similaire à ref, mais la variable passée avec out n'a pas besoin d'être initialisée avant d'être passée. En revanche, la méthode appelée doit obligatoirement assigner une valeur à ce paramètre out avant de se terminer. Il est souvent utilisé pour permettre à une méthode de retourner plusieurs valeurs.