Aller au contenu

Exercices en langage C++/Version imprimable

Un livre de Wikilivres.

Ceci est la version imprimable de Exercices en langage C++.
  • Si vous imprimez cette page, choisissez « Aperçu avant impression » dans votre navigateur, ou cliquez sur le lien Version imprimable dans la boîte à outils, vous verrez cette page sans ce message, ni éléments de navigation sur la gauche ou en haut.
  • Cliquez sur Rafraîchir cette page pour obtenir la dernière version du wikilivre.
  • Pour plus d'informations sur les version imprimables, y compris la manière d'obtenir une version PDF, vous pouvez lire l'article Versions imprimables.


Exercices en langage C++

Une version à jour et éditable de ce livre est disponible sur Wikilivres,
une bibliothèque de livres pédagogiques, à l'URL :
https://fr.wikibooks.org/wiki/Exercices_en_langage_C%2B%2B

Vous avez la permission de copier, distribuer et/ou modifier ce document selon les termes de la Licence de documentation libre GNU, version 1.2 ou plus récente publiée par la Free Software Foundation ; sans sections inaltérables, sans texte de première page de couverture et sans Texte de dernière page de couverture. Une copie de cette licence est incluse dans l'annexe nommée « Licence de documentation libre GNU ».

Avant propos

Avant propos

Nous proposons ici de recueillir tous types d'exercices en langage C++, du plus basique au plus complexe. N'hésitez pas à rajouter ici et là un nouvel exercice avec sa solution.

Exemple :

Réaliser un programme qui utilise un menu pouvant effectuer les opérations suivantes :

  1. Fusion de deux vecteurs pour en faire un seul à la fin
  2. Produit d'une matrice par trace matricielle
  3. Intersection des deux vecteurs
  4. Quitter le programme.

Le programme doit permettre aussi à l'utilisateur de retourner dans le menu à chaque instruction.

N.B-Type matrice [4][4]

Remarques sur le code source

Fenêtre de console

Quand la console du système d'exploitation est une fenêtre ouverte lors du lancement d'un programme par double-clic depuis un environnement graphique, il peut être nécessaire d'ajouter le code ci-dessous en fin de programme afin de maintenir la fenêtre ouverte le temps de voir le résultat du programme affiché.

  cout << "Appuyez sur une touche pour continuer ..." << endl;
  cin.ignore();
  cin.get();

Sortie de programme

La fonction principale main retourne un entier qui est un code d'erreur interprété par le système d'exploitation, de même pour le code passé à la fonction exit(int).

  • La valeur 0 indique généralement un succès.
  • La valeur 1 indique une erreur pour certains systèmes, ou un succès pour d'autres (ex : VMS).

Plutôt que d'utiliser une valeur littérale, il est préférable d'utiliser les constantes définies dans l'entête <cstdlib> :

  • EXIT_SUCCESS pour un succès,
  • EXIT_FAILURE pour un échec.

Leurs valeurs dépendent du système pour lequel est compilé le programme.


Notions de base

Notions de base

EXERCICE 1

Écrire un programme qui affiche ceci à l'écran :

Hello world!
Voici un programme illustrant l'utilisation de cout !

EXERCICE 2

Écrire un programme qui demande à l'utilisateur de taper la largeur et la longueur d'un champ et qui en affiche le périmètre et la surface.

EXERCICE 3

Écrire un programme qui demande à l'utilisateur de taper 5 entiers et qui affiche leur moyenne. Le programme ne devra utiliser que 2 variables.

EXERCICE 4

Écrire un programme qui demande à l’utilisateur de saisir 2 entiers A et B, qui échange le contenu des variables A et B puis qui affiche A et B.

EXERCICE 5

Écrire un programme qui demande à l'utilisateur de taper le prix HT d'un kilo de tomates, le nombre de kilos de tomates achetés, le taux de TVA (Exemple 10%,20%,...). Le programme affiche alors le prix TTC des marchandises.


Structures de contrôle

Structures de contrôle

EXERCICE 1

Écrire un programme qui demande à l'utilisateur de taper un entier et qui affiche GAGNÉ si l'entier est entre 56 et 78 bornes incluses PERDU sinon.

EXERCICE 2

Écrire un programme qui affiche tous les entiers de 8 jusqu’à 23 (bornes incluses) en utilisant un for.

EXERCICE 3

Même exercice mais en utilisant un while.

EXERCICE 4

Écrire un programme qui demande à l’utilisateur de taper 10 entiers et qui affiche leur somme.

EXERCICE 5

Écrire un programme qui demande à l’utilisateur de taper 10 entiers et qui affiche le plus petit de ces entiers.

EXERCICE 6

Écrire un programme qui demande à l'utilisateur de taper un entier N et qui calcule la somme des cubes de 5^3 à N^3.

EXERCICE 7

Écrire un programme qui demande à l'utilisateur de taper un entier N et qui calcule u(N) défini par :
u(0)=3
u(n+1)=3*u(n)+4

EXERCICE 8

Écrire un programme qui demande à l'utilisateur de taper un entier N et qui calcule u(N) défini par :
u(0)=1
u(1)=1
u(n+1)=u(n)+u(n-1)

EXERCICE 9

Écrire un programme qui demande à l’utilisateur de taper un entier N entre 0 et 20 bornes incluses et qui affiche N+17. Si on tape une valeur erronée, il faut afficher "erreur" et demander de saisir à nouveau l'entier.

EXERCICE 10

Écrire un programme qui permet de faire des opérations sur un entier (valeur initiale à 0). Le programme affiche la valeur de l'entier puis affiche le menu suivant :
1. Ajouter 1
2. Multiplier par 2
3. Soustraire 4
4. Quitter


Le programme demande alors de taper un entier entre 1 et 4. Si l'utilisateur tape une valeur entre 1 et 3, on effectue l'opération, on affiche la nouvelle valeur de l'entier puis on réaffiche le menu et ainsi de suite jusqu'à ce qu'on tape 4. Lorsqu'on tape 4, le programme se termine.

EXERCICE 11

Écrire un programme qui demande à l'utilisateur de taper des entiers strictement positifs et qui affiche leur moyenne. Lorsqu'on tape une valeur négative, le programme affiche ERREUR et demande de retaper une valeur. Lorsqu'on tape 0, cela signifie que le dernier entier a été tapé. On affiche alors la moyenne. Si le nombre d'entiers tapés est égal à 0, on affiche PAS DE MOYENNE.

EXERCICE 12

Écrire un programme qui demande à l'utilisateur de taper un entier N et qui calcule u(N) défini par :
u(0)=3
u(1)=2
u(n)=n.u(n-1)+(n+1).u(n-2)+n

EXERCICE 13

Écrire un programme qui demande de saisir 10 entiers et qui affiche le nombre d'occurrences de la note la plus haute.

EXERCICE 14

Écrire un programme qui demande de saisir un entier N et qui affiche N!.

EXERCICE 15

Écrire un programme qui demande de saisir un entier et qui indique si cet entier est premier ou non.

EXERCICE 16

Écrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche le nombre de nombres premiers inférieurs ou égaux à N.

EXERCICE 17

Écrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche le N-ième nombre premier.

EXERCICE 18

Écrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche la figure suivante.

N=1
*
N=2
**
*
N=3
***
**
*

et ainsi de suite

EXERCICE 19

Écrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche la figure suivante.

N=1
*
N=2
**
 *
N=3
***
 **
  *

et ainsi de suite

EXERCICE 20

On considère la suite hongroise : u(0)=a (a entier)
si u(n) pair alors u(n+1)=u(n)/2 sinon u(n+1)=3*u(n)+1

Pour toutes les valeurs a, il existe un entier N tel que u(N)=1 (conjecture admise).

a) Écrire un programme qui demande à l'utilisateur de taper a et qui affiche toutes les valeurs de u(n) de n=1 à n=N.

b) Écrire un programme qui demande à l'utilisateur de taper un entier M puis qui cherche la valeur de a comprise entre 2 et M qui maximise la valeur de N. On appelle A cette valeur. La programme doit afficher la valeur A et la valeur N correspondante.


Les tableaux

Les tableaux

EXERCICE 1

Écrire un programme qui demande à l'utilisateur de saisir 10 entiers stockés dans un tableau. Le programme doit afficher le nombre d'entiers supérieurs ou égaux à 10.

EXERCICE 2

Écrire un programme qui demande à l'utilisateur de saisir 10 entiers stockés dans un tableau ainsi qu'un entier V. Le programme doit rechercher si V se trouve dans le tableau et afficher "V se trouve dans le tableau" ou "V ne se trouve pas dans le tableau".

EXERCICE 3

Écrire un programme qui demande à l'utilisateur de saisir 10 entiers stockés dans un tableau. Le programme doit ensuite afficher l'indice du plus grand élément.

EXERCICE 4

Écrire un programme qui demande à l'utilisateur de saisir 10 entiers stockés dans un tableau ainsi qu'un entier V. Le programme doit rechercher si V se trouve dans le tableau et doit supprimer la valeur de V et doit afficher le tableau final.

EXERCICE 5

Écrire un programme qui demande à l'utilisateur de saisir 10 entiers stockés dans un tableau ainsi qu'un entier V et un entier i compris entre 0 et 9. Le programme doit décaler d'une case vers la droite tous les éléments à partir de l'indice i (en supprimant le dernier élément du tableau) et doit mettre la valeur V dans le tableau à l'indice i. Le programme doit ensuite afficher le tableau final.

EXERCICE 6

Écrire un programme qui demande à l’utilisateur de taper 10 entiers qui seront stockés dans un tableau. Le programme doit ensuite afficher soit "le tableau est croissant", soit "le tableau est décroissant", soit "le tableau est constant", soit "le tableau est quelconque".

EXERCICE 7

Écrire un programme qui demande à l’utilisateur de taper 10 entiers qui seront stockés dans un tableau. Le programme doit trier le tableau par ordre croissant et doit afficher le tableau.
Algorithme suggéré :
On cherche l'indice du plus petit élément parmi les indices de 0 à 9 et on échange cet élément avec t[0].
On cherche l'indice du plus petit élément parmi les indices de 1 à 9 et on échange cet élément avec t[1].
On cherche l'indice du plus petit élément parmi les indices de 2 à 9 et on échange cet élément avec t[2].
... On cherche l'indice du plus petit élément parmi les indices de 8 à 9 et on échange cet élément avec t[8].

EXERCICE 8

Écrire un programme qui demande à l’utilisateur de taper 10 entiers qui seront stockés dans un tableau. Le programme doit trier le tableau par ordre croissant et doit afficher le tableau.
Algorithme suggéré (tri bulle) :
On parcourt le tableau en comparant t[0] et t[1] et en échangeant ces éléments s'ils ne sont pas dans le bon ordre.
on recommence le processus en comparant t[1] et t[2],... et ainsi de suite jusqu'à t[8] et t[9].
On compte lors de ce parcours le nombre d'échanges effectués.
On fait autant de parcours que nécessaire jusqu'à ce que le nombre d'échanges soit nul : le tableau sera alors trié.

EXERCICE 9

Écrire un programme qui saisit 2 tableaux de 10 entiers a et b. c est un tableau de 20 entiers. Le programme doit mettre dans c la fusion des tableaux a et b. On copiera dans les 10 premières cases de c le tableau a, dans les dix dernières le tableau b. Le programme affiche ensuite le tableau c.

EXERCICE 10

Écrire un programme qui saisit 2 tableaux de 10 entiers a et b qui doivent être triés dans l'ordre croissant. Le programme devra tout d'abord vérifier que les deux tableaux sont triés. Le tableau c est un tableau de 20 entiers. Le programme doit mettre dans c la fusion des tableaux a et b. Le tableau c devra contenir les éléments de a et ceux de b et devra être trié. Le programme affiche ensuite le tableau c.

EXERCICE 11

Écrire un programme qui gère une liste d'entiers grâce au menu suivant :
1. Ajouter un entier
2. Afficher la liste des entiers
3. Supprimer dernier entier de la liste.
4. Afficher la dernière note tapée
5. Quitter
Il y aura au maximum 10 entiers. Lorsqu'on rajoute un entier, il sera rajouté à la fin de la liste.

EXERCICE 12

Écrire un programme qui gère une liste d'entiers grâce au menu suivant :
1. Ajouter un entier
2. Afficher la liste des entiers
3. Supprimer le premier entier ayant une valeur donnée.
4. Supprimer tous les entiers ayant une valeur donnée
5. Quitter
Il y aura au maximum 10 entiers. La liste devra être en permanence triée : lorqu'on rajoute un entier, il sera inséré au bon endroit dans la liste pour que celle-ci reste triée.

EXERCICE 13

Écrire un programme qui demande à l'utilisateur de taper un entier N<=20 et qui affiche la N-ième ligne du triangle de pascal.
ligne 1 : 1 1
ligne 2 : 1 2 1
ligne 3 : 1 3 3 1
ligne 4 : 1 4 6 4 1
et ainsi de suite ...

EXERCICE 14

Écrire un programme qui demande à l'utilisateur de taper 10 entiers compris entre 0 et 20 qui seront stockés dans un tableau et qui affiche le nombre de fois qu'on a tapé un 0, le nombre de 1, le nombre de 2, ..., le nombre de 20.

EXERCICE 15

Écrire un programme qui demande à l'utilisateur de taper le contenu d'un tableau de réels de 3 lignes et 3 colonnes et qui affiche ce tableau mais en affichant la moyenne des éléments de chaque ligne, de chaque colonne et la moyenne globale.


Les tableaux de char

Les tableaux de caractères

Exercice 1

Écrire une fonction qui a en paramètres une chaîne de caractères (paramètre en entrée) et un entier e (paramètre en sortie). Cette fonction renvoie un booléen. La fonction renvoie true si la chaîne de caractères est un entier écrit sous la forme d'une suite de chiffres qui ne commence pas par 0, elle renvoie false sinon. Si la chaîne est correcte, la fonction renvoie dans e la valeur de cet entier.

Exercice 2

Écrire une fonction qui a en paramètre une chaîne de caractères (paramètre en entrée et en sortie) et qui transforme toutes les minuscules de la chaîne en majuscules.

Exercice 3

Écrire une fonction qui a en paramètre une chaîne de caractères (paramètre en entrée et en sortie) et qui supprime toutes les voyelles.

Exercice 4

Écrire une fonction qui a en paramètres deux chaînes de caractères ch1 et ch2 (paramètres en entrée) et renvoie un booléen indiquant si la chaîne ch2 est contenue dans la chaîne ch1.

Exercice 5

Écrire un programme qui demande à l’utilisateur de taper un verbe du premier groupe et qui le conjugue à l'indicatif présent.

Exercice 6

Écrire un programme qui saisit une chaîne pouvant contenir des espaces et qui affiche chaque mot de la chaîne, le séparateur étant l’espace.
Exemple, on tape : je pense donc je suis
Le programme affiche :
mot 1 : je
mot 2 : pense
mot 3 : donc
mot 4 : je
mot 5 : suis

Exercice 7

Écrire un programme qui demande à l’utilisateur de taper une chaîne de caractères et qui indique si cette chaîne est un palindrome ou non.

Éxercice 8

Écrire un programme qui demande à l’utilisateur de taper une chaîne de caractères et qui affiche la lettre (minuscule ou majuscule) la plus fréquente.


Les structures

Écrire un programme permettant de saisir les informations concernant N élèves sachant que :

  • 10 < N < 30
  • La structure contenant les informations de chaque élève doit comporter les champs suivants :
    • nom : chaine[10]
    • prenom : chaine[10]
    • note_ds : réel
    • coef_ds : entier
    • note_ex : réel
    • moyenne : réel
  • on peut ranger ces structures d'informations dans un tableau.
  • on doit afficher le nom,le prénom et la moyenne de chaque élève sachant que :
moyenne=((note_ds*coef_ds+note_ex*coef_ex)/(coef_ds+coef_ex)).


Les fonctions

Les fonctions

EXERCICE 1

Écrire une fonction distance ayant comme paramètres 4 doubles xa,ya et xb,yb qui représentent les coordonnées de deux points A et B et qui renvoie la distance AB. Tester cette fonction.

EXERCICE 2

Écrire une fonction f ayant comme paramètres un double x et un booléen ok et qui renvoie un double par un return. La fonction renvoie par un return la racine carrée de (x-1)*(2-x). La fonction renvoie par l'intermédiaire de la variable ok la valeur true si la fonction est définie au point x, false sinon. Tester cette fonction.

EXERCICE 3

Écrire une fonction f ayant en paramètre un entier et qui renvoie par un return un booléen : true si l'entier est premier false sinon. Tester cette fonction.

EXERCICE 4

Écrire une fonction f ayant comme paramètre un entier n et qui renvoie le n-ième nombre premier : cette fonction utilisera la fonction du 3). Tester cette fonction.

EXERCICE 5

Écrire une fonction swap ayant en paramètres 2 entiers a et b et qui échange les contenus de a et de b. Tester cette fonction.

EXERCICE 6

Écrire une fonction f ayant en paramètres un tableau t de taille quelconque et un entier n indiquant la taille du tableau. f doit renvoyer par un return un booléen b indiquant s'il existe une valeur comprise entre 0 et 10 dans les n premières cases du tableau t. Tester cette fonction.

EXERCICE 7

Écrire une fonction f ayant en paramètres un tableau t de taille quelconque et un entier n indiquant la taille du tableau. f doit renvoyer par un return le nombre de valeurs comprises entre 0 et 10 dans les n premières cases du tableau t.Tester cette fonction.

EXERCICE 8

Écrire une fonction f ayant en paramètres un tableau t de taille quelconque et un entier n indiquant la taille du tableau. f possède un autre paramètre v , entier passé par référence. f doit renvoyer par un return un booléen b indiquant s'il existe une valeur comprise entre 1 et 10 dans les n premières cases du tableau t. Si f renvoie true, v est égal à la valeur de la première case du tableau comprise entre 0 et 10. Tester cette fonction.

EXERCICE 9

Écrire une fonction f ayant en paramètres un tableau t1 de taille quelconque et un entier n indiquant la taille du tableau, ainsi qu'un tableau t2 de la même taille que t1. f doit renvoyer par un return un entier nb indiquant le nombre de valeurs comprises entre 0 et 10 dans le tableau t1. f doit mettre dans le tableau t2 les différentes valeurs comprise entre 0 et 10 qu'il a rencontrées dans le tableau t1.

EXERCICE 10

Écrire une fonction f ayant en paramètres un tableau t de taille quelconque et un entier n indiquant la taille du tableau. f doit renvoyer par un return un entier égal à l'indice de la première case du tableau (parmi les n premières) comprise entre 0 et 10. S'il n'existe pas de telle valeur, la fonction renvoie -1. Tester cette fonction.


Les classes

EXERCICE 1 : Rectangle

Écrire un programme utilisant une classe rectangle dont le constructeur prend deux paramètres, largeur et hauteur et qui offre les fonctions suivantes :

  • calcul du périmètre,
  • calcul de la surface,
  • affichage,
  • ainsi que les accesseurs et mutateurs triviaux (lecture et modification de la largeur et de la hauteur).

EXERCICE 2 : Pile d'entiers (stack)

Une pile est un ensemble dynamique d’éléments où le retrait se fait d’une façon particulière. En effet, lorsque l’on désire enlever un élément de l’ensemble, ce sera toujours le dernier inséré qui sera retiré. Un objet pile doit répondre aux fonctions suivantes :

  • Initialiser une pile,
  • Empiler un élément sur la pile (push),
  • Dépiler un élément de la pile (pop).

Pour cela nous allons supposer que les éléments à empiler sont de type int.

Le programme principal comprend la définition d'une classe pile et un programme de test qui crée deux piles p1 et p2, empile dessus des valeurs entières et les dépile pour vérifier les opérations push et pop.

EXERCICE 3 : Fichier

Imaginons une application qui traite des fichiers. Ces fichiers vont être lus en mémoire, traités puis sauvegardés. Une fois lu en mémoire, un fichier a deux caractéristiques, une adresse à partir de laquelle se situe le fichier et une longueur, ce qui se concrétisera par un pointeur et une longueur en nombre d’octets. Imaginons la classe "Fichier" avec un constructeur et un destructeur et les trois méthodes suivantes :

  • la méthode "creation" qui va allouer un certain espace à partir du pointeur p,
  • la méthode "remplit" qui va remplir arbitrairement cet espace (ces remplissages arbitraires sont la preuve de la bonne gestion mémoire car l’accès à une zone non déclarée provoque une violation d’accès),
  • la méthode "affiche" qui va afficher la zone mémoire pointée par p.

Puis écrivons un programme maître qui instancie notre classe par new, appelle nos trois méthodes et détruit l’objet par delete.

EXERCICE 4 : Point

Réaliser une classe point permettant de manipuler un point d'un plan. On prévoira :

  • les coordonnées x et y du point en membres privés,
  • un constructeur (vous pouvez également implémenter les trois types de constructeur),
  • une fonction membre déplace effectuant une translation définie par ses deux arguments dx et dy (double),
  • une fonction membre affiche affichant les coordonnées cartésiennes du point,
  • une fonction membre saisir permettant de saisir les coordonnées cartésiennes du point,
  • une fonction membre distance effectuant calculant la distance entre deux points,
  • une fonction membre milieu donnant le milieu d'un segment.

On écrira séparément :

  • un ficher source constituant la déclaration et la définition de la classe,
  • un petit programme d'essai gérant la classe point.

EXERCICE 5 : Compteur

On souhaite implémenter une classe représentant un compteur entier. Un tel objet se caractérise par :

  • Une valeur entière, positive ou nulle, nulle à l'origine.
  • Le fait qu'il ne peut varier que par pas de 1 (incrémentation ou décrémentation). On convient qu'une décrémentation d'un compteur nul est sans effet.

Il s'agit de créer une classe Compteur pour rendre le service demandé. On écrira en outre un petit programme de test qui :

  1. créera un compteur et affichera sa valeur ;
  2. l'incrémentera 10 fois, puis affichera à nouveau sa valeur ;
  3. le décrémentera 20 fois, puis affichera une troisième fois sa valeur.

La sortie de ce programme doit donner quelque chose comme :

0
10
0

EXERCICE 6 : Gestion d'étudiants

1/ On voudrait gérer les étudiants d’une institution à l’aide d’une classe Etudiant définie par :

les attributs suivants :

- nom : nom d’un étudiant

- prénom: prénom d’un étudiant

- tabnotes : tableau contenant les notes d’un étudiant, sachant qu’un étudiant a au total 10 notes.

les méthodes suivantes :

- void saisie (), permettant la saisie d’un étudiant

- void affichage (), permettant l’affichage d’un étudiant

- float moyenne (), retourne comme résultat la moyenne des notes d’un étudiant.

- int admis (), retourne comme résultat la valeur 1, si un étudiant est admis et la valeur 0, sinon. Un étudiant est considéré comme étant

admis lorsque la moyenne de ses notes est supérieure ou égale à 10.

- int exae_quo (Etudiant E), retourne comme résultat la valeur 1, si deux étudiants ont la même moyenne et la valeur 0, sinon.

Ecrire la classe Etudiant dans le langage C++.

2/ On voudrait maintenant représenter, à l’aide d’une nouvelle classe Etudiant_en_Maitrise, certains étudiants particuliers dans cette

institution qui sont les étudiants en dernière année d’études. Ces étudiants possèdent en effet un attribut supplémentaire : note_memoire,

qui représente la note de leur mémoire de fin d’études.

Les méthodes à associer à cette classe sont les suivantes :

- void saisie (), permettant la saisie d’un étudiant en maîtrise

- void affichage (), permettant l’affichage d’un étudiant en maîtrise

- float moyenne (), retourne comme résultat la moyenne des notes d’un étudiant en maîtrise

- int admis (), retourne comme résultat la valeur 1, si un étudiant est admis et la valeur 0, sinon. Un étudiant en maîtrise est considéré

comme étant admis lorsque, d’une part, la moyenne de ses notes est supérieure ou égale à 10 et d’autre part la note obtenue pour son mémoire

de fin d’études est supérieure ou égale à 10.

- int exae_quo (Etudiant_en_Maitrise E), retourne comme résultat la valeur 1, si deux étudiants ont d’une part la même moyenne et d’autre

part, la même note de mémoire et retourne la valeur 0, sinon.

a) Quelles sont les méthodes qui sont à redéfinir dans la classe Etudiant_en_Maitrise ?

b) Ecrire la classe Etudiant_en_Maitrise dans le langage C++.


Les templates

Exercice 1

[MOYEN]

Requis:

  • manipulation de tableaux,
  • savoir créer une fonction template.

Créez une fonction "trier" pour trier un tableau de 10 données avec un tri par sélection. Le tableau devra être de n'importe quel type. Cette fonction utilisera une autre fonction, "échanger", pour échanger les éléments du tableau.

Exercice 2 : Fonction Template

[FACILE] Requis : Savoir créer et utiliser une fonction Template


1) Créer une fonction Template qui permettra de faire une somme entre un int et un float,

2) faire une spécialisation de la fonction en std::string, qui retournera la somme de la taille des deux chaînes.





Exercice 3 : Classe Template

[FACILE-MOYEN] Requis : Savoir créer une classe Template


1) Créer une classe Template "Rectangle" prenant en paramètre les coordonnées de celui-ci sur un graphique(x,y). Évidemment, le type des attributs et des méthodes renvoyant une valeur (si il y en a) dépendront donc du paramètre Template rentré au préalable.

2) Créer une méthode retournant sa hauteur et son aire.


---AIDE :---

Voici comment déclarer votre Objet Rectangle dans le main() : Rectangle<float> myRectangle(1.2, 2.6, 1.5, 4.1);

Exercice 4

[MOYEN-DIFFICILE]

Requis:

  • savoir utiliser les pointeurs et l'allocation dynamique de mémoire,
  • savoir créer une classe template,
  • savoir créer une structure.

Créez une classe liste simplement chaînée, avec une classe liste. Cette classe a un pointeur sur le premier élément de la liste. Elle a une méthode pour ajouter ou supprimer un élément au début de la liste et une pour afficher la liste en entier. Évitez toute fuite mémoire. Les éléments de la liste seront contenu dans la structure element.


La STL

La STL

EXERCICE 1 : La classe string

Soit une chaîne de caractères contenant une date (JJ/MM/AAAA) et une heure (HH:NN) sous la forme JJMMAAAAHHNN. Par exemple 010920091123 représente la date du 1er septembre 2009 à 11h23.

Créer un programme permettant d'extraire les différents champs et de les afficher.


Les fichiers

Les fichiers : Lecture et écriture en mode texte

EXERCICE 1

Écrire un programme qui écrit dans le fichier example.txt le texte:

Hello world!
Voici un programme illustrant l'écriture dans un fichier

EXERCICE 2

Écrire un programme qui lit le fichier example.txt définit dans l'exemple précédent et affiche son contenu :
Vous devriez obtenir :

Hello world!
Voici un programme illustrant l'écriture dans un fichier

Les fichiers : Lecture et écriture en mode binaire

EXERCICE 1

Proposez un programme qui écrit en binaire une chaîne de caractère suivant de la liste des entiers de 0 à 1000 :

Liste des entiers de 1 à 1000
0
1
2
...
1000

EXERCICE 2

Proposez un programme qui lit le fichier écrit en binaire de l'exercice précédent et affiche son contenu. Vous devriez obtenir :

Liste des entiers de 1 à 1000
0
1
2
...
1000

Liens Externes

GFDL GFDL Vous avez la permission de copier, distribuer et/ou modifier ce document selon les termes de la licence de documentation libre GNU, version 1.2 ou plus récente publiée par la Free Software Foundation ; sans sections inaltérables, sans texte de première page de couverture et sans texte de dernière page de couverture.