Professional Documents
Culture Documents
02 Variables
02 Variables
2022-2023
Plan
1 Programmation impérative
2 Les variables
3 Booléen
4 Numérique
5 Texte
6 Types personnalisés
Intuition
Exemple
program conversion ;
begin
tauxC onversi on := 1.2457;
valeurEnEuro := 10;
resultat := valeurEnEuro * tauxCon version ;
w r i t e l n ( ’ Vos ␣ 10 ␣ euros ␣ valent ␣ ’ , resultat , ’␣ dollars ’)
end .
Point syntaxe : <toto> signifie qu’il faut remplacer une fois par le terme désiré,
[< toto >] signifie qu’il est optionnel, et ∗ qu’on peut ajouter autant d’éléments que
voulu
J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 6 / 50
Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard
La variable
Définition
En informatique, une variable fait référence à un emplacement mémoire
(un conteneur) où est stockée une valeur. 3 composantes définissent une
variable :
un identifiant utilisé pour la désigner
un type de donnée qui caractérise la nature de sa valeur
une valeur courante prise dans le domaine de valeurs associé au type
Rôle de la déclaration
Une déclaration a pour objectif de définir une variable par :
son identifiant
son type de donnée
L’instruction d’affectation
program nondeclare ;
begin
a := 10 * 2;
w r i t e l n ( a );
end .
Identifiant 1 / 2
Définition
Un identifiant est une suite de caractères utilisée pour désigner de
manière unique un élément du programme (une variable, un type de
donnée, un programme, ...)
Lisibilité
program sybg ;
v a r chocolat , HaXx0R , a j z n d k j z d h j a k l d h n k j l z h d a d k j d z k j d a d h : R e a l ;
begin
HaXx0r := 1.2457; a j z n d k j z d h j a k l d h n k j l z h d a d k j d z k j d a d h := 10;
chocolat := a j z n d k j z d h j a k l d h n k j l z h d a d k j d z k j d a d h * HaXx0R ;
w r i t e l n ( ’ Vos ␣ 10 ␣ euros ␣ valent ␣ ’ , chocolat , ’␣ dollars ’ );
end .
program a ;
var x, y, z : Real ;
begin
x := 1.2457;
y := 10;
z := x * y ;
w r i t e l n ( ’ Vos ␣ 10 ␣ euros ␣ valent ␣ ’ , z , ’␣ dollars ’ );
end .
Identifiant 2 / 2
Conventions de nommage
l’identifiant d’une variable commence par une minuscule
l’identifiant d’un type de donnée commence par une majuscule
Lisibilité
Choisissez des identifiants explicites
Les majuscules ou le symbole permet de séparer des mots dans un
identifiant
Mauvais exemples
var x, monreel, MonEntier : Integer;
Bons exemples
var age : Integer; maVille : String; salaire annuel: Real;
J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 12 / 50
Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard
Types de données
Un type caractérise :
l’ensemble des opérations que l’on peut effectuer sur une variable
Types textuels
Types numériques
Caractères : Char
Entier : Integer,
Chaı̂ne de caractères :
LongInt, Word...
String
Réel : Real, Double...
Types personnalisés
Autre type
Intervalle
Booléen : Boolean
Enumération
J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 13 / 50
Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard
Opérateurs 1 / 2
Expression
Une expression combine un opérateur et des opérandes du type de
donnée attendu par l’opérateur
Une expression est utilisée comme une valeur du type de donnée
défini par l’opérateur
Opérateurs 2 / 2
Questions
Dans l’expression salaire * 2 :
Quel est l’opérande gauche ?
Quel est l’opérateur ?
Quel est l’opérande droite ?
Quelle est la nature de salaire * 2 ?
Si salaire et 2 sont de type entier, quel est le type de salaire *
2?
Si salaire a pour valeur courante 2000, quelle est la valeur de
salaire * 2 ?
Type Booléen
Domaine de valeurs
Le type booléen contient seulement deux valeurs pour représenter une
valeur vraie et une valeur fausse.
Valeurs autorisées : {True, False}
Exemple
var estMajeur : Boolean;
begin
...
estMajeur := True;
...
end.
Type Booléen
Usage des Booléens
Pour gérer de l’information à deux modalités
Dans les structures de contrôle pour décider de la suite du
déroulement du programme
Exemples
A et b entiers
a>b
Oui Non
Retourner max
Opérateurs booléens
4 opérateurs de calcul
not
and, or, xor
Types Entier
Domaines de valeurs
Le type naturel correspond aux entiers positifs, négatifs ou nul, i.e. ZZ.
Valeurs autorisées : [-MAXINT ;MAXINT[
(sur FreePascal MAXINT = 32768)
Exemple
var age, annee : Integer;
...
age := 25;
annee := -200;
6 opérateurs de calcul
+, -, *, /, div, mod
Définition
Opérateurs s’appliquant à deux opérandes de type entier.
div effectue une division entière
mod renvoie le reste de la division entière
Remarque
Le type de la valeur d’une expression contenant ces opérateurs est
Integer pour +, -, *, div et mod
Real pour /
Types numériques
Domaines de valeurs
type Bornes Octets
Byte 0 .. 255 1
Shortint -128 .. 127 1
Smallint -32768 .. 32767 2
Word 0 .. 65535 2
Integer smallint or longint 2 or 4
Longint -2147483648 .. 2147483647 4
Longword 0..4294967295 4
Int64 -9223372036854775808 .. 9223372036854775807 8
QWord 0 .. 18446744073709551615 8
Exemple
program bornes ;
var i,j: I n t e g e r ;
begin
i :=32700;
f o r j :=1 t o 100 do
begin
w r i t e (i , ’␣ ’ );
i := i +1
end
end .
Qu’affiche ce programme ?
Type Réel
Domaine de valeurs
Le type réel correspond aux nombres réels. On utilise un . pour séparer les
parties entières et décimales.
Valeurs autorisées : IR
Exemple
var temperature : Real;
...
temperature := 15.4;
4 opérateurs de calcul
+, -, *, /
Précision
Exemple
program precision ;
v a r monReel : R e a l ;
begin
monReel := 0.1;
w r i t e l n ( ’ Le ␣ reel ␣ vaut ␣ ’ , monReel :4:1);
w r i t e l n ( ’ il ␣ est ␣ egal ␣ a ␣ 0.1: ␣ ’ , monReel = 0.1);
end .
Qu’affiche ce programme ?
Types numériques
Domaines de valeurs
type Bornes Chiffres significatifs Octets
Real platform dependent ??? 4 or 8
Single 1.5E-45 .. 3.4E38 7-8 4
Double 5.0E-324 .. 1.7E308 15-16 8
Extended 1.9E-4932 .. 1.1E4932 19-20 10
Règle générale
De manière générale, il n’est pas permis d’utiliser un opérateur avec des
types de données autres que ceux qu’il définit.
Transtypage
Le transtypage est la faculté d’un langage à considérer implicitement pour
certains opérateurs qu’un type de donnée équivaut à celui attendu.
Transtypage autorisé :
Entier vers Réel
Caractère vers Chaı̂ne de caractères
Type Caractère
Domaines de valeurs
Le type caractère permet de représenter un seul caractère.
Valeurs autorisées : tout caractère existant dans la table ASCII. On le
représente entre quotes ’.
Exemple
var groupe : Char;
...
groupe := ’B’;
Attention...
... à ne pas oublier les quotes pour que le caractère (une valeur) ne soit
pas considéré comme une variable.
Opérateurs
Domaines de valeurs
Le type chaı̂ne de caractères permet de représenter une suite de caractères.
Valeurs autorisées : toute séquence de 0 ou plus caractères représentée
entre quotes ’.
Exemple
var nomComplet : String;
...
nomComplet := ’Victor Hugo’;
Remarque
Le type String est limité à 255 caractères.
Opérateur de concaténation
Définition
Opérateur + s’appliquant à deux opérandes de type chaı̂ne de caractères
et renvoyant la concaténation de ces 2 opérandes.
Exemple
’bienvenue’ + ’chez nous’ vaut ’bienvenuechez nous’
Transtypage
Le transtypage du type caractère vers le type chaı̂ne de caractères est
autorisé.
Exercice
Donnez les expressions valides, leurs types et corrigez celle qui ne le sont
pas :
4 mod 2
7 + 3.0
’J”ai ’ + 132 + ’ amis sur facebouc’
4/2+7
Type Énumération
Domaines de valeurs
Une énumération permet au programmeur de définir son propre type de
donnée en énumérant l’ensemble des valeurs possibles.
Syntaxe
Type <identifiant du type> = (<valeursAutorisees>);
avec <valeursAutorisees> = <valeur> [, <valeursAutorisees>]
Exemple
Type Jour = (lundi,mardi,mercredi,jeudi,vendredi,samedi,dimanche);
Opérateurs
Il y a six opérateurs unaires sur les variables de type énumération :
succ(<variable du type>)
pred(<variable du type>)
ord(<variable du type>)
<Nom du Type>(<entier>)
high(<type>)
low(<type>)
Type Intervalle
Domaines de valeurs
Un intervalle de valeurs dans un type de donnée dénombrable existant.
Syntaxe
Type <identifiant du type> = <valeurInitiale>..<valeurFinale>;
Exemple
Type Mois = 1..12;
Opérateurs
Les opérateurs sont ceux du type de données des valeurs initiales et finales.
Intervalle : limites
Exemple
program ensembles ;
var i : Integer ;
j : JourSemaine ;
begin
j :=10;
f o r i :=1 t o 20 do
j := i ;
w r i t e l n ( j );
end .
Constante 1 / 3
Définition
Une constante est une valeur qui ne change jamais dans le temps
Elle peut être :
implicite
explicite
Constante 2 / 3
v a r nbEleves , n b E l e v e s P a r P o s t e : I n t e g e r ;
begin
w r i t e l n ( ’ Entrez ␣ le ␣ nombre ␣ d ␣ eleves ␣ svp ␣ : ’ );
r e a d l n ( nbEleves );
n b E l e v e sP a r P o s t e := nbEleves d i v (10*10);
w r i t e l n ( ’ Il ␣ y ␣ a ␣ ’ , nbElevesParPoste , ’␣ eleves ␣ par ␣ poste ’ );
end .
Constante 3 / 3
Exemple : Constante Explicite
program constante2 ;
v a r nbEleves , n b E l e v e s P a r P o s t e : I n t e g e r ;
begin
w r i t e l n ( ’ Entrez ␣ le ␣ nombre ␣ d ␣ eleves ␣ svp ␣ : ’ );
r e a d l n ( nbEleves );
n b E l e v e sP a r P o s t e := nbEleves d i v ( NB_POSTES * NB_SALLES );
w r i t e l n ( ’ Il ␣ y ␣ a ␣ ’ , nbElevesParPoste , ’␣ eleves ␣ par ␣ poste ’ );
end .
Souvent les algorithmes ont besoin d’avoir des interactions avec des
périphériques pour :
obtenir des informations, on parle alors de périphérique d’entrée
fournir des informations, on parle alors de périphérique de sortie
Périphériques d’entrée
Périphérique d’entrée
Tout composant matériel externe au processeur pouvant lui fournir des
informations
L’instruction readln
Le but est d’affecter des valeurs à des variables, valeurs provenant du clavier
Syntaxe : readln([<variables>]) avec
<variables> := <identifiant de variable> [, <variables>]
Exemple
program conversion ;
Le clavier
Attention
Le type des données entrées dépend du bon vouloir de l’utilisateur
Périphériques de sortie
Périphérique de sortie
Tout composant matériel externe au processeur où il peut écrire des
informations
write et writeln
Les instructions write et writeln existent pour tout type de données. Par ex :
write(’il est ’);
write(5);
writeln(’h’);
Des valeurs de différents types peuvent être concaténées dans une même écriture par
une virgule. Par ex :
writeln(’il est ’, 5, ’h’);
Conclusion
À retenir
Pour manipuler des données, on utilise des variables
Ces variables ont des types et des domaines de définition associés,
qu’il faut choisir de façon pertinente :
En fonction du besoin
De façon parcimonieuse
Chaque type possède des opérateurs associés qui vont permettre de
manipuler les données