sc2mosta
LE LANGAGE DE PROGRAMATION PASCAL .
 
AccueilPortailGalerieFAQRechercherS’enregistrerConnexion
Derniers sujets
» NOTES EMD2 SUITE
Lun 1 Sep - 20:03 par Anonymous

» Notes EMD2
Lun 1 Sep - 19:59 par Anonymous

» TD NO 04
Ven 30 Mai - 2:23 par Anonymous

» SUJET EMD2 ET CORRECTIONS + NOTES
Mar 27 Mai - 14:48 par Admin

» cours numéro 12
Lun 26 Mai - 20:46 par Anonymous

» NOTES EMD1
Lun 26 Mai - 12:36 par Anonymous

» TD NO 03
Ven 16 Mai - 22:54 par Anonymous

» cours numéro 04
Jeu 1 Mai - 13:36 par Anonymous

» cours numéro 06
Mar 29 Avr - 12:49 par Anonymous

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Partenaires
Rechercher
 


 Résultats par :
 
Rechercher Recherche avancée
cours numéro 07
Sam 15 Mar - 23:17 par Admin
Les types scalaires et ensembles:

En plus des types usuels utilisés (Integer, Real, Char et Boolean), Pascal donne la possibilité d'utiliser d'autres types nommés scalaires (types énumérés et types intervalles) et les types ensembles. Ces types sont introduits pour permettre une programmation plus structurée au niveau du choix des données dans le programme.

a) Les types énumérés :

Très souvent, une variable ne peut prendre qu'un petit nombre de valeurs distinctes. Par exemple, une variable qui représente le jour de semaine ne peut prendre que l'une des valeurs énumérées: (Samedi, Dimanche, Lundi, Mardi, Mercredi, Jeudi, Vendredi).Il est possible d'utiliser les entiers positif; (0, 1, ..., 6) pour représenter ces valeurs. Mais Pascal nous permet d'utiliser des noms pour désigner ces valeurs plutôt que des valeurs numériques abstraites, Ceci est possible grâce au types énumérés, Un type énuméré est défini par la liste de valeurs que peut prendre une valeur de ce type.

Exemple : Type
unites = (centimetre, mettre, kilometre) ;
jour = (Samedi, Dimanche, Lundi, Mardi, Mercredi, Jeudi, Vendredi) ;


La déclaration d'une variable d'un type énuméré se fait alors dans la section de déc1aration du variables en utilisant l'identificateur de type approprié.

Exemple : Var
echelle : unîtes;
Conge:Jour;


Ces deux dernières déclarations sont équivalentes aux déclarations suivantes :
Var
Echelle : (centimetre, mettre, kilometre) ;
Conge : (Samedi, Dimanche, Lundi, Mardi, Mercredi, Jeudi, Vendredi) ;


Règles d'utilisation des types énumérés:

. Les valeurs d'un type énumérées sont numérotées à partir de zéro (0), de ce fait elles sont ordonnées de façon croissante dans l'ordre de leur écriture.
. Une variable déclarée avec un type énuméré ne Peut prendre que l'une des valeurs énumérées de ce type.

Par exemple: conge := Jeudi;

. Les seuls opérateurs pouvant être appliqués à des variables de type énuméré sont les opérateurs de comparaison, Dans l'exemple plus haut on a : Samedi < Dimanche < lundi, ,. et ainsi de suite.
.Le type prédéfini Boolean est lui même un type énuméré, implicitement défini par :

TYPE Boolean = (FALSE,TRUE) ;

.Les fonctions pred et succ peuvent avoir des arguments de type énuméré et retourne une valeur de même type que l'argument.
succ (mardi) = mercredi
pred (kilometrc) = metre


Le premier membre de la liste n’a pas prédécesseur et le dernier membre n’a pas de successeur.

. La fonction ord peut également avoir un argument de type énuméré et retourne le numéro de cette valeur dans la liste.
ord (samedi) = 0
ord (kilometre) = 2


. Il n'est pas possible de lire ou d'écrire des valeurs d'un type énuméré.
. Il est possible d’utiliser une variable de type énuméré comme compteur de la boucle FOR.

Var
Travail : (Samedi, Dimanche, Lundi, Mardi, Mercredi, Jeudi, Vendredi) ;
BEGIN
For travail := samedi To Jeudi Do
Begin
……….
End ;


b) Les types intervalles:

Un type intervalle est défini par deux constantes du type lnteger, Char ou d'un type énuméré. Par exemple: Type
octet = 0..255 ;
minuscule = 'a'..'z' ;
chiffre = 0..9 ;
Semaine = (samedi, dimanche, lundi, mardi, mercredi, jeudi, vendredi) ;
jour_ouvrable = samedi..jeudi;


La borne inférieure de l'intervalle doit, bien évidemment, être inférieure à la borne supérieure. Une variable de type intervalle est déclarée comme suit:
Var
lettre: minuscule ;


Comme dans le cas des types énumérés, cette déclaration aurait pu être écrite ainsi:
Var
lettre: 'a'..'z' ;


Mais il est généralement préférable de séparer les déclarations de types des déclarations de variables.


Règles d'utilisation du type intervalle:


. Les variables de type intervalle peuvent être lues ou écrites.

. Les variables d'un type intervalle sont compatibles avec les variables du type de base de l'intervalle. Par exemple, les instructions suivantes sont valides:
Var
jour: 1..31 ;
lettre: 'a'..'z' ;
j : Integer ;
C :Char ;
Begin
i := j ;
lettre := c ;
i :=j*3+1 ;


. Il est fréquent d'utiliser des variables de type intervalle comme compteur de boucle FOR.
. Toutes les fonctions définies sur le type de base des bornes de l'intervalle sont applicable aux variables de ce type intervalle.

c) Les types ensembles :

Un ensemble est une collection d'objets de même type. En Pascal un type ensemble peut être défini à partir de n' importe quel type énuméré ou intervalle. Les valeurs d'un type ensemble sont des ensembles de valeurs du type de base utilisé.

Exemple :
Type
Ingredients = (orange, fraise, pomme, banane, creme,_chocolat, noisette) ;
Dessert = Set of ingredients ;


Les variables de type Dessert sont déclarées ainsi: .
Var
gouter, panier: Dessert;


Ces variables peuvent recevoir n'importe quel ensemble de valeurs de type Ingredients. Ces valeurs sont comprises entre les deux crochets '[' et ']' et sont séparées' par les virgules. Par exemple, on peut écrire:

panier := [orange, fraise, pomme] ;
gouter := [noisette, crème, chocolat] ;
ou alors,
panier:= [orange..banane];
gouter := [ ];


Le nombre de valeurs possibles des variables d'un type ensemble est égal à 2**n où n représente le nombre de valeurs dans le type de base de l'ensemble. Dans l'exemple plus haut, les valeurs du type Dessert peuvent prendre l'une des 2**6=64 valeurs possibles (ensembles possibles).

Opération sur les ensembles :

Les opérations suivantes sont définies sur les variables d’un type ensemble :

Opération Symbole Pascal Résultat Union + Ensemble
Intersection * Ensemble
Différence - Ensemble
Contient  Boolean
Est contenu dans  Boolean
Appartenance IN Boolean



Exemple :

Program ensembles;
Type
Semaine = (samedi; dimanche, lundi, mardi, mercredi, jeudi, vendredi) ;
Jours = set of Semaine;
Var
travail, conge, marche, dentiste, tous, occupation: Jours;
x, y, z, w : Boolean ;
Begin
tous := [samedi.. vendredi] ;
travail := [samedi..jeudi] ;
conge := tous - travail ;
marche := [lundi, jeudi] ;
dentiste := [mardi] ;
occupation := dentiste + marche;
x := marche  travail ;
y := occupation  conge ;
z := samedi in marche;
End.


Remarque : Les valeurs de type ensemble ne peuvent être ni lues ni écrites.

Commentaires: 0
Sondage
Forum
Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité :: 1 Moteur de recherche

Utilisateurs enregistrés : Aucun
Moteurs de recherche : Yahoo!


[ Voir toute la liste ]

Le record du nombre d’utilisateurs en ligne est de 5 le Lun 26 Mai - 20:41
Statistiques
Nous avons 16 membres enregistrés
L’utilisateur enregistré le plus récent est HAKIKI MUSTAPHA YACINE

Nos membres ont posté un total de 58 messages dans 21 sujets