Le type scalaire énuméré et le type intervalle
Exercice 1 : page 35
|
Soit le programme Pascal suivant :
PROGRAM erreurs
TYPE
eleves :
(Ali,Safa,Sami,Wissem,Kamel) ;
moyenne = 0..20
VAR
e1: eleves;
e2: eleves;
n1: moyenne
n2 : moyenne ;
reussir : BOOLEAN ;
BEGIN
e1 := “Safa”;
n1 = ORD(Kamel)+2 * SUCC(Ali) ;
e2 := Sami ;
n2 := -15;
russir := ( n2 > 10 ) ;
END.
1) Corriger les erreurs du programme
Pascal ci-dessus.
2) Evaluer le contenu des variables
utilisées dans le Programme.
|
Corrigé :
1-Correction des erreurs :
PROGRAM
erreurs ;
TYPE
¤
eleves = (Ali,Safa,Sami,Wissem,Kamel)
;
¤
moyenne = 0..20 ;
VAR
¤ e1:
eleves;
¤ e2:
eleves;
¤ n1:
moyenne ;
¤ n2
: moyenne ;
¤
reussir : BOOLEAN ;
BEGIN
¤ e1
:= Safa;
¤
n1 := ORD(Kamel)+2 *ORD(
SUCC(Ali) ) ;
¤ e2
:= Sami ;
¤ n2
:= 15;
¤
reussir := ( n2 > 10 ) ;
END.
|
2-évaluation des variables utilisées
dans le programme :
Variables
|
Evaluation de contenu
|
e1:=safa ;
|
safa
|
n1 := ORD(Kamel)+2 *ORD(
SUCC(Ali) ) ;
|
4+2*1=6
|
e2 := Sami ;
|
Sami
|
n2 := 15;
|
15
|
reussir := ( n2 > 10 ) ;
|
True
|
Exercice 2: page 35
|
Est-ce que la déclaration de
l'énumération suivante est correcte? Justifier votre
réponse.
Pair = (0,2,4) ;
|
Corrigé :
la déclaration suivante :
Pair = (0,2,4) ;
est fausse
justification :
Le type scalaire énuméré pair
est définit par l'énumération d'entiers
0, 2 et 4 alors qu'il doit être définit par des identificateurs.
Exercice 3: page 35
|
En utilisant le type intervalle,
déclarer en algorithmique et en Pascal les variables
suivantes :
– jour
– mois
|
Corrigé :
En analyse
|
En pascal
|
Tableau de déclaration de nouveaux
types
Type
|
Jour=1..31
mois=1..12
|
|
Type
Jour =
1..31 ;
mois
= 1..12 ;
|
Autre
solution
En analyse
|
Tableau de déclaration de nouveaux
types
Type
|
semaine=(lundi,mardi,mercredi,jeudi,vendredi,samedi,dimanche)
Jour=lundi..dimanche
mois=1..12
|
|
En pascal
|
Type
semaine=(lundi,mardi,mercredi,jeudi,vendredi,samedi,dimanche) ;
Jour =
lundi..dimanche ;
mois
= 1..12 ;
|
Exercice 4 : page 35
|
En utilisant le type scalaire
énuméré, déclarer en algorithmique puis en Pascal les
types suivants :
– couleur_de_base
– jour_de_la semaine
|
Corrigé :
En analyse
|
Tableau de déclaration de nouveaux
types
Type
|
couleur_de_base =(rouge, bleu,
jaune)
jour_de_la semaine
=(lundi,mardi,mercredi,jeudi,vendredi,samedi,dimanche)
|
|
En pascal
|
Type
couleur_de_base =(rouge, bleu, jaune) ;
jour_de_la
semaine =(lundi,mardi,mercredi,jeudi,vendredi,samedi,dimanche) ;
|
Remarque :
En peinture, les couleurs de base sont
le rouge magenta, le bleu cyan et le jaune.
Pour la lumière : les couleurs de
base sont : le RVB (Rouge , Vert , Bleu)
Exercice 6 : page 22
|
Le programme
Pascal suivant comporte de nombreuses erreurs, trouver-les.
PROGRAM deserreurs ;
CONST
¤ I=10
; J=40 ; K=5 ;
TYPE
¤ integer
= -32000..+32000
¤
voyelles1=('A','E','I','O','U');
¤
voyelles2=(A,E,I,O,U);
¤
Abscisses=0..0.001;
¤ Indice=
-10..+10;
VAR
¤ S:Indice
; V: voyelle2 ; R: REAL;
BEGIN
¤ R:=35;
¤ V:=R+1;
¤ S:=2*J+K;
END
|
Corrigé :
1-Correction des erreurs :
PROGRAM deserreurs ;
CONST
¤
I=10 ; J=40 ; K=5 ;
TYPE
¤
integer = -32000..+32000 ;
¤
voyelles1=(A,E,I,O,U,Y);
{
type scalaire énuméré ne peut pas contenir des caractères }
¤
voyelles2=(A,E,I,O,U);
¤
Abscisses=0..10; {
Les borne d'un intervalle ne peuvent pas être de type réel }
¤
Indice= -10..+10;
VAR
¤
S:Indice ; V: voyelle2 ; R: REAL;
BEGIN
¤
R:=35;
¤
V:=A; {
V est de type voyelle2 donc ne peut être affectée que par
A,E,I,O,U,Y }
¤
S:=2*J+K-80; {
la valeur de S doit être dans l'intervalle -10..+10 }
END
|
|
|