Académique Documents
Professionnel Documents
Culture Documents
Introduction-au-C
Introduction-au-C
C++
Livret 1 – Introduction à la programmation
THIERRY TILLIER
http://www.coursdinfo.fr
Ce support de cours est réservé à un usage
personnel. Toute utilisation et diffusion
dans le cadre d’une activité de formation
fait l’objet d’une licence de copies. Veuillez
nous contacter si vous souhaitez utiliser ce
cours dans ce cadre.
Table des matieres
Chapitre 1 Généralités............................................................................................................................. 5
1.1 Historique ...................................................................................................................................... 5
1.2 Les différents langages .................................................................................................................. 5
Chapitre 2 Canevas d'un programme ...................................................................................................... 6
2.1 Entête ............................................................................................................................................ 6
2.2 Zone de déclaration....................................................................................................................... 7
2.3 Corps du code ................................................................................................................................ 7
2.4 Les différents fichiers d'un programme ........................................................................................ 7
Chapitre 3 Partage de l’application ......................................................................................................... 8
Chapitre 4 Le rôle des outils .................................................................................................................... 9
4.1 Le Préprocesseur ........................................................................................................................... 9
4.2 Link ................................................................................................................................................ 9
Chapitre 5 Conseils de programmation................................................................................................. 11
5.1 Les variables ................................................................................................................................ 11
5.2 Les fonctions ................................................................................................................................ 11
5.3 Du code lisible ............................................................................................................................. 12
5.4 Les fichiers inclus ......................................................................................................................... 13
Chapitre 6 La programmation orientée objet (POO)............................................................................. 15
6.1 Généralités .................................................................................................................................. 15
Chapitre 7 Interface de développement ............................................................................................... 18
Chapitre 8 Créer un premier programme ............................................................................................. 20
8.1 Création d’un projet Console ...................................................................................................... 20
8.2 Ajout d’un module de code C++ .................................................................................................. 25
8.3 Générer la solution ...................................................................................................................... 27
8.4 Exécuter en mode debug............................................................................................................. 28
8.5 Fermer un projet ......................................................................................................................... 29
Chapitre 9 Conclusion............................................................................................................................ 30
Preambule
Ce cours s'adresse à toute personne désirant apprendre le C++ sans connaître le Langage C.
Les éléments communs entre le C et le C++ seront donc examiné en détail avec une orientation vers
le C++, évidemment.
Objectifs :
Découvrir les différentes parties d’un petit projet
Apprendre à bien coder
Créer un petit programme
Découvrir Visual Studio 2010
Étant un langage procédural, les instructions sont exécutées de façon linéaire. Ces instructions sont
regroupée en bloc contenant des (fonctions ou des procédures).
Le langage C a été développé dans les années 70-72 dans les laboratoires BELL par Kernigan et
Ritchie. Il permet de développer à bas niveau (proche du Hard -µP) ou à haut niveau
(indépendamment du matériel).
Son succès est dû à UNIX (écrit en C) même s'il a beaucoup été critiqué à ces début à cause de son
compilateur trop 'tolérant'. Aujourd'hui, notamment avec le C++, le compilateur est beaucoup plus
'sérieux'.
Plus tard en 1983 et toujours dans les laboratoires BELL (A&T BELL LABORATOIRE) arrive le C++. On le
doit à Bjarne STROUSTRUP. Le Comité ANSI X3J16 a été mis en place en 1989 afin de normaliser ce
langage.
Bien que les langages C et C++ soient ressemblant, ils sont malgré tout assez différents pour parler de
deux langages à part entière.
Les langages C – C++ sont des langages portables (à condition d'utiliser des procédures et des
fonctions normalisées ANSI).
Un programme écrit en C / C++ ANSI peut donc être utilisé sur n'importe quel OS (à condition de
recompiler le programme dans le système de destination.
D'autres langages de haut niveau ont vu le jour depuis. Le plus connu est ADA.
La nécessité s'est ensuite imposé de créer des langages de plus haut niveau. (C++, Visual Basic,
Delphi, Java ...).
Une fonction de haut niveau génère une kyrielle de fonctions de base automatiquement, ce qui 5
simplifie la tâche du programmeur.
L'entête du programme
La zone de déclaration
Les fonctions du programme principal
Le corps des procédures fonctions
Syntaxe :
ou
Les variables
Les constantes
Les équivalences
Les prototypes des nouvelles fonctions
Les fichiers à inclure (bibliothèque std du C++)
Cette zone sert à informer le compilateur que l'on va avoir besoin de certaines variables / Fonctions /
Fichiers et qu'il va rencontrer de nouveaux mots. Le compilateur doit savoir à quoi ils correspondent.
;
Le termine chaque ligne d'instruction (sauf les conditionnelles)
,
La sépare les variables
Un programme est constitué de déclaration d'objet et de fonctions qui s'appellent les unes les
autres. La fonction main() (ou Winmain() ) est la fonction principale.
Les fichiers avec une extension *.cpp (ou *.c en Langage C). (Appellation : fichier source)
Ces fichiers contiennent les corps des fonctions définies dans le fichier homologue *.h.
On peut avoir aussi besoin de fichiers spéciaux : les librairies dont l'extension est *.lib.
Ex.
....
Plusieurs fichiers permettent :
Voici un exemple en langage C d’un programme partagé (ou découpé en plusieurs parties).
Chaque bloc pourrait être réutilisé tel quel dans un autre programme.
Le préprocesseur (ou compilateur) va s'assurer que chaque fichier.cpp a une syntaxe correct et que
chaque mot et fonction nouveau est bien défini dans votre fichier.h personnel.
Le préprocesseur va ensuite générer un fichier *.obj contenant le code machine spécifique à un µP.
...
Il va prendre les fichiers.lib dont il aura besoin pour les fonctions de base du C/C++ (printf(),
scanf()...), ainsi que tous les fichiers.obj et il va créer le fichier.exe (l'exécutable).
L'erreur typique : « Unresolve external reference » Ce qui signifie qu'il manque une bibliothèque
pour construire une fonction/procédure. Autrement dit, vous avez oublié d'inclure un fichier.
Ce schéma est valable pour la plupart des compilateurs, mais nous verrons les nouveautés apportées
10 par le Framework de Windows.
Les variables doivent être déclarées avant d’être utilisée. Déclarer signifie faire connaitre au
programme le nom et le type des variables.
Exemple :
int Somme;
Le type définit la place mémoire nécessaire à la variable, par exemple int = 4 Octets sur PC Windows.
Nous parlerons davantage des variables et des types dans le prochains cours.
Cette déclaration permet également de définir toutes les instructions possibles avec la variable.
Avant d'utiliser une fonction, le compilateur doit connaître son nom et ses arguments. Pour cela, on
déclare un prototype de la fonction dans un fichier d'entête ou au début du programme principal.
Les fonctions seront déclarées (de préférence) dans un fichier h ou hpp , puis incluse au module de
code.
11
{ // Corps de la fonction :
int Resultat;
return Resultat
Pour que notre code soit compréhensible, il est bien de respecter ces quelques règles :
Afin d'éviter un maximum de commentaires explicatifs, il faut employer des noms de fonctions et des
noms de variables les plus explicites possible.
Ex:
LeVolume,
LaMoyenne,
LeDernierNombreDuTableau
SommeDe(..,..)
LireLeNom(..)
Nous parlerons de variables spéciales appelées 'les pointeurs'. On mettra un p devant son nom
identificateur .
ex : int * pMonPointeur.
#include <stdio.h> // fichiers de la bibliothèque standard – le compilateur cherche le *.h dans les
directories sytème
Les fichiers.h sont du texte (alors que les fichiers *.lib ou *.dll contiennent du code compilé).
Il n'y a jamais de corps de fonction dans un fichier.h (sauf cas particulier avec les classes en C++).
Sur la page suivante vous trouverez un exemple de code que nous aurons l’occasion de taper
13
void FonctionNumero1(void); // Déclaration d'une fonction, elle pourrait être dans un fichier.h
FonctionNumero1();
... // Instructions
} // Fin du programme principal – équivalent du 'end' en Pascal
14
Le langage C est un langage procédural. Il est structuré mais représente un ensemble de procédures
ou fonction qui s'appellent les unes les autres. Chaque procédure ou fonction ayant un rapport entre
elles sont regroupées dans un même module (même fichier *.cpp). Par exemple, toutes les fonctions
arithmétiques seront dans un même module.
Le C++ est un langage orienté objet. On ne manipule plus seulement des procédures mais des
nouveaux types appelés objets ou classes. Ces objets peuvent suivre une hiérarchisation.
Imaginons que vous souhaitiez faire un programme de calculs mathématiques, il faudrait définir des
groupes (qui seront vos objets) selon le schéma ci-dessous, par exemple:
Math
Arithmétique Analyse
Calcul Ensembles
On dira que :
Il s'agit ici d'héritages multiples. Nous développerons cette notion plus en détail dans le cours.
15
16
Cette partie présente rapidement l’IDE Visual Studio qui permet de développer des applications en C++ ou
VB.Net et bien d’autres choses encore.
17
Vous pouvez créer des projets console (SHELL – anciennement DOS), des interfaces graphiques, des
dll ....
18
19
20
7 : Cliquez sur
Parcourir
8 : Sélectionnez le dossier
Exercices du Livret1, puis
cliquez sur Sélectionner un
dossier
21
22
13 : Cliquez sur le
bouton Terminer
23
24
25
6 : Cliquez sur
Ajouter
26
Générer la solution c’est compiler en langage machine (enfin presque) le petit programme qu’on
vient de faire. Cette étape permet de vérifier qu’il n’y a pas d’erreur de syntaxe ou d’oubli.
27
28
29
Ce premier livret nous a permis de faire un rapide tour sur les éléments de bases communs à tous les
langages de programmation.
Le prochain livret traite du langage C++ dans le détail et vous permettra de faire de nombreux petits
programmes pour bien comprendre. Une large part traitera de la manière de déboguer un
programme.
30
http://www.coursdinfo.fr
06 81 51 11 24
thierry.tillier@coursdinfo.fr