SlideShare ist ein Scribd-Unternehmen logo
1 von 25
C++
1er cours
Patrick Reuter
maître de conférences
http://www.labri.fr/~preuter/c++
Historique de langage de
programmation
• ~1840 --‘Premier programme' (Ada Lovelace)
• 1947 -- Calcul (Konrad Zuse)
• 1954 -- FORTRAN (John Backus)
• 1958 -- ALGOL
• 1959 -- LISP (McCarthy)
• 1960 -- COBOL (Grace Hopper)
• 1960 -- BASIC (Kemeny, Kurtz)
• 1962 -- APL
• 1964 -- PL/1 (Heinz Zemanek)
• 1965 -- Simula (Dahl, Nygaard)
• 1966 -- MUMPS (Octo Barnett, Neil Pappalardo,
Kurt Marble (MIT))
• 1966 -- HAL (de la NASA pour le Space Shuttle)
• 1968 -- Logo (Seymour Papert)
• 1969 -- BCPL
• 1970 -- Forth (Charles H. Moore)
• 1971 -- Pascal (Niklaus Wirth, Kathleen Jensen)
• 1971 -- sh
• 1972 -- C (Brian W. Kernighan, Dennis Ritchie)
(premier de Ken Thompson)
• 1973 -- ML
• 1975 -- Prolog (Colmerauer et. al.)
• 1978 -- Modula-2
• 1978 -- awk
• 1980 -- Smalltalk (Alan Kay)
• 1980 -- Ada
• 1983 -- Objective C (ObjC) (Brad Cox)
• 1983 -- C++ (Bjarne Stroustrup)
• 1985 -- Eiffel (Bertrand Meyer)
• 1987 -- Perl (Larry Wall)
• 1988 -- Erlang (Joe Armstrong et al.)
• 1988 -- Tcl (John Ousterhout)
• 1991 -- Python (Guido van Rossum)
• 1993 -- Ruby (Yukihiro Matsumoto)
• 1995 -- Delphi
• 1995 -- Java (Sun Microsystems)
• 1997 -- PHP (Rasmus Lerdorf), JavaScript
• 1999 -- D (Walter Bright)
• 2001 -- C# (Microsoft dans le cadre de .NET)
• 2002 -- Visual Basic .NET
• 2003 -- Delphi.NET
• 2004 -- BlitzMax Basic, OOP, OpenGL
• 2005 -- Chrome (Next Generation Object Pascal pour
.NET)
Historique de langage de
programmation
• 3ème génération
– FORTRAN, COBOL, ALGOL-60, PASCAL, MODULA-2, PL1, C, ADA,
BASIC, SIMULA
– Soutiennent la notion d’algorithme
• 4ème génération
– Langage applicatif
– SQL, GUI, …
• 5ème génération
– I.A.
– PROLOG
• Langages Orientés Objet (00)
– EIFFEL, C++, Python, ..
Historique de langage de
programmation
• 1ère génération (Code machine)
– F0 00 A0 B8 20 ….
• 2ème génération (Assembleur)
– LDA #$00
– STA $B820
Historique de langage de
programmation
• 1ère génération (Code machine)
– F0 00 A0 B8 20 ….
• 2ème génération (Assembleur)
– LDA #$00
– STA $B820
Exigences à un programme
• Lisibilité
• Extensibilité
• Efficacité
• Portabilité
• Réutilisable
• Fiabilité
Définitions Wikipedia
• Le C++ est un langage de programmation qui permet
– la programmation procédurale
– la programmation orientée objet
– la programmation générique.
• Au cours des années 1990, le C++ est devenu l'un des langages de programmation les plus
populaires dans l'industrie informatique.
• Le langage C++ n'appartient à personne et par conséquent n'importe qui peut l'utiliser sans payer
de droits.
• Bjarne Stroustrup a développé le C++ au cours des années 1980, alors qu'il travaillait dans le
laboratoire de recherche Bell d'AT&T. Il s'agissait en l'occurrence d'améliorer le langage C et il
l'avait d'ailleurs nommé C with classes (« C avec des classes »). Les premières améliorations se
concrétisèrent donc par l'ajout du support des classes, suivies par de nombreuses autres comme
les fonctions virtuelles, la surcharge d'opérateurs, l'héritage (simple ou multiple), les
« templates », la gestion d'exceptions...
• Le langage C++ est normalisé par l'ISO. Sa première normalisation date de 1998 (ISO/CEI
14882:1998), et sa dernière de 2003 (ISO/CEI 14882:2003). La normalisation de 1998
standardise la base du langage (Core Language) ainsi que la bibliothèque C++ standard (C++
Standard Library). La normalisation de 2003 inclut également la Standard Template Library et la C
Standard Library .
• Il existe de nombreuses autres bibliothèques en C++ non incluses dans le standard. De plus, le
C++ permet l'utilisation des nombreuses bibliothèques C existantes.
Hello World
#include <iostream>
int main()
{
std::cout << "Hello, world! " << endl;
}
Le fichier source : programme.cpp
• Le fichier source d'un programme écrit en langage C++ est un simple fichier texte
dont l'extension est par convention .cpp
• Ce fichier source doit être un fichier texte non formaté,
– un fichier texte dans sa plus simple expression
– sans mise en forme particulière
– sans caractères spéciaux
– contenant uniquement les caractères ASCII de base.
• Pour « essayer » le programme, il s'agit de le compiler (le traduire en langage
machine) à l'aide d'un compilateur.
• EDI (Environnement de Développement Intégré) avec Compilateur, Editeur,
Debugger
• Borland C++
• Borland C++ Builder
• Microsoft Visual C++
• Dev C++
Commentaires (lisibilité !)
• Longs programmes :ajoutez des lignes de
commentaires dans le programme
– pour but d'expliquer le fonctionnement du programme
– Ignoré par le compilateur
/* Voici un commentaire !
sur plusieurs lignes */
// Voici un autre commentaire sur une
ligne
Hello World
/*
Programme écrit par Patrick Reuter
*/
#include <iostream>
// Debut du programme
int main()
{
// Afficher ‘Hello World’ a l’ecran
std::cout << "Hello, world! " << endl;
}
Ingrédients d’algorithmes
• Affectation
• Condition/Comparaison
• Appel de fonction
• Structure de contrôle
– Branchements conditionnels (multiples)
– Boucles
• Bloc d’instruction
Ingrédients d’algorithmes
• Affectation
a = 7;
score = 0;
score = score + 100;
gameover = FAUX;
- Note:
- Affectation d’une seule variable avec un valeur.
- La variable à affecter figure à gauche, la valeur à droite
Faux:
a+b = 6;
7 = c;
Ingrédients d’algorithmes
• Condition/Comparaison
a == 7
absent == FAUX
malade == VRAI OU vacances == VRAI
score > highscore;
…
- Note:
- Le résultat d’une condition/comparaison peut être
uniquement soit VRAI, soit FAUX
Ingrédients d’algorithmes
• Appel de fonction, p.ex.
afficher(« Bonjour tout le monde »);
resultat = racine_carre(16);
Ingrédients d’algorithmes
• Structure de contrôle
– Branchements conditionnels
SI <condition> ALORS
<bloc d’instructions>
SINON
<bloc d’instructions>
Ingrédients d’algorithmes
• Structure de contrôle
– Branchements conditionnels
SI <condition> ALORS
<bloc d’instructions>
SINON
<bloc d’instructions>
Exemple:
SI (score>meilleur_score) ALORS
meilleur_score ← score;
Ingrédients d’algorithmes
• Structure de contrôle
– Branchements conditionnels
SI <condition> ALORS
<bloc d’instructions>
SINON
<bloc d’instructions>
Exemple:
SI (score>meilleur_score) ALORS
meilleur_score ← score;
En C++ :
IF (score>meilleur_score)
meilleur_score = score;
Ingrédients d’algorithmes
• Structure de contrôle
– Boucle
Définition :
Suite d’instructions qui peut être exécuté
plusieurs fois (itération)
Ingrédients d’algorithmes
• Structure de contrôle
– Boucle
TANT QUE <condition> FAIRE
<bloc d’instructions>
FIN TANT QUE
ou
FAIRE
<bloc d’instructions>
TANT QUE <condition>
Ingrédients d’algorithmes
• Structure de contrôle
– Boucle
TANT QUE <condition> FAIRE
<bloc d’instructions>
FIN TANT QUE
Exemple :
Afficher les nombres entiers dont le carré est inférieur à 100.
nombre ← 1;
TANT QUE (nombre*nombre<100) FAIRE
afficher(nombre);
nombre ← nombre + 1;
FIN TANT QUE
nombre = 1;
while (nombre*nombre<100)
{
cout << nombre << endl;
nombre=nombre+1;
}
Ingrédients d’algorithmes
• Structure de contrôle
– Boucle POUR
POUR variable de valeur à valeur FAIRE
<bloc d’instructions>
FIN POUR
Ingrédients d’algorithmes
• Structure de contrôle
– Boucle POUR
POUR variable de valeur à valeur FAIRE
<bloc d’instructions>
FIN POUR
Exemple
POUR i←1 à 10 FAIRE
afficher(i);
afficher(i*i);
FIN POUR
for (i=1; i<=10; i++)
{
cout << i << endl;
cout << i*i << endl;
}
Types de base
• Chaque variable un d’un type différent
Hello World
#include <iostream>
int main()
{
int i; // Declaration
i = 5; // Affectation
std::cout << " i contient la valeur " << i << endl;
}

Weitere ähnliche Inhalte

Ähnlich wie cours1.ppt

Chapitre 1 (algorithme)
Chapitre 1 (algorithme)Chapitre 1 (algorithme)
Chapitre 1 (algorithme)mahbouba
 
C2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieC2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieLoic Yon
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBruno Bonnin
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptMichael Akbaraly
 
Développer en natif avec C++11
Développer en natif avec C++11Développer en natif avec C++11
Développer en natif avec C++11Microsoft
 
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgDévelopper des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgRomain Boman
 
Soutenance séminaire bibliographique
Soutenance séminaire bibliographiqueSoutenance séminaire bibliographique
Soutenance séminaire bibliographiqueMaxime ALAY-EDDINE
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfHailisara
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la rechercheJohan Moreau
 
Théorie des langages - 00 - Introduction
Théorie des langages - 00 - IntroductionThéorie des langages - 00 - Introduction
Théorie des langages - 00 - IntroductionYann Caron
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptxolfaharrabi2
 
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxProgrammation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxOlyvierNzighou1
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
Programmation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxProgrammation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxOlyvierNzighou1
 

Ähnlich wie cours1.ppt (20)

Cours.langage c
Cours.langage cCours.langage c
Cours.langage c
 
Chapitre 1 (algorithme)
Chapitre 1 (algorithme)Chapitre 1 (algorithme)
Chapitre 1 (algorithme)
 
C2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieC2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partie
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache Zeppelin
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
 
Développer en natif avec C++11
Développer en natif avec C++11Développer en natif avec C++11
Développer en natif avec C++11
 
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgDévelopper des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
 
Langage C
Langage CLangage C
Langage C
 
Soutenance séminaire bibliographique
Soutenance séminaire bibliographiqueSoutenance séminaire bibliographique
Soutenance séminaire bibliographique
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdf
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
Théorie des langages - 00 - Introduction
Théorie des langages - 00 - IntroductionThéorie des langages - 00 - Introduction
Théorie des langages - 00 - Introduction
 
openFrameworks
openFrameworksopenFrameworks
openFrameworks
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptx
 
Intro c++
Intro c++Intro c++
Intro c++
 
ALF1 - Introduction
ALF1 - IntroductionALF1 - Introduction
ALF1 - Introduction
 
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxProgrammation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
 
Cours de c
Cours de cCours de c
Cours de c
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
Programmation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxProgrammation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptx
 

cours1.ppt

  • 1. C++ 1er cours Patrick Reuter maître de conférences http://www.labri.fr/~preuter/c++
  • 2. Historique de langage de programmation • ~1840 --‘Premier programme' (Ada Lovelace) • 1947 -- Calcul (Konrad Zuse) • 1954 -- FORTRAN (John Backus) • 1958 -- ALGOL • 1959 -- LISP (McCarthy) • 1960 -- COBOL (Grace Hopper) • 1960 -- BASIC (Kemeny, Kurtz) • 1962 -- APL • 1964 -- PL/1 (Heinz Zemanek) • 1965 -- Simula (Dahl, Nygaard) • 1966 -- MUMPS (Octo Barnett, Neil Pappalardo, Kurt Marble (MIT)) • 1966 -- HAL (de la NASA pour le Space Shuttle) • 1968 -- Logo (Seymour Papert) • 1969 -- BCPL • 1970 -- Forth (Charles H. Moore) • 1971 -- Pascal (Niklaus Wirth, Kathleen Jensen) • 1971 -- sh • 1972 -- C (Brian W. Kernighan, Dennis Ritchie) (premier de Ken Thompson) • 1973 -- ML • 1975 -- Prolog (Colmerauer et. al.) • 1978 -- Modula-2 • 1978 -- awk • 1980 -- Smalltalk (Alan Kay) • 1980 -- Ada • 1983 -- Objective C (ObjC) (Brad Cox) • 1983 -- C++ (Bjarne Stroustrup) • 1985 -- Eiffel (Bertrand Meyer) • 1987 -- Perl (Larry Wall) • 1988 -- Erlang (Joe Armstrong et al.) • 1988 -- Tcl (John Ousterhout) • 1991 -- Python (Guido van Rossum) • 1993 -- Ruby (Yukihiro Matsumoto) • 1995 -- Delphi • 1995 -- Java (Sun Microsystems) • 1997 -- PHP (Rasmus Lerdorf), JavaScript • 1999 -- D (Walter Bright) • 2001 -- C# (Microsoft dans le cadre de .NET) • 2002 -- Visual Basic .NET • 2003 -- Delphi.NET • 2004 -- BlitzMax Basic, OOP, OpenGL • 2005 -- Chrome (Next Generation Object Pascal pour .NET)
  • 3. Historique de langage de programmation • 3ème génération – FORTRAN, COBOL, ALGOL-60, PASCAL, MODULA-2, PL1, C, ADA, BASIC, SIMULA – Soutiennent la notion d’algorithme • 4ème génération – Langage applicatif – SQL, GUI, … • 5ème génération – I.A. – PROLOG • Langages Orientés Objet (00) – EIFFEL, C++, Python, ..
  • 4. Historique de langage de programmation • 1ère génération (Code machine) – F0 00 A0 B8 20 …. • 2ème génération (Assembleur) – LDA #$00 – STA $B820
  • 5. Historique de langage de programmation • 1ère génération (Code machine) – F0 00 A0 B8 20 …. • 2ème génération (Assembleur) – LDA #$00 – STA $B820
  • 6. Exigences à un programme • Lisibilité • Extensibilité • Efficacité • Portabilité • Réutilisable • Fiabilité
  • 7. Définitions Wikipedia • Le C++ est un langage de programmation qui permet – la programmation procédurale – la programmation orientée objet – la programmation générique. • Au cours des années 1990, le C++ est devenu l'un des langages de programmation les plus populaires dans l'industrie informatique. • Le langage C++ n'appartient à personne et par conséquent n'importe qui peut l'utiliser sans payer de droits. • Bjarne Stroustrup a développé le C++ au cours des années 1980, alors qu'il travaillait dans le laboratoire de recherche Bell d'AT&T. Il s'agissait en l'occurrence d'améliorer le langage C et il l'avait d'ailleurs nommé C with classes (« C avec des classes »). Les premières améliorations se concrétisèrent donc par l'ajout du support des classes, suivies par de nombreuses autres comme les fonctions virtuelles, la surcharge d'opérateurs, l'héritage (simple ou multiple), les « templates », la gestion d'exceptions... • Le langage C++ est normalisé par l'ISO. Sa première normalisation date de 1998 (ISO/CEI 14882:1998), et sa dernière de 2003 (ISO/CEI 14882:2003). La normalisation de 1998 standardise la base du langage (Core Language) ainsi que la bibliothèque C++ standard (C++ Standard Library). La normalisation de 2003 inclut également la Standard Template Library et la C Standard Library . • Il existe de nombreuses autres bibliothèques en C++ non incluses dans le standard. De plus, le C++ permet l'utilisation des nombreuses bibliothèques C existantes.
  • 8. Hello World #include <iostream> int main() { std::cout << "Hello, world! " << endl; }
  • 9. Le fichier source : programme.cpp • Le fichier source d'un programme écrit en langage C++ est un simple fichier texte dont l'extension est par convention .cpp • Ce fichier source doit être un fichier texte non formaté, – un fichier texte dans sa plus simple expression – sans mise en forme particulière – sans caractères spéciaux – contenant uniquement les caractères ASCII de base. • Pour « essayer » le programme, il s'agit de le compiler (le traduire en langage machine) à l'aide d'un compilateur. • EDI (Environnement de Développement Intégré) avec Compilateur, Editeur, Debugger • Borland C++ • Borland C++ Builder • Microsoft Visual C++ • Dev C++
  • 10. Commentaires (lisibilité !) • Longs programmes :ajoutez des lignes de commentaires dans le programme – pour but d'expliquer le fonctionnement du programme – Ignoré par le compilateur /* Voici un commentaire ! sur plusieurs lignes */ // Voici un autre commentaire sur une ligne
  • 11. Hello World /* Programme écrit par Patrick Reuter */ #include <iostream> // Debut du programme int main() { // Afficher ‘Hello World’ a l’ecran std::cout << "Hello, world! " << endl; }
  • 12. Ingrédients d’algorithmes • Affectation • Condition/Comparaison • Appel de fonction • Structure de contrôle – Branchements conditionnels (multiples) – Boucles • Bloc d’instruction
  • 13. Ingrédients d’algorithmes • Affectation a = 7; score = 0; score = score + 100; gameover = FAUX; - Note: - Affectation d’une seule variable avec un valeur. - La variable à affecter figure à gauche, la valeur à droite Faux: a+b = 6; 7 = c;
  • 14. Ingrédients d’algorithmes • Condition/Comparaison a == 7 absent == FAUX malade == VRAI OU vacances == VRAI score > highscore; … - Note: - Le résultat d’une condition/comparaison peut être uniquement soit VRAI, soit FAUX
  • 15. Ingrédients d’algorithmes • Appel de fonction, p.ex. afficher(« Bonjour tout le monde »); resultat = racine_carre(16);
  • 16. Ingrédients d’algorithmes • Structure de contrôle – Branchements conditionnels SI <condition> ALORS <bloc d’instructions> SINON <bloc d’instructions>
  • 17. Ingrédients d’algorithmes • Structure de contrôle – Branchements conditionnels SI <condition> ALORS <bloc d’instructions> SINON <bloc d’instructions> Exemple: SI (score>meilleur_score) ALORS meilleur_score ← score;
  • 18. Ingrédients d’algorithmes • Structure de contrôle – Branchements conditionnels SI <condition> ALORS <bloc d’instructions> SINON <bloc d’instructions> Exemple: SI (score>meilleur_score) ALORS meilleur_score ← score; En C++ : IF (score>meilleur_score) meilleur_score = score;
  • 19. Ingrédients d’algorithmes • Structure de contrôle – Boucle Définition : Suite d’instructions qui peut être exécuté plusieurs fois (itération)
  • 20. Ingrédients d’algorithmes • Structure de contrôle – Boucle TANT QUE <condition> FAIRE <bloc d’instructions> FIN TANT QUE ou FAIRE <bloc d’instructions> TANT QUE <condition>
  • 21. Ingrédients d’algorithmes • Structure de contrôle – Boucle TANT QUE <condition> FAIRE <bloc d’instructions> FIN TANT QUE Exemple : Afficher les nombres entiers dont le carré est inférieur à 100. nombre ← 1; TANT QUE (nombre*nombre<100) FAIRE afficher(nombre); nombre ← nombre + 1; FIN TANT QUE nombre = 1; while (nombre*nombre<100) { cout << nombre << endl; nombre=nombre+1; }
  • 22. Ingrédients d’algorithmes • Structure de contrôle – Boucle POUR POUR variable de valeur à valeur FAIRE <bloc d’instructions> FIN POUR
  • 23. Ingrédients d’algorithmes • Structure de contrôle – Boucle POUR POUR variable de valeur à valeur FAIRE <bloc d’instructions> FIN POUR Exemple POUR i←1 à 10 FAIRE afficher(i); afficher(i*i); FIN POUR for (i=1; i<=10; i++) { cout << i << endl; cout << i*i << endl; }
  • 24. Types de base • Chaque variable un d’un type différent
  • 25. Hello World #include <iostream> int main() { int i; // Declaration i = 5; // Affectation std::cout << " i contient la valeur " << i << endl; }