1 Département : ATE Module : Programmation orientée objets en C++ Enseignant :
1 Département : ATE Module : Programmation orientée objets en C++ Enseignant : M. DIBOUNE. Chapitre 1 : Notions de base de la programmation en C++ Dans ce premier chapitre nous allons aborder les notions de base de la programmation C++. Si vous êtes déjà programmeur, vous allez certainement trouver des notions que vous connaissez déjà. Au sommaire de ce chapitre : • Qu’est-ce qu’un programme ? • Qu’est-ce qu’un langage de programmation ? • Qu’est que C++ ? • De l’édition d’un programme à son exécution • Premier programme C++ • Les variables et constantes • Les expressions et les instructions. • Le contrôle du flux des instructions 1. Qu’est-ce qu’un programme Au démarrage de la machine, le processeur recherche dans la ROM les premières instructions à exécuter (BIOS), ces instructions sont exécutées et permettent de : • Tester les différents dispositifs matériels à contrôler : Ecran, clavier, les cellules de la mémoire centrale, disques durs, etc. • Chercher et charger le système d’exploitation. • Passer à la première instruction du système d’exploitation. Le système d’exploitation ainsi chargé permet de gérer les ressources de la machine durant son fonctionnement, ces ressources comprennent tout ce qui est matériel (processeur, mémoire, périphériques) et logiciel utilisable par l’utilisateur (applications et données utilisateurs). En résumé. Le BIOS, le système d’exploitation et les différentes applications utilisateurs sont des ensembles de programmes qui permettent de gérer et contrôler les ressources de la machine. 2. Langage de programmation Le processeur ne peut interpréter les instructions d’un programme que sous forme binaires (instructions machines). Cependant, ces codes en format binaires sont difficilement lus et édités par un être humain. Dans ce contexte, les langages de programmation permettent de faciliter la tâche aux programmeurs et de formuler des instructions à la machine en proposant une syntaxe généralement proche du langage parlé (code source). Ces instructions littérales sont ensuite converties par un traducteur automatique appelé compilateur en format binaire (code exécutable) compréhensible par la machine. Exemple. C, C++, COBOL, ADA, JAVA, C#, etc. 2 3. Langage C++ C++ est un langage de programmation permettant le développement des programmes à la fois procéduraux et orientés objets. Ses performances, sa malléabilité, et sa compatibilité avec son prédécesseur: le langage C, lui ont permis de devenir le langage de programmation de prédilection pour le développement des applications exigeant une grande performance telles que les applications pour les systèmes embarqués et les calculs scientifiques. 3.1. Historique Depuis la création de son prédécesseur le C, l’évolution du langage C++ est passée par deux phases principales : C++ classique et C++ moderne, Les points de repère historique de l’évolution du langage C++ est donnée par le schéma suivant : 1970 1979 1983 2011 2014 2017 C par Dennis Richie C with classes par Bjarne Stroustrup C++ Standard C++11 Standard C++14 Standard C++17 C++ classique C++ moderne 3.2. Pourquoi apprendre le C++ A. Un langage de programmation très populaire : • Beaucoup de codes sont écrits en C++ • Indice de popularité très élevé • Communauté très active : GitHub, stackoverflow. B. C’est un langage pertinent : Utilisé pour le développement des projets de très grandes envergures : o Systèmes d’exploitation : Windows, Mac OsX. o Applications : Photoshops. o Les fonctionnalités des grands sites commerciaux : Amazon, Apple, Facebook, Google, etc. o Très adaptés à nombreuses applications : Machine Learning, Systèmes embarqués, réseaux, etc. 4. De l’édition d’un programme à son exécution Le processus de compilation se décompose en trois phases : • La précompilation : effectuée par le préprocesseur et consiste à “traiter” les fichiers sources (remplacement des macros, suppression des textes des commentaires, inclusion des fichiers, etc.). • La compilation : cette étape permet de créer des fichiers objets (extension .o) contenant la traduction du code en langage machine. • Edition des liens : c’est l’étape finale du processus de compilation et consiste à regrouper les données ainsi que les fichiers objets et les bibliothèques (bibliothèque standard et bibliothèques externes). Enfin, les références inter-fichiers sont résolues. Le résultat de l’édition des liens est un fichier image qui pourra être chargé en mémoire et exécuté par le système d’exploitation. 3 5. Premier programme C++ 5.1. Le programme « Hello World» Le programme Hello est devenu presque banal pour débuter la programmation avec n’importe quel langage de programmation. Le listing suivant présente un programme basique en C++ permettant d’affiche un message «Hello World» à la console. Listing 1.1 : Programme C++ «Hello World» 01 02 03 04 05 07 08 09 10 // Programme hello world en C++ #include<iostream> int main() { Std::cout << "Hello World!"; return 0; } 5.2. Les commentaires La première ligne du programme est un commentaire. Toutes les lignes d’un programme C++ commençant par deux barres obliques (//) est considérée comme un commentaire et ne sera pris en compte par le compilateur. Les textes entre / * et * / seront également considérés comme des commentaires (commentaires de style ancien). Remarque. Utilisez des commentaires dans vos programmes pour expliquer le fonctionnement des sections difficiles. Il est également conseillé de commencer chaque programme avec une brève description du programme. 5.3. La directive # include <iostream> Les lignes de code commençant par # sont des directives lues et interprétées par le préprocesseur. Dans notre exemple, la directive #include <iostream> donne une instruction au préprocesseur d’inclure une section du code C++ afin de permettre d’effectuer les entrées et sortie standards come l’affichage du message "Hello World!" dans la console. 5.4. La fonction main Tout programme C/C++ doit contenir au moins une fonction main(), cette fonction est le point d’entrée du programme et c’est au niveau de cette fonction que le programme commence son exécution, cette fonction appellera éventuellement à d’autres fonctions, dans sa forme la plus simple, c'est une fonction sans argument, qui retourne un int. L'entier retourné permet de renvoyer au système le statut d'exécution du programme ; par convention, la valeur de cet entier dans le cas où l’exécution du programme est sans erreur est 0. 5.5. Les entrées sorties basiques La bibliothèque standard <iostream> définit les flux pour l’entrée et la sortie : 4 Le flux Description cin Entrée standard / entrée de console cout Sortie standard / sortie de console cerr Sortie standard d’erreurs clog Sortie standard de journalisation (logging) cin est utilisé pour la saisie des données au clavier et trois autres pour la sortie des données. 6. Les instructions préprocesseurs Comme nous l’avons expliqué dans la section précédente, la compilation d’un programme en C++ se déroule en trois étapes. La première est exécutée par le préprocesseur et a comme objectif de remplacer les directives de compilation par des instructions C++. Ces directives de compilation commencent par le symbole # et se terminant avec la fin de la ligne. Sa syntaxe est ainsi donnée comme suit : #directive [paramètres] 6.1. Quelques commandes préprocesseurs #include <iostream> Inclure le contenu des fichiers sources (bibliothèques). #include ″stdio.h″ #if Compilation conditionnelle #elif #undef Annule (supprime) une macro ou un nom déjà défini. #ifdef Tester l’existence d’un symbole #ifndef Tester la non-existence d’un symbole #define Définir une constante symbolique ou une macro avec des paramètres. #error Génération d’un message d’erreur et arrêt de compilation. 6.2. Quelques exemples Exemple 1. La directive #include Listing 1.2 : la directive #include 01 02 03 04 05 07 #include<iostream> int main() { std::cout << "Hello"; return 0; } Exemple 2. Compilation conditionnelle Listing 1.3 : compilation conditionnelle 01 02 03 04 05 #ifdef _unix_ #include <unistd.h> #elif defined _win32_ #include <windows.h> #endif Exemple 3. Tester si la version du compilateur gcc est supérieure à 3.2.0 3 2 0 _GNUC_ _GNUC_MINOR _GNUC_PATHLEVEL_ 5 Listing 1.4 : Test de la version du compilateur gcc 01 02 03 04 #if(_GNUC_ > 3)|| \ (_GNUC_ == 3)&& (_GNUC_MINOR > 2) || \ (_GNUC_ == 3)&& (_GNUC_MINOR > 2)&& (_GNUC_PATHLEVEL_ > 0) #error “incompatible version” 6.3. Les macros La directive #define sert aussi à la définition des macros. Il référent à d’autres objets tels qu’une constante numérique ou une chaîne de caractères. Les listing suivants constituent des exemples de Macros: Listing 1.5 : la directive #define 01 02 03 #define PI 3.141592 #define ERRMSG "ERRROR \n" #define CARRE(x) ((x) * (x)) A la précompilation, les noms des macros préalablement sont recherchés dans le code source et remplacés par leurs valeurs. Si une macro a plusieurs paramètres telle que CARRE dans le listing ci- dessus, chacun des paramètres est remplacé par sa valeur effective. Ainsi, le code suivant : Listing 1.6 : condition utilisant les noms des Macros 01 02 if (CARRE(d) > PI) printf(ERRMSG); Ce code du programme sera après précompilation: Listing 1.7 : le code source après précompilation 01 02 if (((d) * (d)) > 3.141592) printf("Une erreur s'est produite.\n"); 7. Les variables et constantes Une variable est un emplacement mémoire permettant de sauvegarder des valeurs, chaque variable utilisée en C++ doit être déclaré, la déclaration d’une variable consiste à lui définir un identifiant et un type. 7.1. L’identifiant d’une variable Un identifiant valide est une séquence d’une ou de plusieurs lettres, uploads/Industriel/ chapitre-1 8 .pdf
Documents similaires










-
28
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 28, 2022
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.1468MB