Académique Documents
Professionnel Documents
Culture Documents
EMSI - Tanger
▪ Début en 1983.
▪ Amélioration du langage C:
▪ Abstraction de données
▪ Programmation orientée objet
▪ Programmation générique
▪ Très utilisé !
Programmer:
Une fois trouvé l’algorithme, programmer en C++ comporte 3 phases:
1. Editer le programme – avec votre éditeur de texte favori. . .
2. Compiler le programme (avec g++)
3. Exécuter le programme
4. TESTER et DEBUGGER : retour au point 1 !
Le langage C++ - Exemple
Premier programme:
Structures de base du C++
Programmation
Les briques de base du langage:
Types de base
▪ vide : void . Aucune variable ne peut être de ce type.
Variables:
Une variable est caractérisée par :
▪ son nom
▪ son type précisant la nature de cette variable (nombre entier,
caractère, objet etc.),
▪ sa valeur qui peut être modifiée à tout instant.
Syntaxe : type v;
• int p ;
• double x ;
Définition de variable
▪ Une variable peut être initialisée lors de sa déclaration, deux
notations sont possibles :
▪ Une variable d’un type élémentaire qui n’est pas initialisée, n’a
pas de valeur définie: elle peut contenir n’importe quoi.
Structures de base du C++
Types, variables...
Constantes symboliques
Syntaxe : const type nom = val ;
Exemple: const int Taille = 100 ;
Chaînes de caractères
Il existe une classe string, ce n’est pas un type élémentaire.
Pour l’utiliser, il faut placer tête du fichier :
# include <string>
Tableaux
▪ Pour utiliser la classe vector, il faut placer en tête du fichier :
# include <vector>
▪ Un tableau est typé:
vector<int> Tab(100,5) ;
vector<int> Tab(50) ;
vector<double> T ;
Tableaux
▪ T[i] désigne le i-ème élément avec i = 0, . . . T.size()-1.
▪ vector<vector<int> > T définit un tableau à deux dimensions.
Affectation
En C/C++, l’affectation est une expression:
Soient v une variable et expr une expression.
v = expr affecte la valeur de expr à la variable v et retourne la
valeur affectée à v comme résultat.
Exemple:
i = (j = 0) affecte 0 à j puis à i et retourne 0 !!
Structures de base du C++
Expressions
Opérateurs de comparaison
< (inférieur), <= (inférieur ou égal), == (égal), > (supérieur),
>= (supérieur ou égal) et != (différent)
Opérateurs booléens
&& représente l’opérateur “ET”, || représente le “OU”, et !
représente le “NON”.
Conversion de type
L’expression d’affectation peut provoquer une conversion de type.
Exemple:
int i;
float x;
Opérateurs d’entrées-sorties
Ce sont les opérateurs << et >>, utilisés en conjonction avec des objets
prédéfinis cout et cin déclarés dans <iostream>
(ne pas oublier la directive #include <iostream> en début de fichier).
Formes :
cout << <expression> : affichage à l’écran de la valeur de
<expression>,
cin >> <variable> : lecture au clavier de la valeur de <variable>
Structures de base du C++
La boucle FOR
for (expr1 ;expr2 ;expr3) instr
Structures de base du C++
Instructions usuelles
La boucle WHILE
while (expr) instr
Structures de base du C++
Instructions usuelles
La boucle DO
do instr while (expr) ;
Structures de base du C++
Structure générale d’un programme
int main() ou
int main( int argc, char ** argv ) pour passer des arguments.
Structures de base du C++
Structure générale d’un programme
Un programme complet:
Structures de base du C++
Structure générale d’un programme
Exemple: Solution
#include <iostream>
using namespace std;
int main()
{
int n;
float x;
cout<<"donnez un entier et un flottant« <<endl;
cin>>n>>x;
cout<<"le produit de "<<n<<" par "<<x<< "\n est : "<<n*x;
}
Structures de base du C++
Les fonctions
Définition de fonction:
type nom( liste des paramètres) { corps }
Exemple de fonctions:
Structures de base du C++
Les fonctions
Exemple :
int k=34, t=5, m ;
m = max(k,2*t+5) ;
Structures de base du C++
Les fonctions
Exemple:
Structures de base du C++
Les fonctions
▪ Il est recommandé d’utiliser vec.at() car il contrôle la plage et lève une exception
lorsque l'indice est hors plage.
Structures de base du C++
Les Tableaux – les vecteurs
Insertion:
▪ La classe vector définit plusieurs fonctions membres qui insèrent un ou plusieurs
éléments dans le conteneur.
▪ L'insertion à la queue est très efficace et ne nécessite pas de déplacement des
éléments dans le vecteur.
▪ L'insertion au milieu et à l'avant nécessite une réallocation des éléments en mémoire.
Déclaration et initialisation :
Parcours:
▪ Boucle for :
for ( int i = 0 ; i < v.size ( ) ; i++)
cout << v [ i ] ;
▪ Iterator : un itérateur est un objet qui pointe vers des éléments d'un tableau, d'un container
(map, vector, . . . ), . . . .
for (vector<int >:: iterator it =v.begin( ) ; it != v.end( ) ; it++ )
cout << *it ;
Structures de base du C++
Les Tableaux – les vecteurs
Parcours
for ( auto i : v )
cout << i ;
auto : Spécifie que le type de la variable sera déduit automatiquement lors de son
initialisation.
Structures de base du C++
Les Tableaux – les vecteurs
Suppression:
▪ Suppression d'un seul élément :
v.erase ( v.begin( )+2) ;
Remarque : La fonction retourne l’itérateur pointant sur l'élément qui suit le dernier
élément supprimé
Structures de base du C++
Les Tableaux – les vecteurs
En utilisant la librairie algorithm.h, on peut utiliser quelques fonctions sur les vecteurs:
✓ void flip(): inverse toutes les valeurs dans le conteneur : toutes les instances de true deviennent false et
toutes les instances de false deviennent true.
✓ resize(valeur): redimensionne le vecteur avec une nouvelle capacité « valeur », mais il ne détruit pas les
éléments.
✓ shrink_to_fit(): réduit la capacité du conteneur et détruit tous les éléments en dehors de la nouvelle capacité.
Structures de base du C++
Les Tableaux – les vecteurs
Exemple:
int main()
{
// vecteur initial
vector<int> v(10);
for (int i = 0; i < 10; i++)
v[i] = i;
Exemple (suite):