2. Cours semaine 1 jour 3 Cours C++ (2002) 2
Plan du jour
Présentation de l’environnement de
développement Microsoft
Utilisation des objets à travers un premier
programme
Utilisation des librairies
3. Cours semaine 1 jour 3 Cours C++ (2002) 3
Microsoft Visual C++
L’environnement de développement
Microsoft fournit un environnement
complet pour
La rédaction des programmes
Leur vérification syntaxique
Leur compilation
Leur débogage
4. Cours semaine 1 jour 3 Cours C++ (2002) 4
Microsoft Visual C++ (2)
5. Cours semaine 1 jour 3 Cours C++ (2002) 5
Microsoft Visual C++ (3)
File > New
6. Cours semaine 1 jour 3 Cours C++ (2002) 6
Microsoft Visual C++ (4)
7. Cours semaine 1 jour 3 Cours C++ (2002) 7
Microsoft Visual C++ (5)
8. Cours semaine 1 jour 3 Cours C++ (2002) 8
Microsoft Visual C++ (6)
9. Cours semaine 1 jour 3 Cours C++ (2002) 9
Microsoft Visual C++ (7)
10. Cours semaine 1 jour 3 Cours C++ (2002) 10
Microsoft Visual C++ (8)
11. Cours semaine 1 jour 3 Cours C++ (2002) 11
Microsoft Visual C++ (9)
12. Cours semaine 1 jour 3 Cours C++ (2002) 12
Microsoft Visual C++ (10)
13. Cours semaine 1 jour 3 Cours C++ (2002) 13
Microsoft Visual C++ (11)
14. Cours semaine 1 jour 3 Cours C++ (2002) 14
Codons…
#include <iostream> // Declarations des streams (I/O)
using namespace std;
void main()
{
cout << "Hello, World!" << endl;
}
15. Cours semaine 1 jour 3 Cours C++ (2002) 15
Codons… (2)
#include <iostream>
void main()
{
std::cout << "Hello, World!" << endl;
}
16. Cours semaine 1 jour 3 Cours C++ (2002) 16
Codons… (3)
#include <iostream>
using namespace std;
void main()
{
cout << "Cette chaine de caracteres est "
"bien longuenmais il est tout de "
"meme possible de la traitern";
}
17. Cours semaine 1 jour 3 Cours C++ (2002) 17
Codons… (4)
#include <iostream>
using namespace std;
void main() {
int num;
cout << "Saisissez un nombre entier : ";
cin >> num;
cout << "valeur en octal = 0"
<< oct << num << endl;
cout << "valeur en hexa = 0x"
<< hex << num << endl;
}
18. Cours semaine 1 jour 3 Cours C++ (2002) 18
Codons… (5)
#include <string>
#include <iostream>
using namespace std;
void main() {
string s1, s2;
string s3 = "Hello, World.";
string s4("I am");
s2 = "Today";
s1 = s3 + " " + s4;
s1 += " here ";
cout << s1 + s2 + "!" << endl;
}
19. Cours semaine 1 jour 3 Cours C++ (2002) 19
Codons… (6)
#include <iostream>
using namespace std;
void main() {
int i;
cout << "Entrez un nombre et Enter'" << endl;
cin >> i;
if( i > 5 )
cout << "Plus grand que 5" << endl;
else
if( i < 5 )
cout << "Moins grand que 5" << endl;
else
cout << "Egal à 5" << endl;
}
20. Cours semaine 1 jour 3 Cours C++ (2002) 20
Codons… (7)
#include <iostream>
using namespace std;
void main() {
int i;
cout << "Entrez un nombre et Enter'" << endl;
cin >> i;
if(i < 10)
if(i > 5)
cout << "5 < i < 10" << endl;
else
cout << "i <= 5" << endl;
else
cout << "i >= 10" << endl;
}
21. Cours semaine 1 jour 3 Cours C++ (2002) 21
Codons… (8)
#include <iostream>
using namespace std;
void main()
{
int secret = 15;
int tentative = 0;
while( tentative != secret ) {
cout << "Devinez le chiffre mystere : ";
cin >> tentative;
}
cout << secret << " est le bon choix !" << endl;
}
22. Cours semaine 1 jour 3 Cours C++ (2002) 22
Codons… (9)
#include <iostream>
using namespace std;
void main()
{
int secret = 15;
int tentative; // pas d’initialisation
do {
cout << "Devinez le chiffre mystere : ";
cin >> tentative;
}
while( tentative != secret );
cout << secret << " est le bon choix !" << endl;
}
23. Cours semaine 1 jour 3 Cours C++ (2002) 23
Codons… (10)
#include <iostream>
using namespace std;
void main()
{
for( int i = 0; i < 128; i = i + 1 )
if ( i != 26 ) // Clear screen
cout << " valeur : " << i
<< " - caractere : "
<< char( i )
<< endl;
}
24. Cours semaine 1 jour 3 Cours C++ (2002) 24
Codons… (11)
#include <iostream>
using namespace std;
void main() {
int val = 0;
for( int i = 1; i < 10; i++ ) {
for( int j = 1; j < 10; j += 1 ) {
val = i * j;
cout << val << endl;
if( val > 8 )
break;
}
}
cout << val << endl;
}
25. Cours semaine 1 jour 3 Cours C++ (2002) 25
Codons… (12)
#include <iostream>
using namespace std;
void main() {
int val = 0;
for( int i = 1; i < 10; i++ ) {
for( int j = 1; j < 10; j += 1 ) {
val = i * j;
cout << val << endl;
if( val > 8 )
goto bottom;
}
}
bottom:
cout << val << endl;
}
26. Cours semaine 1 jour 3 Cours C++ (2002) 26
Codons… (13)
#include <iostream>
using namespace std;
void main() {
int i = 0;
int j = 0;
cout << ++i << endl;
cout << j++ << endl;
cout << --i << endl;
cout << j-- << endl;
}
27. Cours semaine 1 jour 3 Cours C++ (2002) 27
Codons… (14)
#include <iostream>
using namespace std;
void main() {
// déclaration des variables
// affichage
}
28. Cours semaine 1 jour 3 Cours C++ (2002) 28
Codons… (15)
char c;
unsigned char cu;
int i;
unsigned int iu;
short int is;
short iis;
unsigned short int isu;
unsigned short iisu;
long int il;
long iil;
unsigned long int ilu;
unsigned long iilu;
float f;
double d;
long double ld;
29. Cours semaine 1 jour 3 Cours C++ (2002) 29
Codons… (16)
cout << "n char= " << sizeof( c )
<< "n unsigned char = " << sizeof( cu )
<< "n int = " << sizeof( i )
<< "n unsigned int = " << sizeof( iu )
<< "n short = " << sizeof( is )
<< "n unsigned short = " << sizeof( isu )
<< "n long = " << sizeof( il )
<< "n unsigned long = " << sizeof( ilu )
<< "n float = " << sizeof( f )
<< "n double = " << sizeof( d )
<< "n long double = " << sizeof( ld )
<< endl;
30. Cours semaine 1 jour 3 Cours C++ (2002) 30
Codons… (17)
#include <iostream>
using namespace std;
int a, b, c, d;
void f( int x ) {
cout << "x = " << x << endl;
}
…
32. Cours semaine 1 jour 3 Cours C++ (2002) 32
Codons… (19)
#include <iostream>
using namespace std;
void valued( int a ) {
cout << "a = " << a << endl;
a = 5;
cout << "a = " << a << endl;
}
void main() {
int x = 10;
cout << "x = " << x << endl;
valued( x );
cout << "x = " << x << endl;
}
33. Cours semaine 1 jour 3 Cours C++ (2002) 33
Codons… (20)
#include <iostream>
using namespace std;
void refed( int* p ) {
cout << "p = " << p << endl;
cout << "*p = " << *p << endl;
*p = 5;
cout << "p = " << p << endl;
}
void main() {
int x = 10;
cout << "x = " << x << endl;
cout << "&x = " << &x << endl;
refed( &x );
cout << "x = " << x << endl;
}
34. Cours semaine 1 jour 3 Cours C++ (2002) 34
Codons… (21)
#include <iostream>
using namespace std;
void main() {
void* vp;
char c;
int i = 10;
float f;
double d;
vp = &c;
vp = &f;
vp = &d;
vp = &i;
*((int*) vp) = 3;
cout << "i = " << i << endl;
}
35. Cours semaine 1 jour 3 Cours C++ (2002) 35
Codons… (22)
#include <iostream>
using namespace std;
int globe;
void func();
void main()
{
globe = 12;
cout << globe << endl;
func();
cout << globe << endl;
}
extern int globe;
void func()
{
globe = 47;
}
36. Cours semaine 1 jour 3 Cours C++ (2002) 36
Codons… (23)
#include <iostream>
using namespace std;
extern int i;
extern void func();
void main() {
i = 0;
func();
}
int i;
void func() {
i++;
cout << i;
}
37. Cours semaine 1 jour 3 Cours C++ (2002) 37
Codons… (24)
#include <iostream>
using namespace std;
void fonc() {
static int i = 0;
cout << "i = " << ++i << endl;
}
void main() {
for( int x = 0; x < 10; x++ )
fonc();
}
38. Cours semaine 1 jour 3 Cours C++ (2002) 38
Codons… (25)
struct MaStructure {
char c;
int i;
float f;
double d;
};
void main() {
struct MaStructure s1;
s1.c = 'a';
s1.i = 1;
s1.f = 3.14;
s1.d = 2.718;
}
39. Cours semaine 1 jour 3 Cours C++ (2002) 39
Codons… (26)
typedef struct {
char c;
int i;
float f;
double d;
} MaStructure;
void main() {
MaStructure s1;
s1.c = 'a';
s1.i = 1;
s1.f = 3.14;
s1.d = 2.718;
}
41. Cours semaine 1 jour 3 Cours C++ (2002) 41
Codons… (28)
#include <iostream>
using namespace std;
union Unis {
char c;
float f;
};
void main() {
cout << "sizeof( Unis ) = " << sizeof( Unis ) << endl;
Unis x;
x.c = 'c';
cout << x.c << endl;
x.f = 3.14159;
cout << x.f << endl;
}
42. Cours semaine 1 jour 3 Cours C++ (2002) 42
Codons… (29)
#include <iostream>
using namespace std;
typedef struct {
int i, j, k;
} PointTroisD;
void main() {
PointTroisD p[ 10 ];
for( int i = 0; i < 10; i++ ) {
p[ i ].i = i + 1; // deux i différents !
p[ i ].j = i + 2;
p[ i ].k = i + 3;
cout << p[ i ].i << endl;
}
}
43. Cours semaine 1 jour 3 Cours C++ (2002) 43
Codons… (30)
#include <iostream>
using namespace std;
void main()
{
int a[ 10 ];
cout << "sizeof( int ) = "<< sizeof( int ) << endl;
for( int i = 0; i < 10; i++ )
cout << "&a[" << i << "] = "
<< (long) &a[ i ] << endl;
}
44. Cours semaine 1 jour 3 Cours C++ (2002) 44
Codons… (31)
#include <iostream>
using namespace std;
void main( int argc, char* argv[ ] )
{
cout << "argc = " << argc << endl;
for( int i = 0; i < argc; i++ )
cout << "argv[ " << i << " ] = "
<< argv[ i ] << endl;
}
45. Cours semaine 1 jour 3 Cours C++ (2002) 45
Codons… (32)
#include <string>
#include <fstream>
using namespace std;
void main()
{
ifstream in( "test-in.txt" );
ofstream out( "test-in.txt" );
string s;
while( getline( in, s ) )
out << s << "n"; // pourquoi un n ?
}
46. Cours semaine 1 jour 3 Cours C++ (2002) 46
Codons… (33)
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
void main()
{
ifstream in( "test-in.txt" );
string s, line;
while( getline( in, line ) )
s += line + "n";
cout << s;
}
47. Cours semaine 1 jour 3 Cours C++ (2002) 47
Codons… (34)
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
void main() {
vector<string> v;
ifstream in( "test-in.txt" );
string line;
while( getline( in, line ) )
v.push_back( line );
for( int i = 0; i < v.size(); i++ )
cout << i << ": " << v[ i ] << endl;
}
48. Cours semaine 1 jour 3 Cours C++ (2002) 48
Codons… (35)
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
void main() {
vector<string> v;
ifstream in( "test-in.txt" );
string line;
while( in >> line ) // quel impact ?
v.push_back( line );
for( int i = 0; i < v.size(); i++ )
cout << v[ i ] << endl;
}
49. Cours semaine 1 jour 3 Cours C++ (2002) 49
Codons… (36)
#include <iostream>
#include <vector>
using namespace std;
void main() {
vector<int> v;
for( int i = 0; i < 10; i++ )
v.push_back( i );
for( int i = 0; i < v.size(); i++ )
cout << v[ i ] << ", ";
cout << endl;
for( int i = 0; i < v.size(); i++ )
v [ i ] = v [ i ] * 10; // autre écriture ?
for( int i = 0; i < v.size(); i++ )
cout << v [ i ] << ", ";
cout << endl;
}
50. Cours semaine 1 jour 3 Cours C++ (2002) 50
Codons… (37)
#include <cassert>
using namespace std;
void main() {
int i = 100;
assert( i != 100 );
}
51. Cours semaine 1 jour 3 Cours C++ (2002) 51
Exercices
Exercice #1
Lire un fichier contenant des lignes de
caractères
Imprimer les lignes à l’écran dans l’ordre
inverse de leur apparition dans le fichier texte
(imprimer d’abord la dernière, la première ligne
du fichier texte étant imprimée en dernier à
l’écran)
52. Cours semaine 1 jour 3 Cours C++ (2002) 52
Exercices (2)
Exercice #2
À partir de la taille du côté d’un carré saisie au
clavier, calculer et imprimer son périmètre et sa
surface
Modifier le programme pour calculer le
périmètre et la surface d’un cercle
Modifier le programme pour passer le
paramètre à l’appel de la fonction ou, s’il n’est
pas fourni, le demander pendant l’exécution
53. Cours semaine 1 jour 3 Cours C++ (2002) 53
Exercices (3)
Exercice #3
Créer trois vecteurs de 10 réels
Remplir les deux premiers avec des valeurs de
votre choix mais différentes les unes des autres
Utiliser le troisième vecteur pour stocker la
somme des éléments correspondants dans les
deux autres vecteurs
Afficher le tout
54. Cours semaine 1 jour 3 Cours C++ (2002) 54
Exercices (4)
Exercice #4
Faites un programme qui permet la saisie d’un
nombre
À l’aide d’un switch, vérifier que ce nombre
n’est pas une des deux valeurs particulières que
vous aurez choisies
55. Cours semaine 1 jour 3 Cours C++ (2002) 55
Questions / Remarques