You are on page 1of 51

Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Variables et types de donnée


I1 - Initiation à la programmation impérative

Julien Saunier, Samia Ainouz, Géraldine Del Mondo

2022-2023

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 1 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Plan

1 Programmation impérative

2 Les variables

3 Booléen

4 Numérique

5 Texte

6 Types personnalisés

7 Les périphériques d’entrée/sortie standards

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 2 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Paradigme de la programmation impérative

Un algorithme a pour objectif de “calculer” une solution à un problème :


Problème = ensemble d’informations données en entrée du
programme. On parle d’état initial
Solution = ensemble d’informations calculées fournies comme sortie
du programme. On parle d’état final

État d’un programme


L’état d’un programme est constitué d’un ensemble de variables dont
chacune contient une partie d’information
un programme a pour but de passer d’un état initial à un état final en
passant par des états intermédiaires
en programmation impérative, on passe d’un état à un autre par une
instruction
J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 3 / 50
Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Intuition

Faire un convertisseur Euro/Dollar


Nécessite de stocker des informations transitoires dans des variables :
Valeur à convertir
Taux de conversion
Résultat
Nécessite des instructions :
Calcul de la nouvelle valeur
Affichage

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 4 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Exemple

program conversion ;

v a r resultat , valeurEnEuro , tauxC onversio n : R e a l ;

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 .

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 5 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Structure d’un programme Pascal


Séquence d’instructions
L’exécution est séquentielle
À partir du début marqué par le mot-clé begin
Les instructions sont séparées par le symbole ;

Structure générale d’un programme Pascal


program < nom_programme >;
var [ < declaration >]*
begin
[ < instruction >]*
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

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

Déclaration d’une variable 1 / 2

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

Syntaxe d’une déclaration


var <identifiants> : <type de donnée>
avec <identifiants> = <identifiant> [, <identifiants>]*

var age : Integer;


var nom : String;

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 7 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

L’instruction d’affectation

Syntaxe d’une affectation


L’instruction d’affectation attribue une valeur à une variable. Sa syntaxe
est :
<variable> := <valeur>

La valeur à affecter peut être :


une constante. Ex : age := 12
la valeur d’une autre variable. Ex : ageDePaul := age
la valeur d’une expression. Ex : age := age + 1
Il est impératif que la valeur soit du type de donnée de la variable

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 8 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Déclaration d’une variable 2 / 2


Remarques
Après sa déclaration une variable :
ne peut pas changer de type de donnée ;
peut prendre toutes les valeurs autorisées par son type de donnée ;
a, au moment de la déclaration, une valeur qui est inconnue et
aléatoire
Il est indispensable d’avoir déclaré une variable avant de l’utiliser

program nondeclare ;

begin
a := 10 * 2;
w r i t e l n ( a );
end .

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 9 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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

Validité d’un identifiant


Pour être valide, un identifiant doit
être composé uniquement de caractères alphanumériques ou du
symbole
ne pas commencer par un chiffre

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 10 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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 .

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 11 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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 valeurs que peut prendre une variable

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

Opérateurs d’un type


Un type de données est associé à un ensemble d’opérateurs autorisés.
Un opérateur est représenté par un symbole ou un mot-clé.
Un opérateur est utilisé au sein d’une expression en association avec
un ou deux opérandes.

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

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 14 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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 ?

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 15 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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.

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 16 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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

Le max est a Le max est b

Retourner max

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 17 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Opérateurs booléens

4 opérateurs de calcul
not
and, or, xor

Les valeurs résultantes sont exprimées en terme de tables de vérité.


Remplir les tables du poly.
Priorité des opérateurs booléens : non, et, ou, ouExclusif

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 18 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Exercice : affectations booléennes 1 / 1

Indiquez l’état du programme (i.e. la valeur des variables) après chaque


instruction.
instruction a b c
var a, b, c :Boolean ;
a := True ;
b := not a ;
c := a or b ;
b := b and a ;
a := (c and b) or (a xor c) ;
c := c xor a or True ;

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 19 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 20 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Opérateurs sur des entiers

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 /

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 21 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 22 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Attention au choix de type !

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 ?

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 23 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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
+, -, *, /

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 24 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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 ?

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 25 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 26 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Opérations sur des types différents

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

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 27 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Exercice : affectations numériques 1 / 1

Indiquez l’état du programme après chaque instruction.


instruction n e1 e2 r1 r2 b
var n, e1, e2 : Integer ;
r1, r2 : Real ;
b : Boolean ;
e1 := 5 ;
e2 := e1 * 3 ;
n := e2 / e1 ;
r1 := -7 + 10 / e1 ;
r2 := e2 div e1 ;
e1 := 100 mod (e2 + r1) ;
b :=(e1 < 4) ;

Priorité des opérateurs numériques : *, /, div, mod, +, -


J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 28 / 50
Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Exercice : affectations numériques 1 / 1

Indiquez l’état du programme après chaque instruction.


instruction n e1 e2 r1 r2 b
var n, e1, e2 : Integer ;
r1, r2 : Real ;
b : Boolean ;
e1 := 5 ;
e2 := e1 * 3 ;
n := e2 / e1 ;
r1 := -7 + 10 / e1 ;
r2 := e2 div e1 ;
e1 := 100 mod (e2 + r1) ;
b :=(e1 < 4) ;

b :=(e1 < 4) = True ?


J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 29 / 50
Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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.

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 30 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Opérateurs

Table ASCII standard Opérateurs


Les 4 opérateurs sur les
caractères s’appuient sur la
table ASCII :
ord(<caractere>),
char(<entier>),
succ(<caractere>),
pred(<caractere>).

Comment obtenir le troisième


caractère après ’b’ à l’aide
des opérateurs ?

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 31 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Type Chaı̂ne de caractères

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.

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 32 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 33 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 34 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 35 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Opérateurs sur les énumérations

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

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 36 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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.

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 37 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Intervalle : limites

Ni à la compilation, ni à l’exécution il n’y a de vérifications strictes des


bornes définies.

Exemple
program ensembles ;

Type JourSemaine = 1..7;

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 .

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 38 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Les opérateurs d’égalité, d’inégalité, etc.

Pour tous les types de données ...


L’opérateur d’égalité
C’est l’opérateur que l’on retrouve chez tous les types simples qui
permet de savoir si les deux opérandes sont égales (ont la même valeur)
Cet opérateur est représenté par le symbole =
Une expression contenant cet opérateur est un booléen
On a aussi l’opérateur d’inégalité ̸= (<> en Pascal)
Et pour les types possédant un ordre les opérateurs de comparaison
<, ≤, ≥, > (<, <=, >=, > en Pascal)

Attention à ne pas confondre l’instruction d’affectation := avec l’opérateur


d’égalité =

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 39 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Constante 1 / 3
Définition
Une constante est une valeur qui ne change jamais dans le temps
Elle peut être :
implicite
explicite

Syntaxe des constantes explicites


une constante se déclare par le mot-clé const et s’écrit par convention
avec un identifiant en majuscules.
const <identifiant> = <valeur>;
Ex : const AGE MAX = 150;

Par convention, l’identifiant d’une constante est composé de


majuscules (le caractère sert de séparateur de mots)
J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 40 / 50
Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Constante 2 / 3

Exemple : Constante Implicite


program constante1 ;

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 .

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 41 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Constante 3 / 3
Exemple : Constante Explicite
program constante2 ;

c o n s t NB_POSTES =15; NB_SALLES =10;

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 .

Pour quoi faire ?


Améliore la lisibilité,
Améliore la maintenabilité.
J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 42 / 50
Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Les périphériques d’entrée/sortie standards

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

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 43 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Périphériques d’entrée

Périphérique d’entrée
Tout composant matériel externe au processeur pouvant lui fournir des
informations

Accès au périphérique d’entrée


L’accès au périphérique se fait par une instruction spécifique du langage de
programmation faisant référence
à un périphérique précis
aux données requises
au type des données

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 44 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Le périphérique d’entrée standard : le clavier

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 ;

v a r valeurEnDollar , valeurEnEuro , tauxConversion : R e a l ;


begin
w r i t e l n ( ’ Donnez ␣ la ␣ valeur ␣ a ␣ convertir ␣ en ␣ dollars ␣ et ␣ le ␣ taux ␣ de ␣ conversion ’ );
r e a d l n ( valeurEnEuro , tauxConversion );
vale urEnDollar := valeurEnEuro * tauxConversion ;
w r i t e l n ( ’ Vos ␣ ’ , valeurEnEuro :4:2 , ’␣ euros ␣ valent ␣ ’ , valeurEnDollar :4:2 , ’␣ dollars ’ );
end .

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 45 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Le clavier

Lecture de données depuis le clavier


En Pascal, la lecture se fait par une instruction readln. Plusieurs
instructions existent selon le type de donnée à lire
readln(var x: integer)
readln(var x: real)
readln(var x: string)
...

Attention
Le type des données entrées dépend du bon vouloir de l’utilisateur

Attention : vos programmes deviennent non déterministes !

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 46 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Périphériques de sortie

Périphérique de sortie
Tout composant matériel externe au processeur où il peut écrire des
informations

Accès au périphérique de sortie


L’accès au périphérique se fait par une instruction spécifique du langage de
programmation faisant référence
à un périphérique précis
à un emplacement du périphérique où écrire
aux données à écrire

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 47 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Le périphérique de sortie standard : l’écran

Les instructions write et writeln


Le but est d’afficher la valeur de constantes et de variables
Syntaxe : write([<valeurs>]) avec
<valeurs> := <valeur> [, <valeurs>]
l’instruction alternative writeln ajoute un saut de ligne après
l’affichage

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 48 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

Le terminal de sortie de l’écran

Écriture de données à l’écran


L’écriture à l’écran se fait dans le terminal de sortie associé à l’exécution du programme
(console où le programme a été exécuté).

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’);

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 49 / 50


Programmation impérative Les variables Booléen Numérique Texte Types personnalisés Entrée/Sortie standard

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

J. Saunier, S. Ainouz, G. Del Mondo Variables 2022-2023 50 / 50

You might also like