chapitre 01 - notions de base
Post on 15-Apr-2017
543 Views
Preview:
TRANSCRIPT
Introduction au langage C++
Chapitre 1
Notions de base
Youssouf EL ALLIOUI, youssouf.elallioui@uhp.ac.ma
Université Hassan Premier de Settat
Objectif de ce chapitre
Notions de base :
programme
programmation
langages de programmation
Une petite introduction au langage C++ :
Historique
Place de C++ par rapport aux autres langages de programmation
Mettre en place les différents outils nécessaires pour pouvoir programmer en
C++ :
éditeur de texte
compilateur
débugger
les programmes « 3 in 1 » ou IDE - Environnement de Développement Intégré
Création et discussion de notre premier programme C++
Entraînez-vous via
Exercices applicatifs
QCM fourni à la fin de la séance
Les TPs
2016
1 | 12
1 Introduction au langage C++ | Chapitre 1 : Notions de base
Sommaire
Qu’est-ce qu’un programme ? ______________________________________________ 2
Les langages de programmation ____________________________________________ 2
Le C++ face aux autres langages de programmation _____________________________ 3
De C au C++ ____________________________________________________________ 5
Les logiciels nécessaires pour programmer ____________________________________ 5
Création et lancement d’un premier programme _______________________________ 6
Commentez vos programmes ! ____________________________________________ 10
Mettez votre code en forme ______________________________________________ 11
Ce que vous devez retenir ! _______________________________________________ 11
Références
Cours de C/C++ [Ouvrage] / aut. Casteyde Christian. - 2001. - Vol. Version 1.40.1 : p. 501.
Programmez avec le langage C++ [Ouvrage] / aut. Mathieu Nebra et Matthieu Schaller. - [s.l.] : le Livre du Zéro, 2015.
2 | 12
2 Introduction au langage C++ | Chapitre 1 : Notions de base
Qu’est-ce qu’un programme ? Les programmes sont à la base de l'informatique. Ce sont eux qui vous permettent
d'exécuter des actions sur votre ordinateur. Prenons par exemple la figure suivante qui
représente une capture d'écran de mon ordinateur. On y distingue 3 fenêtres
correspondant à 3 programmes différents (Figure 1 : Exemple de programmes) :
- Le navigateur web Google Chrome
- L’explorateur de fichiers
- Microsoft Word
Figure 1 : Exemple de programmes
Comment alors, pouvons-nous réaliser des programmes ? La réponse est tout simplement
via l’utilisation des langages de programmation qui permettent d'expliquer à l'ordinateur
ce qu'il doit faire. Qu’est-ce que alors un langage de programmation ?
Les langages de programmation Votre ordinateur est une machine étonnante et complexe. À la base, il ne comprend qu'un
langage très simple constitué de 0 et de 1. Ainsi, un message tel que la Figure 2 peut
signifier quelque chose comme « Affiche une fenêtre à l'écran » !
1010010010100011010101001010111010100011010010
Figure 2 : Exemple d'un message écrit en langage machine
Est-ce qu’on va être obligé d'apprendre ce langage ? bien sûr que non. Ce qu’on doit
apprendre c’est un langage intermédiaire qui s’appelle langage de programmation.
3 | 12
3 Introduction au langage C++ | Chapitre 1 : Notions de base
Un langage de programmation est une notation conventionnelle destinée à formuler des
algorithmes et produire des programmes informatiques qui les appliquent1.
Tous les langages de programmation ont le même but : vous permettre de parler à
l'ordinateur plus simplement qu'en binaire. Voici comment cela fonctionne (Figure 3) :
Figure 3 : Compilation d'un code source en code machine
- Etape 1 : Vous écrivez des instructions pour l'ordinateur dans un langage de
programmation, c’est le code source.
- Etape 2 : Les instructions sont traduites en binaire grâce à un programme de «
traduction » appelé Compilateur.
- Etape 3 : L'ordinateur peut alors lire le binaire et faire ce que vous avez demandé.
Le C++ est un langage de programmation : il sert donc à écrire des applications
informatiques. Il s'agit d'ailleurs d'un des langages de programmation les plus utilisés
aujourd'hui. Chaque programme en C++ doit être écrit en respectant des règles d'écriture
très strictes que nous étudierons petit à petit.
Le C++ face aux autres langages de programmation Parmi les centaines de langages de programmation qui existent, certains sont plus
populaires que d'autres. Sans aucun doute, le C++ est un langage très populaire.
La popularité n’est pas le seul critère pour choisir un langage. Le plus important est le
niveau du langage. Il existe des langages de haut niveau et d'autres de plus bas niveau
(Figure 4).
Les langages de haut niveau sont plus simples mais plus éloigné du fonctionnement de la
machine. Par contre, les langages de bas niveau sont plus complexe mais plus proche du
fonctionnement de la machine.
NB : En programmation, la notion de « niveau » est relative. Globalement, on peut dire que le C++
est « bas niveau » par rapport au Python, mais il est plus « haut niveau » que l'assembleur. Tout dépend
de quel point de vue on se place.
1 https://fr.wikipedia.org/wiki/Langage_de_programmation
4 | 12
4 Introduction au langage C++ | Chapitre 1 : Notions de base
Figure 4 : Niveaux des langages de programmation
Les points forts du langage C++
Il est très répandu : On trouve beaucoup de documentation sur Internet et on peut
facilement avoir de l'aide sur les forums.
Il est rapide : C’est un langage de bas niveau (Figure 4), ce qui en fait un langage de choix
pour les applications critiques qui ont besoin de performances.
Il est portable : en effet, c’est un langage multiplateforme. Le même code source peut
théoriquement être transformé sans problème en exécutable sous Windows, Mac OS et
Linux.
Il existe de nombreuses bibliothèques pour le C++ : De base, le C++ ne sait pas faire
grande chose mais, en le combinant avec de bonnes bibliothèques, on peut créer des
programmes 3D, réseaux, audio, fenêtrés, etc.
Il est multi-paradigmes : ce que signifie qu'on peut programmer de différentes façons
en C++. L’une des plus célèbres façons de programmation est la Programmation Orientée
Objet (POO). C'est une technique qui permet de simplifier l'organisation du code dans
nos programmes et de rendre facilement certains morceaux de codes réutilisables.
Les points faibles du langage C++
Bien entendu, le C++ n'est pas le langage incontournable. Il a lui-même ses défauts par
rapport à d'autres langages, sa complexité en particulier. Vous avez beaucoup de contrôle
sur le fonctionnement de votre ordinateur (et sur la gestion de la mémoire) : cela offre
une grande puissance mais, si vous l'utilisez mal, vous pouvez plus facilement faire planter
votre programme. Ne vous en faites pas, nous découvrirons tout cela progressivement
dans ce cours.
Langage
Binaire
Langages de bas niveau
Langages de haut niveau
5 | 12
5 Introduction au langage C++ | Chapitre 1 : Notions de base
De C au C++ Le langage C est un langage de programmation inventé par MM. Kernighan et Ritchie au
début des années 70. Au début des années 80, Bjarne Stroustrup, un informaticien
originaire du Danemark, fait évoluer le langage C vers le langage C++ en lui rajoutant
notamment les notions orientées objet. Toutefois, bien que le C++ ait évolué à partir du C,
et ait gardé un grand nombre de notions et de syntaxes de son «ancêtre», il s'agit de
deux langages différents.
Bjarne Stroustrup est aujourd'hui
professeur d'informatique à l'université
Texas A&M, aux Etats-Unis. Il s'agit
d'une importante figure de l'univers
informatique qu'il faut connaître, au
moins de nom. De nombreux langages de
programmation se sont par la suite
inspirés du C++. C'est notamment le cas
du langage Java.
Le langage C++, bien que relativement ancien, continue à être amélioré.
Les logiciels nécessaires pour programmer Pour pouvoir programmer en C++, Voici le strict minimum dont vous avez besoin :
- Un éditeur de texte pour écrire le code source du programme en C++. Les fichiers
source sont des fichiers texte lisibles dont le nom se termine en général par .c,
.cpp ou .h.
- Un compilateur pour transformer (« compiler ») votre code source en binaire (ou
exécutable). Les fichiers exécutables portent en général l'extension .exe sous
windows et ne portent pas d'extension sous Linux.
- Un débugger (« Débogueur » ou « Débugueur » en français) pour vous aider à
traquer les erreurs dans votre programme (un truc qui corrigerait tout seul nos
erreurs).
À partir de maintenant nous avons deux possibilités :
1) Soit récupérer chacun de ces 3 programmes séparément. C'est plus compliquée,
mais elle fonctionne.
2) Soit on utilise un programme « 3-en-1 » qui combine éditeur de texte, compilateur
et débugger. Ces programmes « 3-en-1 » sont appelés IDE (ou en français « EDI »
pour « Environnement de Développement Intégré »).
Il existe plusieurs IDE. Ils vous permettront tous de programmer et de suivre le reste
de ce cours sans problème.
6 | 12
6 Introduction au langage C++ | Chapitre 1 : Notions de base
Durant tout ce cours, j'utiliserai Code::Blocks. Il s’agit d’un IDE libre et
gratuit, disponible pour Windows, Mac et Linux.
Si vous voulez avoir exactement les mêmes écrans que moi, surtout au début pour ne pas
être perdus, je vous recommande donc de commencer par installer Code::Blocks2. Pour le
faire vous pouvez consulter le lien : http://www.codeblocks.org/downloads/binaries.
Si vous êtes sous Windows, repérez la section « Windows » un peu plus bas sur cette page.
Téléchargez le logiciel en choisissant le programme dont le nom contient mingw (ex. :
codeblocks-16.01mingw-setup.exe) (Figure 5).
Figure 5 : Code Blocks avec mingw (version à installer)
Création et lancement d’un premier programme Pour commencer à programmer, la première étape consiste à créer un nouveau projet. Pour
cela, sélectionnez File > New > Project (Figure 6).
2 http://www.codeblocks.org/
7 | 12
7 Introduction au langage C++ | Chapitre 1 : Notions de base
Figure 6 : Création de Nouveau projet sur Code::Blocks
Un assistant s'ouvre « New from template », choisissez « console application ».
À la fin des étapes de l'assistant, le projet est créé et contient un premier fichier
main.cpp. Ce fichier est notre premier code source et il est déjà un peu rempli (Figure
7).
Figure 7 : Mon premier programme
Sans trop entrer dans les détails, nous allons expliquer à quoi sert chacune des lignes de
ce code (code de la Figure 7).
8 | 12
8 Introduction au langage C++ | Chapitre 1 : Notions de base
#include
1 #include <iostream>
On place en général au début du programme un certain nombre d'instructions commençant
par #include. C'est ce qu'on appelle une directive de préprocesseur. Son rôle est de «
charger » des fonctionnalités du C++ pour que nous puissions effectuer certaines actions
(la définition de certains objets, types ou fonctions). Ces extensions qui nous offrent de
nouvelles possibilités sont appelées des bibliothèques.
Dans cet exemple (première ligne de la Figure 7), nous chargeons le fichier iostream, ce
qui nous permet d'utiliser la bibliothèque d'affichage de messages à l'écran dans la
console.
iostream est pour « Input Output Stream » ou bien « Flux d'entrée-sortie », ce que
signifie que cette bibliothèque nous permet également de faire plus qu'afficher des
messages à l'écran : on pourra aussi récupérer ce que saisit l'utilisateur au clavier, comme
nous le verrons plus tard.
Dans un ordinateur, l'entrée correspond en général au clavier ou à la souris, et la sortie à
l'écran.
Notez bien qu'on peut charger autant de bibliothèques que l'on veut à la fois (chaque une
par ligne).
using namespace std;
3 using namespace std;
Un programme important utilise de nombreuses bibliothèques, fonctions et objets ou
variables. Pour éviter les problèmes de conflit de noms, on utilise des espaces de noms
(namespace) :
- on associe un nom à un ensemble de variables, types, fonctions
- leur nom complet est : leur nom d’espace suivi de :: et de leur nom
la fonction int f(){...} définie dans le domaine A aura pour nom complet A::f()
Figure 8 : Exemple d'utilisation de namespace
Les noms complets de cout et cin sont std::cout et std::cin. Pour éviter d’écrire
les noms complets, on utilise : using namespace std ;
Créer un espace de nom
namespace toto {
int N = 10 ;
int Test() {
cout << "test... " ;
}
9 | 12
9 Introduction au langage C++ | Chapitre 1 : Notions de base
}
Figure 9 : Exemple de Création d’un namespace
Les objets N et Test ont pour nom toto::N et toto::Test.
La fonction main()
12 int main() 13 { ... ... ; 23 }
C'est ici que commence vraiment le cœur du programme. Comme nous le verrons un peu
plus tard, les programmes sont essentiellement constitués de fonctions. Chaque fonction
a un rôle et peut appeler d'autres fonctions pour effectuer certaines actions.
Tous les programmes possèdent une fonction dénommée « main », ce qui signifie la
fonction principale du programme.
Une fonction a la forme suivante :
Les accolades ({ et }) déterminent le début et la fin de la fonction. Comme vous le voyez
dans le code source qui a été généré par Code::Blocks (Figure 7), il n'y a rien après la
fonction main(). C'est normal : à la fin de la fonction main() le programme s'arrête !
Tout programme commence au début de la fonction main() et se termine à la fin de celle-
ci.
Cout
7 cout << "Hello world!" << endl;
Voici enfin la première ligne qui sera exécutée par l'ordinateur (les lignes que nous avons
vues précédemment ne sont en fait que des préparatifs pour le programme).
Il y a 3 éléments sur cette ligne :
- cout : commande l'affichage d'un message à l'écran ;
- "Hello world!" : indique le message à afficher ;
- endl : crée un retour à la ligne dans la console.
Il est possible de combiner plusieurs messages en une instruction.
Notez bien que :
cout est fourni par iostream. Si vous n'incluez pas iostream au début de votre
programme, le compilateur se plaindra de ne pas connaître cout et vous ne pourrez pas
générer votre programme !
Chaque instruction se termine par un point-virgule ! C'est d'ailleurs ce qui vous permet de
différencier les instructions du reste. Si vous oubliez le point-virgule, la compilation ne
fonctionnera pas et votre programme ne pourra pas être créé !
return ou le Retour de la fonction
return 0;
10 | 12
10 Introduction au langage C++ | Chapitre 1 : Notions de base
Cette instruction clôt généralement les fonctions. En fait, la plupart des fonctions
renvoient à la fin de son exécution une valeur appelée « retour de la fonction » (un nombre,
une chaine de caractères, etc.). Ici, la fonction main() renvoie 0 pour indiquer que tout
s'est bien passé (toute valeur différente de 0 aurait indiqué un problème).
Commentez vos programmes ! En plus du code qui donne des instructions à l'ordinateur, vous pouvez écrire des
commentaires pour expliquer le fonctionnement de votre programme. Par exemple, si vous
envoyez votre code à un ami, il aura des difficultés pour comprendre ce que vous avez
essayé de faire juste en lisant votre code source. C'est là que les commentaires entrent
en jeu !
Les commentaires n'ont aucun impact sur le fonctionnement de votre logiciel : en fait, le
compilateur ne les lit même pas et ils n'apparaissent pas dans le programme généré.
Il existe deux types de commentaires en C++ : les commentaires de type C et les
commentaires de fin de ligne (qui ne sont disponibles qu’en C++).
Il y a deux façons d'écrire des commentaires selon leur longueur :
Les commentaires courts : uniligne
Pour écrire un commentaire court, sur une seule ligne, il suffit de commencer par // puis
d'écrire votre commentaire.
// Ceci est un commentaire court sur une seule ligne
Les commentaires longs : multilignes
Si votre commentaire tient sur plusieurs lignes, ouvrez la zone de commentaire avec /* et
fermez-la avec */.
/* Ceci est un commentaire long peu complexe alors je l’écris sur plusieurs lignes */
Exemple
Reprenons le code source que nous avons étudié dans ce chapitre (Figure 7) et complétons-
le de quelques commentaires pour nous souvenir de ce qu'il fait (Figure 10).
1 #include <iostream> // Inclut la bibliothèque iostream (affichage de texte) 2 3 using namespace std; // Indique quel espace de noms on va utiliser 4 5 /* 6 Fonction principale "main" 7 Tous les programmes commencent par la fonction main 8 */ 9 int main() 10 { 11 cout << "Hello world!" << endl; // Affiche un message
11 | 12
11 Introduction au langage C++ | Chapitre 1 : Notions de base
12 return 0; // Termine la fonction main et donc le programme 13
Figure 10 : Mon premier programme complété par quelques commentaires
Mettez votre code en forme Imaginez maintenant que votre programme fasse des centaines de lignes de long, si vous
n’avez pas met votre code en forme de manière plus lisible, cela deviendra vite
incompréhensible.
Pour nous aider dans cette tâche, Code::Blocks met à disposition un outil. Ouvrez le
menu Plugins puis sélectionnez Source code formatter (AStyle).
Figure 11 : Mettre son code en forme
Votre code source se met alors en forme tout seul et devient automatiquement plus lisible.
Cela n'a rien changé pour le compilateur, le programme fera toujours exactement la même
chose, par contre, pour vous (et vos collègues travaillant sur le même projet), cela change
tout. Vous verrez que plus on avance dans ce cours, plus cela deviendra important d'avoir
un code mis en forme proprement et bien commenté.
Ce que vous devez retenir ! Les programmes permettent de réaliser toutes sortes d'actions sur un ordinateur
: navigation sur le Web, rédaction de textes, manipulation des fichiers, etc.
Pour réaliser des programmes, on écrit des instructions pour l'ordinateur dans un
langage de programmation. C'est ce qu’on appelle « code source ».
Le « code source » doit être traduit en « code binaire » (ou code
exécutable ») par un outil (un programme) appelé compilateur. En effet,
l'ordinateur ne comprend que le binaire (l’exécutable).
12 | 12
12 Introduction au langage C++ | Chapitre 1 : Notions de base
Le C++ est un langage de programmation très répandu et rapide. C'est une évolution
du langage C.
Un IDE est un outil tout-en-un à destination des développeurs, qui permet de créer
des programmes. Il est composé d'un éditeur de texte, d'un compilateur et
d'un debugger.
Code::Blocks, Visual C++ et Xcode sont parmi les IDE les plus connus pour
programmer en C++.
On distingue deux types de programmes : les programmes graphiques (GUI) et les
programmes console.
Un programme possède toujours une fonction main() : c'est son point de
démarrage.
La directive cout permet d'afficher du texte dans une console.
On peut ajouter des commentaires dans notre « code source » pour expliquer son
fonctionnement. Ils prennent la forme // Commentaire (pour des commentaires
uniligne) ou /* Commentaire */ (pour des commentaires multilignes).
top related