Vous êtes sur la page 1sur 6

Complément de cours : Types et Instructions élémentaires

I. Les types simples d'objets :


Un type simple définit un ensemble de valeurs qu'une variable est autorisée à prendre dans un espace des
valeurs. Il existe des types simples prédéfinis qui servent, soit à définir l'espace des valeurs d'un élément,
soit de base pour créer d'autres types simples construits.

Remarque : une variable val de type ordinal est une variable dont les valeurs sont définies par une
relation d’ordre (exemple : < , > …) entre les valeurs possibles.
Pred(val) donne accès au précédent de val
Succ(val) donne accès au suivant de val
Rang(val) donne le rang du val dans le domaine.
1. Le type entier :
Un entier est représenté par un nombre fixe d'octets (mot machine). C’est pour cette raison que l'ensemble
des entiers dans un ordinateur est compris entre un minimum et un maximum.
Exemple: Nous supposons que les entiers dans une machine sont représentés par un octet avec le bit le
plus à gauche est réservé pour le signe.
On peut représenter 28 entiers. si entier 0 ALORS Bit de signe
= 0;
si entier  0 ALORS Bit de
signe = 1;
Maxent = 27 ; Minent = -27;

2. Le type réel :
Les nombres réels sont représentés de façon approximative en mémoire (représentation en virgule
flottante). Soit X un paramètre de type entier ou réel.
Les fonctions arithmétiques standards :

1-6
Tronc (X) supprime la partie décimale
Arrondi (X) donne un entier qui est la valeur du réel X arrondie à la plus proche
valeur
Abs (x) donne la valeur absolue de X
Carré (X) donne le carré de X
Sin (X) donne le sinus de X
Exp (X) donne l’exponentielle de X
Ln (X) donne le logarithme népérien de X
Racine (X) donne la racine carrée si X  0 sinon erreur.

3. Le type booléen :
Les opérateurs relationnels
Pour comparer deux variables de type logique on utilise les opérateurs = et <> (différents).
Les opérateurs logiques
Non Négation
ET Conjonction
OU Disjonction
Ouex Ou exclusif
La table de vérité :
X Y Non (X) X ET Y X OU Y X Ouex Y
F F V F F F
F V V F V V
V V F V V F
V F F F V V

4. Le type caractère :
Les Opérateurs relationnels
Il est possible d’utiliser les opérateurs relationnels car les valeurs du type caractère sont ordonnées.
Exemple : y z ; 8 9 ; ? A.
Les fonctions prédéfinies
Ord (c) renvoie le code ASCII du caractère C
CHR (X) renvoie le caractère dont le code ASCII est X

2-6
SUCC (C) renvoie le successeur de C s’il existe
PRED (C) renvoie le prédécesseur de C s’il existe
MAJUS (C) convertit le caractère C en majuscule s’il est possible

5. Le type chaîne de caractère :


Une chaîne de caractère est une succession de n caractères avec n compris entre 0 et 255.
Les fonctions et les procédures standard sur la chaîne
CONCAT (ch1, ch2, …, retourne la concaténation des chaînes ch1, ch2…chn
chn)
LONG (ch) retourne la longueur en caractère de la chaine.
Sous- chaîne (ch, p, nbc) retourne une sous chaîne d’une longueur nbc à partir de la position
p dans ch.
POS (ch1, ch2) retourne la position de la chaîne ch1 dans la chaîne ch2, si ch1 n'est
pas dans ch2, elle retourne 0.
Efface (ch, p, n) enlève n caractère de la chaîne ch à partir de la position p.
Insère (ch1, ch2, p) insère la chaîne ch1 dans la chaîne ch2 à partir de la position p.
Convch (n, ch1) convertit un nombre n en chaîne de caractère dans la variable.

6. Le type énuméré :
Définit un ensemble ordonné de valeurs désignées par des identificateurs.
Syntaxe : t_enumere = (val1, val2 … valn)
Exemples : Jours = (lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche)
Meuble = (chaise, table, fauteuil, armoire, lit)
Sexe = (féminin, masculin)
Opérations même fonction que les types ordinaux (pas d’opérations spécifiques)
et Exemples succ(lundi) = mardi / rang (table) = 2 / pred(masculin) = féminin
fonctions : :
Remarque : on ne peut ni lire ni afficher une variable de type énuméré.

7. Le type intervalle :

3-6
On peut définir un intervalle ordonné par 2 valeurs prises dans un type prédéfini ordonné (entier, réel,
énuméré). On se contente d’indiquer les limites, inférieur et supérieur, séparées par deux points
successifs.
Utilisation sous-ensemble d’un type ordonné (contrôle du domaine des
valeurs)
Syntaxe t_intervalle = val_min .. val_max
Exemples Indice =1..10 / Seconde =0..59 / Salon =chaise .. Fauteuil
/
Minuscule = ‘a’ .. ‘z’ / Weekend = samedi .. dimanche

II. Les expressions arithmétiques et logiques :


1. Structure d’une expression :
La structure d’une expression permet de d’évaluer une valeur (typée) à partir d’une combinaison
d’opérateurs (typés) et d’opérandes (typés).
Exemples : 1+2*3 / NON (cond1 ET cond2) / (x<4) ET (x>sin(y))
Parité des opérateur unaire une seule opérande exemples :
opérateurs - 6 / Non cond
opérateur binaire deux opérandes exemples :
1+6 / Non cond1 ET cond2

2. Evaluation d’une expression :


Une expression est évaluée de gauche à droite. On distingue 4 niveaux de priorité des opérateurs () :
Priorité 1 - (unaire) , + (unaire) , NON
Priorité 2 * , / , div , mod , ET
Priorité 3 + , - , ou
Priorité 4 < , > , = , <> , >=, <= …
Remarque : on peut utiliser les parenthèses pour forcer une priorité.
L’expression : -4 * sin(y) / z – x * (z-1) est correcte. L’expression : Sin(y)z est incorrecte.
3. Simplification des expressions booléennes :
Soient P, Q et R trois variables booléennes :
Commutativité : P ET Q = Q ET P P OU Q = Q OU P
Associativité : P ET (Q ET R) = ( P ET Q) ET R
P OU (Q OU R) = ( P OU Q) OU R
Distributivité : P ET (Q OU R ) = (P ET Q) OU (P ET R)
4-6
P OU (Q ET R ) = (P OU Q) ET (P OU R)

Loi de Morgan : NON (P ET Q) = NON P OU NON Q


NON (P OU Q) = NON P ET NON Q
Loi de négation : NON (NON P) = P
Loi de milieu exclu : P OU (NON P) = VRAI
Loi de contradiction : P ET (NON P) = FAUX
Lois de simplification P OU P = P P ET P = P
de ET et OU : P OU FAUX = P P ET FAUX = FAUX
P OU VRAI = P P ET VRAI = P
EXERCICE : Montrer que P OU (P ET Q) = P et que P ET (P OU Q) = P

III. Instructions élémentaires :


1. Affectation :
L’instruction la plus élémentaire est l’affectation notée qui permet d’initialiser une variable ou d’en
changer la valeur.
Syntaxe : id_variable expression

 La variable affectée et l’expression doivent être de types compatibles.


 L’expression à droite de la flèche doit être complètement évaluée puis affectée à la variable située à
gauche.
 Une variable est représentée par une case mémoire (un ou plusieurs cellules) susceptible de renfermer
une valeur.
Exemple :
A, B ,D : entier ; C : booléen ; lettre :
caractère ;
A 5
B 2
A A–B
C A>B
lettre ‘N’ Code ASCII de ‘N’
D ord(lettre)

2. Instruction d’entrée : Lecture

5-6
L’instruction de lecture permet de demander à l’utilisateur une valeur de la variable V. La source de
lecture est par défaut le clavier ou toute autre source d’Entrée/Sortie.
Syntaxe : Lire (var1, var2, … varn)

Cette expression est équivalente à : lire (var1)


lire (var2)
…….
lire (varn)

L’instruction lire (A) correspond aux opérations suivantes :


 Attendre : le programme est interrompu en attente d’une valeur saisie par l’utilisateur.
 Accepter : saisie de la valeur
 Affecter : la valeur entrée par l’utilisateur est attribuée à la variable

3. Instruction de sortie : écriture/affichage :


Les sorties regroupent toutes les opérations d’affichage ou d’écriture des données. La destination
d’écriture est par défaut l’écran, elle pourra être aussi les autres organes de sortie.
Syntaxe : Ecrire(var1, var2, … varn)

Exemples :
 Pour afficher un message il doit être mis entre guillemets : Ecrire (‘‘Bonjour’’) ;
 Affichage du contenu d’une variable :
X  474
Ecrire (X) //affiche 474
Ecrire (‘‘X’’) //affiche X
 Affichage mixte : Ecrire (‘‘ la valeur de X est : ‘‘, X) //affiche : la valeur de X est : 474

6-6

Vous aimerez peut-être aussi