Section courante

A propos

Section administrative du site

Le concept de données

Les données sont l'expression générale décrivant l'ensemble des opérations effectuées par l'ordinateur. Au niveau matériel et du code machine, toutes les données sont représentées par des séquences de chiffres binaires (bits). Les langages de haut niveau permettent d'utiliser des concepts abstraits et d'ignorer les détails de la représentation, notamment en développant le concept de type de données.

Un type de données définit l'ensemble des valeurs qu'une variable peut prendre. Chaque variable présente dans un programme doit être associée à un seul type. Bien que les types de données en Pascal puissent être assez sophistiqués, chacun doit être construit à partir de types non structurés. Un type non structuré est soit défini par le programmeur, puis appelé type scalaire déclaré, soit l'un des quatre types scalaires standard : Integer, Real, Booleen ou Char.

Un type scalaire est caractérisé par l'ensemble de ses valeurs distinctes, sur lesquelles un ordre linéaire est défini. Ces valeurs sont désignées par des identifiants dans la définition du type.

Le type booléen

Une valeur booléenne est une valeur logique de vérité, désignée par les identifiants prédéfinis false (faux) et true (vrai).

Les opérateurs logiques suivants produisent une valeur booléenne lorsqu'ils sont appliqués à des opérandes booléens :

Opérateur Description
and conjonction logique
or disjonction logique
not négation logique

Chacun des opérateurs relationnels (=. <>. <=, <, >, >=, in) génère une valeur Boolean. De plus, le type booléen est défini de telle sorte que false < true. Il est donc possible de définir chacune des 16 opérations booléennes à l'aide des opérateurs logiques et relationnels ci-dessus. Par exemple, si p et q sont des valeurs booléennes, on peut exprimer :

Les fonctions booléennes standard, c'est-à-dire les fonctions standard donnant un résultat booléen, sont :

Fonction Description
odd(x) true si l'entier x est impair. false sinon
eoln(f) Fin de ligne.
eof(f) Fin du fichier

Le type Integer (entier)

Une valeur de type entier est un élément d'un sous-ensemble de nombres entiers défini par l'implémentation.

Les opérateurs arithmétiques suivants produisent une valeur entière lorsqu'ils sont appliqués à des opérandes entiers :

Opérateur Description
* multiplier
div diviser et tronquer (c'est-à-dire que la valeur n'est pas arrondie)
mod a mod b = a - ((a div b)*b)
+ ajouter
- soustraire

Les opérateurs relationnels =, <>, <. <=. >=, > produisent un résultat booléen lorsqu'ils sont appliqués à des opérandes entiers. <> indique une inégalité.

Les quatre fonctions standard importantes produisant des résultats entiers sont :

Fonction Description
abs(x) Le résultat est la valeur absolue de x.
sqr(x) Le résultat est x au carré.
trunc(x) x est une valeur réelle : le résultat est sa partie entière. (La partie fractionnaire est ignorée. Par conséquent, trunc(3,7)=3 et trunc(-3.7)=-3)
round(x) x est la valeur surfacique : le résultat est l'entier arrondi. round (x) signifie pour x >=0 trunc(x+0,5). et pour x<0 trunc(x-0,5)

Remarques : abs et sqr ne donnent un résultat entier que si leur paramètre est également de type entier. Si i est une variable de type entier, alors :

Fonction Description
succ(i) donne l'entier «suivant», et
pred(i) donne l'entier précédent

Ceci est cependant exprimé plus clairement par les expressions :

Il existe un identifiant standard maxint, dépendant de l'implémentation. Si a et b sont des expressions entières, l'opération :

est garanti d'être correctement mis en oeuvre lorsque :

Le type réel

Une valeur de type réel est un élément du sous-ensemble de nombres réels défini par l'implémentation.

Tant qu'au moins un des opérandes est de type réel (l'autre pouvant être de type entier), les opérateurs suivants génèrent une valeur réelle :

Opérateur Description
* Multiplier
/ Diviser (les deux opérandes peuvent être des entiers, mais le résultat est toujours réel)
+ Ajouter
- Soustraire

Les fonctions standards, lorsqu'elles acceptent un paramètre réel, donnent un résultat réel :

Fonction Description
abs(x) Valeur absolue
sqr(x) x au carré

Fonctions standards avec paramètre réel ou entier et résultat réel :

Fonction Description
sin(x)
cos(x)
arctan(x)
Fonctions trigonométriques
ln(x) logarithme naturel
exp(x) Fonction exponentielle
sqrt(x) Racine carrée

Attention : bien que le «real» soit inclus comme type scalaire, il ne peut pas toujours être utilisé dans le même contexte que les autres types scalaires. En particulier, les fonctions pred et succ ne peuvent pas accepter de paramètres réels. De plus, les valeurs de type «real» ne peuvent pas être utilisées pour l'indexation de tableaux, ni pour le contrôle d'instructions, ni pour définir le type de base d'un ensemble.

Le type char

Une valeur de type char est un élément d'un ensemble fini et ordonné de caractères. Chaque système informatique définit un tel ensemble à des fins de communication. Ces caractères sont ensuite disponibles sur les équipements d'entrée et de sortie. Malheureusement, il n'existe pas d'ensemble de caractères standard; par conséquent, la définition des éléments et leur ordre dépendent strictement de l'implémentation.

Les hypothèses minimales suivantes s'appliquent au type char, indépendamment de l'implémentation sous-jacente :

L'ensemble de caractères comprend :

Un caractère entouré d'apostrophes (guillemets simples) désigne une constante de ce type.

Exemples :

  1. '*'      'G'      '3'      ''''     'X'

(Pour représenter une apostrophe, on l'écrit deux fois.)

Les deux fonctions standard ord et chr permettent de cartographier l'ensemble de caractères donné sur un sous-ensemble de nombres naturels, appelés nombres ordinaux de l'ensemble de caractères, et vice versa : ord et chr sont appelées fonctions de transfert.

Fonction Description
ord(c) est le numéro ordinal du caractère c dans le jeu de caractères ordonné sous-jacent.
chr(i) est la valeur du caractère avec le nombre ordinal i.

On voit immédiatement que ord et chr sont des fonctions inverses, c'est-à-dire :

De plus, l'ordre d'un ensemble de caractères donné est défini par :

Cette définition peut être étendue à chacun des opérateurs relationnels : =, <>, <, <=, >=, >. Si R désigne l'un de ces opérateurs, alors :

Lorsque le paramètre des fonctions standards pred et succ est de type char, les fonctions peuvent être définies comme :

Remarque : le prédécesseur (successeur) d'un caractère dépend de l'ensemble de caractères sous-jacent et n'est pas défini s'il n'en existe pas.



Dernière mise à jour : Mardi, le 12 Mars 2024