Vous êtes sur la page 1sur 9

Démarche de résolution

Il existe plusieurs approches pour analyser un problème. Pour nous, ont va suivre
l’approche dite « descendante ». Cette méthode se traduit par les trois actions:
résultat, traitement et données. Dans cette étape, nous avons à faire:
- Reposer le problème en détail,
- Dégager les résultats à atteindre,
- Définir les méthodes de résolution,
- Définir les structures de données nécessaires.

Les Actions élémentaires simples


L’affectation
On appelle AFFECTATION la mise d'une valeur dans une variable. Celle-ci peut
être sous forme directe ou sous forme d'un calcul.
Au niveau Algorithme
Variable  valeur X 21
C  ‘’A’’
Z 22*5
Au niveau Pascal
Variable := valeur Y :=2.365 ;
S :=’chaine’ ;
X := y+30
Remarque :
Une affectation ne peut se faire qu'entre une variable et une expression de

Rappels Algorithmique : Structure de données, conditionnelles et Itératives


même type. La seule exception est de mettre un entier dans un réel

L’opération d’entrée
Cette structure permettre à l’utilisateur d'introduire des valeurs au clavier pour
qu’elles soient utilisées par le programme, on appelle cette opération la
lecture.
Au niveau Analyse
Variable = Donnée (‘’Message’’) Moy=Donnée (‘’Entrer la moyenne’’)
Au niveau Algorithme
Lire(Variable) Lire(a)
Au niveau Pascal
Readln(variable) Readln(a)

L’opération de sortie
C’est la structure qui permet au programme de communiquer des valeurs à
l’utilisateur en les affichant à l’écran. Cette opération s’appelle écriture.
Write : Affiche un contenu et reste sur la même ligne
Writeln : Affiche un contenu et passe à la ligne suivante

Au niveau Analyse et Algorithme Au niveau Pascal


Affichage d’un message : LPS
1|P age
Ecrire (‘’Algorithmique’’) Write (‘algorithmique’) ;
Affichage du contenu d’un variable :
A 55 A := 55 ;
Ecrire (A) Write (A) ;
Remarque : Ecrire (‘’A’’) affiche le
caractère A pas le contenu de la
variable A.
Affichage Mixte :
 Utiliser une virgule pour la
séparation
Ecrire (‘’La variable A= ’’,A) Write (‘La variable A= ‘,A) ;
Remarques:
1. Writeln; provoque un retour à la ligne après l'opération d'écriture.
2. Un mot avec apostrophe sera affiché au niveau de pascal avec deux
apostrophes, comme par exemple cette écriture:
WriteLn('L'informatique');  C'est faux.
WriteLn('L''informatique');  C'est Vrai.

Les structures de données


Les constantes
Définition : On appelle constante un objet ayant une valeur inchangée tout le long
d’un algorithme.
Une constante est caractérisé par : Son nom (un identificateur unique), Sa valeur
Objet Type/ Nature
NOM_Constante Constante=Vlauer

Rappels Algorithmique : Structure de données, conditionnelles et Itératives


PI Constante = 3,14
CONST <nom_constante> = valeur_constante ;
Exemple:
CONST coef = 1.5 ;
Les variables
Définition :
On appelle variable tout objet pouvant prendre différentes valeurs tout le long d’un
algorithme.
Une variable est caractérisée par : Son nom (un identificateur unique), Son type, Son
contenu.
Tableau de déclaration des Objets T.D.O
Objet Type/ Nature
nom_variable Type(entier, caractère, chaine, réel, booléen …)
x Entier
La déclaration d’une variable entière se fait comme suit :
VAR < nom_variable > : Type ;
Le type Entier :
Dans un ordinateur un entier est représenté avec un nombre fixe d’octets ou de bits.
C’est pour cette raison que l’ensemble des entiers dans un ordinateur est fini
(compris entre un minimum et un maximum).
Les opérateurs arithmétiques sur les Entiers :+, -, *, DIV, MOD, >, <, ≤, ≥, =, ≠
LPS
2|P age
Le type Réel
Sous ensemble de R
Les opérateurs arithmétiques sur les Entiers :+, -, *, /, >, <, ≤, ≥, =, ≠
Algorithmique Pascal Rôle Exemple
Permet d’extraire la partie entière Trunc (5,2) vaut 5
Trunc (x) Trunc(x)
de x Trunc (6,9) vaut 6
Round (10,23) vaut
10
Arrondit une valeur réelle à Round (10,5) vaut
Arrondi (x) Round (x)
l’entier le plus proche 11
Round (-10,83) vaut
-11
Abs (x) ABS (x) Renvoie la valeur absolue de x ABS (-10) vaut 10
Carré (x) SQR (x) Renvoie le carré de x SQR (6) vaut 36
Renvoie la racine carrée de x s’il
Racine carré
SQRT (x) est positif sinon elle provoque une SQRT (5) vaut 2,236
(x)
erreur
Renvoie la partie entière de x dans INT (10,23) vaut
INT (x) INT (x)
un réel 10,00
Renvoie la partie décimale de x FRAC (10,23) vaut
FRAC (x) FRAC (x)
dans un réel 0,23
Renvoie le cosinus de x (x en

Rappels Algorithmique : Structure de données, conditionnelles et Itératives


Cos (x) Cos (x) Cos (PI) vaut -1,00
radians)
Sin (x) Sin (x) Renvoie le sinus de x (x en radians) Sin (PI) vaut 0,00
Aléa Random Renvoie un réel entre 0 et 1
Aléa(x) Random(x) Renvoie un entier entre 0 et X-1
 Utiliser Randomize avant Random pour avoir une séquence différente à chaque
exécution.
Le type Booléen
Le type booléen contient les deux valeurs logiques VRAI et FAUX.
Dans le langage PASCAL, la déclaration d’une variable booléenne se fait comme suit :
VAR <nom_variable> : Boolean ;
Opérateurs logiques sur les booléens : NON, ET, OU, OUEx (not, and, or, xor)
Table de vérité de ET Table de vérité de OU Table de vérité de XOR (OU EXCLUSIF)
a b a ET b a b a OU b a b a XOR b
F F F F F F F F F
F V F F V V F V V
V F F V F V V F V
V V V V V V V V F

LPS
3|P age
Remarque :
 Il existe un ordre de priorité entre les opérateurs logiques : La négation NON est
prioritaire par rapport à la conjonction ET. La conjonction ET est prioritaire par
rapport à la disjonction OU. Si deux opérateurs ont la même priorité, le calcul de
l’expression logique se fera de gauche à droite. Dans tous les cas, les opérations
misent entre parenthèse sont prioritaires.
 Vrai est supérieur à Faux (True>False renvoi True)

Le type caractère
Le type Char défini des variables "caractère seul" ou "lettre" ayant code appartenant
à la table ASCII.
Syntaxe :
Var Nom_Var : Char ;
Les Fonctions prédéfinies pour les caractères
(x entier compris entre 0 et 255)
Nom Code en Pascal Rôle Exemples

ORD (c) ORD (c) Renvoie le code ASCII du ORD ("A") vaut 65
caractère c. Le résultat est ORD ("a") vaut 97
un entier positif.

CHR (x) CHR (x) Renvoie le caractère dont le CHR (65) vaut ’’A’’
code ASCII est x. CHR (97) vaut ‘’a’’

SUCC (c) SUCC (c) Renvoi le caractère SUCC ("C") vaut ‘’D’’
successeur de c s’il existe. SUCC ("2") vaut ‘’3’’

Rappels Algorithmique : Structure de données, conditionnelles et Itératives


PRED (c) PRED (c) Renvoi le caractère PRED ("C") vaut ‘’B’’
prédécesseur de c s’il existe. PRED ("2") vaut ‘’1’’

MAJUS (c) UPCASE (c) Convertit le caractère c en MAJUS ("d") vaut


majuscule s’il est possible ‘’D’’

Le type chaine de caractères


Une chaîne de caractère est une succession de n caractère avec n compris entre 0 et
255 si n = 0 on dit que la chaîne est vide. Les valeurs de chaîne de caractères sont
définies entre guillemets.
Syntaxe : Var chaine : String ; (chaine de longueur MAX 255)
telephone : String[10] ; (chaine de longueur 10 caractéres)
Les fonctions relatives au type chaîne de caractères
Algorithmique Pascal Rôle Exemple
Renvoie le nombre de
Long (ch) Length (ch) Length (‘technologie’) vaut 12
carctères de ch
Renvoie la position de la Pos (‘i’,'Informatique’) vaut 9
1ère occurence de ch1 Pos (‘I’,'Informatique’) vaut 1
Position
Pos (ch1,ch2) dans ch2. Si ch1 n’est pas Pos
(ch1,ch2)
dans ch2, elle retourne la (‘Formation’,'Informatique’)
valeur 0 vaut 0
LPS
4|P age
Renvoie une sous-chaine
Sous_chaine Copy (‘Informatique’,3,6) vaut
Copy (ch,p,n) de n caractères à partir de
(ch,p,n) ‘format’
la position p de ch
Soit ch1:=’Ecole’; ch2:=’Sup’;
Concat Concat Permet la concaténation
Concat (ch1,’ ‘,ch2) vaut
(ch1,ch2…chn) (ch1,ch2…chn) de ch1, ch2, … et chn
‘Ecole Sup’
Les procédures relatives au type chaîne de caractères

Algorithmique Pascal Rôle Exemple


Enlève n caractères de la
Delete chaîne ch à partir de la Delete (‘Turbo Pascal’,6,7) vaut
Efface (ch,p,n)
(ch,p,n) position p. Le résultat se ‘Turbo’
trouvera dans la chaine ch
Insère la chaîne ch1 dans la
Ch1:=’mation’;ch2:=’program’;
Insére Insert chaîne ch2 à la position p.
Insert (ch1,ch2,8) alors
(ch1,ch2,p) (ch1,ch2,p) Le résultat se trouvera dans
ch2:=’programmation’
la chaine ch2
n:=20;
Convertit le nombre n en
Convch (n,ch) Str (n,ch) Str (n,ch), la chaîne ch va
une chaîne ch
contenir ’20′
ch:=’20′;
Convertit la chaîne ch en un Aprés exécution de
Valeur (ch,n,e) Val (ch,n,e) nombre n. e contient la l’instruction Val (ch,n,e), n va
position de l’erreur contenir 20 e sera égale à 0
Avec e est de type entier.

Rappels Algorithmique : Structure de données, conditionnelles et Itératives


Le Type Scalaire énuméré
Le type scalaire par énumération définit un ensemble ordonné et fini de valeurs
désignées par des identificateurs.
Tableau de déclaration des nouveaux types
Types
Couleurs= (rouge, vert, blanc, noir, jaune, bleu)
 on peut appliquer la fonction ORD sur ces valeurs pour déterminer leurs
numéros d’ordre, ainsi ORD (rouge) vaut 0
 Les opérateurs applicables à ces valeurs sont:
• Les opérateurs relationnels
• Lés opérateurs PRED et SUCC. PRED

En PASCAL:
TYPE <nom_type> = ( Const1,Const2, …, ConstN);
VAR <nom_variable> : nom_type;

Le type Intervalle
Le type intervalle possède les propriétés d’un type scalaire discret ordonné (entier,
caractère et scalaire énuméré)

LPS
5|P age
La définition d’un intervalle est décrite par la donnée de deux constantes
représentant respectivement la borne inférieur et la borne supérieur appartenant à
un type scalaire discret ordonné et telle que Borne Inférieur < Borne Supérieur
Tableau de déclaration des nouveaux types
Types
Nom_Type = BorneInf .. BorneSup
Mois=1..12
Anne_Scolaire= (Septembre, Octobre, Novembre, Decembre, Janvier, Fevrier, Mars, Avril, Mai, Juin)
Premier_Trimestre = Septembre .. Decembre

En Pascal:
TYPE <nom_type> = Bonrne_inf .. Borne_sup;
VAR <nom_variable> : nom_type;

Le type Tableau
Un tableau est une structure de données homogènes regroupant un ensemble
d’éléments de même type.
Au niveau de l’analyse et de l’algorithme
Objet Type/ Nature
Ident_Tab Tableau de taille et de Type-élément
En Pascal:
Var Ident_Tab:ARRAY[Borne_inf..Borne_Sup] OF Type_élément;
Exemple:
T : ARRAY [1..4] OF CHAR;

Il est possible de déclarer le type d’un tableau.


Tableau de déclaration des nouveaux types

Rappels Algorithmique : Structure de données, conditionnelles et Itératives


Types
Eleves = tableau de 30 chaînes de caractère
Moyennes = tableau de 30 réels
Tableau de déclaration des objets
Objet Type/ Nature Rôle
T_ELEVES Eleves Tableau des 30 noms d’élèves
T_Moy Moyennes Tableau des 30 moyennes d’élèves

Les structures de contrôle conditionnelles


Structure de contrôle conditionnelle simple réduite
Analyse Algorithme Pascal
R=[Initilisations] Initialisations Initialisations ;
Si (condition(s)) Alors Si (condition(s)) Alors IF (condition(s)) then
Instruction 1 Instruction 1 Begin
… … Instruction 1 ;
Instruction n Instruction n …;
FinSi FinSi Instruction n ;
End ;

LPS
6|P age
Structure de contrôle conditionnelle simple complète
Analyse Algorithme Pascal
R=[Initilisations] Initilisations Initialisations ;
Si (condition(s)) Alors Si (condition(s)) Alors IF (condition(s)) then
Instruction 1 Trait1 Instruction 1 Trait1 Begin
… … Instruction 1 Trait1 ;
Instruction n Trait1 Instruction n Trait1 …;
Sinon Sinon Instruction n Trait1 ;
Instruction 1 Trait2 Instruction 1 Trait2 End ;
… … Else
Instruction m Trait2 Instruction m Trait2 Begin
FinSi FinSi Instruction 1 Trait2 ;
…;
Instruction m Trait2 ;
End ;

Structure de contrôle conditionnelle généralisée


Analyse Algorithme Pascal
R=[Initilisations] Initilisations Initialisations ;
Si (condition(s) 1) Alors Si (condition(s) 1) Alors IF (condition(s)1) then
Traitement1 Traitement1 Trait1 ;
Sinon Si (condition(s) 2) Alors Sinon Si (condition(s) 2) Alors Else If (condition(s)1) then
Traitement 2 Traitement 2 Trait2 ;
………………………………… ………………………………… ………………………………….. ;
Sinon Si (condition(s) n-1) Alors Sinon Si (condition(s) n-1) Alors Else If (condition(s)n-1) then

Rappels Algorithmique : Structure de données, conditionnelles et Itératives


Traitement n-1 Traitement n-1 Trait n-1 ;
Sinon Sinon Else Trait n ;
Traitement n Traitement n
FinSi FinSi

Remarque :

Au niveau de l’analyse on écrit :


R = [Initialisation]  R indique le résultat recherché
SI condition ALORS

Structure à choix multiple


Cette structure permet une présentation plus claire d’un ensemble d’alternatives
imbriquées. Un nombre important de choix est à envisager selon les valeurs prises
par une variable.

La structure SELON évalue le "sélecteur", passe à comparer celui ci respectivement


avec les valeurs dans les listes. En cas d'égalité avec une valeur, les actions
correspondantes, qui sont devant cette valeur seront exécutées.

LPS
7|P age
Analyse Algorithme Pascal
R=[Initilisations] Initilisations Initialisations ;
Selon Sélécteur Faire Selon Sélécteur Faire Case sélécteur of
Val1 :action1 Val1 :action1 Val1 :action1 ;
Val2,val3 :action21 Val2,val3 :action21 Val2,val3 :begin
action22 action22 action21 ;
action2n action2n action22 ;
Val4 :action3 Val4 :action3 action2n ;
Valn :action n Valn :action n end ;
Sinon action R Sinon action R Val4 :action3 ;
Fin selon Fin selon Valn :action n;
else action R
end ;

Structures de contrôle itératives


La structure : Pour faire
Définition
Un résultat à une structure itérative complète s’il est obtenu après la répétition d’un
traitement un nombre fini de fois connu d’avance.
Au niveau analyse : Au niveau Pascal :
Il faut utiliser un compteur pour signifier la
répétition :
R=[Initialisation] Pour c de 1 à n Faire FOR i :=1 TO n DO
Traitements (Ensemble Begin
d’instruction) Instructions à répéter
FinPour End ;
Dans le cas d’un parcours descendant, la définition Dans le cas parcours descendant, la

Rappels Algorithmique : Structure de données, conditionnelles et Itératives


s’écrit : définition s’écrit :
R=[Initialisation] Pour c de n à 1 (pas=-1)Faire FOR i :=n DOWNTO 1 DO
Traitements (Ensemble Begin
d’instruction) Instructions à répéter
FinPour End ;

La structure : Répéter jusqu'à


Définition
Un résultat a une définition itérative à condition d’arrêt, s'il est la répétition d'une
suite d'instructions jusqu'à ce qu'une condition d'arrêt passe à l'état vrai.
Analyse Algorithme Pascal
R=[Init] Répéter ………. …………;
<traitement > ………. {Init} …………; {Init}
Jusqu'à (condition d'arrêt) Répéter Repeat
<traitement > <traitement >
Jusqu'à (condition d'arrêt) Until (condition d'arrêt) ;
Avec
<condition>: expression logique déterminant l’arrêt de la boucle
<traitement> : action ou séquence d’action à exécuter tant que la condition est
fausse
Remarques:
LPS
8|P age
On utilise la boucle REPETER lorsque le nombre de répétitions peut ne pas être
connu à l’avance.
Il faut modifier la condition à l’intérieur de la boucle REPETER pour ne pas avoir
une boucle fermée (infinie).

La structure : Tant que faire


Définition
La structure itérative à condition d’arrêt : tant que faire est utilisée lorsque la
condition doit être testée avant l’exécution du traitement à répéter.
Structure utilisée lorsque le nombre de traitement n’est pas connu à l’avance.
Vocabulaire et syntaxe :
Au niveau de l’analyse et Au niveau pascal
l’algorithme
R=[init]Tant que (condition) faire While (condition) do
Instruction 1 Begin
… Instruction 1 ;
Instruction n …
Fin tant que Instruction n;
End;
 Les instructions seront exécutées au moins zéro fois
 Si la valeur de la condition est vraie, l'ordinateur doit exécuter les instructions 1 à
n.
Si la valeur de la condition est fausse, l'exécution des instructions 1 à n s'arrête et
l'ordinateur passe à l'exécution de l'instruction qui se trouve juste après fin tant que
La boucle tant que n’est utilisée si la condition n’est pas vérifiée dés la première fois.

Rappels Algorithmique : Structure de données, conditionnelles et Itératives

LPS
9|P age

Vous aimerez peut-être aussi