chapitre 01 - notions de base

13
Introduction au langage C++ Chapitre 1 Notions de base Youssouf EL ALLIOUI, [email protected] 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

Upload: luniversite-hassan-1er-settat

Post on 15-Apr-2017

543 views

Category:

Education


1 download

TRANSCRIPT

Introduction au langage C++

Chapitre 1

Notions de base

Youssouf EL ALLIOUI, [email protected]

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).