Académique Documents
Professionnel Documents
Culture Documents
3. De la rigueur
Entrée Indépendance
L'algorithme doit être clair et sans ambiguïté. Chacune de ses étapes (ou instructions),
ainsi que leurs entrées/sorties, doivent être claires et précises.
Sans
ambiguité
Phase de
conception
REFLEXION
PROBLEME
ALGORITHMIQUE
Introduction
Conception ALGORITHME
Datatypes
CHAR (ou BYTE) : C’est le type caractère. Tout caractère
dispose de son code ASCII (valeur entière permettant
de le coder en mémoire).
Variables
VARIABLE uneVariable, uneAutre, encoreUne : ENTIER
VARIABLE nom, prenom : CHAINE
Une des principales utilisations d’une variable est
l’opération d’affectation.
Variables
Exemple
age = 13 affectation d’une constante
13
Conteneur Valeur à stocker dans la variable age
d’informations
age
Syntaxe de l’affectation
nomDeLaVariable = valeur
Variables
Exemple
age = 13 affectation d’une constante
13
Conteneur Valeur à stocker dans la variable age
d’informations
age
Exemple
x=y
affectation d’une autre variable de même type
Conteneur Conteneur
d’informations d’informations
Concepts de x y
base
Variables
Exemple
x=y
affectation d’une autre variable de même type
Conteneur Conteneur
d’informations d’informations
Concepts de x y
base
Variables
Exemple
x=y
affectation d’une autre variable de même type
Conteneur Conteneur
d’informations d’informations
Concepts de x y
base x=y+2
Variables
affectation du résultat d’une opération arithmétique
Conteneur Conteneur
d’informations d’informations
x y
Les constantes sont également des conteneurs
d’informations ayant comme particularité de
conserver leur contenu inchangé tout le long de
Concepts de l’algorithme.
base
Constantes Le contenu doit être défini obligatoirement lors de la
déclaration de la constante, contrairement à la
variable dont le contenu peut être précisé plus tard.
Formalisme de déclaration d’une constante
Concepts de
CONSTANTE nomDeLaConstante : TYPE = valeur
base
Constantes
où TYPE peut être soit ENTIER, REEL, CHAR ou CHAINE
selon le type de valeur
Exemple de déclaration d’une constante :
Concepts de
base CONSTANTE TAILLE_MAX : ENTIER = 10
Cette instruction permettant de réserver de l’espace
Constantes mémoire pour stocker une constante TAILLE_MAX dont la
valeur ne changera pas durant l’algorithme.
Un algorithme a souvent besoin qu’on (qui ?) lui
fournisse les informations qui lui seront utiles pour
son traitement.
Entrées / Sorties
3 acteurs interviennent donc dans ce tableau …
qui sont-ils ?
L’ordinateur exécute
les instructions qu’il
reçoit de l’acteur 3.
1- l’utilisateur 2- l’ordinateur
Concepts de
base Les instructions d’E/S contenues dans l’algorithme
permettent l’interaction entre l’utilisateur et l’ordinateur
Entrées / Sorties
Le concepteur donne des instructions (des ordres) à
l’ordinateur que ce dernier doit exécuter
3- le concepteur
L’instruction LIRE permet de récupérer les
Concepts de informations venant de l’extérieur (clavier par
exemple) et de les stocker dans une variable.
base
Entrées / Sorties
Elle correspond à l’instruction d’Entrée
Analysons l’instruction suivante : LIRE (age)
age est une variable déclarée de type ENTIER
c:\Users>Hello world !
Analysons l’instruction suivante : ECRIRE (age)
age est une variable déclarée de type ENTIER
contenant une valeur entière
Concepts de
base Cette instruction algorithmique instruit l’ordinateur
Entrées / Sorties de réaliser les actions suivantes :
1. Aller dans la mémoire et lire le contenu de la
variable age
2. Afficher la valeur lue à l’écran
L’affichage d’une chaine de caractère tout court
ECRIRE ("Hello World ! ")
c:\>Hello world !
Concepts de
base L’affichage combinée est également possible :
Entrées / Sorties
age = 13
c:\>Vous avez 13 ans.
Important : Notez la présence des " " pour signaler qu’il s’agit
d’écrire sur l’écran une chaîne de caractères constante.
La phase
La conception de la solution se d’analyse
fait selon une certaine
méthodologie qu’il faut toujours
respecter. Pré-
traitement
Concepts de Elle comprend 4 étapes
essentielles :
base
Conception Traitement
1. La phase d’analyse
2. Pré-traitement
3. Traitement
4. Restitution des résultats
Restitution
des résultats
1
La phase d’analyse correspond à la réflexion
algorithmique vue dans les slides précédents.
Concepts de
base
Les réponses à toutes les questions posées durant
Conception cette étape permettront de mettre en place
l’algorithme proprement dit.
2
Concepts de
Le pré-traitement consiste à récupérer les données en
base entrée de l’algorithme.
Conception
3
Le traitement consiste à décrire la résolution pas à
Concepts de pas, instruction par instruction, de manière
base séquentielle
ALGORITHME CalculSomme
{Cet algorithme calcule et affiche la somme de deux
nombres réels que lui fournit l’utilisateur}
DEBUT
{ Déclarations : réservation
VARIABLE x, y, somme : REEL d’espace mémoire }
Concepts de
base ECRIRE ( "Entrez les nombres svp : " ) Pré-traitement :
Lecture des
Solution LIRE (x, y) données
Proposer un algorithme.
Problème 2 :
1. Proposer un algorithme qui demande deux entiers
quelconques à l’utilisateur puis calcule et affiche la
somme des deux nombres sous la forme suivante :
Concepts de
entier1 + entier2 = resultat
base
Applications Par exemple, si l’utilisateur les entiers 2 et 8,
l’algorithme devra afficher à l’écran :
2 + 8 = 10
Problème 3:
P Q P OU Q P Q P ET Q
Concepts de V V V V V V
base V F V V F F
La logique F V V F V F
F F F F F F
SI (condition)
ALORS { condition est VRAIE }
Les structures bloc d’instructions 1
de contrôle SINON { <condition> est FAUSSE}
SI ALORS … FINSI bloc d’instructions 2
FINSI
NB : Le bloc SINON est facultatif}
Mode de fonctionnement
SI (condition)
ALORS
instructions_1
SINON
DEBUT instructions_2
Les structures FINSI
de contrôle
SI ALORS … FINSI
vraie
condition instructions_1
fausse
instructions_2
FIN
Exemples d’utilisation
SI (A > B) max = B
Les structures ALORS SI (A > B)
de contrôle max = A ALORS
SI ALORS … FINSI SINON max = A
max = B FINSI
FINSI
Les structures ▪ Cette structure s’utilise généralement lorsque la
condition porte sur des intervalles de valeurs continues.
de contrôle
SI ALORS … FINSI
1. Problème 4 : Proposer un algorithme qui dit si un
nombre entier fournis par l’utilisateur est pair ou impair.
Les structures
de contrôle
2. Problème 5 : Proposer un algorithme qui dit si deux
Applications nombres réels fournis par l’utilisateur sont égaux ou
non.
Syntaxe d’utilisation
SELON (variable_a_evaluer)
CAS valeur_1 : instructions_1
Les structures CAS valeur_2 : instructions_2
de contrôle …
SELON … CAS … CAS valeur_n : instructions_n
DEFAUT : instructions_par_defaut
FINSELON
Mode de fonctionnement
SELON (valeur)
CAS cste_1 : instructions_1
CAS cste_2 : instructions_2
DEFAUT : instruction_par_defaut
DEBUT FINSELON
Les structures
de contrôle vraie
SELON … CAS … valeur == cste_1 instruction_1
fausse
vraie
valeur == cste_2 instruction_2 FIN
fausse
instruction_par_defaut
Exemples d’utilisation
Par exemple …
1. FAIRE … TANTQUE …
Les structures 2. TANTQUE … FAIRE … FINTQ
3. POUR … FINPR
de contrôle
EN BOUCLE
▪ Chacune d’elles s’utilisent également dans un contexte
bien précis.
Syntaxe d’utilisation
FAIRE
instructions
Les structures
TANTQUE ( condition )
de contrôle
FAIRE … TANTQUE
instructions est exécuté au moins une fois puis est répété
tant que condition est vérifiée
Mode de fonctionnement
FAIRE
instructions
TANTQUE (condition)
DEBUT
Les structures
de contrôle instructions
FAIRE … TANTQUE vraie
condition
fausse
FIN
Exemples d’utilisation
Par exemple …
I = 0
FAIRE
Les structures ECRIRE ( I, " " )
de contrôle I = I + 1
FAIRE … TANTQUE {instruction modifiant la condition pour la
rendre FAUSSE à un certain moment}
TANTQUE ( I < 10 )
{Contrôle effectué après la première exécution}
Les structures
de contrôle condition
TANTQUE … FAIRE
vraie
instructions
fausse
FIN
Exemples d’utilisation
Par exemple …
I = 0
{Contrôle effectué avant l’entrée dans la boucle}
Les structures TANTQUE ( I < 10 ) FAIRE
ECRIRE ( I, " " )
de contrôle
TANTQUE … FAIRE I = I + 1
{instruction modifiant la condition pour la
rendre FAUSSE à un certain moment}
FINTQ
vraie
var = var + pas
fausse instructions
FIN
Exemples d’utilisation
Par exemple …
Les vecteurs
Le tableau notes dispose de 10 cellules
accessibles par leur indices respectifs allant de 0
à 9.
Le contenu ? ? ? ? ? ? ? ? ? ?
Les indices 0 1 2 3 4 5 6 7 8 9
Affectation dans un vecteur
Le contenu ? ? ? 17.5 ? ? ? ? ? ?
Les indices 0 1 2 3 4 5 6 7 8 9
Affectation dans un vecteur
Le contenu ? ? ? ? ? ? ? 8.5 ? ?
Les indices 0 1 2 3 4 5 6 7 8 9
Initialisation d’un vecteur
Les Tableaux
POUR i = 0 JUSQU’À 9 FAIRE
Les vecteurs LIRE (notes [i])
FINPR
Le contenu 0 0 0 0 0 0 0 0 0 0
Les indices 0 1 2 3 4 5 6 7 8 9
Déclaration d’une matrice
0 1 2 3 4
0 ? ? ? ? ?
1 ? ? ? 8 ?
2 ? ? ? ? ?
Affectation dans un vecteur
0 1 2 3 4
0 ? ? ? ? ?
1 ? ? ? ? ?
2 6 ? ? ? ?
Initialisation d’une matrice
0 0 0 0 0 0
1 0 0 0 0 0
2 0 0 0 0 0
Les Tableaux Problème 10 : Proposez un algorithme qui demande à
l’utilisateur une série de 20 nombres réels puis compte
Applications puis les affiche dans l’ordre inverse de leur saisie.
Les sous-
algorithmes
« Diviser pour mieux règner »
Les sous-algorithmes
Intérêt 3
La localisation des actions à
executer et des variables
utilisées.
Les fonctions
Les sous-
algorithmes
Les types
Les procédures
Les fonctions – Définitions
{précondition : denominateur != 0}
{rôle : divise deux nombres et retourne le résultat}
REEL FONCTION diviser (DONNEE : REEL num, REEL den)
DEBUT
VARIABLE resultat : REEL
RETOURNER resultat
FIN
Les fonctions – Exemple
ALGORITHME
{Cet algorithme permet d’effectuer la division de deux nombres réels}
{précondition : denominateur != 0}
{rôle : divise deux nombres et retourne le résultat}
REEL FONCTION diviser (DONNEE : REEL num, REEL den)
DEBUT
VARIABLE resultat : REEL
resultat = num / den
RETOURNER resultat
FIN
DEBUT
VARIABLE r : REEL
r = diviser (7, 8)
ECRIRE ("Résultat = ", r)
FIN
Les procédures – Définitions
Une procédure est une routine avec laquelle les résultats calculés
sont obtenus par l’intermédiaire de paramètres formels résultats
nommés dans son en-tête.
Les procédures – Syntaxe
{précondition : aucune}
{rôle : Affiche un message de salutation selon le genre}
PROCEDURE saluer (DONNEE : CHAR genre)
DEBUT
SELON (genre)
CAS 'F': ECRIRE ("Bonjour madame/mademoiselle !")
CAS 'H': ECRIRE ("Bonjour monsieur !")
FINSELON
FIN
Les procédures – Exemple 1
ALGORITHME
{Cet algorithme permet d’effectuer la division de deux nombres réels}
{précondition : aucune}
{rôle : Affiche un message de salutation selon le genre}
PROCEDURE saluer (DONNEE : CHAR genre)
DEBUT
SELON (genre)
CAS 'F': ECRIRE ("Bonjour madame/mademoiselle !")
CAS 'H': ECRIRE ("Bonjour monsieur !")
FINSELON
FIN
DEBUT
saluer ('F')
FIN
Les procédures – Exemple 2
{précondition : aucune}
{rôle : renvoye les voisins gauche et droite d’un entier}
PROCEDURE voisins (DONNEE: ENTIER n, RESULTAT: ENTIER g, ENTIER d)
DEBUT
g = n – 1
d = n + 1
FIN
Les procédures – Exemple 2
ALGORITHME
{Cet algorithme permet d’effectuer la division de deux nombres réels}
{précondition : aucune}
{rôle : renvoye les voisins gauche et droite d’un entier}
PROCEDURE voisins (DONNEE: ENTIER n, RESULTAT: ENTIER gauche, ENTIER droite)
DEBUT
gauche = n – 1
droite = n + 1
FIN
DEBUT
VARIABLE inferieur, superieur : ENTIER
voisins (7, inferieur, superieur)
ECRIRE (inferieur, " < 7 < ", superieur)
FIN
Problème 11 : Proposer une routine qui prend en
paramètre un nombre entier puis retourne 1 si le
nombre est pair et 0 si le nombre est impair. Réécrire
Les Routines la solution du problème 4 en utilisant cette routine.
Applications
Problème 12 : Proposer une routine qui renvoie le
minimum et le maximum de deux nombres réels
fournis en paramètres.
FIN