Publicité

cours1.ppt

1 Mar 2023
Publicité

Contenu connexe

Publicité

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; }
Publicité