Академический Документы
Профессиональный Документы
Культура Документы
1. MOTIVATION
1.1 Le Problème
2.1 Objectif
Données Résultats
Actions escomptés
2.5 La préoccupation
3.1 Objectif
Une variable représente soit une donnée soit un résultat ; alors ses
caractéristiques sont les suivantes :
- un identificateur qui est un moyen permettant de désigner de
façon unique un être ou une entité ;
- un type décrivant sa structure algébrique à savoir :
- sa forme logique qui est l’ensemble des composants et leur
mode d’agencement ;
- l'ensemble des opérateurs autorisés ou applicables à la
forme logique ;
- l'espace de valeurs possibles.
Nous ne parlerons pour l’instant que des types de base en vue de
faciliter l’apprentissage. Les types qui sont obtenus par combinaisons
linéaires des types de base feront l’objet d’autres cours.
Elle est dite élémentaire quand ne combine que des variables et des
opérateurs en observant leur compatibilité. Les variables et l’opérateur
doivent être compatibles (de types identiques ou de types
imbriqués) :
- si l’opérateur est arithmétique alors les variables doivent être de
type Réel ou Entier et l’expression est de type Réel ou Entier ;
- si l’opérateur est logiques alors les variables doivent être de type
Booléen et l’expression est de type booléen ;
- si l’opérateur un comparateur alors les variables doivent être de
type Entier ou de type Réel et l’expression est de type booléen.
• Question :
Quel devra être le type des variables et celui de l’expression dans les
cas suivants :
-x*y
-a<b
3.6.1 Initialisation
3.6.2 Incrémentation
x <— x + Cte
3.6.2.1.1 Interprétation
3.6.2.1.2 Simulation
Exemple :
- L’on voudrait qu’une variable (x) parcourt les valeurs 0 , 5, 10 , 15
- La formulation est la suivante :
- x <— 0 {définition de la valeur
initiale} ;
- x <— x + 5 {définition de
l’incrémentation}.
Si nous exécutons l’incrémentation un nombre fini de fois (dans le cas
d’espèce 3 fois), nous obtenons le tableau ci – dessous.
3.6.3 Cumul
3.6.3.1.2 Simulation
Exemple :
- L'on veut calculer la somme des nombre suivants : 15, 10 et 40
- La formulation est la suivante :
- x <— 0 {définition de l’initialisation}
- x <— x + a {définition du cumul}
En exécutant (3) fois le cumul (a) avec les valeurs successivement de
(a) qui sont 15, 10 et 40, nous obtenons le tableau ci – dessous.
4.1 Objectif
Une proposition peut donc être représentée par une variable de type
Booléen.
4.2.1 La négation
p ┐p
0 1
1 0
Quand une proposition (P) est vraie sa négation est fausse ; par contre
quand elle est fausse sa négation est vraie.
Question :
Que donne la double négation d’une même proposition ? Et comment
l’appelle – t – on ?
P Q P ^ Q
0 0 0
0 1 0
1 1 1
1 0 0
Question :
La différence entre une condition dite nécessaire et une condition dite
suffisante
4.2.3 La disjonction
p Q P V Q
0 0 0
0 1 1
1 1 1
1 0 1
4.2.3.3 Interprétations
Question :
La différence entre une conjonction et une disjonction
P Q P Q
0 0 1
o 1 1
1 1 1
1 0 0
4.2.4.3 Interprétations
4.2.5 L'équivalence
p Q p Q
0 0 1
0 1 0
1 1 1
1 0 0
4.2.5.3 Interprétations
L’on dit que deux propositions ne sont équivalentes que quand elles
ont la valeur de vérité.
p Q P w Q
0 0 0
0 1 1
1 1 0
1 0 1
4.2.6.3 Interprétations
4.3.1 La différence
(x ≠ y) ≡ ┐(x = y)
┐(x < y) ≡ (x ≥ y)
(x ≤ y) ≡ (x < y) v (x = y)
┐(x ≤ y) ≡ (x > y)
┐(x > y) ≡ (x ≤ y)
(x ≥ y) ≡ (x > y) v (x = y)
┐(x ≥ y) ≡ (x < y)
Dans un langage formel chaque structure n’a que une et une selon
sémantique et une et seule syntaxe. L’on peut dire que le niveau
sémantique dépend du niveau syntaxique.
- les identificateurs qui sont mots auxquels l’on peut attribuer une
valeur prise dans un espace infini ; cette valeur est choisie par
l’utilisateur du langage ; un identificateur sera assimilé à une
variable ;
- les mots dits réservés qui ne peuvent connaitre que une et une
seule valeur ; ils seront assimilés à des constantes.
6.1 Objet
Les seules entités que nous connaissons, au stade actuel, sont les
constantes et variables. Alors la zone de spécification d’entités se
limitera à la zone de déclaration de constantes et à la zone de
déclaration de variables.
CONST
Pi = 3.14
Ro = 9.75123
La sous – zone de déclaration de variables est introduite par le mot
réservé VAR.
Exemple
VAR
Longueur : Réel
Largeur : Réel
6.2.3 le corps :
DEBUT
action (i)
FIN
Le corps étant une structure logique, alors elle peut être décomposée
en sous structures logiques également délimitées par les mots réservés
Début et Fin. Ces sous structures devront être soit disjointes soit
imbriquées.
6.3.1.1 Définition
6.3.1.2 Syntaxe
Séquence (SQ1)
SINON
Séquence (SQ2)
FinSi
6.3.1.3 Interprétations
6.3.1.4 Exemples :
SI ( x < 10 )
ALORS
y ← 2*x – 3
- Exo2 :
x є ]-00 , 1 0 ] alors y = 2 *x -
5
x є ]10 , 50 ] alors y= x
+ 3
x є ]50, + o0[ alors y = x - 2
SI ( x < 10 )
ALORS
y ← 2 *x - 5
SINON : {signifie la négation de (x < 1O)}
SI ( x < 50) : { signifie (x ≥ 10) ET (x < 50)}
ALORS
y ← x + 3
SINON : {signifie (x ≥ 50 )}
y← x-2
FinSi
FinSi
6.3.2 Les structures répétitives
6.3.2.1 Définition
Une structure est dite répétitive quand elle permet d'exécuter une
séquence finie et logique d'actions un nombre fini de fois.
Séquence ( SQ )
FinTq
- l'initialisation :
rayon ← 5 : valeur initiale du rayon
pi ← 3.14 : choix de la valeur de la variable pi
- la répétition :
TANT QUE ( rayon < 25 ) FAIRE
• Question :
Que se passerait-il si l’incrémentation avait été omise dans la
répétition ?
REPETER
6.3.2.6 Interprétations :
6.3.2.7 Simulation
- l’initialisation :
rayon <- 5 : valeur initiale du rayon
pi <- 3.14 : choix de la valeur de la variable pi
- la répétition :
REPETER
surface <— pi*rayon2
rayon <— rayon + 5
- l’exécution :
6.3.3.1 Définition
6.3.3.2 Syntaxe
POUR < Identificateur > ← < borne inférieure> A < borne supérieure > FAIRE
Séquence (SQ)
Finpour
6.3.3.3 Interprétations :
6.3.3.4 Exemple :
- exécution
valeurs successives du calcul de
rayon la surface ?
5 oui
5+1 =6 oui
6+1 =7 oui
7+1=8 oui
8+1 =9 oui
9+ 1 = 10 oui
1O+1 = 11 non
• Question :
Proposez une réécriture de l’exemple ci – dessus en utilisant
une structure répétitive
6.3.4.1 Définition
Exemple :
LIRE (rayon) : attente pour la prise en compte de la valeur
de la variable ayant pour identificateur rayon
6.3.4.3 Le verbe ECRIRE
6.3.5 Le commentaire
7. EXERCICES D’APPLICATION
7.1 EXERCICE N° 1
Question 1 :
Pendant une foire commerciale l’on observe que la recette de
chaque exposant augmente tous les jours de deux tiers. Il paie
le tiers de sa recette journalière à l'organisateur comme frais
d’entretient de l’espace occupé. Ecrire un algorithme qui
calcule et qui communique pour toute la foire les gains
journaliers d'un exposant.
Résolution
Pour résoudre facilement le problème posé nous adopterons une
démarche qui consistera à répertorier :
- les données :
- la durée de l'exposition.
- les actions :
- calcul de la recette
- calcul du gain
- communication du gain
- la durée de l'exposition ;
- le nombre d’exposants.
- Les résultats :
- Les actions :
- calcul de la recette
ALGORITHME Foire
{Cet algorithme calcule et communique la somme des gains de
tous les exposants et le gain de l'organisateur}
{Déclarations des variables (données + résultats)}
VAR
recette : réel {Représente la recette journalière}
durée : entier {Représente la durée de la foire}
frais : réel {Représente les frais journaliers}
gain : réel {Représente le gain journalier}
jour : entier {Représente le compteur de jours}
nbe : entier {Représente le nombre
d'exposants }
gain_total : réel {Représente le gain total d'un exposant}
frais_total : réel {Représente le total des frais d'un
exposant}
expo : entier {Représente le compteur d'exposants}
som_gain : réel {Représente la somme des gains des
exposants}
som_frais : réel {Représente la somme des frais des
exposants}
• Question 4 :
L'on a supposé jusqu'à ce stade que chaque exposant
n'occupe qu'un seul stand. En supposant alors qu'un exposant
peut occuper plusieurs stands à la fois pendant toute la foire,
modifiez votre algorithme pour qu'il calcule et communiquer le
gain total et le total des frais de chaque exposant, puis le gain
de l'organisateur.
Nous proposons les indications suivantes :
- les recettes initiales d'un exposant occupant plusieurs stands
peuvent être différentes d'un stand à l'autre ;
- le nombre de stands occupés peut être différent d'un exposant à
l'autre.
• Question 5 :
L'organisateur propose aux mêmes exposants plusieurs foires
dans l'année. En supposant que les exposants n'ont pas
participé tous au même nombre de foires, modifiez votre
algorithme pour qu'il calcule et communique le gain annuel et
les frais annuels de chaque exposant, puis le gain annuel de
l'organisateur.
• Question 1 :
Une entreprise décide d'attribuer des primes mensuelles à ses
employés qui sont calculées de la manière suivante :
- le temps réel est égal au temps supplémentaire moins les
trois demis du temps d'absence
- la prime est estimée selon le tableau ci –dessous
Temps réel ( TR) Prime mensuelle
TR>35 50000
35 > TR > 25 35000
25 > TR > 10 20000
10 > TR > 5 10000
TR< 5 0
• Question 3 :
Modifiez votre algorithme pour qu'il calcule et communique la
somme des primes annuelles payées, la somme des retenues
et le ratio de deux.
8.1 Objectif
Un type est dit composé quand sa structure logique est obtenue par
combinaison linéaire d’un nombre fini de structures d’un type de base.
8.3.1 La description
Un intervalle est espace discret et fini de valeurs que peut parcourir une
variable. Alors il peut se décrire de deux manières :
- le mode explicite qui consiste à énumérer les différentes valeurs :
- (valeur1, valeur2, …, valeur i, …, valeur n) ;
- le mode implicite qui consiste à préciser les bornes de l'espace de
valeurs :
- <borne inférieure> .. <borne supérieure>
Le type de la variable devant parcourir l'intervalle étant
compatible avec le type des bornes, alors si les valeurs
des bornes sont entières alors la variable est de type
8.3.2 La spécification
8.4.1 La description
Un tableau est une séquence finie de CELLULES. Et une cellule est une
entité ayant deux caractéristiques de base qui sont son adresse ou son
index et son contenu.
Adresse
Contenu
Les index des cellules du vecteur étant des valeurs entières, alors il suffit
de connaître l'intervalle de variation des index des cellules.
Exemple :
- la cellule 5 reçoit la somme de la cellule 3 et de la cellule 7
Note[5] ← Note[3] + Note[7]
- la cellule 8 reçoit le double de la cellule 2
Note[8] ← 2 * Note[2]
Exercices d'application :
Question 1 :
Ecrire un algorithme qui recherche le plus petit parmi (n)
nombres ; prenons pour simplification 20 comme valeur
maximale de (n)
ALGO recherche
{ cet Algorithme lit des nombres , recherche le plus petit d'entre eux
et l'affiche}
{ Spécification d'un type appelé VECTEUR}
TYPE Vecteur = [ 1 . . 20 ] DE Réel
VAR
{ Déclaration des variables}
Nbre : Vecteur
mini : Réel
Rang : Entier
i : Entier
n : Entier
{ Le corps de l'Algorithme}
DEBUT
{ Lecture du nombre de termes }
REPETER
ECRIRE (‘’ DONNEZ LE NOMBRE DE TERMES’’)
LIRE ( n )
JUSQU'A (n > 0) v (n < 20)
{ Lecture des termes }
POUR i ← 1 A n FAIRE
min ← Nbre[rang]
Rang ← i
Finsi
Finpour
{ Affichage du petit des n nombres et de son rang }
ECRIRE (‘’ LE PLUS PETIT EST ’’ , mini , ‘’ ET SON RANG EST ‘’ , rang )
FIN
Pour exemple :
Soit un tableau ayant quatre (4) lignes, huit (8) colonnes et contenant
des nombres réels.
Le mode explicite :
{Spécification d'un type matrice }
TYPE Matrice = [ 1 .. 4 , 1 .. 8 ] DE Réel
{ Déclaration d'une variable de type matrice }
VAR
Nbre : Matrice
Le mode implicite :
TYPE
{ Déclaration d'un type vecteur représentant une ligne}
Vecteur = [ 1 .. 8 ] DE Réel
{ Déclaration du type matrice à partir du type vecteur }
Matrice = [ 1 . . 4 ] DE Vecteur
VAR
{ Déclaration d'une variable de type matrice }
Nbre : Matrice
Pour désigner une cellule d'une variable de type matrice il faut préciser
l'index ligne et l'index colonne : <Identificateur> = [ < indexe
Ligne> , <indexe Colonne> ]
9.1 Objectif
9.3 La Fonction
Question :
Ecrite un algorithme qui calcule et communique la valeur d’un
polynôme en un point. Nous supposerons que le degré du
polynôme est inférieur ou égale 3.
ALGO Polynome
{Calcul d'un polynôme de degré inférieur ou égal à trois }
{ Spécification d'un type vecteur pour stocker les coefficients }
TYPE
Vecteur = [ 1 . . 4 ] DE Réel
{ Spécification de la fonction mono }
Une Procédure utilise les données qui sont passées par valeur pour
calculer les résultats qui sont passés par référence. Alors, la référence à
une Procédure s’effectue dans le corps de l’algorithme englobant en
attribuant :
Question :
Réécrire l’algorithme de l’exemple d’application de la fonction
en introduisant la notion de procédure.
ALGO Polynome
{Calcul d'un polynôme de degré inférieur ou égal à trois }
{ Spécification d'un type vecteur pour stocker les coefficients }
TYPE
Vecteur = [ 1 . . 4 ] DE Réel