I. 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.
Réaliser un programme qui utilise un menu pouvant effectuer les opérations suivantes :
- Fusion de deux vecteurs ;
- Produit d'une matrice par trace matricielle ;
- Permettre une ligne matricielle ;
- Quitter le programme.
Le programme doit permettre aussi a l'utilisateur de retourner dans le menu à chaque instruction.
N.B. Type matrice [4][4].
II. IHM/Notions de base▲
II-A. Exercice 1▲
Écrire un programme qui affiche ceci à l'écran:
Hello world!
Voici un programme illustrant l'utilisation de cout!
Cet exercice a pour but de vérifier le point technique suivant :
- l'utilisation de cout et de endl.
Solution
Voici le fichier source :
#include
<iostream>
using
namespace
std;
int
main(int
argc, char
**
argv)
{
cout <<
"Hello world!"
<<
endl;
cout <<
"Voici un programme illustrant l'utilisation de cout!"
;
cout <<
"Appuyez sur une touche pour continuer ..."
<<
endl;
cin.ignore();
cin.get();
return
EXIT_SUCCESS;
}
II-B. 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.
Solution
#include
<iostream>
using
namespace
std;
int
main()
{
double
largeur,longueur,surface, perimetre;
cout <<
"Tapez la largeur du champ : "
; cin >>
largeur;
cout <<
"Tapez la longueur du champ : "
; cin >>
longueur;
surface =
largeur *
longueur;
perimetre =
2
*
(largeur +
longueur);
cout <<
"La surface vaut : "
<<
surface <<
endl;
cout <<
"Le perimetre vaut : "
<<
perimetre <<
endl;
cout <<
"Appuyez sur une touche pour continuer."
<<
endl;
cin.ignore();
cin.get();
return
EXIT_SUCCESS;
}
II-C. Exercice 3▲
Écrire un programme qui demande à l'utilisateur de taper cinq entiers et qui affiche leur moyenne. Le programme ne devra utiliser que deux variables.
Cet exercice a pour but de vérifier les points techniques suivants :
- la notion de variables et leur déclaration ;
- calcul de la moyenne ;
- utilisation des types int et double ;
- l'utilisation de cin et de cout ;
- l'affectation.
Solution
Voici le fichier source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
a;double
s=
0
;
cout<<
"Tapez la valeur numero 1 : "
;cin>>
a;s=
s+
a;
cout<<
"Tapez la valeur numero 2 : "
;cin>>
a;s=
s+
a;
cout<<
"Tapez la valeur numero 3 : "
;cin>>
a;s=
s+
a;
cout<<
"Tapez la valeur numero 4 : "
;cin>>
a;s=
s+
a;
cout<<
"Tapez la valeur numero 5 : "
;cin>>
a;s=
s+
a;
s=
s/
5.0
;
cout<<
"La moyenne vaut : "
<<
s<<
endl;
cout <<
"Appuyez sur une touche pour continuer ..."
<<
endl;
cin.ignore();
cin.get();
return
EXIT_SUCCESS;
}
II-D. Exercice 4▲
Écrire un programme qui demande à l'utilisateur de saisir deux entiers A et B, qui échange le contenu des variables A et B puis qui affiche A et B.
Cet exercice a pour but de vérifier les points techniques suivants :
- la notion de variables et leur déclaration ;
- l'utilisation de cin et de cout ;
- l'affectation ;
- un "algorithme" rudimentaire : échanger le contenu de deux variables.
Solution
Voici le fichier source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
a,b,temp;
cout<<
"Tapez la valeur de a : "
;cin>>
a;
cout<<
"Tapez la valeur de b : "
;cin>>
b;
temp=
a;
a=
b;
b=
temp;
cout<<
"La valeur de a est "
<<
a<<
endl;
cout<<
"La valeur de b est "
<<
b<<
endl;
cout <<
"Appuyez sur une touche pour continuer …"
<<
endl;
cin.ignore();
cin.get();
return
EXIT_SUCCESS;
}
II-E. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- la notion de variables et leur déclaration ;
- le choix d'identificateurs pertinents et explicites ;
- l'utilisation de cin et de cout ;
- l'affectation ;
- modélisation d'un problème "économique".
Solution
Voici le fichier source :
#include
<iostream>
using
namespace
std;
int
main()
{
double
prixht,poids,tva,total;
cout<<
"Tapez le prix HT d'un kilo de tomates : "
;cin>>
prixht;
cout<<
"Combien de kilos avez-vous achetes : "
;cin>>
poids;
cout<<
"Quel est le taux de TVA : "
;cin>>
tva;
total=
(1
+
tva/
100
)*
prixht*
poids;
cout<<
"Le prix TTC est : "
<<
total<<
endl;
cout <<
"Appuyez sur une touche pour continuer …"
<<
endl;
cin.ignore();
cin.get();
return
EXIT_SUCCESS;;
}
III. IHM/Structures de contrôles▲
III-A. Exercice 1▲
Écrire un programme qui demande à l'utilisateur de taper un entier et qui affiche GAGNE si l'entier est entre 56 et 78 bornes incluses PERDU sinon.
Cet exercice a pour but de vérifier les points techniques suivants :
- la notion de variables et leur déclaration ;
- l'utilisation de cin et de cout ;
- le choix d'une structure de contrôle adaptée au problème !
Solution
Voici le fichier source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
a;
cout<<
"Tapez un entier : "
;cin>>
a;
if
((a>=
56
)&&
(a<=
78
))cout<<
"GAGNE"
<<
endl; else
cout<<
"PERDU"
<<
endl;
cout <<
"Appuyez sur une touche pour continuer ..."
<<
endl;
cin.ignore();
cin.get();
return
EXIT_SUCCESS;
}
III-B. Exercice 2▲
Écrire un programme qui affiche tous les entiers de 8 jusqu'à 23 (bornes incluses) en utilisant un for.
Cet exercice a pour but de vérifier le point technique suivant :
- utilisation rudimentaire d'un for.
Solution
Voici le fichier source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
i;
for
(i=
8
;i<=
23
;i++
)cout<<
i<<
endl;
return
0
;
}
III-C. Exercice 3▲
Même exercice mais en utilisant un while.
Cet exercice a pour but de vérifier le point technique suivant :
- utilisation rudimentaire d'un while.
Solution
Voici le fichier source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
i=
8
;
while
(i<=
23
)
{
cout<<
i<<
endl;
i++
;
}
return
0
;
}
III-D. Exercice 4▲
Écrire un programme qui demande à l'utilisateur de taper 10 entiers et qui affiche leur somme.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation d'un for ;
- étude d'un algorithme usuel : calcul d'une somme.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
i,s=
0
,x;
for
(i=
0
;i<
10
;i++
)
{
cout<<
"Tapez un entier : "
;cin>>
x;
s=
s+
x;
}
cout<<
"La somme vaut : "
<<
s<<
endl;
return
0
;
}
III-E. Exercice 5▲
Écrire un programme qui demande à l'utilisateur de taper 10 entiers et qui affiche le plus petit de ces entiers.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
i,ppt,x;
for
(i=
0
;i<
10
;i++
)
{
cout<<
"Tapez un entier : "
;cin>>
x;
if
(i==
0
)ppt=
x;else
if
(x<
ppt)ppt=
x;
}
cout<<
"Le plus petit vaut vaut : "
<<
ppt<<
endl;
return
0
;
}
III-F. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple du for ;
- étude d'un algorithme usuel : calcul d'une somme ;
- modélisation d'un problème simple issu des mathématiques.
Solution
Voici la source :
#include
<iostream.h>
using
namespace
std;
int
main()
{
int
N;
double
somme;
cout <<
"Entrer un entier : "
; cin >>
N;
if
(N>=
5
) {
for
(int
i=
5
; i<=
N; i++
) somme +=
i*
i*
i;
}
cout <<
"Somme des cubes de 5^3 a "
<<
N <<
"^3 = "
<<
somme <<
endl;
cin.ignore();
cin.get();
return
EXIT_SUCCESS;
}
III-G. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple du for ;
- étude d'un algorithme usuel : calcul des termes d'une suite récurrente ;
- modélisation d'un problème issu des mathématiques.
Solution
Voici la source :
#include
<iostream>
using
namespace
;
int
main()
{
int
i,u=
3
,N;
cout<<
"Tapez N : "
;cin>>
N;
for
(i=
0
;i<
N;i++
)
u=
u*
3
+
4
;
cout<<
"u("
<<
N<<
")="
<<
u<<
endl;
return
0
;
}
III-H. 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).
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple du for ;
- étude d'un algorithme usuel : calcul d'une suite récurrente ;
- modélisation d'un problème simple issu des mathématiques.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
i,u=
1
,v=
1
,w,N;
cout<<
"Tapez N : "
;cin>>
N;
w=
1
;
for
(i=
2
;i<=
N;i++
)
{
w=
u+
v;
u=
v;
v=
w;
}
cout<<
"u("
<<
N<<
")="
<<
w<<
endl;
return
0
;
}
III-I. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple du while ;
- validation des données saisies par l'utilisateur.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
N;
bool
OK;
do
{
cout<<
"Tapez N entre 0 et 20 :"
;cin>>
N;
OK=
N<=
20
&&
N>=
0
;
if
(!
OK)cout<<
"ERREUR RECOMMENCEZ"
<<
endl;
}
while
(!
OK);
N=
N+
17
;
cout<<
"La valeur finale est : "
<<
N<<
endl;
return
0
;
}
III-J. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation du while ;
- utilisation du switch ;
- gestion d'un programme à l'aide d'un menu ;
- modélisation d'un problème simple sous forme informatique.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
x=
0
,choix;
do
{
cout<<
"x vaut "
<<
x<<
endl;
cout<<
"1 : Ajouter 1"
<<
endl;
cout<<
"2 : Multiplier par 2"
<<
endl;
cout<<
"3 : Soustraire 4"
<<
endl;
cout<<
"4 : Quitter"
<<
endl;
cout<<
"Votre choix : "
;cin>>
choix;
switch
(choix)
{
case
1
: x++
;break
;
case
2
: x=
x*
2
; break
;
case
3
: x=
x-
4
;break
;
}
}
while
(choix!=
4
);
cout<<
"La valeur finale de x vaut : "
<<
x<<
endl;
return
0
;
}
III-K. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation d'un while de difficulté moyenne ;
- étude d'un algorithme usuel : calcul d'une moyenne.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
x, s=
0
,nb=
0
;
double
moyenne;
do
{
cout<<
"Tapez un entier :"
;cin>>
x;
if
(x>
0
){
s=
s+
x;nb++
;}
else
if
(x<
0
)cout<<
"ERREUR "
;
}
while
(x!=
0
);
if
(nb==
0
)cout<<
"AUCUN ENTIER TAPE "
<<
endl<<
"PAS DE MOYENNE"
<<
endl;
else
{
moyenne=
(double
)s/
nb;
cout<<
"La moyenne vaut : "
<<
moyenne<<
endl;
}
return
0
;
}
III-L. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation d'un for ;
- étude d'un algorithme usuel : calcul d'une suite récurrente assez difficile ;
- modélisation d'un problème issu des mathématiques.
Solution
Voici la source :
#include
<iostream>
int
main()
{
int
N,u,i=
0
,v,w;
cout<<
"Tapez la valeur de N : "
;cin>>
N;
u=
3
;
v=
2
;
if
(N==
0
)w=
u;
else
if
(N==
1
)w=
v;
else
for
(i=
2
;i<=
N;i++
){
w=
i*
v+
(i+
1
)*
u+
i;u=
v;v=
w;}
cout<<
"u("
<<
N<<
")="
<<
w<<
endl;
return
0
;
}
III-M. Exercice 13▲
Écrire un programme qui demande de saisir 10 entiers et qui affiche le nombre d'occurrences de la note la plus haute.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation d'un for ;
- étude d'un algorithme usuel de difficulté moyenne : calcul du nombre d'occurrences d'une valeur.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
nb,max,x,i;
for
(i=
0
;i<
10
;i++
)
{
cout<<
"Tapez un entier : "
;cin>>
x;
if
(i==
0
){
max=
x;nb=
1
;}
else
if
(x==
max)nb++
;
else
if
(max<
x){
max=
x;nb=
1
;}
}
cout<<
"le nombre d'occurrences de "
<<
max<<
" est "
<<
nb<<
endl;
return
0
;
}
III-N. Exercice 14▲
Écrire un programme qui demande de saisir un entier N et qui affiche N!.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation du for ;
- étude d'un algorithme usuel : calcul d'une factorielle ;
- modélisation d'un problème issu des mathématiques.
Solution
Voici le fichier source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
N,i,f=
1
;
cout<<
"Tapez un entier : "
;cin>>
N;
for
(i=
2
;i<=
N;i++
)f=
f*
i;
cout<<
N<<
"! vaut "
<<
f<<
endl;
return
0
;
}
III-O. Exercice 15▲
Écrire un programme qui demande de saisir un entier et qui indique si cet entier est premier ou non.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation d'un while de difficulté moyenne ;
- étude d'un algorithme usuel assez difficile : primarité d'un entier ;
- modélisation d'un problème issu des mathématiques.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
n;
bool
premier=
true
;
int
d=
2
;
cout<<
"Veuillez saisir un entier : "
;cin>>
n;
if
(n<=
1
)premier=
false
;
else
{
while
(premier==
true
&&
d*
d<=
n)
if
(n%
d==
0
)premier=
false
; else
d=
d+
1
;
}
if
(premier)cout<<
n<<
" est premier"
<<
endl;
else
cout<<
n<<
" n'est pas premier"
<<
endl;
return
0
;
}
III-P. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation des boucles for et while ;
- imbrication de boucles ;
- lire précisément un énoncé ;
- modélisation assez complexe d'un problème issu des mathématiques.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
N,i,nb=
0
,d;
bool
est_premier;
cout<<
"Tapez la valeur de N : "
;cin>>
N;
for
(i=
2
;i<=
N;i++
)
{
/* Écrire un programme qui teste si i est premier*/
est_premier=
true
;
d=
2
;
while
(est_premier &&
d*
d<=
i)
if
(i%
d==
0
)est_premier=
false
; else
d++
;
if
(est_premier==
true
)nb++
;
}
cout<<
"Le nombre de nombres premiers inférieurs ou égaux à "
<<
N<<
" est "
<<
nb<<
endl;
return
0
;
}
III-Q. Exercice 17▲
Écrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche le énième nombre premier.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation des boucles for et while ;
- imbrication de boucles assez complexe ;
- lire précisément un énoncé ;
- modélisation assez complexe d'un problème issu des mathématiques.
Solution
Voici la source
#include
<iostream>
using
namespace
std;
int
main()
{
int
N,i=
1
,nb=
0
,d;
bool
est_premier;
cout<<
"Tapez la valeur de N : "
;cin>>
N;
while
(nb<
N)
{
i++
;
est_premier=
true
;
d=
2
;
while
(est_premier &&
d*
d<=
i)
if
(i%
d==
0
)est_premier=
false
; else
d++
;
if
(est_premier==
true
)nb++
;
}
cout<<
"Le énième nombre premier est "
<<
i<<
endl;
return
0
;
}
III-R. Exercice 18▲
Écrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche la figure suivante.

et ainsi de suite.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation des boucles for ;
- imbrication de boucles assez complexe.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
N=
0
;
cout<<
"Saisissez une valeur pour N: "
;
cin>>
N;
cout<<
endl<<
endl;
cout<<
"N= "
<<
n<<
endl;
for
(int
i=
0
;i<
N;i++
)
{
for
(int
j=
0
;j<
(N-
i);j++
)
{
cout<<
"*"
;
}
cout<<
endl;
}
cout <<
"Appuyez sur une touche pour continuer ..."
<<
endl;
cin.ignore();
cin.get();
return
0
;
}
III-S. Exercice 19▲
Écrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche la figure suivante.

et ainsi de suite.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation des boucles for ;
- imbrication de boucles.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
i,j,N;
cout<<
"Tapez la valeur de N : "
;cin>>
N;
for
(i=
1
;i<=
N;i++
)
{
for
(j=
1
;j<
i;j++
)cout<<
" "
;
for
(j=
1
;j<=
N+
1
-
i;j++
)cout<<
"*"
;
cout<<
endl;
}
return
0
;
}
III-T. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation du while ;
- lire précisément un énoncé ;
- modélisation assez complexe d'un problème issu des mathématiques.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
a,n,u;
cout<<
"Tapez la valeur de a : "
;cin>>
a;
n=
0
;
u=
a;
while
(u!=
1
)
{
if
(u%
2
==
0
)u=
u/
2
; else
u=
3
*
u+
1
;
n++
;
cout<<
"u("
<<
n<<
")="
<<
u<<
endl;
}
return
0
;
}
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. Le programme doit afficher la valeur A et la valeur N correspondante.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation du while et du for ;
- imbrication de boucles ;
- lire précisément un énoncé ;
- modélisation assez complexe d'un problème issu des mathématiques.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
a,n,u,M,amax,nmax;
cout<<
"Tapez la valeur de M : "
;cin>>
M;
amax=
2
;
nmax=
2
;
for
(a=
3
;a<=
M;a++
)
{
n=
0
;
u=
a;
while
(u!=
1
)
{
if
(u%
2
==
0
)u=
u/
2
; else
u=
3
*
u+
1
;
n++
;
}
if
(n>
nmax){
amax=
a;nmax=
n;}
}
cout<<
"La valeur de A est :"
<<
amax<<
endl;
cout<<
"La valeur de N correspondante est :"
<<
nmax<<
endl;
return
0
;
}
IV. IHM/Les tableaux▲
IV-A. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple de tableaux ;
- un algorithme simple sur un tableau : recherche du nombre d'éléments vérifiant une propriété.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
const
int
N=
10
;
int
main()
{
int
t[10
],i,nb=
0
;
for
(i=
0
;i<
N;i++
){
cout<<
"Tapez un entier "
;cin>>
t[i];}
for
(i=
0
;i<
N;i++
)if
(t[i]>=
10
)nb++
;
cout<<
"Le nombre d'entiers supérieurs ou égaux à 10 est : "
<<
nb<<
endl;
return
0
;
}
IV-B. 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 ».
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple de tableaux ;
- un algorithme simple sur un tableau : recherche d'un élément dans un tableau.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
const
int
N=
10
;
int
main()
{
int
t[N],i,V;
bool
trouve;
for
(i=
0
;i<
N;i++
){
cout<<
"Tapez un entier "
;cin>>
t[i];}
cout<<
"Tapez la valeur de V : "
;cin>>
V;
trouve=
false
;
i=
0
;
while
(!
trouve &&
i<
N)
if
(t[i]==
V)trouve=
true
; else
i++
;
if
(trouve) cout<<
"La valeur V se trouve dans le tableau"
<<
endl;
else
cout<<
"La valeur V ne se trouve pas dans le tableau"
<<
endl;
return
0
;
}
IV-C. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple de tableaux ;
- un algorithme simple sur un tableau : recherche de l'indice du plus grand élément.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
const
int
N=
10
;
int
main()
{
int
t[N],i,indice;
for
(i=
0
;i<
N;i++
){
cout<<
"Tapez un entier "
;cin>>
t[i];}
indice=
0
;
for
(i=
1
;i<
N;i++
)
if
(t[indice]<
t[i])indice=
i;
cout<<
"L'indice du plus grand élément est : "
<<
indice<<
endl;
return
0
;
}
IV-D. 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 première occurrence de V en décalant d'une case vers la gauche les éléments suivants et en rajoutant un 0 à la fin du tableau. Le programme doit ensuite afficher la table finalement.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple de tableaux ;
- un algorithme simple sur un tableau : suppression d'un élément avec décalage des suivants.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
const
int
N=
10
;
int
main()
{
int
t[N],i,j,V;
bool
trouve;
for
(i=
0
;i<
N;i++
){
cout<<
"Tapez un entier "
;cin>>
t[i];}
cout<<
"Tapez la valeur de V : "
;cin>>
V;
trouve=
false
;
i=
0
;
while
(!
trouve &&
i<
N)
if
(t[i]==
V)trouve=
true
; else
i++
;
if
(trouve)
{
for
(j=
i;j<
N-
1
;j++
)t[j]=
t[j+
1
];
t[N-
1
]=
0
;
}
for
(i=
0
;i<
N;i++
)cout<<
t[i]<<
endl;
return
0
;
}
IV-E. 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 la table finalement.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple de tableaux ;
- un algorithme simple sur un tableau : insertion dans en tableau avec décalage.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
const
int
N=
10
;
int
main()
{
int
t[N],i,indice,V;
for
(i=
0
;i<
N;i++
){
cout<<
"Tapez un entier "
;cin>>
t[i];}
cout<<
"Tapez un indice (de 0 à 9) : "
;cin>>
indice;
cout<<
"Tapez la valeur de V : "
;cin>>
V;
if
(indice>=
0
&&
indice<=
N-
1
)
{
for
(i=
N-
1
;i>
indice;i--
)t[i]=
t[i-
1
];
t[indice]=
V;
}
for
(i=
0
;i<
N;i++
)cout<<
t[i]<<
endl;
return
0
;
}
IV-F. 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 ».
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple de tableaux ;
- un algorithme simple sur un tableau : vérifier si le tableau vérifie une propriété donnée.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
const
int
N=
10
;
int
main()
{
int
a[N],i;
bool
trouve=
false
;
bool
croissant=
true
,decroissant=
true
;
for
(i=
0
;i<
N;i++
)
{
cout<<
"Veuillez taper l'entier numero "
<<
i<<
" : "
;cin>>
a[i];
}
for
(i=
0
;i<
N-
1
;i++
)
{
if
(a[i]>
a[i+
1
])croissant=
false
;
if
(a[i]<
a[i+
1
])decroissant=
false
;
}
if
(croissant &&
decroissant) cout<<
"le tableau est constant"
<<
endl;
if
(croissant &&
!
decroissant) cout<<
"le tableau est croissant"
<<
endl;
if
(!
croissant &&
decroissant) cout<<
"le tableau est decroissant"
<<
endl;
if
(!
croissant &&
!
decroissant) cout<<
"le tableau est quelconque"
<<
endl;
return
0
;
}
IV-G. 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].
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple de tableaux ;
- un algorithme simple sur un tableau : tri d'un tableau.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
const
int
N=
10
;
int
main()
{
int
a[N],i,j,min,imin,tmp;
for
(i=
0
;i<
N;i++
)
{
cout<<
"Veuillez taper l'entier numero "
<<
i<<
" : "
;cin>>
a[i];
}
for
(i=
0
;i<
N-
1
;i++
)
{
imin=
i;min=
a[i];
for
(j=
i+
1
;j<<
N;j++
)if
(a[j]<
min){
min=
a[j];imin=
j;}
tmp=
a[imin];a[imin]=
a[i];a[i]=
tmp;
}
cout<<
"VOICI LE TABLEAU TRIE :"
<<
endl;
for
(i=
0
;i<
N;i++
)cout<<
"a["
<<
i<<
"]="
<<
a[i]<<
endl;
return
0
;
}
IV-H. 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é.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple de tableaux ;
- un algorithme simple sur un tableau : tri d'un tableau.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
const
int
N=
10
;
int
main()
{
int
a[N],i,nb,tmp;
for
(i=
0
;i<
N;i++
)
{
cout<<
"Veuillez taper l'entier numero "
<<
i<<
" : "
;cin>>
a[i];}
do
{
nb=
0
;
for
(i=
0
;i<
N-
1
;i++
)
if
(a[i]>
a[i+
1
])
{
tmp=
a[i];a[i]=
a[i+
1
];a[i+
1
]=
tmp;
nb++
;
}
}
while
(nb!=
0
);
cout<<
"VOICI LE TABLEAU TRIE :"
<<
endl;
for
(i=
0
;i<
N;i++
)cout<<
"a["
<<
i<<
"]="
<<
a[i]<<
endl;
return
0
;
}
IV-I. Exercice 9▲
Écrire un programme qui saisit deux 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple de tableaux ;
- un algorithme simple sur un tableau : fusion de deux tableaux.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
const
int
N=
10
;
int
main()
{
int
a[N],b[N],c[2
*
N],i;
cout<<
"SAISIE DU TABLEAU a"
<<
endl;
for
(i=
0
;i<
N;i++
){
cout<<
"Tapez un entier "
;cin>>
a[i];}
cout<<
"SAISIE DU TABLEAU b"
<<
endl;
for
(i=
0
;i<
N;i++
){
cout<<
"Tapez un entier "
;cin>>
b[i];}
for
(i=
0
;i<
2
*
N;i++
)if
(i<
N)c[i]=
a[i];else
c[i]=
b[i-
N];
cout<<
"VOICI LE TABLEAU c"
<<
endl;
for
(i=
0
;i<
2
*
N;i++
)cout<<
c[i]<<
" "
;
cout<<
endl;
return
0
;
}
IV-J. Exercice 10▲
Écrire un programme qui saisit deux 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.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
const
int
N=
10
;
int
main()
{
int
a[N],b[N],c[2
*
N],i,trie,indicea,indiceb;
cout<<
"SAISIE DU TABLEAU a"
<<
endl;
for
(i=
0
;i<
N;i++
){
cout<<
"Tapez un entier "
;cin>>
a[i];}
cout<<
"SAISIE DU TABLEAU b"
<<
endl;
for
(i=
0
;i<
N;i++
){
cout<<
"Tapez un entier "
;cin>>
b[i];}
trie=
true
;
i=
0
;
while
(trie &&
i<
N-
1
)if
(a[i]>
a[i+
1
])trie=
false
; else
i++
;
if
(!
trie)cout<<
"Le tableau a n'est pas trié"
<<
endl;
else
{
trie=
true
;
i=
0
;
while
(trie &&
i<
N-
1
)if
(b[i]>
b[i+
1
])trie=
false
; else
i++
;
if
(!
trie)cout<<
"Le tableau b n'est pas trié"
<<
endl;
else
{
indicea=
0
;indiceb=
0
;
for
(i=
0
;i<
2
*
N;i++
)
{
if
(indicea==
N){
c[i]=
b[indiceb];indiceb++
;}
else
if
(indiceb==
N){
c[i]=
a[indicea];indicea++
;}
else
if
(a[indicea]<
b[indiceb]){
c[i]=
a[indicea];indicea++
;}
else
{
c[i]=
b[indiceb];indiceb++
;}
}
}
}
cout<<
"VOICI LE TABLEAU c"
<<
endl;
for
(i=
0
;i<
2
*
N;i++
)cout<<
c[i]<<
" "
;
cout<<
endl;
return
0
;
}
IV-K. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple de tableaux ;
- gestion d'une liste simple grâce à un tableau statique.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
const
int
N=
10
;
int
main()
{
int
t[N],nb=
0
,choix,e,i;
bool
fini=
false
;
while
(fini==
false
)
{
cout<<
"1. Ajouter un entier"
<<
endl;
cout<<
"2. Afficher la liste des entier"
<<
endl;
cout<<
"3. Supprimer le dernièr entier de la liste"
<<
endl;
cout<<
"4. Afficher le dernier entier de la liste"
<<
endl;
cout<<
"5. Quitter"
<<
endl;
cout<<
"Votre choix : "
;cin>>
choix;
switch
(choix)
{
case
1
: cout<<
"Tapez un entier : "
;cin>>
e;
if
(nb<
N){
t[nb]=
e; nb++
; cout<<
"ENTIER AJOUTE"
<<
endl;}
else
cout<<
"IMPOSSIBLE LE TABLEAU EST PLEIN"
<<
endl;
break
;
case
2
: if
(nb==
0
)cout<<
"LA LISTE EST VIDE"
<<
endl;
else
{
cout<<
"VOICI LA LISTE"
<<
endl;
for
(i=
0
;i<
nb;i++
)cout<<
t[i]<<
" "
;
cout<<
endl;
}
break
;
case
3
: if
(nb>
0
){
nb--
; cout<<
"ENTIER SUPPRIME"
<<
endl;}
else
cout<<
"LA LISTE EST VIDE"
<<
endl;
break
;
case
4
: if
(nb>
0
)cout<<
"lLE DERNIER ENTIER EST "
<<
t[nb-
1
]<<
endl;
else
cout<<
"LA LISTE EST VIDE"
<<
endl;
break
;
case
5
: fini=
true
;
break
;
}
}
return
0
;
}
IV-L. 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 : lorsqu'on rajoute un entier, il sera inséré au bon endroit dans la liste pour que celle-ci reste triée.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple de tableaux ;
- gestion d'une liste triée grâce à un tableau statique.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
const
int
N=
10
;
int
main()
{
int
t[N],nb=
0
,choix,e,V,i,j,trouve;
bool
fini=
false
;
while
(fini==
false
)
{
cout<<
"1. Ajouter un entier"
<<
endl;
cout<<
"2. Afficher la liste des entier"
<<
endl;
cout<<
"3. Supprimer le premier entier ayant une valeur donnée"
<<
endl;
cout<<
"4. Supprimer tous les entiers ayant une valeur donnée"
<<
endl;
cout<<
"5. Quitter"
<<
endl;
cout<<
"Votre choix : "
;cin>>
choix;
switch
(choix)
{
case
1
: if
(nb<
N)
{
cout<<
"Tapez un entier : "
;cin>>
e;
i=
0
;
while
(i!=
nb &&
t[i]<
e)i++
;
for
(j=
nb;j>
i;j--
)t[j]=
t[j-
1
];
t[i]=
e;
nb++
;
}
else
cout<<
"IMPOSSIBLE LE TABLEAU EST PLEIN"
<<
endl;
break
;
case
2
: if
(nb==
0
)cout<<
"LA LISTE EST VIDE"
<<
endl;
else
{
cout<<
"VOICI LA LISTE"
<<
endl;
for
(i=
0
;i<
nb;i++
)cout<<
t[i]<<
" "
;
cout<<
endl;
}
break
;
case
3
: cout<<
"Tapez la valeur à supprimer :"
;cin>>
V;
trouve=
false
;
i=
0
;
while
(!
trouve &&
i<
nb)if
(t[i]==
V)trouve=
true
; else
i++
;
if
(trouve)
{
for
(j=
i;j<
nb-
1
;j++
)t[j]=
t[j+
1
];
nb--
;
}
break
;
case
4
: cout<<
"Tapez la valeur à supprimer :"
;cin>>
V;
j=
0
;
for
(i=
0
;i<
nb;i++
)
if
(t[i]!=
V){
t[j]=
t[i];j++
;}
nb=
j;
break
;
case
5
: fini=
true
;
break
;
}
}
return
0
;
}
IV-M. Exercice 13▲
Écrire un programme qui demande à l'utilisateur de taper un entier N<=20 et qui affiche la éniè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…
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation simple de tableaux ;
- gestion d'une liste triée grâce à un tableau statique.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
a[21
],i,j,N;
cout<<
"Veuillez taper N : "
;cin>>
N;
for
(i=
1
;i<=
N;i++
)
{
if
(i==
1
)a[0
]=
1
;
a[i]=
1
;
for
(j=
i-
1
;j>=
1
;j--
)a[j]=
a[j]+
a[j-
1
];
}
for
(i=
0
;i<=
N;i++
)cout<<
a[i]<<
" "
;
cout<<
endl;
return
0
;
}
IV-N. 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.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
int
a[10
],nb[21
],i;
for
(i=
0
;i<
10
;i++
)
{
do
{
cout<<
"Veuillez taper l'entier numero "
<<
i<<
" : "
;cin>>
a[i];}
while
(a[i]>
20
||
a[i]<
0
);
}
for
(i=
0
;i<
21
;i++
)nb[i]=
0
;
for
(i=
0
;i<
10
;i++
)nb[a[i]]++
;
for
(i=
0
;i<
21
;i++
){
cout<<
"Il y a "
<<
nb[i]<<
" fois l'entier "
<<
i<<
endl;}
return
0
;
}
IV-O. Exercice 15▲
Écrire un programme qui demande à l'utilisateur de taper le contenu d'un tableau de réels de trois lignes et trois colonnes et qui affiche ce tableau, mais en affichant la moyenne des éléments de chaque ligne, de chaque colonne et la moyenne globale.
Cet exercice a pour but de vérifier les points techniques suivants :
- utilisation de tableaux à deux dimensions ;
- modélisation d'un problème mathématique basique.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
const
int
N=
3
;
const
int
M=
3
;
int
main()
{
double
t[N][M],moyL[N],moyC[M],moy;
int
i,j;
for
(i=
0
;i<
N;i++
)
for
(j=
0
;j<
M;j++
)
{
cout<<
"Tapez la valeur de la ligne "
<<
i<<
" colonne "
<<
j<<
" : "
;
cin>>
t[i][j];
}
for
(i=
0
;i<
N;i++
)moyL[i]=
0
;
for
(j=
0
;j<
M;j++
)moyC[j]=
0
;
moy=
0
;
for
(i=
0
;i<
N;i++
)
for
(j=
0
;j<
M;j++
)
{
moyL[i]=
moyL[i]+
t[i][j];
moyC[j]=
moyC[j]+
t[i][j];
moy=
moy+
t[i][j];
}
for
(i=
0
;i<
N;i++
)moyL[i]=
moyL[i]/
N;
for
(j=
0
;j<
M;j++
)moyC[j]=
moyC[j]/
M;
moy=
moy/
(N*
M);
for
(i=
0
;i<
N;i++
)
{
for
(j=
0
;j<
M;j++
)
cout<<
t[i][j]<<
" "
;
cout<<
moyL[i]<<
endl;
}
for
(j=
0
;j<
M;j++
)
cout<<
moyC[j]<<
" "
;
cout<<
endl;
return
0
;
}
V. IHM/Les tableaux de char▲
V-A. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- la manipulation de chaînes de caractères ;
- la validation d'une chaîne de caractères ;
- transformation d'une chaîne vers un autre type.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
bool
valide_entier(char
t[],int
&
e)
{
bool
valide=
true
;
int
i=
0
;
e=
0
;
if
(t[0
]<
'1'
||
t[0
]>
'9'
)valide=
false
;
while
(valide &&
t[i]!=
'
\0
'
)
{
if
(t[i]>=
'0'
&&
t[i]<=
'9'
){
e=
10
*
e+
(t[i]-
'0'
);i++
;}
else
valide=
false
;
}
return
valide;
}
int
main()
{
int
a;
char
t[20
];
do
{
cout<<
"Tapez une chaine :"
;cin>>
t;}
while
(!
valide_entier(t,a));
cout<<
"L'entier vaut :"
<<
a<<
endl;
return
0
;
}
V-B. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- la manipulation de chaînes de caractères ;
- transformation d'une chaîne de caractères ;
- majuscules et minuscules.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
void
minmaj(char
t[])
{
int
i=
0
;
while
(t[i]!=
'
\0
'
)
{
if
(t[i]>=
'a'
&&
t[i]<=
'z'
)t[i]=
t[i]+
('A'
-
'a'
);
i++
;
}
}
int
main()
{
char
a[50
];
cout<<
"Tapez une chaine svp :"
;cin>>
a;
minmaj(a);
cout<<
"La chaine finale est :"
<<
a<<
endl;
return
0
;
}
V-C. 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.
- y est une voyelle dans ce programme.
- La phrase peut contenir des espaces, mais doit avoir moins de 80 caractères incluant le '\0'
- Si une voyelle a un accent, elle sera traitée comme une consonne (tout comme une voyelle majuscule).
- La voyelle est remplacée par un « . » pour afficher la suppression de la voyelle.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
#include
<conio.h>
//------------------------------------------------------------------------------
void
remplaceVoyelle(char
phrase[])
{
int
i =
0
;
while
(phrase[i]!=
'
\0
'
)
{
if
((phrase[i] ==
'a'
)||
(phrase[i] ==
'e'
)||
(phrase[i] ==
'i'
)||
(phrase[i] ==
'o'
)||
(phrase[i] ==
'u'
)||
(phrase[i] ==
'y'
))
{
phrase[i]=
'.'
;
i++
;
}
else
{
i++
;
}
}
}
int
main()
{
int
taille =
80
;
char
phrase[taille];
cout <<
"Entrez une phrase : "
;
cin.get (phrase, taille);
//cout << "Voici la phrase entrée : "<<phrase<<endl; //peut être activé
remplaceVoyelle(phrase);
cout<<
"voici la phrase modifiee : "
<<
phrase <<
endl;
cout<<
"Appuyez sur une touche pour quitter le programme..."
;
getch();
return
0
;
}
V-D. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- la manipulation de chaînes de caractères ;
- recherche d'une chaîne incluse dans une autre chaîne.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
bool
contient(char
ch1[],char
ch2[])
{
int
ii=
0
,i=
0
,j=
0
;
bool
fini,trouve;
trouve=
false
;
fini=
false
;
while
(!
trouve &&
!
fini)
{
if
(ch1[ii]==
ch2[j])
{
ii++
;j++
;
if
(ch2[j]==
'
\0
'
)trouve=
true
;
}
else
{
i++
;ii=
i;j=
0
;
}
if
(ch1[ii]==
'
\0
'
)fini=
true
;
}
return
trouve;
}
int
main()
{
char
a[50
],b[50
];
cout<<
"Tapez une chaine svp :"
;
cin>>
a;
cout<<
"Tapez une chaine svp :"
;
cin>>
b;
if
(contient(a,b))cout<<
"la premiere chaine contient la seconde"
<<
endl;
else
cout<<
"la premiere chaine ne contient pas la seconde"
<<
endl;
return
0
;
}
V-E. Exercice 5▲
Écrire un programme qui demande à l'utilisateur de taper un verbe du premier groupe et qui le conjugue à l'indicatif présent.
Cet exercice a pour but de vérifier les points techniques suivants :
- la manipulation de chaînes de caractères ;
- la construction d'une chaîne à partir d'une autre.
Solution
Voici la source :
#include
<iostream>
using
namespoace std;
int
main()
{
char
tt[20
];
cout<<
"Tapez un verbe du premier groupe : "
;
cin>>
tt;
int
i;
i=
strlen(tt);
if
(i<=
2
||
tt[i-
1
]!=
'r'
||
tt[i-
2
]!=
'e'
)
cout<<
"le verbe n'est pas du premier groupe"
<<
endl;
else
{
tt[i-
2
]=
'
\0
'
;
cout<<
"je "
<<
tt<<
"e"
<<
endl;
cout<<
"tu "
<<
tt<<
"es"
<<
endl;
cout<<
"il "
<<
tt<<
"e"
<<
endl;
cout<<
"nous "
<<
tt<<
"ons"
<<
endl;
cout<<
"vous "
<<
tt<<
"ez"
<<
endl;
cout<<
"ils "
<<
tt<<
"ent"
<<
endl;
}
return
0
;
}
V-F. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- la manipulation de chaînes de caractères ;
- analyse syntaxique d'une chaîne de caractères.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
char
t[50
];
char
mot[50
];
int
i=
0
,j=
0
,state=
1
,num=
0
;
cout<<
"Tapez une phrase : "
;cin.getline(t,50
);
while
(t[i]!=
'
\0
'
){
if
(state==
1
)
{
if
(t[i]!=
' '
)
{
state=
2
;j=
0
;mot[0
]=
t[i];j++
;
}
}
else
{
if
(t[i]!=
' '
){
mot[j]=
t[i];j++
;}
else
{
state=
1
;
num++
;
mot[j]=
'
\0
'
;
cout<<
"mot "
<<
num<<
" : "
<<
mot<<
endl;
}
}
i++
;
}
if
(state==
2
)
{
num++
;
mot[j]=
'
\0
'
;
cout<<
"mot "
<<
num<<
" : "
<<
mot<<
endl;
}
return
0
;
}
V-G. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- la manipulation de chaînes de caractères ;
- validation d'une chaîne.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
char
t[50
];
int
i,j;
bool
palyn;
palyn=
true
;
cout<<
"Tapez une chaîne : "
;cin>>
t;
i=
0
;
j=
strlen(t)-
1
;
while
(palyn==
true
&&
i<
j)
if
(t[i]!=
t[j])palyn=
false
; else
{
i++
;j--
;}
if
(palyn) cout<<
"C'est un palindrome"
<<
endl;
else
cout<<
"ce n'est pas un palindrome"
<<
endl;
return
0
;
}
V-H. Exercice 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- la manipulation de chaînes de caractères ;
- manipulation sur les majuscules ou minuscules.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
int
main()
{
char
ch[50
];
int
t[52
];
int
i,max;
char
cmax;
cout<<
"Tapez une chaîne : "
;cin>>
ch;
for
(i=
0
;i<
52
;i++
)t[i]=
0
;
i=
0
;
while
(ch[i]!=
'
\0
'
)
{
if
(ch[i]>=
'A'
&&
ch[i]<=
'Z'
)t[ch[i]-
'A'
]++
;
else
if
(ch[i]>=
'a'
&&
ch[i]<=
'z'
)t[ch[i]-
'a'
+
26
]++
;
i++
;
}
max=
t[0
];cmax=
'A'
;
for
(i=
1
;i<
52
;i++
)
if
(max<
t[i])
{
max=
t[i];if
(i<
26
)cmax=
(char
)(i+
'A'
);
else
cmax=
(char
)(i-
26
+
'a'
);
}
cout<<
"La lettre la plus fréquente est : "
<<
cmax<<
endl;
return
0
;
}
VI. IHM/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)).
VII. IHM/Les fonctions▲
VII-A. Exercice 1▲
Écrire une fonction distance ayant comme paramètres quatre 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- création de fonctions simples ;
- passage de paramètres par valeur ;
- utilisation de return ;
- appel d'une fonction.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
#include
<cmath>
double
distance(double
xa, double
ya, double
xb, double
yb)
{
double
dx,dy;
dx=
xa-
xb;
dy=
ya-
yb;
return
sqrt(dx*
dx+
dy*
dy);
}
int
main()
{
double
x1,y1,x2,y2,d;
cout<<
"Tapez l'abscisse de A : "
;cin>>
x1;
cout<<
"Tapez l'ordonnée de A : "
;cin>>
y1;
cout<<
"Tapez l'abscisse de B : "
;cin>>
x2;
cout<<
"Tapez l'ordonnée de B : "
;cin>>
y2;
d=
distance(x1,y1,x2,y2);
cout<<
"La distance AB vaut : "
<<
d<<
endl;
return
0
;
}
VII-B. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- création de fonctions simples ;
- passage de paramètres par valeur et par référence ;
- utilisation de return ;
- paramètres en entrées et en sorties d'une fonction ;
- appel d'une fonction ;
- jeu de tests d'une fonction.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
#include
<cmath>
double
f(double
x, bool
&
OK)
{
double
r=
0
;
if
(x>=
1
&&
x<=
2
){
r=
sqrt((x-
1
)*
(2
-
x));OK=
true
;}
else
OK=
false
;
return
r;
}
int
main()
{
double
x,y;
bool
OK;
cout<<
"Tapez x :"
;cin>>
x;
y=
f(x,OK);
if
(OK)cout<<
"f(x) vaut :"
<<
y<<
endl;
else
cout<<
"x n'est pas correct"
<<
endl;
return
0
;
}
VII-C. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- création de fonctions simples ;
- appel d'une fonction ;
- validation des données avant l'appel d'une fonction ;
- fonction renvoyant un booléen.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
#include
<cmath>
bool
f(int
x)
{
bool
r=
true
;
int
d=
2
;
while
(r &&
d*
d<=
x)if
(x%
d==
0
)r=
false
; else
d++
;
return
r;
}
int
main()
{
int
x;
bool
premier;
do
{
cout<<
"Tapez x :"
;cin>>
x;
}
while
(x<=
0
);
premier=
f(x);
if
(premier)cout<<
"x est premier"
<<
endl;
else
cout<<
"x n'est pas premier"
<<
endl;
return
0
;
}
VII-D. Exercice 4▲
Écrire une fonction f ayant comme paramètre un entier n et qui renvoie le énième nombre premier : cette fonction utilisera la fonction du 3). Tester cette fonction.
Cet exercice a pour but de vérifier les points techniques suivants :
- création de fonctions simples ;
- appel de fonction ;
- fonction qui appelle une autre fonction.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
bool
premier(int
x)
{
bool
r=
true
;
int
d=
2
;
while
(r &&
d*
d<=
x)if
(x%
d==
0
)r=
false
; else
d++
;
return
r;
}
int
Npremier(int
N)
{
int
nb=
0
;
int
i=
2
;
while
(nb!=
N)
{
if
(premier(i))nb++
;
i++
;
}
return
i-
1
;
}
int
main()
{
int
N,p;
cout<<
"Tapez la valeur de N : "
;cin>>
N;
p=
Npremier(N);
cout<<
"Le N-ième nombre premier est : "
<<
p<<
endl;
return
0
;
}
VII-E. Exercice 5▲
Écrire une fonction swap ayant en paramètres deux entiers a et b et qui échange les contenus de a et de b. Tester cette fonction.
Cet exercice a pour but de vérifier les points techniques suivants :
- création de fonctions simples ;
- appel d'une fonction ;
- passage de paramètres par références.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
void
swap(int
&
x, int
&
y)
{
int
temp;
temp=
x;
x=
y;
y=
temp;
}
int
main()
{
int
a,b;
cout<<
"Tapez a :"
;cin>>
a;
cout<<
"Tapez b :"
;cin>>
b;
swap(a,b);
cout<<
"a vaut : "
<<
a<<
endl;
cout<<
"b vaut : "
<<
b<<
endl;
return
0
;
}
VII-F. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- écriture d'une fonction ayant comme paramètre un tableau de taille quelconque ;
- recherche d'un élément dans un tableau vérifiant une propriété ;
- utilisation de return.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
void
saisir(int
t[],int
n)
{
int
i;
for
(i=
0
;i<
n;i++
)
{
cout<<
"Tapez la valeur numero "
<<
i<<
" : "
;
cin>>
t[i];
}
}
bool
f(int
t[], int
n)
{
bool
trouve=
false
;
int
i=
0
;
while
(!
trouve &&
i<
n)
if
(t[i]>=
0
&&
t[i]<=
10
)trouve=
true
; else
i++
;
return
trouve;
}
int
main()
{
int
a[10
];
saisir(a,10
);
bool
b;
b=
f(a,10
);
if
(b)cout<<
"Il existe une valeur entre 0 et 10"
<<
endl;
else
cout<<
"Il n'existe pas de valeurs entre 0 et 10"
<<
endl;
return
0
;
}
VII-G. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- écriture d'une fonction ayant comme paramètre un tableau de taille quelconque ;
- compter le nombre d'éléments dans un tableau vérifiant une propriété ;
- utilisation de return.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
void
saisir(int
t[],int
n)
{
int
i;
for
(i=
0
;i<
n;i++
)
{
cout<<
"Tapez la valeur numero "
<<
i<<
" : "
;
cin>>
t[i];
}
}
int
f(int
t[], int
n)
{
int
nb=
0
;
int
i;
for
(i=
0
;i<
n;i++
)
if
(t[i]>=
0
&&
t[i]<=
10
)nb++
;
return
nb;
}
int
main()
{
int
a[10
];
saisir(a,10
);
int
x;
x=
f(a,10
);
cout<<
"Il y a "
<<
x<<
" valeur(s) entre 0 et 10"
<<
endl;
return
0
;
}
VII-H. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- écriture d'une fonction ayant comme paramètre un tableau de taille quelconque ;
- recherche d'un élément dans un tableau ;
- utilisation de return.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
void
saisir(int
t[],int
n)
{
int
i; for
(i=
0
;i<
n;i++
)
{
cout<<
"Tapez la valeur numero "
<<
i<<
" : "
;
cin>>
t[i];
}
}
bool
f(int
t[], int
n, int
&
v)
{
bool
trouve=
false
;
int
i=
0
;
while
(!
trouve &&
i<
n)
if
(t[i]>=
0
&&
t[i]<=
10
){
trouve=
true
; v=
t[i];}
else
i++
;
return
trouve;
}
int
main()
{
int
a[10
];
bool
b;
int
w;
saisir(a,10
);
b=
f(a,10
,w);
if
(b)cout<<
"Il existe une valeur entre 0 et 10 : "
<<
w<<
" est la première de ces valeurs."
<<
endl;
else
cout<<
"Il n'existe pas de valeurs entre 0 et 10"
<<
endl;
return
0
;
}
VII-I. 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 comprises entre 0 et 10 qu'il a rencontrées dans le tableau t1.
Cet exercice a pour but de vérifier les points techniques suivants :
- écriture d'une fonction ayant comme paramètre un tableau de taille quelconque ;
- extraction d'un sous-liste d'éléments ;
- utilisation de return.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
void
saisir(int
t[],int
n)
{
int
i;
for
(i=
0
;i<
n;i++
)
{
cout<<
"Tapez la valeur numero "
<<
i<<
" : "
;
cin>>
t[i];
}
}
void
afficher(int
t[],int
n)
{
int
i;
for
(i=
0
;i<
n;i++
)
cout<<
t[i]<<
" "
;
cout<<
endl;
}
int
f(int
t1[], int
n,int
t2[])
{
int
i=
0
,nb=
0
;
for
(i=
0
;i<
n;i++
)if
(t1[i]>=
0
&&
t1[i]<=
10
){
t2[nb]=
t1[i];nb++
;}
return
nb;
}
int
main()
{
int
a[10
],b[10
];
int
nb;
saisir(a,10
);
nb=
f(a,10
,b);
cout<<
"VOICI LES VALEURS ENTRE 0 ET 10 : "
<<
endl;
afficher(b,nb);
return
0
;
}
VII-J. 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.
Cet exercice a pour but de vérifier les points techniques suivants :
- écriture d'une fonction ayant comme paramètre un tableau de taille quelconque ;
- recherche d'un élément dans un tableau ;
- utilisation de return.
Solution
Voici la source :
#include
<iostream>
using
namespace
std;
void
saisir(int
t[],int
n)
{
int
i; for
(i=
0
;i<
n;i++
)
{
cout<<
"Tapez la valeur numero "
<<
i<<
" : "
;
cin>>
t[i];
}
}
int
f(int
t[], int
n)
{
int
i=
0
,ind=-
1
;
while
(ind==-
1
&&
i<
n)
if
(t[i]>=
0
&&
t[i]<=
10
)ind=
i;else
i++
;
return
ind;
}
int
main()
{
int
a[10
];
int
w;
saisir(a,10
);
w=
f(a,10
);
if
(w!=-
1
)cout<<
"Il existe une valeur entre 0 et 10. "
<<
"l'indice de la première case est "
<<
w<<
endl;
else
cout<<
"Il n'existe pas de valeurs entre 0 et 10"
<<
endl;
return
0
;
}
VIII. IHM/Les classes▲
VIII-A. 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).
IX. IHM/Les templates▲
À compléter.
X. IHM/La STL▲
X-A. 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 à 11 h 23.
Créer un programme permettant d'extraire les différents champs et de les afficher.
XI. IHM/Les fichiers▲
XI-A. Lecture et écriture en mode texte▲
XI-A-1. Exercice 1▲
Écrire un programme qui écrit dans le fichier example.txt le texte :

Cet exercice a pour but de vérifier les points techniques suivants :
- l'ouverture d'un fichier en écriture ;
- tester si un fichier est ouvert (en particulier si vous avez les droits d'écriture sur le fichier) ;
- fermer le fichier une fois l'écriture terminée.
Solution
Voici la source :
#include
<iostream>
#include
<fstream>
int
main (int
argc, char
*
argv[]) {
std::
ofstream myfile;
char
*
filename =
"example.txt"
;
myfile.open (filename, std::ios::
out);
if
(myfile.is_open())
{
myfile <<
"Hello world
\n
"
;
myfile <<
"Voici un programme illustrant l'écriture dans un fichier
\n
"
;
}
else
{
std::
cout <<
"Erreur à l'ouverture du fichier "
<<
filename <<
std::
endl;
}
myfile.close();
return
0
;
}
XI-A-2. 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 :

Cet exercice a pour but de vérifier les points techniques suivants :
- l'ouverture d'un fichier en lecture ;
- tester si un fichier est ouvert (en particulier si vous avez les droits de lecture sur le fichier) ;
- parcourir dans son intégralité un fichier ;
- fermer le fichier une fois la lecture terminée.
Solution
Voici la source :
#include
<iostream>
#include
<fstream>
#include
<string>
int
main () {
std::
string line;
char
*
filename =
"example.txt"
;
std::
ifstream myfile (filename, std::ios::
in);
if
(myfile.is_open())
{
while
(!
myfile.eof() )
{
getline (myfile,line);
std::
cout <<
line <<
std::
endl;
}
myfile.close();
}
else
std::
cout <<
"Erreur à l'ouverture du fichier "
<<
filename <<
std::
endl;;
return
0
;
}
XI-B. Lecture et écriture en mode binaire▲
XI-B-1. Exercice 1▲
Proposez un programme qui écrit en binaire une chaîne de caractères suivant de la liste des entiers de 0 à 1000 :

Cet exercice a pour but de vérifier les points techniques suivants :
l'ouverture d'un fichier en écriture en mode binaire ;
tester si un fichier est ouvert (en particulier si vous avez les droits d'écriture sur le fichier) ;
écrire des données en binaire ;
fermer le fichier une fois l'écriture terminée.
Solution
Voici la source :
#include
<iostream>
#include
<fstream>
int
main (int
argc, char
*
argv[]) {
std::
ofstream myfile;
char
*
filename =
"exampleBinary.txt"
;
myfile.open (filename, std::ios::
out |
std::ios::
binary);
if
(myfile.is_open())
{
myfile.write("Liste des entiers de 1 à 1000"
,29
*
sizeof
(char
));
for
(int
i =
0
; i <=
1000
; i++
)
{
myfile.write((char
*
)&
i,sizeof
(int
));
}
}
else
{
std::
cout <<
"Erreur à l'ouverture du fichier "
<<
filename <<
std::
endl;
}
myfile.close();
return
0
;
}
XI-B-2. 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 :

Cet exercice a pour but de vérifier les points techniques suivants :
- l'ouverture d'un fichier en lecture en mode binaire ;
- tester si un fichier est ouvert (en particulier si vous avez les droits de lecture sur le fichier) ;
- lecture des données écrites en binaire ;
- fermer le fichier une fois la lecture terminée.
Solution
Voici la source :
#include
<iostream>
#include
<fstream>
int
main (int
argc, char
*
argv[]) {
std::
ifstream myfile;
char
*
filename =
"exampleBinary.txt"
;
char
buffer[29
];
int
value;
myfile.open (filename, std::ios::
in |
std::ios::
binary);
if
(myfile.is_open())
{
myfile.read(buffer,29
*
sizeof
(char
));
std::
cout <<
buffer <<
std::
endl;
for
(int
i =
0
; i <=
1000
; i++
)
{
myfile.read((char
*
)&
value,sizeof
(int
));
std::
cout <<
value <<
std::
endl;
}
}
else
{
std::
cout <<
"Erreur à l'ouverture du fichier "
<<
filename <<
std::
endl;
}
myfile.close();
return
0
;
}