16/10/2021 1 Université Ibn Zohr Agadir Année universitaire: 2021-2022 Ecole Na
16/10/2021 1 Université Ibn Zohr Agadir Année universitaire: 2021-2022 Ecole Nationale des Sciences Appliqué Section: G-Ind1 Département: Génie Informatique Module: Programmation C++ Responsable: Prof. A. Elyousfi Abderrahmane ELYOUSFI elyousfiabdo@yahoo.fr Département Génie Informatique Elyousfi Abderrahmane ENSA-3 2 Langage C++ Langage C++ 16/10/2021 2 3 Plan 1. Présentation du langage C++. 2. Généralités sur le langage C++ 3. Les types de base de C++ 4. Opérateurs et expressions 5. Les entrées-sorties conversationnelles de C++ 6. Les instructions de contrôle 7. Les tableaux et les pointeurs 8. Les types structure, union et énumération 9. Les fonctions Elyousfi Abderrahmane ENSA-3 4 Plan 1. Classes et objets. 2. Les propriétés des fonctions membres 3. Construction, destruction et initialisation des objets 4. Les fonctions amies 5. La surdéfinition d’opérateurs 6. Les patrons de fonctions et de classes 7. L’héritage simple et multiple 8. Les fonctions virtuelles et le polymorphisme 9. Les flots 10. La gestion des exceptions 11. Généralités sur la bibliothèque standard Elyousfi Abderrahmane ENSA-3 16/10/2021 3 5 Présentation du langage C++. Elyousfi Abderrahmane ENSA-3 6 Qu’est-ce que le C++ ? Le langage C++ a été conçu à partir de 1982 par Bjarne Stroustrup (AT&T Bell Laboratories). C++ a connu plusieurs versions, jusqu’à sa normalisation par l’ANSI en 1998. D’après Bjarne Stroustrup, conception du langage C++ pour : Être meilleur que C, Permettre les abstractions de données Permettre la programmation orientée-objet Compatibilité C/C++ : C++ = sur-ensemble de C, C++ ⇒ ajout en particulier de l’orienté-objet (classes, héritage, polymorphisme), Cohabitation possible du procédural et de l‘orienté-objet en C++ Elyousfi Abderrahmane ENSA-3 16/10/2021 4 7 C et C++ Certaines des extensions du C++ pourraient en fait être ajoutées au langage C, sans qu’il soit pour autant « orienté objet ». C++ a introduit de nouvelles possibilités d’entrées-sorties (basées sur la notion de flot) qui rendent superflues les fonctions standards de C telles que printf ou scanf. C++ dispose d’opérateurs de gestion dynamique (new et delete) qui remplacent avantageusement les fonctions malloc, calloc et free du C. Elyousfi Abderrahmane ENSA-3 8 C++ et la bibliothèque standard Comme tout langage, C++ dispose d’une bibliothèque standard, c’est-à-dire de fonctions et de classes prédéfinies. Elle comporte notamment de nombreux patrons de classes et de fonctions permettant de mettre en œuvre les structures de données les plus importantes (vecteurs dynamiques, listes chaînées, chaînes...). Elyousfi Abderrahmane ENSA-3 16/10/2021 5 9 Généralités sur le langage C++ Elyousfi Abderrahmane ENSA-3 Elyousfi Abderrahmane ENSA-3 16/10/2021 6 Pour écrire des informations : utiliser le flot cout cout << "Bonjour\n" ; cout est un « flot de sortie » << est un opérateur permettant d’envoyer de l’information sur un flot de sortie. Pour l’instant, admettons que cout désigne la fenêtre dans laquelle s’affichent les résultats. cout << "Je vais vous calculer " << NFOIS << " racines carrees\n" ; L’instruction suivante ressemble à la précédente avec cette différence qu’ici on envoie aussi la valeur de la constante à l’écran. Elyousfi Abderrahmane ENSA-3 Pour lire des informations : utiliser le flot cin cin >> x ; cin est un « flot d’entrée » associé au clavier >> est un opérateur permettant d’extraire (de lire ) de l’information à partir du flot d’entrée. Pour l’instant, admettons que cette instruction peut être interprétée ainsi : lire des valeurs des variables à partir du clavier cout >> NFOIS ; Elyousfi Abderrahmane ENSA-3 16/10/2021 7 Les directives à destination du préprocesseur Les deux premières lignes de notre programme : iostream contient des déclarations relatives aux flots donc, en particulier, à cin et cout, ainsi qu’aux opérateurs << et >> (dont on verra plus tard qu’ils sont en fait considérés comme des fonctions particulières) ; cmath contient des déclarations relatives aux fonctions mathématiques (héritées de C), donc en particulièr à sqrt. Elyousfi Abderrahmane ENSA-3 L’instruction using La norme de C++ a introduit la notion d’« espaces de noms » (namespace). Cette notion d’espace de noms sera étudiée par la suite. Pour l’instant, retenez que les symboles déclarés dans le fichier iostream appartiennent à l’espace de noms std. L’instruction using sert précisément à indiquer que l’on se place « dans cet espace de noms std » Remarque: si vous placez l’instruction using avant l’incorporation des fichiers en-tête, vous obtiendrez une erreur car vous ferez référence à un espace de noms qui n’a pas encore été défini !). Elyousfi Abderrahmane ENSA-3 16/10/2021 8 15 Quelques règles d’écriture Elyousfi Abderrahmane ENSA-3 16 Les identificateurs Les identificateurs servent à désigner les différentes « choses » manipulées par le programme, telles: les variables, les fonctions, objets, structures, unions ou énumérations, membres de classe, de structure ou d’union, types, étiquettes d’instruction goto, macros... Comme dans la plupart des langages, ils sont formés d’une suite de caractères choisis parmi les lettres ou les chiffres, le premier d’entre eux étant nécessairement une lettre. Le caractère souligné (_) est considéré comme une lettre. Il peut donc apparaître au début d’un identificateur. Les majuscules et les minuscules sont autorisées mais ne sont pas équivalentes. Elyousfi Abderrahmane ENSA-3 16/10/2021 9 17 Les mots-clés Certains « mots-clés » sont réservés par le langage à un usage bien défini et ne peuvent pas être utilisés comme identificateurs. Les mots-clés de C++ Elyousfi Abderrahmane ENSA-3 18 Les commentaires Comme tout langage évolué, C++ autorise la présence de commentaires dans vos programmes source. Il existe deux types de commentaires : les commentaires « libres », hérités du langage C ; les commentaires de fin de ligne (introduits par C++). Elyousfi Abderrahmane ENSA-3 16/10/2021 10 19 Les commentaires Le langage C++ offre une nouvelle façon d'ajouter des commentaires. En plus des symboles /* et */ utilisés en C, le langage C++ offre les symboles // qui permettent d'ignorer tout jusqu'à la fin de la ligne. Exemple : /* commentaire traditionnel sur plusieurs lignes valide en C et C++ */ void main() { // commentaire de fin de ligne valide en C++ // une partie d'un programme en C ou C++ peut toujours // être ignorée par les directives au préprocesseur // #if .... #endif } Elyousfi Abderrahmane ENSA-3 20 Création d’un programme en C++ Les grandes étapes de la création d’un programme, sont : édition du programme, compilation et édition de liens. Elyousfi Abderrahmane ENSA-3 16/10/2021 11 21 Création d’un programme en C++ édition du programme, L’édition du programme (on dit aussi parfois « saisie ») consiste à créer, à partir d’un clavier, tout ou partie du texte d’un programme qu’on nomme « programme source ». En général, ce texte sera conservé dans un fichier que l’on nommera « fichier source ». La plupart du temps, en C++, les fichiers source porteront l’extension cpp. Elyousfi Abderrahmane ENSA-3 22 Création d’un programme en C++ La compilation Elle consiste à traduire le programme source (ou le contenu d’un fichier source) en langage machine, en faisant appel à un programme nommé compilateur. L’opération de compilation comporte en fait deux étapes : Traitement par le préprocesseur: Il exécute les directives qui le concernent (commencent par un caractère #). Il produit, en résultat, un programme source en C++ pur. Compilation: C’est la traduction en langage machine du texte C++ fourni par le préprocesseur. Le résultat de la compilation porte le nom de module objet. Elyousfi Abderrahmane ENSA-3 16/10/2021 12 23 Création d’un programme en C++ L’édition de liens En général, un module objet créé ainsi par le compilateur n’est pas directement exécutable. Il lui manquera, en effet, au moins les fonctions de la bibliothèque standard dont il a besoin. La bibliothèque est une collection de modules objets organisée, suivant l’implémentation concernée, en un ou plusieurs fichiers. Le rôle de l’éditeur de liens que d’aller rechercher dans la bibliothèque standard les modules objets nécessaires. Le résultat de l’édition de liens est ce que l’on nomme un programme exécutable, c’est-à-dire un ensemble autonome d’instructions en langage machine. Elyousfi Abderrahmane ENSA-3 24 Les types de base de C++ Elyousfi Abderrahmane ENSA-3 16/10/2021 13 25 Les types de base de C++ Les types de base du langage C++ se répartissent en quatre catégories en fonction de la nature des informations qu’ils permettent de représenter : nombres entiers (mot-clé int) ; nombres flottants (mot-clé float ou double) ; caractères (mot-clé char) ; valeurs booléennes, c’est-à-dire dont la valeur est soit vrai, soit faux (mot-clé bool). Un type définit l’ensemble des valeurs que peut prendre une variable, le nombre d’octets à réserver en mémoire et les opérateurs que l’on peut appliquer dessus. Elyousfi Abderrahmane ENSA-3 26 Les types entiers et les types flottants C++ prévoit que, sur une machine donnée, on puisse trouver jusqu’à trois tailles différentes d’entiers, désignées par les mots-clés suivants : int; short int (qu’on peut abréger en short) ; long int (qu’on peut abréger en long). Pour les types réels, C++ prévoit trois types de flottants correspondant à des tailles différentes : float, double et long double. Elyousfi Abderrahmane ENSA-3 16/10/2021 14 27 Les types entiers et les types flottants Pas de type booleen en C. En C on utilise le type int 0 représente faux. Toute valeur non nulle représente vrai. uploads/Ingenierie_Lourd/ ely-cours-c-01-2-2021-2022-moodle.pdf
Documents similaires










-
20
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 21, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 5.7818MB