SlideShare une entreprise Scribd logo
1  sur  11
Chap1 : quelques éléments de 
base du C++ 
M. DIENG Abdoulaye 
Introduction au C++
Sommaire 
1. Entrée et sortie de base 
2. Type booléen 
3. Référence 
4. Fonctions 
5. Gestion dynamique de la mémoire
Entrée et sortie de base 
présentation 
• Permettent l’interactivité entre le programme et l’utilisateur 
• cin, le flux standard d'entrée associé au clavier 
• cout, le flux standard de sortie associé à l’écran 
• Ces flux s’utilisent grâce à ces deux lignes : 
#include <iostream> 
using namespace std; 
• L’écriture sur cout se fait à l'aide de l’opérateur d'injection <<. 
• La lecture sur cin se fait à l'aide de l’opérateur d'extraction >>. 
• Syntaxe 
cout << "chaine de caractères" << var ou expr << … 
cin >> variable1 >> variable2 >> …
Entrée et sortie de base 
exemple & application 
• Exemple : 
#include<iostream> 
using namespace std; 
int main(){ 
cout << "Entrez un entier : "; 
int i(0); 
cin >> i; 
cout << "Le carre de " << i 
<< " est "<< i*i<< endl; 
return 0; 
}
Le type booléen 
• Type : bool 
• Valeur : true ou false 
• L'opérateur logique (!) peut être utilisé pour changer une valeur 
booléenne de true à false, ou de false à true 
• Les valeurs booléennes sont évaluées à 1 (true) ou 0 (false) 
• L’entier nul vaut false et tout entier non nul vaut true 
• Exemple : 
bool estDemarree=false; 
if (!estDemarree) 
cout << "La voiture est eteinte, l'aiguille est a " 
<< estDemarree << endl; 
else 
cout << "La voiture est demarree, l'aiguille est a " 
<< estDemarree << endl;
Référence 
• Une référence est un alias d'une variable. 
• Une référence doit être initialisée à sa déclaration. 
• Syntaxe de déclaration : 
<type> & <identificateur>=<variable> 
• Une fois initialisée, une référence ne peut plus être modifiée. 
• Exemple : 
int unEntier=3; 
int & aliasDunEntier=unEntier; 
aliasDunEntier=13;// unEntier vaut maintenant 13
Les fonctions 
passage par référence (présentation) 
• Faire suivre le type de l’argument formel d’un & : 
<typeRslt> <nomFonction>( typeArg& nomArg, …) 
• Pas de copie de l’argument effectif => + de performance. 
• Possibilité de modification de l’argument effectif. 
• Pour empêcher la modification de l’argument effectif, faire 
précéder le type de l’argument formel de const: 
<typeRslt> <nomFonction>( const typeArg& nomArg, …)
Les fonctions 
paramètre par défaut 
• Permet de simplifier les appels de fonctions comportant un 
(ou des) paramètre(s) qui varie(nt) peu. 
• Exemple : 
– Déclaration : 
float f (char, int=10, char * ="Tout"); 
– Appels : 
f(c,t,"rien") 
f(c,t) // <=> f(c,t,"Tout") 
f(c) // <=> f(c,10,"Tout") 
f() // ERREUR 
• Les paramètres par défaut doivent être les derniers de la liste. 
float f (char='a', int, char * ="Tout"); // erreur
Les fonctions 
surcharge 
• La surcharge consiste à créer des fonctions de même nom 
avec des paramètres différents (en nombre et/ou en type). 
• Le compilateur détermine la fonction appelée en se basant 
sur le type et/ou le nombre des arguments effectifs. 
• Exemple : 
float max (float,float); 
float max (float,float,float); 
float max (int,float []); 
void main(){ 
float x,y,z; 
float tab[]={1.2, 2.3, 3.4, 4.5}; 
x=max(2.5,3.14); 
y=max(2.5,3.14,4.6); 
z=max(2,tab); 
} 
• NB : le type de retour n’intervient pas 
float max (int,float); 
double max (int,float); // erreur
Les fonctions 
inline 
• Le mot inline permet de définir une fonction qui sera 
remplacée par son code à chaque appel. 
• L'avantage est que l'exécution du programme sera plus rapide 
• À n’utiliser que pour des fonctions très courtes 
• Le compilateur doit disposer de la définition de la fonction en 
ligne au moment de traiter un appel à celle-ci. 
• Exemple : 
inline int minimum(int a,int b){ 
return (a<b)?a:b; 
} 
int main(){ 
cout << "La plus petite valeur " 
<< "entre 2 et 3 est : " << minimum(2,3); 
return 0; 
}
Gestion dynamique de la mémoire 
• La gestion dynamique de la mémoire consiste à allouer et 
libérer des emplacements mémoire au moment de l’exécution. 
• new <type>; 
alloue l’emplacement pour un seul élément du type indiqué. 
• new <type>[<n>]; 
alloue l’emplacement pour n éléments du type indiqué. 
• Utiliser (nothrow) juste après new permet de gérer l’échec (new 
retourne NULL) de la requête d’allocation. 
• delete <pointeur>; ou delete [] <pointeur>; 
libère un bloc mémoire précédemment alloué via new.

Contenu connexe

Tendances

Requêtes HTTP synchrones et asynchrones
Requêtes HTTPsynchrones et asynchronesRequêtes HTTPsynchrones et asynchrones
Requêtes HTTP synchrones et asynchronesAbdoulaye Dieng
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objetsAbdoulaye Dieng
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French CourseHaytam EL YOUSSFI
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScriptMicrosoft
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en PythonABDESSELAM ARROU
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniShellmates
 
Javascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryJavascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryneuros
 
Notions de base de JavaScript
Notions de base de JavaScriptNotions de base de JavaScript
Notions de base de JavaScriptKristen Le Liboux
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationECAM Brussels Engineering School
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionECAM Brussels Engineering School
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresECAM Brussels Engineering School
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesECAM Brussels Engineering School
 
Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...ECAM Brussels Engineering School
 

Tendances (20)

Les listes en Python
Les listes en PythonLes listes en Python
Les listes en Python
 
Requêtes HTTP synchrones et asynchrones
Requêtes HTTPsynchrones et asynchronesRequêtes HTTPsynchrones et asynchrones
Requêtes HTTP synchrones et asynchrones
 
Introduction à jQuery
Introduction à jQueryIntroduction à jQuery
Introduction à jQuery
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objets
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
Cours javascript v1
Cours javascript v1Cours javascript v1
Cours javascript v1
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
Cours php
Cours phpCours php
Cours php
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
Javascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryJavascript ne se limite pas à jquery
Javascript ne se limite pas à jquery
 
Python avancé : Qualité de code et convention de codage
Python avancé : Qualité de code et convention de codagePython avancé : Qualité de code et convention de codage
Python avancé : Qualité de code et convention de codage
 
Notions de base de JavaScript
Notions de base de JavaScriptNotions de base de JavaScript
Notions de base de JavaScript
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
 
Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...
 
C++ 11/14
C++ 11/14C++ 11/14
C++ 11/14
 

En vedette

Instrumentos de medida de ruido 1
Instrumentos de medida de ruido 1Instrumentos de medida de ruido 1
Instrumentos de medida de ruido 1Luis Benitez
 
Resultados de estudio SOS MUSIC
Resultados de estudio SOS MUSICResultados de estudio SOS MUSIC
Resultados de estudio SOS MUSICJaime León
 
Festival #RíoPaz 26 y 27 Abril Rionegro-Caquetá (Asojorio)
Festival #RíoPaz 26 y 27 Abril Rionegro-Caquetá (Asojorio)Festival #RíoPaz 26 y 27 Abril Rionegro-Caquetá (Asojorio)
Festival #RíoPaz 26 y 27 Abril Rionegro-Caquetá (Asojorio)Mary Hengy Torres
 
Annabelle Roberts: Agence et centre de formation spécialisés en présentations
Annabelle Roberts: Agence et centre de formation spécialisés en présentationsAnnabelle Roberts: Agence et centre de formation spécialisés en présentations
Annabelle Roberts: Agence et centre de formation spécialisés en présentationsAnnabelle Roberts
 
Trabajo practico numero 10 Lucila zamora
Trabajo practico numero 10 Lucila zamoraTrabajo practico numero 10 Lucila zamora
Trabajo practico numero 10 Lucila zamoraluly-z
 
Medios de transmisión guiados
Medios de transmisión guiadosMedios de transmisión guiados
Medios de transmisión guiadosGabriela Ramirez
 
L'amplificateur opérationnel
L'amplificateur opérationnelL'amplificateur opérationnel
L'amplificateur opérationnelAchraf Ourti
 
Ii.6. procedimientos de evaluación interna
Ii.6. procedimientos de evaluación internaIi.6. procedimientos de evaluación interna
Ii.6. procedimientos de evaluación internaCEIP CIudad de Belda
 
Korenblit
KorenblitKorenblit
Korenblitkoren96
 
La Universidad y sus estudiantes (Ignacio Despujol)
La Universidad y sus estudiantes (Ignacio Despujol)La Universidad y sus estudiantes (Ignacio Despujol)
La Universidad y sus estudiantes (Ignacio Despujol)Foro JuanLuisVives
 
Rapport licencepro managementressourcesnumériques
Rapport licencepro managementressourcesnumériquesRapport licencepro managementressourcesnumériques
Rapport licencepro managementressourcesnumériquesCasse2
 
Innovative city convention 2013 - Workshop 1 - Inria - Florent Genou
Innovative city convention 2013 - Workshop 1 - Inria - Florent GenouInnovative city convention 2013 - Workshop 1 - Inria - Florent Genou
Innovative city convention 2013 - Workshop 1 - Inria - Florent GenouiCOMMUNITY
 

En vedette (20)

Instrumentos de medida de ruido 1
Instrumentos de medida de ruido 1Instrumentos de medida de ruido 1
Instrumentos de medida de ruido 1
 
Elpuenteperdonar
ElpuenteperdonarElpuenteperdonar
Elpuenteperdonar
 
Aiglere
AiglereAiglere
Aiglere
 
Polares acabado
Polares acabadoPolares acabado
Polares acabado
 
Resultados de estudio SOS MUSIC
Resultados de estudio SOS MUSICResultados de estudio SOS MUSIC
Resultados de estudio SOS MUSIC
 
Festival #RíoPaz 26 y 27 Abril Rionegro-Caquetá (Asojorio)
Festival #RíoPaz 26 y 27 Abril Rionegro-Caquetá (Asojorio)Festival #RíoPaz 26 y 27 Abril Rionegro-Caquetá (Asojorio)
Festival #RíoPaz 26 y 27 Abril Rionegro-Caquetá (Asojorio)
 
Topicos
TopicosTopicos
Topicos
 
Annabelle Roberts: Agence et centre de formation spécialisés en présentations
Annabelle Roberts: Agence et centre de formation spécialisés en présentationsAnnabelle Roberts: Agence et centre de formation spécialisés en présentations
Annabelle Roberts: Agence et centre de formation spécialisés en présentations
 
Trabajo practico numero 10 Lucila zamora
Trabajo practico numero 10 Lucila zamoraTrabajo practico numero 10 Lucila zamora
Trabajo practico numero 10 Lucila zamora
 
Lady d
Lady dLady d
Lady d
 
Medios de transmisión guiados
Medios de transmisión guiadosMedios de transmisión guiados
Medios de transmisión guiados
 
L'amplificateur opérationnel
L'amplificateur opérationnelL'amplificateur opérationnel
L'amplificateur opérationnel
 
Estadística: semana01
Estadística: semana01Estadística: semana01
Estadística: semana01
 
Ii.6. procedimientos de evaluación interna
Ii.6. procedimientos de evaluación internaIi.6. procedimientos de evaluación interna
Ii.6. procedimientos de evaluación interna
 
Korenblit
KorenblitKorenblit
Korenblit
 
Libro2
Libro2Libro2
Libro2
 
La Universidad y sus estudiantes (Ignacio Despujol)
La Universidad y sus estudiantes (Ignacio Despujol)La Universidad y sus estudiantes (Ignacio Despujol)
La Universidad y sus estudiantes (Ignacio Despujol)
 
PERFIL DEL APRENDIZ
PERFIL DEL APRENDIZPERFIL DEL APRENDIZ
PERFIL DEL APRENDIZ
 
Rapport licencepro managementressourcesnumériques
Rapport licencepro managementressourcesnumériquesRapport licencepro managementressourcesnumériques
Rapport licencepro managementressourcesnumériques
 
Innovative city convention 2013 - Workshop 1 - Inria - Florent Genou
Innovative city convention 2013 - Workshop 1 - Inria - Florent GenouInnovative city convention 2013 - Workshop 1 - Inria - Florent Genou
Innovative city convention 2013 - Workshop 1 - Inria - Florent Genou
 

Similaire à cpp1 : Quelques elements de base du C++

02 Spécificité du C++ COURS SYS SYSSSSSS
02 Spécificité du C++  COURS SYS SYSSSSSS02 Spécificité du C++  COURS SYS SYSSSSSS
02 Spécificité du C++ COURS SYS SYSSSSSSAyoubElmrabet6
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptxolfaharrabi2
 
Formation python
Formation pythonFormation python
Formation pythonj_lipaz
 
03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdfAhmed12314
 
Cours langage c
Cours langage cCours langage c
Cours langage ccoursuniv
 
C1 - Langage C - ISIMA - Première partie
C1 - Langage C - ISIMA - Première partieC1 - Langage C - ISIMA - Première partie
C1 - Langage C - ISIMA - Première partieLoic Yon
 
Introduction au langage python notion de base
Introduction au langage python notion de baseIntroduction au langage python notion de base
Introduction au langage python notion de basemohamedAitomar1
 
Introduction au langage python (Notion de base)
Introduction au langage python (Notion de base)Introduction au langage python (Notion de base)
Introduction au langage python (Notion de base)mohamedAitomar1
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Fahad Golra
 
cours fortran.pptx
cours fortran.pptxcours fortran.pptx
cours fortran.pptxMED B
 
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCSiratiSoufiane
 
Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Jean-Baptiste Vigneron
 

Similaire à cpp1 : Quelques elements de base du C++ (20)

02 Spécificité du C++ COURS SYS SYSSSSSS
02 Spécificité du C++  COURS SYS SYSSSSSS02 Spécificité du C++  COURS SYS SYSSSSSS
02 Spécificité du C++ COURS SYS SYSSSSSS
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptx
 
Formation python
Formation pythonFormation python
Formation python
 
Chap1_Entrees_Sorties.pptx
Chap1_Entrees_Sorties.pptxChap1_Entrees_Sorties.pptx
Chap1_Entrees_Sorties.pptx
 
03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
C1 - Langage C - ISIMA - Première partie
C1 - Langage C - ISIMA - Première partieC1 - Langage C - ISIMA - Première partie
C1 - Langage C - ISIMA - Première partie
 
Formation python
Formation pythonFormation python
Formation python
 
Introduction au langage python notion de base
Introduction au langage python notion de baseIntroduction au langage python notion de base
Introduction au langage python notion de base
 
Introduction au langage python (Notion de base)
Introduction au langage python (Notion de base)Introduction au langage python (Notion de base)
Introduction au langage python (Notion de base)
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C
 
cours fortran.pptx
cours fortran.pptxcours fortran.pptx
cours fortran.pptx
 
POO-chapitre2.pptx
POO-chapitre2.pptxPOO-chapitre2.pptx
POO-chapitre2.pptx
 
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 
Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6
 
Ch02
Ch02Ch02
Ch02
 
Programmation en C
Programmation en CProgrammation en C
Programmation en C
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 
Nouveautés de java 8
Nouveautés de java 8Nouveautés de java 8
Nouveautés de java 8
 

Plus de Abdoulaye Dieng

Fondamentaux du Référencement naturel
Fondamentaux du Référencement naturelFondamentaux du Référencement naturel
Fondamentaux du Référencement naturelAbdoulaye Dieng
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobilesAbdoulaye Dieng
 
Prise en main de WordPress
Prise en main de WordPressPrise en main de WordPress
Prise en main de WordPressAbdoulaye Dieng
 
Fondamentaux d’une API REST
Fondamentaux d’une API RESTFondamentaux d’une API REST
Fondamentaux d’une API RESTAbdoulaye Dieng
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJSAbdoulaye Dieng
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express jsAbdoulaye Dieng
 
Cours référencement naturel supdeco techonologie avril-15
Cours référencement naturel supdeco techonologie avril-15Cours référencement naturel supdeco techonologie avril-15
Cours référencement naturel supdeco techonologie avril-15Abdoulaye Dieng
 
Cours CSS feuilles de style en cascade- mars 2015
Cours CSS feuilles de style en cascade- mars 2015Cours CSS feuilles de style en cascade- mars 2015
Cours CSS feuilles de style en cascade- mars 2015Abdoulaye Dieng
 
Architecture ordinateur-echange-de-donnees
Architecture ordinateur-echange-de-donneesArchitecture ordinateur-echange-de-donnees
Architecture ordinateur-echange-de-donneesAbdoulaye Dieng
 

Plus de Abdoulaye Dieng (20)

Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
Fondamentaux du Référencement naturel
Fondamentaux du Référencement naturelFondamentaux du Référencement naturel
Fondamentaux du Référencement naturel
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobiles
 
Prise en main de WordPress
Prise en main de WordPressPrise en main de WordPress
Prise en main de WordPress
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
Fondamentaux d’une API REST
Fondamentaux d’une API RESTFondamentaux d’une API REST
Fondamentaux d’une API REST
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Introduction à HTML 5
Introduction à HTML 5Introduction à HTML 5
Introduction à HTML 5
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
introduction à MongoDB
introduction à MongoDBintroduction à MongoDB
introduction à MongoDB
 
Cours référencement naturel supdeco techonologie avril-15
Cours référencement naturel supdeco techonologie avril-15Cours référencement naturel supdeco techonologie avril-15
Cours référencement naturel supdeco techonologie avril-15
 
Cours CSS feuilles de style en cascade- mars 2015
Cours CSS feuilles de style en cascade- mars 2015Cours CSS feuilles de style en cascade- mars 2015
Cours CSS feuilles de style en cascade- mars 2015
 
Architecture ordinateur-echange-de-donnees
Architecture ordinateur-echange-de-donneesArchitecture ordinateur-echange-de-donnees
Architecture ordinateur-echange-de-donnees
 

cpp1 : Quelques elements de base du C++

  • 1. Chap1 : quelques éléments de base du C++ M. DIENG Abdoulaye Introduction au C++
  • 2. Sommaire 1. Entrée et sortie de base 2. Type booléen 3. Référence 4. Fonctions 5. Gestion dynamique de la mémoire
  • 3. Entrée et sortie de base présentation • Permettent l’interactivité entre le programme et l’utilisateur • cin, le flux standard d'entrée associé au clavier • cout, le flux standard de sortie associé à l’écran • Ces flux s’utilisent grâce à ces deux lignes : #include <iostream> using namespace std; • L’écriture sur cout se fait à l'aide de l’opérateur d'injection <<. • La lecture sur cin se fait à l'aide de l’opérateur d'extraction >>. • Syntaxe cout << "chaine de caractères" << var ou expr << … cin >> variable1 >> variable2 >> …
  • 4. Entrée et sortie de base exemple & application • Exemple : #include<iostream> using namespace std; int main(){ cout << "Entrez un entier : "; int i(0); cin >> i; cout << "Le carre de " << i << " est "<< i*i<< endl; return 0; }
  • 5. Le type booléen • Type : bool • Valeur : true ou false • L'opérateur logique (!) peut être utilisé pour changer une valeur booléenne de true à false, ou de false à true • Les valeurs booléennes sont évaluées à 1 (true) ou 0 (false) • L’entier nul vaut false et tout entier non nul vaut true • Exemple : bool estDemarree=false; if (!estDemarree) cout << "La voiture est eteinte, l'aiguille est a " << estDemarree << endl; else cout << "La voiture est demarree, l'aiguille est a " << estDemarree << endl;
  • 6. Référence • Une référence est un alias d'une variable. • Une référence doit être initialisée à sa déclaration. • Syntaxe de déclaration : <type> & <identificateur>=<variable> • Une fois initialisée, une référence ne peut plus être modifiée. • Exemple : int unEntier=3; int & aliasDunEntier=unEntier; aliasDunEntier=13;// unEntier vaut maintenant 13
  • 7. Les fonctions passage par référence (présentation) • Faire suivre le type de l’argument formel d’un & : <typeRslt> <nomFonction>( typeArg& nomArg, …) • Pas de copie de l’argument effectif => + de performance. • Possibilité de modification de l’argument effectif. • Pour empêcher la modification de l’argument effectif, faire précéder le type de l’argument formel de const: <typeRslt> <nomFonction>( const typeArg& nomArg, …)
  • 8. Les fonctions paramètre par défaut • Permet de simplifier les appels de fonctions comportant un (ou des) paramètre(s) qui varie(nt) peu. • Exemple : – Déclaration : float f (char, int=10, char * ="Tout"); – Appels : f(c,t,"rien") f(c,t) // <=> f(c,t,"Tout") f(c) // <=> f(c,10,"Tout") f() // ERREUR • Les paramètres par défaut doivent être les derniers de la liste. float f (char='a', int, char * ="Tout"); // erreur
  • 9. Les fonctions surcharge • La surcharge consiste à créer des fonctions de même nom avec des paramètres différents (en nombre et/ou en type). • Le compilateur détermine la fonction appelée en se basant sur le type et/ou le nombre des arguments effectifs. • Exemple : float max (float,float); float max (float,float,float); float max (int,float []); void main(){ float x,y,z; float tab[]={1.2, 2.3, 3.4, 4.5}; x=max(2.5,3.14); y=max(2.5,3.14,4.6); z=max(2,tab); } • NB : le type de retour n’intervient pas float max (int,float); double max (int,float); // erreur
  • 10. Les fonctions inline • Le mot inline permet de définir une fonction qui sera remplacée par son code à chaque appel. • L'avantage est que l'exécution du programme sera plus rapide • À n’utiliser que pour des fonctions très courtes • Le compilateur doit disposer de la définition de la fonction en ligne au moment de traiter un appel à celle-ci. • Exemple : inline int minimum(int a,int b){ return (a<b)?a:b; } int main(){ cout << "La plus petite valeur " << "entre 2 et 3 est : " << minimum(2,3); return 0; }
  • 11. Gestion dynamique de la mémoire • La gestion dynamique de la mémoire consiste à allouer et libérer des emplacements mémoire au moment de l’exécution. • new <type>; alloue l’emplacement pour un seul élément du type indiqué. • new <type>[<n>]; alloue l’emplacement pour n éléments du type indiqué. • Utiliser (nothrow) juste après new permet de gérer l’échec (new retourne NULL) de la requête d’allocation. • delete <pointeur>; ou delete [] <pointeur>; libère un bloc mémoire précédemment alloué via new.