Académique Documents
Professionnel Documents
Culture Documents
Anis ELBAHI
2- Déclaration:
Analyse (Algorithmique) pascal
CONST
Objet Type / Nature
Nom_constante Constante = valeur_constante
Nom_constante = valeur_constante ;
Exemple :
Exemple :
Objet Type / Nature
CONST
PI Constante = 3.14
PI = 3.14;
MSG Constante = ”BON”
MSG = ‘BON’ ;
1- Définition :
Une variable ………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
2- Déclaration:
Analyse pascal
VAR
Objet Type / Nature
Nom_variable type_variable
Nom_variable : type_variable ;
Exemple : Exemple :
Objet Type / Nature VAR
R, P réel P,R : REAL ;
X entier X : INTEGER ;
Activité 4:
Donner la préanalyse, l’analyse, l’algorithme et la traduction pascal d’un programme qui saisit le rayon d’un
cercle pour afficher sa surface et son périmètre.
Solution :
En Algorithme En Pascal
< ; > ; ≤ ; ≥ ; ≠ ; = < ; > ; <= ; >= ; <> ; =
Exemple : Exemple :
Objet Type / Nature VAR
NB Entier NB : INTEGER ;
Activité 5:
1- Répondre par vrai ou faux:
Est-ce qu'on peut utiliser le type entier pour représenter:
Note obtenue lors d'un examen 2- Evaluer les expressions arithmétiques
Nombre d'élèves d'une classe suivantes:
Moyenne générale d'un élève
Rang d'un élève ((46 DIV 3) MOD 4) + 1 = ……..
Nombre de matières étudiés pendant une année (25 MOD 7) DIV (2*3) = ……..
Poids d'une personne 70 DIV 3.5 = ……..
Exemple : Exemple :
Objet Type / Nature VAR
MOY, NC, NS REEL MOY, NC, NS : REAL ;
APPLICATION
Fonction ROLE EXEMPLE
X=2,66 et y= - 4,2
Supprime la partie décimale TRUNC (3.14)=3
TRUNC (X)= ……..
TRUNC(x) pour laisser la partie entière TRUNC (3.5)=3
TRUNC (-0.25)=0 TRUNC (Y)= ……..
Donne la partie décimale d’une FRAC(X) = ……..
FRAC(X) FRAC(15.23) = 23
valeur numerique FRAC(Y)= ……..
Donne un entier qui est la valeur
ROUND(9.49)=9
du réel x arrondie à la plus ROUND(X)= ……..
ROUND(x) ROUND(9.50)=10
proche valeur
ROUND(9.99)=10 ROUND(Y)= ……..
Activité 6:
Donner l’instruction pascal qui affecte à la variable X une valeur aléatoire comme le montre l’exemple:
de l’intervalle [0..1[ X := random ;
de l’intervalle [0..10 ] X := …………………………………
de l’intervalle [0..100] ……………………………………….
de l’intervalle [1..15] ……………………………………….
de l’intervalle [23 .. 35] ……………………………………….
De façon générale : affecter à la variable X une valeur aléatoire de l’intervalle [Vi .. Vf] :
…………………………………….…………………………………….
Activité 7:
1- Soit l’expression suivante :
Donner la traduction de l’expression en pascal : …………………………….…………………………………
2- Evaluer et donner le type de la variable V:
V := TRUNC(12.23) + SQRT( ROUND( ABS(-24.92) ) ) + SQR (17 MOD 15) / 2 ;
Réponse :
La valeur de V = ……………. et Le type de V : ………….
Exemple : Exemple :
Objet Type / Nature VAR
Exist, OK BOOLEEN Exist, OK : BOOLEAN ;
Remarque :
Les caractères sont ordonnés selon leurs codes ASCII
"0" <"1"<"2"< …<"A"<"B"< … <"a"<"b"< …
Grâce à cette organisation il est possible de comparer les caractères en utilisant les opérateurs
relationnels déjà vus.
Activité 9:
1- Quel est le code ASCII du caractère
Caractère blanc (espace) = ……………
"a" =………… "z" = 122 "A" = ……… "Z" = 90
2- Evaluer :
"A" < "B" = ……….. "a" < "B" = ………..
"@" < "?" = Faux (puisque 64 > 63) "}" < "z" = Faux (puisque 125 > 122)
Exemple:
Caractère C1 Caractère C2 C1+C2
"a" "b" ………..
"1" "$" ………..
"" "9" " 9"
NB:
La variable qui contient le résultat de la concaténation de deux caractères n'est pas de type caractère car une
variable de type caractère doit contenir obligatoirement un seul caractère.
Exemple : Exemple :
Objet Type / Nature VAR
REP, C1 CARACTERE REP, C1 : CHAR ;
Activité 10:
Pour chaque proposition, donner la valeur et le type de X :
Proposition Valeur de X Type de X
X := CHR(ORD ('A') ) ;
X := ORD( CHR (97) ) ;
X := CHR(ORD('A')+1) ;
X := UPCASE('o')+ ‘K’ ;
Activité 11:
Donner l’analyse et l’algorithme d’un programme qui saisit un caractère alphabétique (supposant majuscule)
et affiche le même caractère en minuscule (sachant que la différence entre les codes ASCII du caractère en
minuscule et le même caractère en majuscule est égale à 32).
- Les chaînes de caractères sont définies entre guillemets dans l'algorithme et entre apostrophe en Pascal:
Algorithme Pascal
"Bonjour" 'Bonjour'
Exemple:
CH1 "ELBAHI" CH1 < CH2 car le code ASCII de "b" est > code ASCII de "B"
CH2 "ELbahi"
Exemple : CH "Informatique"
CH[1]= "I" CH[3]= ".." CH[8]= ".."
QUESTION: Que fait cette instruction pour la chaîne CH: CH[12] "a"
REPONSE: …………………………………………………………………………………………………….
Exemple : Exemple :
Objet Type / Nature VAR
CH, NOM CHAINE DE CARACTERES CH, NOM : STRING ;
Exemple :
NOM : STRING[15] ; signifie que la chaîne NOM ……………………………………………………….
En Pascal Rôle
CONCAT (ch1,ch2,…,chN) Fonction qui fait la Concaténation des chaînes ch1,ch2,…,chN
COPY (ch,p,n) Fonction qui retourne une sous-chaine de n caractère à partir de la position p
POS (ch1,ch2) Fonction qui retourne la 1ère position de ch1 dans ch2.
Si ch1 n’est pas dans ch2, elle retourne 0.
INSERT (ch1,ch2,p) Procédure qui insère ch1 dans ch2 à partir de la position p en décalant
le caractère p et ses suivants vers la droite.
VAL (ch,d,erreur) Procédure qui convertit une chaîne en une valeur numérique et
l’affecte a ch. si la conversion n’est pas effectuée alors erreur
contiendra la position d’erreur.
VAL ('235K8',X,E) ; E contient …………………………
nvch va contenir :
STR(101,nvch) ……………………………………………………
chvn va contenir : le nombre 1256
VAL (mot5,chvn,e)
et e contiendra 0 (puisque la conversion s'effectue sans erreur)
b- Déclaration:
Voici comment déclarer un nouveau type qui s’appelle SAISON et qui comporte la liste des saisons
suivante : automne, hiver, printemps et ete.
REMARQUE :
Il est possible d'appliquer l'opérateur ORD, SUCC, PRED sur les valeurs de type scalaire énuméré.
ORD (automne) = …… ORD (hiver) = …….. PRED (ete) = …………….. SUCC (printemps) = …….
Activité 14:
1- Déclarer en pascal :
- Un nouveau type MOIS_A_31 qui contient les mois à 31 jours.
- Un nouveau type COLOR qui contient les couleurs RED, YELLOW, BLUE
2 – Déclarer en pascal
- une chaine de caractères CH de 20 caractères au maximum
- une variable X de type couleur
- une variable MA31 de type MOIS_A_31
- une constante YEAR de valeur = 12.
Solution :
Le type intervalle :
Le type intervalle possède les propriétés d'un type scalaire discret ordonné (caractère et entier).
Pour définir un intervalle il faut donner deux constantes (borne inférieure et borne supérieure) appartenant à
un type scalaire tel que borne inférieure < borne supérieure.
Exemple:
En pascal:
TDNT
TYPES
indice = 1..10
Mois = 1..12
SAISON = (automne, hiver, printemps, ete)
Annee_scolaire = automne..printemps
1 – Les opérandes:
Exemple : 45 + 48
Opérande
Opérateur
2 - Les Opérateurs:
…………………………………………………………………………………………………………………
Dans une expression arithmétique ou logique, un ordre de priorité est défini, cet ordre est le suivant:
Les parenthèses
Les opérateurs unaires (- , NOT)
Les opérateurs multiplicatifs (*, / , DIV, MOD, AND)
Les opérateurs additifs (+, -, OR, XOR)
Les opérateurs relationnels (>, <, >=, <=, =, <>)
Activité 16 :
a) Calculer : 3 + 5 * 2 + 6 + 2 * 3 = 3+10+6+6 = …………
C – Les tableaux:
a- Définition :
……………………………………………………………………………………………………………….
……………………………………………………………………………………………………………….
Exemple :
T 12 34 10 -5 100
En pascal :
VAR Nom_tableau : ARRAY [BINF .. BSUP] OF Type_element ;
BINF et BSUP représentent respectivement les indices de la première et de la dernière case du tableau à définir. Ces
indices peuvent être de type entier ou caractère.
Exemple :
Moy : ARRAY[1..5] OF REAL ; Moy est un …………………………………………………………….
Deuxième façon:
On peut déclarer le type d’un tableau comme suit :
Tableau de déclaration de nouveaux types :
TYPES
Nom_type = Tableau de taille et de type_éléments
T.D.O :
Objet Type/nature
Nom_tableau Nom_type
En pascal :
TYPE
Nom_type = ARRAY[BINF .. BSUP] OF type_éléments;
VAR
Nom_tableau : Nom_type;
Activité 17 :
Soit la déclaration algorithmique suivante
T.D.O :
Tableau de déclaration des nouveaux types (TDNT):
TYPES Objet Type/nature
Classe = tableau de 25 chaînes de caractères SCX Classe
Tmoy = tableau de 20 réels MATH Classe
T_Moyenne Tmoy
Donner la traduction pascal de la declaration precedente :
SOLUTION :
Activité 18 :
1- Soit la séquence d’affectations suivantes :
1) A[1] 20 5) B[2] B[1] mod A[1]
2) A[2] 10 6) B[3] A[2] *2 + 2
3) B[1] A[1] + A[2] 7) A[4] (A[2] div 60) mod 60
4) A[3] B[1] div 2 8) A[5] A[2] div A[1]
SERIE D’EXERCICES :
EXERCICE1 :
Donner l’analyse, l’algorithme et la traduction pascal d’un programme qui affiche un caractère alphabétique
majuscule de façon aléatoire.
EXERCICE2 :
Donner la préanalyse, l’analyse, l’algorithme et la traduction pascal d’un programme qui saisie une durée en seconde
et l’affiche en heures, minutes et en secondes comme le montre l’exemple suivant :
Exemple :
Durée = 14703 secondes = 4 Heures et 5 minutes et 3 secondes
EXERCICE3 :
Donner la traduction pascal d’un programme qui rempli un tableau par 4 entiers.
Le programme doit par la suite calculer et afficher la somme du tableau et la moyenne du tableau.
Exemple :
Pour le tableau suivant :
5 12 23 10
Le programme affiche :
La somme =50
La moyenne = 12.5
EXERCICE4 :
Donner l’analyse, l’algorithme et la traduction pascal du programme qui saisit une date sous la forme
JJ/MM/AAAA. Afficher la date saisie sous la forme JJ-MM-AAAA.
Exemple :
Pour la date suivante : 21/12/2012 le programme doit afficher 21-12-2012
EXERCICE5 :
Lorsqu’on accroche une masse M à un ressort ce dernier s’allonge. Soit
M : la masse accrochée au ressort
G : la pesanteur M*G=K*L
K : la raideur du ressort
L : l’allongement du ressort
Travail demandé :
On se propose de calculer l’allongement L d’un ressort de raideur K auquel est accrochée une masse M sachant que G = 9.8
Donner l’algorithme et la traduction en pascal pour résoudre le problème.