Académique Documents
Professionnel Documents
Culture Documents
I. Introduction
Pour chaque objet : constante ou variable utilisée dans un programme,
l’ordinateur réserve un espace dans sa mémoire (RAM). Imaginons que la
RAM est considérée comme un TAXI, qu’une CONSTANTE est considérée
comme CHAUFFEUR DE TAXI, une VARIABLE est considérée comme un CLIENT
et la durée d’exécution du programme = La durée du travail du chauffeur.
Dans le taxi, le chauffeur prendra un siège et les clients prendront autant de sièges que leur
nombre. La mémoire RAM réservera de l’espace pour toutes les variables et les constantes
utilisées dans le programme. Le chauffeur reste fixe dans le taxi pendant la durée de son travail.
Par analogie, une constante possède une valeur constante pendant toute la durée du programme.
Les clients changent pendant la durée du travail du chauffeur. De même une variable reçoit une
valeur qui peut changer tout le long de l’exécution du programme.
a- Le type entier
Les valeurs de type entier forment un sous- ensemble de (entiers relatifs). Signalons que les
valeurs prises par les variables de ce type ne correspondent pas à l’ensemble infini que l’on
rencontre en mathématiques. Deux bornes inférieure et supérieure, sont en fait fixées par le
constructeur de la machine et qui sont reliées aux nombres de bits alloués dans la mémoire pour
cette variable.
Si les entiers par exemple sont représentés sur n bits, l’ensemble des entiers positifs et négatifs sera :
-2 n-1 ≤ entier ≤ 2 n-1-1
Pour n= 16, on a : -2 16-1 =-32768 ≤ entier ≤ +32767=2 16-1-1
Les types entiers prédéfinis
Type Limites [borne_inf, Nombres de bits
En En pascal borne_sup]
algorithme
Entier court SHORTINT [-128, +127] 8 bits signés
Octet BYTE [0, 255] 8 bits non signés
Entier INTEGER [-32768, +32767] 16 bits signés
Mot WORD [0, 65535] 16 bits non signés
Entier long LONGINT [-231, +231-1] 32 bits signés
2) Exécuter le programme avec les valeurs suivantes : A=1000 et B= 50000. Que remarquez-vous ?
Remarque : quand il y a débordement au-delà des valeurs borne_inf et borne_sup, les calculs
deviennent erronés.
Les opérateurs arithmétiques sur les entiers
53 10
Syntaxe Rôle Exemple
Toutes les comparaisons -50 < 0, 150 > 30, … 3 5
Reste
+ Addition de deux entiers 35 + 20 = 55
- Soustraction de deux entiers 100-20 = 80 Quotient
* Multiplication de deux entiers 12 * 3 = 36
DIV Division entière 25 DIV 4 = 6 ; 30 DIV 6 = 5
MOD Reste de la division entière 25 MOD 4 = 1 ; 30 MOD 6 = 0 53 div 10 = 5
Dans (IN) Appartenance à un intervalle 10 Dans [0, 10]
53 mod 10 = 3
En pascal, la déclaration d’une variable entière se fait comme suit :
VAR « nom_variable » : INTEGER ;
Exemple :
VAR X, Y : REAL ;
Les opérateurs arithmétiques et leurs priorités
Exemple:
Evaluer les expressions suivantes :
1/ 120 + 12 * 5 – 3 donnera 177
Vous pouvez modifier cet ordre en ajoutant des parenthèses. L’expression 120+12*(5 – 3) sera
évaluée de la manière suivante 144
2/ 6 + 2 * 5 DIV 3 donnera 9
3/ 6 + 4 * 7 – 2 * (8 MOD 3+5) donnera 20
Les fonctions arithmétiques standard
Syntaxe
Syntaxe en Type du
en Rôle de la fonction Type de x Exemples
algorithme résultat
Pascal
Même
Retourne la valeur Entier ou R := ABS (-10) ; R= 10
Abs (x) ABS (x) type
absolue de x. réel R := ABS (-5.5) ; R= 5.5
que x
R := ROUND (8.49) ; R= 8
ROUND Retourne l’entier le
Arrondi (x) Réel Entier R := ROUND (8.5) ; R= 9
(x) plus proche de x.
R := ROUND (8.7) ; R= 9
Même
Retourne le carré de Entier ou R := SQR (3) ; R= 9
Carré (x) SQR (x) type
x. réel R:= SQR (3.5); R= 12.25
que x
Retourne le cosinus R:= COS (PI/2); R= 0
Cos (x) COS (x) Réel Réel
de x (x en radians). R:= COS (PI); R= -1
Retourne la partie Int(2.5)=2.0
ent (x) int (x) Réel
entière de x Int(-3.5)=-3.0
Retourne la racine
RacineCarré carrée de x si x est Entier ou R:= SQRT (4); R= 2
SQRT(x) Réel
(x) positif sinon il Réel R:= SQRT (40.5); R= 6.36
provoque une erreur.
Retourne le sinus de x R:= SIN (PI/2); R= 1
Sin (x) SIN (x) Réel Réel
(x en radians) R:= SIN (PI); R= 0
Retourne un entier,
TRUNC R:= TRUNC (-1.5); R= -1
Tronc (x) en ignorant la partie Réel
(x) R:= TRUNC (9.5); R= 9
décimale de x.
Retourne la partie
Frac Frac(x) Réel Réel Y := frac(13.87) Y = 0.87
fractionnaire de x
L’ordinateur propose L’ordinateur peut proposer 2
Random
Aléa(x) un entier aléatoire entier entier sachant l’instruction
(x)
entre 0 et x-1 random(6)
L’ordinateur propose L’ordinateur peut proposer
Aléa Random un réel aléatoire entre réel réel 0.42 sachant l’instruction
[0,1[ random
Exemples:
1/ Soit x une variable qui a pour valeur l’expression suivante :x carré (abs (-2))
Après avoir exécuté cette instruction, la valeur finale de x est égale à 4
2/ Soit y une variable qui a pour valeur l’expression suivante :
y Arrondi (RacineCarré (4+3*4) + tronc (-12-1.8/2))
Après avoir exécuté cette instruction, la valeur finale de y est égale à -8
c- Le type Booléen (BOOLEAN)
Appelé aussi type logique (du nom du mathématicien la Boole, qui en a développé une
algèbre). La valeur d’une variable booléenne peut prendre comme valeur soit VRAI
(TRUE) soit FAUX (FALSE). Chaque variable booléenne est stockée en mémoire sur 1
octet.
O
OUU llooggiiqquuee ((ddiissjjoonnccttiioonn)) Vrai Vrai Vrai
O
OUU llooggiiqquuee ((ddiissjjoonnccttiioonn)) Vrai Faux Vrai
Faux Vrai Vrai
Faux Faux Faux
O X XOR Y est vraie si X et Y n’ont pas la
OUU eexxcclluussiiff
même valeur logique.
X NON (X)
N
NOON
N llooggiiqquuee Vrai Faux
Faux Vrai
Exemple :
VAR Trouve, ok : BOOLEAN ;
d- Le type caractère (CHAR)
Il est réservé aux variables contenant un et un seul caractère. Il s’agira en l’occurrence des lettres
(minuscules et majuscules), des chiffres, des signes de ponctuation et des symboles spéciaux.
Pour représenter un caractère en Pascal, on
peut placer sa valeur entre 2 apostrophes (ex:
'a','+', ...).
Il est possible de déterminer le successeur /
prédécesseur / position d’un caractère dans la
liste des codes ASCII (voir livre page 200).
Ainsi le successeur de "B" est "C", son
prédécesseur "A" et son code ASCII 66.
Un caractère est stocké sur un octet.
Mmearab@laposte.net Page 7 3Maths&sciences
LES STRUCTURES DE DONNEES L.P.A.
La table
ASCII
En pascal, la déclaration d’une variable de type caractère se fait comme suit :VAR « nom_variable » : CHAR;
Exemple :
VAR CAR, C1, C2 : CHAR ;
Les fonctions prédéfinies sur les caractères
Syntaxe en Syntaxe en Rôle de la fonction Type de x Type de Exemples
algorithme Pascal résultat
Retourne le caractère
R := CHR (65) ; R sera égale à A.
CHR (N) CHR (N) dont le code ASCII est Entier Caractère
R := CHR (97) ; R sera égale à a.
N.
ORD (C) Retourne le code R := ORD ('D') ; R sera égale à 68.
ORD (C) ASCII du caractère C. Caractère Entier R := ORD ('%') ; R sera égale à 37.
Retourne le
prédécesseur de C Même type N :=PRED (4) ; N sera égale à 3.
PRED (C) PRED (C) Scalaire
(c’est à dire qui de C R :=PRED ('D') ; R sera égale à 'C'.
précède C).
Retourne le
Même type N := SUCC (3) ; N sera égale à 4.
SUCC (C) SUCC (C) successeur de C (c’est Scalaire
que x R:= SUCC ('C'); R sera égale à 'D'.
à dire qui suit C).
Convertir le caractère
MAJUS R:= UPCASE ('e'); R sera égale à 'E'.
UPCASE (C) C en majuscule s’il est Caractère Caractère
(C) R:= UPCASE ('F'); R sera égale à 'F'.
possible.
Saviez-vous ? :
"x" : désigne la lettre x.
x : désigne un identificateur. A retenir
4 : désigne l’entier 4. ORD(′A′) = 65
"4": désigne le caractère 4. ORD(′a′)= 97
CHR (ORD (car) ) = car ORD(′0′)= 48
ORD (CHR (ascii) )= ascii
Exemple :
Soit x une variable qui a pour valeur l’expression suivante : x MAJUS (CHR (PRED(110)))
Après avoir exécuté cette instruction, la valeur finale de x est égale à ′m′
Remarques
une variable de type scalaire est une information qui possède un successeur et un prédécesseur.
Le type entier et caractère sont des types scalaires.
Les types scalaires bénéficient de 2 fonctions SUCC et PRED.
Exemples :
Succ (‘B’) = ‘C’ , Pred (5) = 4
e- Le type chaîne de caractères (STRING)
Une variable de type chaîne de caractères peut contenir :
soit une suite de caractères (un mot, une phrase, ...),
soit aucun caractère (on parle alors de chaîne vide).
Cependant, Pascal nous offre la possibilité de préciser la taille maximale que pourra avoir la chaîne à
affecter à la variable (ex : date : STRING[10] ;). Dans le cas contraire, Pascal réserve automatiquement la taille
maximale pour la chaine qui est 255 caractères (ex : phrase : string ;).
Une chaîne de caractères est délimitée par deux guillemets en algorithme et deux apostrophes en Pascal.
En pascal, la déclaration d’une variable de type chaîne de caractères se fait comme suit :
VAR NomVariable : STRING;
Exemples :
VAR Nom : STRING[20] ;
Adresse : STRING ;
Accès aux éléments d’une chaîne de caractères
Pour accéder en lecture ou en écriture au ième élément d’une chaîne de caractères, il suffit de donner le nom
de la chaîne suivi de l’indice i entre deux crochets avec 1 ≤ i ≤ long (nom_chaine).
Exemple : Soit CH une variable de type chaîne de caractères.
CH "Enseignant"
La chaîne "Enseignant" peut être représentée de la manière suivante :
E n s e i g n a n t
CH
1 2 3 4 5 6 7 8 9 10
Donc CH[1] contient "E"; CH[2] contient "n" ; CH[5] contient "i"; et ainsi de suite
i- Définition
Un tableau est une structure de données permettant de ranger un nombre fini d’éléments de même
type. Chaque élément du tableau est désigné par un indice qui doit être forcément de type scalaire
(entier, caractère,booléen).
ii- Caractéristiques d’un tableau
Un tableau est caractérisé par :
Son nom (identificateur),
Le nombre de ses éléments (l’indice initial et l’indice final),
Le type de ses éléments.
Exemple :
Première méthode Deuxième solution
Déclaration algorithmique Déclaration algorithmique
T.D.O. T.D.N.T.
Objet Nature / Type Type
Moy Tableau de 5 réels TAB= Tableau de 5 réels
T.D.O.
Déclaration en Pascal Objet Nature / Type
Moy TAB
VAR moy : ARRAY [1 ..5 ] OF real;
Déclaration en Pascal
TYPE TAB= ARRAY [1 ..5 ] OF real;
VAR Moy : TAB ;
iii- Accès aux éléments d’un tableau
Pour accéder en lecture ou en écriture au ième élément d’un tableau, il suffit d’indiquer
l’identificateur du tableau suivi de l’indice i entre deux crochets (avec indice_initial ≤ i ≤
indice_final).
Exemples :
MOY[1] contient 15.57
MOY[3] contient 14.98
Remarques :
Mmearab@laposte.net Page 13 3Maths&sciences
LES STRUCTURES DE DONNEES L.P.A.
ORD (PRINTEMPS) = 2
PRED (PRINTEMPS)= HIVER
SUCC(HIVER) = PRINTEMPS
PRED (AUTOMNE) ET SUCC(ETE) N’EXISTENT PAS. Car le premier élément n’a pas de
prédécesseur et le dernier n’a pas de successeur.
C/ Le type intervalle
Le type intervalle possède les propriétés du type de base dont l′intervalle est issu. Toutefois, sa
valeur doit être comprise au sens large entre les bornes de l′intervalle.
Déclaration en pascal :
Type nom_type = borne_inf..borne_sup ;
Var Nom_var : nom_type ;
Exemples :
Déclaration en Pascal
Type
Mois = 1.. 12 ;
Jours = 1 .. 31 ;
Var
Mois_actuel : mois ;
demain : jours ;
Type de
données
Type Type
standard
ou utilisateur
prédéfini