Éléments de langage C++
Samedi, 25 Février 2023
Module: PROGR3 C++ Année universitaire: 2022/2023
Introduction
Dans ce premier chapitre sont exposés les
«plus» et les différences du C++ par
rapport au C (comme langage évolué et
structuré), sans toutefois aborder la
programmation orientée objet (P.O.O.) qui
sera vue lors d’un prochain chapitre.
Éléments de langage C++
• La structure d’un programme
• Les éléments du langage
• Les commentaires
• Les identificateurs
• Les constantes
• Les variables
• Les mots clés
• Les opérateurs
• La table de vérité
• La conversion de type implicite
• La gestion des entrées sorties
3
La structure d’un programme
Les fichiers en-tête
Les déclarations
Corps de programme
La structure d’un programme
◼ Les fichiers en-tête
Ils sont composés des instructions < include >.
Ils contiennent les données, des types et des
fonctions utilisées par le compilateur.
◼ Les déclarations
Cette partie contient les déclarations et les
définitions de toutes les variables et fonctions.
La structure d’un programme
◼ Le corps du programme
Cette partie contient des fonctions utilisées
dans le programme. Un programme C++
peut contenir un nombre indéfini de
fonctions. Il doit au minimum en contenir une
appelée main.
Cette fonction obligatoire constitue la fonction
principale de tout le programme C++. Elle
contient les instructions exécutées au
démarrage du programme.
La structure d’un programme
Elle a la forme suivante:
void main ( )
{
Les instructions;
}
Les éléments du langage
◼ Pour écrire un texte dans une langue définie, il est
indispensable de connaître les symboles nécessaires à la
formation des mots et des phrases.
◼ Pour écrire un programme en C++ les caractères suivants
sont autorisés.
◼ les majuscules
◼ les minuscules
◼ les caractères spéciaux
◼ les chiffres
◼ les caractères invisibles ( retour chariot, saut de
ligne, saut de page, tabulation )
Les éléments du langage
Avec ces caractères vous pouvez former
des mots appelés tokens. On distingue
habituellement cinq types de tokens :
◼ Les identificateurs
◼ Les mots clés du langage
◼ Les constantes
◼ Les opérateurs
◼ Les séparateurs
Exemple 1
Les commentaires
Pour faciliter l’interprétation des
programmes sources, il est conseillé d’y
ajouter des commentaires.
Les commentaires C++ peuvent être
placés partout, ils peuvent s’écrire sous la
forme suivante :
/* le commentaire */
// sur la même ligne avec une instruction
a = a + 1 ; // incrémentation de la variable a
Les identificateurs
Le programmeur est en droit d’attribuer
aux données qu’il manipule des noms ou
identificateurs de son choix. Mais il devra
respecter les règles édictées par le
langage.
Un identificateur valide est constitué
d’un ou plusieurs caractères qui peuvent
être des lettres, des chiffres ou le
caractère de soulignement.
Les identificateurs : suite
Le premier caractère doit être constitué par
une lettre ou par le caractère de
soulignement. Pas d’espaces entre les
caractères d’un identificateur.
Exemple
n
n1
number_1
_number1
Les types de données
fondamentaux
Un type de donnée définit la taille de la
mémoire occupée et la forme de sa
mémorisation
Les types de données
fondamentaux
Type Taille Valeurs
Char 1 octet -128 à 127
unsigned char 1 octet 0 à 255
Int 2 ou 4 octet -32768 à 32767
unsigned int 2 ou 4 octet 0 à 65535
Short 2 octet -32768 à 32767
unsigned short 2 octet 0 à 65535
Long 4 octet -2147483648 à + 2147483647
unsigned long 4 octet 0 à 4294967295
Float 4 octet 3.4 10-38 à 3.4 10+38
Double 8 octet 1.7 10-308 à 1.7 10+308
long double 10 octet 1.2 10-4932 à 1.2 10+4932
Les constantes
Ce sont des éléments qui ne changent pas de
valeur durant l’exécution du programme. Ils se
répartissent en deux catégories:
◼ Les constantes non nommées
◼ Les constantes nommées
Les constantes :
Les constantes non nommées
Sont des constantes qui ont une valeur et un
type, mais ne possèdent pas de nom. Elles
existent sous quatre formes:
1. Les constantes entières : (1, 125, 145 )
2. Les constantes en virgule flottante (27.5 e-10 )
3. Les constantes caractères (`a`, `1`)
4. Les constantes chaînes de caractères (``Bonjour ``)
Les constantes :
Les constantes nommées
Sont des constantes qui ont un nom et
introduites par le mot clé const
Syntaxe de déclaration :
const type nom = valeur ;
Exemple :
const int x = 2 ;
Les variables
Une variable est un emplacement de
mémoire d’un ou de plusieurs octets qui
permet de stocker des valeurs. Chaque
variable possède :
◼ Un type
◼ Une valeur
◼ Une adresse
◼ Un nom
Les variables
Déclaration d’une variable
type nom_de_variable [ = valeur ]
(déclaration, définition, affectation)
Exemple :
int x;
x=2;
Exemple 2
Taille des types simples
Les mots clés
Éviter d’utiliser comme identificateur
ces mots clés !!!
Les opérateurs
Un opérateur représente une opération
effectuée sur un ou deux opérandes. Il
existe cinq types d’opérateurs :
◼ Les opérateurs arithmétiques
◼ Les opérateurs de comparaison
◼ Les opérateurs logiques
◼ Les opérateurs d’affectation
◼ Les opérateurs d’incrémentation et de
décrémentation
Les opérateurs &&, || :
La table de vérité
A B A && B A || B
True true true true
True false false true
False true false true
False false false false
Les opérateurs : représentation
Les opérateurs : représentation
Opérateur
post/préincrémentation
La conversion de type implicite
Un problème lie aux expressions est
celui des opérateurs appliques a des
opérandes de types différents. Dans ce
cas le compilateur procède à ce qu’on
appelle des conversions de types : les
opérandes sont convertis en un seul
type selon des règles bien déterminées.
La conversion de type implicite
Les règles de la norme ANSI sont un peu plus fines :
• Si un des opérandes est de types long double, l’autre
est converti en long double et le résultat est de type
long double.
• Sinon, si un des opérandes est de types double,
l’autre est converti en double et le résultat est de type
double.
• Sinon, si un des opérandes est de types float, l’autre
est converti en float et le résultat est de type float.
La conversion de type implicite
◼ Sinon, si un des opérandes est de types long int,
l’autre est converti en long int et le résultat est de
type long int.
◼ Sinon, si un des opérandes est de types unsigned
long int, l’autre est converti en unsigned long int
et le résultat est de type unsigned long int.
◼ Sinon, si un des opérandes est de types unsigned
int, l’autre est converti en unsigned int et le
résultat est de type unsigned int.
◼ Sinon les deux opérandes sont convertis en int et le
résultat est de type int.
Les entrées sorties
On peut utiliser en C++ les fonctions
d’entrées/sorties classiques du C (printf,
scanf, puts, gets, putc, getc ...), à
condition de déclarer le fichier d’en-tête
stdio.h.
Les entrées sorties : suite
Il existe de nouvelles possibilités en
C++, à condition de déclarer le fichier
d’en-tête iostream.h.
Ces nouvelles possibilités ne
nécessitent pas de FORMATAGE des
données.
Le flux de sortie cout
Sortir des données a l’aide d’un flux
n’est pas très difficile. La syntaxe s’écrit
sous la forme :
cout << données;
cout : le flux de sortie
<< : l’opérateur de transfert
données : les données a afficher qui
sont de type ( int, char, char *, float
)
Exemples : chaînage
cout << "BONJOUR"; // équivalent à
puts("BONJOUR");
int n = 25;
cout << "Valeur: "; // équivalent à puts("Valeur");
cout << n; // équivalent à printf("%d",n);
On peut encore écrire directement:
cout <<"Valeur:" << n;
cout <<"\n "; // pour aller à la ligne
char c = ‘a’;
cout << c; // affiche le caractère, il faut utiliser
Le formatage
vous pouvez choisir le format des sorties que vous
voulez à l’aide des fonctions prédéfinies de la
bibliothèque iostream, appelées manipulateurs.
Il y’a deux types de manipulateurs, manipulateurs
avec paramètres et sans paramètres.
Remarque : pour utiliser un manipulateur, il suffit
d’écrire son nom avant la valeur a afficher en
ajoutant comme séparateur un nouvel exemplaire
de l’opérateur de transfert (<<).
Exemple : cout << hex << 123
cout << dec << 123
cout << oct << 123
Exemple 3
#include <iostream.h>
#include <string.h>
void main()
{
cout << hex << 123<<endl;
cout << dec << 123<<endl;
cout << oct << 123<<endl;
}
Exemple 3
Le formatage
Exemple 4
Le flux d’entrée cin
Le flux d’entrée cin conduit les données tapées au
clavier vers votre programme (en mémoire). Le cin
commence la lecture après la touche enter (le
retour chariot).
Syntaxe d’utilisation : cin >> variable
cin : mot clé qui le nom du flux d’entre
>> : opérateur de transfert
variable : nom de la case mémoire qui vas recevoir la valeur
entrée.
Les entrées/sorties d’un
caractère avec le flux
Entrée : cin.get() qui lit un seul caractère
et nécessite le retour chariot (enter).
Sortie : cout.put(caractère) qui affiche
un seul caractère a l’écran.
Chaînage
Si vous avez plusieurs variables a lire. Vous pouvez
utiliser autant d’instructions de lecture que de
variables a lire, ou vous pouvez l’écrire dans une
même instruction. Par exemple
cin >> i;
cin >> c;
cin >> d;
ou on peut les chaîner dans une même instruction
cin >> i >> c >> d;
il suffit de séparer les différentes saisies, par des
caractères d’espacement :
espace, tabulation, ou saut de ligne ( enter ).
Exemple
int n;
cout<<"Saisir un entier: ";
cin >> n; // équivalent à scanf("%d",&n);
int a, b;
cin >> a >> b; // saisie de 2 entiers séparés par un
Retour Chariot
L’opérateur cin permet de saisir des nombres entiers ou
réels, des caractères, des chaînes de caractères.
Exemple 4
Exemple 4