Vous êtes sur la page 1sur 30

Initiation à la programmation : Langage C++

Chapitre 1 : Concepts de base de la programmation

Pr. Driss ABADA

Filière SMP - S4

Faculté des Sciences El Jadida

Année Universitaire : 2019/2020


Plan

1 Introduction

2 Structure générale d’un programme C++

3 Types et variables

4 Expressions et opérateurs

5 Conversion de type (transtypage)

6 Entrée - sortie

7 Les fonctions mathématiques

Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 2 / 27


Introduction

1 Introduction
Un peu d’histoire
I Le langage C++ est crée au début des années 1980 par Bjarne Stroustrup.
I Le C++ est une amélioration du langage C en lui ajoutant la notion de classe.
I C++11 est un véritable renouveau de C++, suivi de C++14 et C++17,

ajoutant de nombreuses fonctionnalités au langage.


Pourquoi le langage C++ ?
I Le C++ est très rapide. langage compilé et proche de la machine.
I Le C++ est très répondu dans le calcul numérique à haute performance
(p.ex résoudre des problèmes physiques et de l’analyse numérique)
Intégration numériques.
Résolution numérique des équations différentielles ordinaires.
Résolution numérique de systèmes d’équations algébriques ou différentielles.

I Le C++ est un langage multi-paradigmes. programmer de différents

façons : la programmation procédurale, orientée objet ou générique.


Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 3 / 27
Structure générale d’un programme C++

2 Structure générale d’un programme C++


Un programme écrit en C++ est caractérisé par :
I Un fichier source est un simple fichier texte qui contient les instructions de

programme, son nom possède l’extension .cpp.

I La déclaration/ la définition de toutes les variables et fonctions utilisées.

I Une seul fonction main() qui sera exécutée après la compilation. La fonction

principale main() est obligatoire dans tout programme C++.

I Une instruction se termine toujours par un " ;" pour qu’elle soit exécutable.

I Les commentaires sur une ligne // ou sur plusieurs lignes /*...*/, pour nous

aider à mieux comprendre le programme.

I Les directives de préprocesseur qui sont des lignes commençant par #, pour

indiquer au compilateur qu’il doit inclure un fichier header (.h) prédéfini qui

garantit une compilation correcte de programme.


Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 4 / 27
Structure générale d’un programme C++

Structure d’un programme C++


/*––––––––––––-Les directives de préprocesseur –––––––––––––*/
#include <fichier_header1> /* bibliothèque standard */
#include "fichier_header2" /* répertoire courant */
/*–––––––––––––La déclaration des fonctions ––––––––––––––*/
type1 fonction1(type1 x, type2 y) ;
/*–––-La déclaration des constantes et variables globales –––-*/
type nom_var1 ;
const type nom_const1 = valeur1 ;
/*––––––––––––-Programme principal ––––––––––––––––*/
int main () {
// Déclaration des variables et constantes locales
type var2, var3 ; const type const1= val1 ;
Liste des instructions ;
return 0 ;
}
// Définition de la fonction
type fonction1 (...) {
corps de la fonction ;
}
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 5 / 27
Structure générale d’un programme C++

Exemple d’un simple programme C++


/**** Calcul de surface et volume d’un cylindre. ****/
#include <iostream>
using namespace std ;
const double PI=3.14 ; // constante globale
double surfaceCylindre (double rayon) ; // déclaration
int main ()
{ // début du programme
double R, S, H, V ; // variables locales
cout << " Introduisez la valeur du rayon :" << endl ;
cin>> R ;
S = surfaceCylindre (R) ; // appel de la fonction
H = 10.0 ; V = H * S ; // calcul de volume
cout << " Surface =" << S<< "Volume =" << V<< endl ;
return 0 ;
} // fin du programme
double surfaceCylindre (double rayon) // définition de la fonc
{
return PI * rayon * rayon ;
}
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 6 / 27
Structure générale d’un programme C++

Élaboration d’un programme exécutable


1 Le préprocesseur (pré-compilation)
I Traitement de toutes les directives #xxxxx
I Inclusion de fichiers (.h)
I Substitutions lexicales : les "macros"
2 La compilation
I Vérification de la syntaxe
I Traduction de fichier généré par le préprocesseur en langage assembleur
3 L’assemblage
I Traduction finale de code assembleur en code machine.
I Production d’un fichier objet (.o ou .obj)
4 L’édition de liens
I Liaison de tous les fichiers objets pour produire un unique fichier exécutable
I Production du programme exécutable (.exe)
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 7 / 27
Structure générale d’un programme C++

Les différentes étapes d’élaboration d’un programme exécutable sont :

Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 8 / 27


Structure générale d’un programme C++

Environnement de développement intégré (EDI)


Un EDI (ou IDE pour Integrated Development Environment) est un logiciel
qui intègre de nombreux outils afin de faciliter l’élaboration d’un fichier
exécutable à partir d’un programme C++. Le minimum d’outils qui peut
inclure un IDE sont :
I Un éditeur de texte pour saisir le texte du code source.
I Un compilateur pour transformer le code source en binaire.
I Un débogueur (debugger) pour trouver les erreurs dans le programme.

Il existe de nombreux IDEs pour le langage C/C++ à savoir :


I Code : :Blocks
I Dev-C++
I Eclipse
I Visual Studio
I etc.

Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 9 / 27


Structure générale d’un programme C++

Environnement de l’IDE Code : :Blocks

Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 10 / 27


Types et variables

3 Types et variables
Définition d’une variable
I Une variable est un symbole représentant un emplacement de stockage dans

la mémoire de l’ordinateur (RAM) destiné à recevoir des données.


I Chaque variable occupe de 1 à 10 octets selon son type.

I Une variable est défini par son nom, son type, sa valeur, (choisis par le

programmeur) et son adresse (choisie par le système).


Types de données élémentaires
I Il existe deux grandes classes de types de données numériques en C++ :
Les types intégraux représentent les nombres entiers ;
Les types à virgule flottante (floating-point) représentent des approximations
des nombres réels.
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 11 / 27
Types et variables

Les types intégraux


Type Taille Plage de valeurs
int 2 ou 4 octes −215 à 215 − 1 ou −231 à 231 − 1
unsigned int 2 ou 4 octes 0 à 216 − 1 ou 0 à 232 − 1
short 2 octes −215 à 215 − 1
unsigned short 2 octes 0 à 216 − 1
long 4 octes −231 à 231 − 1
unsigned long 4 octes 0 à 232 − 1
char 1 octes −128 à 127 ou 0 à 255
unsigned char 1 octes 0 à 255
bool 1 octes true (0) ou false (1)
Les types flottants
Type Taille Plage de valeurs
float 4 octes −3.4 × 10−38 à −3.4 × 1038
double 8 octes −1.7 × 10−308 à 1.7 × 10308
long double 10 octes 3.4E − 4932 à 1.1E + 4932
Remarque :
On peut utiliser la fonction prédéfinie sizeof(type) pour retourner la taille
(nombre d’octets) occupée par un type. Exemple : sizeof(int).
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 12 / 27
Types et variables

Déclaration d’une variable


I Pour déclarer une variable en C++, on fait précéder son nom par son type
avec la syntaxe suivante :
Type nom_de_la_variable ;
Exemple :
int i, j, k ; // même type, une seule instruction
char c;
double x; // 2 types différents –> 2 instructions

I Une variable peut être initialisée lors de sa déclaration :


Exemple :
int i{0}; // nouveaux compilateurs
char c= ’A’; double x (12.34);

I En particulier, on peut déclarer une constante symbolique en ajoutant const


devant le nom du type, par exemple :

const double PI = 3.14159265358979323846;


const int MAX = 100 ;
#define MSG "Bonjour" // aussi on peut utiliser les macros

Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 13 / 27


Expressions et opérateurs

4 Expressions et opérateurs
Expression
I Une expression est une combinaison des variables, des valeurs, des parenthèses

et des opérateurs. En C++, on appelle expression tout ce qui a une valeur.

Opérateurs
I Un opérateur est un symbole qui opère sur une ou plusieurs expressions et

produit une valeur.


I Opérateurs arithmétiques :

*, +, -, / (division entière et réelle), % (modulo : reste de la division entières).


I Opérateur d’affectation :

En C++, on utilise l’opérateur = pour affecter une valeur à une variable selon
la syntaxe :

nom_de_la_variable = valeur ou expression ;

Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 14 / 27


Expressions et opérateurs

Exemple d’affectation, d’initialisation et d’arithmétique


#include <iostream>
using namespace std;
int main() {
//déclaration et affectation avec deux instructions
int Quantite;
Quantite = 10 ;
//déclaration et initialisation au même temps
double Prix = 20. ;
//déclaration d’une constante
const double TVA = 0.2 ;
//opérations arithmétiques
double Montant_HT = Prix * Quantite ;
cout << " Total TTC = " << Montant_HT * TVA << endl ;
return 0;
}
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 15 / 27
Expressions et opérateurs

Opérateurs d’affectation composés :


I + =, − =, ∗ =, / =, % =

Exemples
i += 3 ; // equivaut a i = i + 3.
x -= 5.3 ; // equivaut a x = x - 5.3.
y *= 1/4 ; // equivaut a y = y*1/4.
z /= y ; // equivaut a z = z/y.
r %= x ; // equivaut a r = r%x.

Opérateurs d’incrémentation et de décrémentation :


I + + i incrémente i de 1 puis retourne la nouvelle valeur : pré-incrémentation
I i + + incrémente i de 1 et retourne l’ancienne valeur : post-incrémentation
I En dehors d’une expression, i + + et + + i sont donc équivalents.
I Les deux opérateurs de décrémentation − − i et i − − fonctionnent comme

i + + et + + i, mais retranchent 1 à la valeur de i au lieu d’ajouter 1.


Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 16 / 27
Expressions et opérateurs

Exemple :
int i=1, j ;
j = i++ ; /* effectue d’abord j=i et ensuite i=i+1 */
cout << "i=" << i << "j=" << j ; // affiche alors i=2 j=1
j = ++i ; /* effectue en premier i=i+1 et ensuite j=i*/
cout << "i=" << i << "j=" << j ; // affiche alors i=3 j=3
// Un autre exemple
float val(5.0);
cout << val++ - 7.0 / 2.0; // le résultat affiché est 1.5.
cout << val ; // affiche 6

Opérateurs de comparaison :

Opérateur Signification Exemple


== test d’égalité 4 + 2 == 5 vaut false
!= différent de 2 ∗ 4 ! = 7 vaut true
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 17 / 27
Expressions et opérateurs

< inférieur à 1.7 < 1.8 vaut true


> supérieur à 5 > 5 vaut false
<= inférieur ou égal 6 <= 6 vaut true
>= supérieur ou égal 5 >= 6 vaut false
Opérateurs logiques :
Opérateur Signification Exemple avec x = 1 et y = 0
&& ET (AND) x > −2 && y == 0 vaut true
|| OU (OR) y <= x || y > 0 vaut false
! (unaire) NON (NOT) x && !y vaut true
Opérateur conditionnel :
I L’opérateur conditionnel ? : est un opérateur ternaire. Sa syntaxe est :
condition ? expression1 : expression2 ;
Cette expression est égale à expression1 si condition est satisfaite, et à
expression2 sinon.
Exemple :
int a, b=2, v(3) ;
a=(v==3) ? 2*b : 3*b ; // a vaut 4
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 18 / 27
Conversion de type (transtypage)

5 Conversion de type (transtypage)


On distingue deux type de conversions de type en C++ :
I La conversion implicite est effectué pour évaluer une expression (rvalue) qui
mélange plusieurs variables de types différents. Dans ce cas, c’est le type le
plus large qui est utilisé. (char < short int < int < long int < float < double )
Exemple :
float x = 19.0 / 5.0 ; // x vaut 3.8.
float y = 19.0 / 5, z = 19 / 5.0 ; //y vaut 3.8 et // z vaut 3.8.
int i = 19 / 5 ; // i vaut 3 (division de deux entiers).

I La conversion explicite est utilisé pour forcer la conversion d’une expression


dans un type désiré selon la syntaxe suivante : (type)expression ;
Exemple :
int i = 3, j = 2 , x ;
double r = 3.4, y ;
x = (double)i/j*r ; // x vaut 5
y = (double)i/j*r ; // x vaut 5.1
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 19 / 27
Entrée - sortie

6 Entrée - sortie
Pour être utile, un programme doit pouvoir communiquer avec son
environnement. En C++, on utilise les fonctions cin et cout.

Ces deux fonctions sont définies dans le fichier en tête iostream.

Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 20 / 27


Entrée - sortie

Affichage des données


I Pour afficher des données sur l’écran on utilise l’opérateur << et le flux cout

de la sortie standard.
I La syntaxe :
cout << arg1 << arg2 <<.... ;
Exemple :
int x = 2,y = 3;
//affichage d’une chaîne de caractère
cout << "Bonjour" ;
// affichage d’une chaîne de caractères et une expression
cout << "La somme de deux valeur est " << x+y ;
float m=(x+y)/2 ;
/* afficher une chaîne de caractère, valeur d’une variable et un saut de
ligne avec endl */
cout << "La moyenne est " << m << endl ;
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 21 / 27
Entrée - sortie

Lecture des données


I Pour lire des données depuis le clavier on utilise l’opérateur >> et le flux cin
de l’entrée standard.
I La syntaxe :
cin >> var1 >> var2 >>.... ;
Exemple :
int n;
cout << "Saisir un entier" ;
cin >> n ; //lit la valeur saisie et l affecte a n.
int a, b;
cin >> a >> b ;

Remarque :
Pour utiliser les flux d’entrée et de sortie standards cout et cin, on doit
ajouter le fichier en-tête iostream dans notre programme.
#include < iostream >
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 22 / 27
Entrée - sortie

Exercice 1 :
Qu’affiche le programme suivant ?
Programme :

# include < iostream >


using namespace std ;
int main () {
cout << " \ n le resultat d ’ ex é cution de ce programme \ n " ;
cout << " \ t " < <2/3 << " \ t " << 2./3 << " \ t " << 2/3.
<< " \ t " << 2./3. << endl ;
cout << " \ n \ t " < <(2.*3)/4 << " \ t " << 2.*(3/4) << " \ t "
<< 2.*3/4 << endl ;
return 0;
}

Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 23 / 27


Entrée - sortie

Exercice 2 :
Écrire un programme C++ qui permet une conversion de degré centigrade
en un degrés Fahrenheit d’une température.

Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 24 / 27


Entrée - sortie

Exercice 2 :
Écrire un programme C++ qui permet une conversion de degré centigrade
en un degrés Fahrenheit d’une température.
Solution
//conversion de degres Centigrade en degres Fahrenheit
#include <iostream>
using namespace std;
int main() {
//saisi de la temperature
double temp, faren;
cout << " Quelle est la temperature en C ? \n";
cin >> temp;
//conversion
faren = (temp * 9. / 5.) + 32.;
cout << " La temperature en F est : " << faren << endl;
return 0;
}
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 24 / 27
Les fonctions mathématiques

7 Les fonctions mathématiques


La bibliothèque standard C++ met à notre disposition les fonctions
mathématiques les plus utilisées. Elle sont définies dans le fichier cmath.
Pour les utiliser, il faut ajouter #include <cmath> en tête du programme.

abs(x) renvoie la valeur absolue de x.


cos(x) retourne le cosinus de x.
sin(x) retourne le sinus de x.
tan(x) retourne la valeur de tangente de x.
exp (x) retourne exponentiel de x.
log(x) retourne le logarithme népérien de x.
pow(x,y) retourne la valeur de x à la puissance y.
sqrt(x) retourne la racine carrée de x.
ciel(x) retourne le plus petit entier supérieur ou égal à x.
floor (x) retourne le plus grand entier inférieur ou égal à x.

Plusieurs constantes mathématiques y sont aussi définies :


I M_PI = π= 3.14159 . . . M_E = e = 2.71828 . . .
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 25 / 27
Les fonctions mathématiques

Exercice 3 :
Écrire un programme C++ qui permet de saisir la valeur du rayon d’une
sphère puis calcule sa surface et son volume.

Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 26 / 27


Les fonctions mathématiques

Exercice 3 :
Écrire un programme C++ qui permet de saisir la valeur du rayon d’une
sphère puis calcule sa surface et son volume.
Solution
#include <iostream>
//bibliothèque mathématique
#include <cmath>
using namespace std;
int main() {
//saisi des données
double rayon;
cout << "Quel est le rayon de la sphere ? " ;
cin >> rayon;
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 26 / 27
Les fonctions mathématiques

Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 27 / 27


Les fonctions mathématiques

//calcul de la surface de la sphere

const double PI = 3.14159;

double surface;

surface = 4. * PI * rayon * rayon;

cout << "La surface de la sphere est: " << surface << endl;

//calcul du volume de la sphere

double volume = 4./3. * M_PI * pow(rayon,3.);

cout << "Le volume de la sphere est: " << volume << endl;

return 0;

Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 27 / 27

Vous aimerez peut-être aussi