Langage C++
Introduction
Hardware (Matériel)
●
programme – ensemble d'instructions destinées à un ordinateur
●
Logiciel (software) – ensemble de programmes
●
Matériel (hardware) – composants physiques qui constituent un ordinateur
●
Un ordinateur contient 5 composants principaux
●
Processeur (CPU) – lit les instructions d'un programmme et les exécute
●
Périphérique d'entrée (input device) – tout périphérique qui permet au
monde extérieur de communiquer des informations à l'ordinateur
●
Périphérique de sortie (output device) – tout périphérique qui permet à
un ordinateur de communiquer des informations au monde extérieur
●
Mémoire principale (main memory/RAM) – Composants élécroniques
capable de stocker (temporairement) des données
●
bit – la plus petite quantité d'information : 0 or 1
●
octet (byte) - 8 bits correspond à une cellule (case) mémoire
●
zone mémoire – partie unique et indivisible de la mémoire stockant
des données
●
addresse – un nombre qui identifie une zone mémoire
●
Mémoire secondaire – mémoire utilisée pour le stockage permanent des
données (ex: Disque Dur, CDRom, DVD, clé USB)
2
Hardware
3
Software (Logiciel)
●
Système d'exploitation – Permet l'exploitation du matériel informatique et
l'exécution des programmes en leur attribuant les ressources nécessaires
●
donnée – entrée du programme
●
Exécuter un programme - exécuter les instructions du programme sur les
données d'entrée
●
Langage naturel - langage utilisé par les humains (ex : arabe, anglais)
●
Langage de haut niveau - language (proche du langage naturel)
compréhensible par l'humain ( ex : if age > 18 ). C++ est un langage
de haut niveau
●
Langage machine - liste d'instructions en format binaire qu'un ordinateur
peut comprendre
0101 0001 1100 0010
●
compilateur – un programme qui traduit le langage de haut niveau en un
langage machine.
●
code source – code du programme écrit en langage de haut niveau (C++)
●
code executable- code en langage machine qu'un ordinateur peut exécuter
●
librairie – ensemble de fonctionalités fournies avec le langage de
programation (ex : affichage sur écran, lecture à partir du clavier)
4
Structure d'un programme C++
#include <iostream>
directive include – indique au compilateur int main() {
où trouver certaines fonctionalités dont instruction 1;
le programme a besoin // commentaire
la fonction main – contient les instructions
instruction2 2;
du programme, commence et
...
se termine par des accolades: {}
}
chaque instruction se termine par un ;
un commentaire est un ensemble de ligne ignorées par le compilateur – un
commentaire commence par //
a pour but d'ajouter des explications au code
5
Premier Programme: [Link]
directive de // programme qui affiche bonjour
préprocesseur
// auteur : chahhou
// date : 8/02/2015 commentaires
#include <iostream>
using namespace std;
fonction
main() int main() {
indique le cout << "Hello World!" << endl;
début du
programme }
Instruction
d'affichage
Pour écrire à l’écran: cout
L’instruction:
cout << "Hello World!" << endl;
est un exemple d'affichage à l’écran à partir d’un programme C++
endl correspond à "retour à la ligne": ce qui sera affiché après le
sera au début de la ligne suivante.
Deuxième programme
#include <iostream>
using namespace std;
int main() {
// Lire la longueur et la largeur du rectangle
cout << "donnez la longueur";
int longueur; Déclaration
cin >> longueur; de variable
int largeur;
cin >> largeur; Saisie de donnée
// Calculer la surface
int surface;
Calcul
surface = longueur * largeur;
cout << ”Surface = " << surface;
Affichage
}
Cycle de programmation
Cycle de programmation
La compilation
Un programme en langage C++ est un fichier texte, que l’on écrit
à l’aide d’un éditeur de texte.
Ce programme en langage C++ n’est pas exécutable
directement par la machine: il doit être compilé pour pouvoir être
exécuté par l’ordinateur.
La compilation est réalisée par un programme appelé
compilateur. Le compilateur crée un fichier exécutable.
Erreurs de programmation
Deux types d'erreurs peuvent survenir quand on écrit un programme:
1. Les erreurs de syntaxe, qui surviennent à la compilation du programme:
Un programme doit respecter précisément la syntaxe du langage C++ pour être
accepté par le compilateur.
En cas d’erreur de syntaxe, le compilateur signale l’erreur (ou plusieurs erreurs). Par
exemple, si on oublie le point-virgule à la fin du cout:
ligne 3. int main()
ligne 4. {
ligne 5. cout << "Hello World!" << endl
ligne 6. }
le compilateur affichera le message d'erreur suivant:
[Link]: In function ‘int main()’:
[Link]:1: error: expected ‘;’ before ‘}’
Dans ce cas, le compilateur s’arrête sans créer d’exécutable
2. Les erreurs qui surviennent lors de l'exécution du programme (bugs):
Le programme ne fait pas ce qui est attendu, le programme "plante",...
Savoir trouver ses erreurs
Savoir résoudre les erreurs fait partie de l'apprentissage de la
programmation !
Dans le cas des erreurs de syntaxe:
●
Toujours commencer par corriger la première erreur: les erreurs
suivantes en découlent peut-être.
●
Il faut savoir exploiter le message donné par le compilateur pour
trouver l'erreur:
●
le compilateur indique le numéro de ligne où il estime que l'erreur
s'est produite.
Attention : le numéro de ligne n'est qu'indicatif !
●
le compilateur décrit l'erreur qu'il a trouvé.
warning (Avertissement)
●
Le compilateur peut également afficher des messages d'avertissement
(warning) quand il pense que le programme fait quelque chose de
bizarre.
●
Ces messages ne sont pas provoqués par des erreurs de syntaxe, et le
compilateur crée l'exécutable.
●
Par exemple:
x = x / 0;
est syntaxiquement valide mais provoque le warning:
[Link]: warning: division by zero
●
En général, quand le compilateur affiche un warning, le programmeur a
effectivement commis une erreur.
●
Veillez à ce que la compilation s'effectue sans l'affichage de warning.
Erreurs d'exécution
●
Lorsque le compilateur ne trouve pas d'erreur de syntaxe, il
génère un fichier exécutable que la machine peut comprendre.
●
L'exécution de ce fichier peut générer un nouveau type d'erreurs
qu'on appelle les erreurs d'exécution.
int main()
{
int x = 4;
int y = 0;
x = x / y;
}
●
Le compilateur compile correctement ce programme puiqu'il ne
contient pas d'erreurs de syntaxe, mais à l'exécution, on obtient
l'erreur d'exécution suivante :
Exception en point flottant , qui correspond à l'erreur d'une
division par zero.
Erreurs de syntaxe : exercice
Trouvez les erreurs de syntaxe de ce programme:
include <iostream>;
using namespade std;
int main()
{
cout "Hello world!!! << endl;
}
Erreurs de syntaxe : corrigé
Pas de ; à la fin de #include
Manque le # include <iostream>;
using namespade std; Il manque le <<
namespade int main()
au lieu de {
namespace cout "Hello world!!! << endl;
}
Il manque le "