Vous êtes sur la page 1sur 115

Algorithmique

Concepts fondamentaux des algorithmes


Présenté par Ghislain AKINOCHO
Introduction
Qu’est ce que l’algorithmique ?
Introduction  « Tout problème nécessite une solution pour le résoudre. »
Définition
 Ensemble de règles ET
Introduction  Suite d’instructions exécutées dans un ordre bien
défini en vue :
Définition  de résoudre un problème donné.
 d’obtenir un résultat souhaité.
Les informations fournies en entrée de
DONNEES l’olgorithme pour lui permettre d’effectuer son
traitement

Introduction ALGORITHME La solution : La définition détaillée du traitement


qui résoud le problème.
Définition

Les résultats produits à la fin du traitement, en


RESULTATS
sortie de l’algorithme
 La maîtrise de l’algorithmique requiert 4 éléments
essentiels :

1. La connaissance des règles fondamentales et leurs


contextes d’utilisation
Introduction
Skills 2. Une bonne méthodologie

3. De la rigueur

4. Une très bonne intuition


Un algorithme doit avoir des instructions
Un algorithme doit avoir 0 ou
détaillées, indépendantes de tout code de
plusieurs entrées bien définies.
programmation.

Entrée Indépendance

Un algorithme doit avoir une


ou plusieurs sorties bien Les algorithmes doivent
Introduction définies correspondant aux
attentes.
se terminer après un
nombre fini d'étapes.
Devrait être réalisable avec
les ressources disponibles.
Caractéristiques
Sortie Finitude Faisabilité

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

La réflexion algorithmique (Analyse) : Cette étape permet au


concepteur de :
1. de comprendre le problème pour lequel il doit trouver
une solution,
2. d’identifier les données et les résultats attendus et
3. de choisir les outils qu’il utilisera pour écrire son
algorithme
 La réflexion algorithmique (encore appelée phase
d’analyse) consiste à extraire de l’énoncé du problème
les éléments de modélisation.

▪ Quel est le but du programme (traitement à


réaliser)
Introduction ▪ Quelles sont les informations nécessaires à la
Analyse résolution du problème ? sous quelles formes sont-
elles requises ?
▪ Quels sont les résultats attendus ? sous quelles
formes sont-elles restituées ?
▪ Quelle est la démarche à adopter ?
▪ Quels sont les outils à utiliser ?
Les concepts de
base
Les variables – Les instructions d’E/S – Les types de
données – Les opérateurs – La logique
 Les éléments essentiels qui constituent le
fondement des algorithmes sont les suivants :
Concepts de
base  Les DataTypes (type de données)
Datatypes
Variables  Les Variables
Instructions E/S
 Les Instructions d’Entrées/Sorties (E/S)
 Quatre types de données sont principalement
manipulées en algorithmique :

 ENTIER : C’est le type nombre entier correspondant à


l’ensemble des entiers relatifs.
Concepts de
base  REEL : C’est le type réel correspondant à l’ensemble IR.

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).

 CHAINE : C’est le type chaîne de caractères.


 Les variables sont des conteneurs d’informations.

Concepts de  Les données reçues par l’algorithme sont stockées


base dans ces conteneurs.
 Les résultats produits par l’algorithme sont
Variables également stockées dans ces conteneurs.
 Leur contenu est susceptible d’évoluer, de varier
tout le long de l’algorithme
 En informatique, ces conteneurs représentent des
zones mémoires allouées dans la mémoire vive de
Concepts de l’ordinateur.

base  Au lancement du programme, elles servent à


Variables recevoir des informations d’un type bien défini.
 Durant l’exécution du programme, elles permettent
de les manipuler (lire ou modifier leur valeur)
 La déclaration de la variable est le point d’entrée de
son cycle de vie.

 En effet, la variable doit toujours être déclarée avant


sa première utilisation.
Concepts de
base  Cette déclaration permet :
 de lui attribuer un nom par lequel elle sera invoquée
Variables tout le long de l’algorithme.
 de définir le TYPE d’informations qu’elle devra contenir
durant toute son existence
 de définir implicitement la taille de la zone mémoire qui
lui sera allouée dans la mémoire vive.
 Formalisme de déclaration d’une variable

Concepts de VARIABLE nomDeLaVariable : TYPE


base
Variables  où TYPE peut être soit ENTIER, REEL, CHAR ou CHAINE
selon le type d’information qu’elle est appelée à
recevoir.
 Quelques exemples de déclaration d’une variable :

VARIABLE age : ENTIER


Concepts de  Ceci est une déclaration d’une variable age de type ENTIER
base  Elle ne devra contenir que des données de type ENTIER

Variables
VARIABLE uneVariable, uneAutre, encoreUne : ENTIER
VARIABLE nom, prenom : CHAINE
 Une des principales utilisations d’une variable est
l’opération d’affectation.

Concepts de  L’affectation d’une valeur à une variable consiste à


écrire dans la zone mémoire référencée par le nom de
base la variable.
Variables
 Important : « On ne doit affecter à une variable
qu’une valeur correspondant au type défini pour la
variable lors de sa déclaration. »
 Syntaxe de l’affectation
nomDeLaVariable = valeur

Concepts de où valeur peut être une constante, une autre variable ou


base encore le résultat d’une opération arithmétique.

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

Concepts de où valeur peut être une constante, une autre variable ou


base encore le résultat d’une opération arithmétique.

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.

Concepts de  A la fin du traitement, l’algorithme doit restituer un


base résultat (à qui ?)

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.

L’utilisateur fournit les données

L’ordinateur restitue les résultats

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

Concepts de  Cette instruction algorithmique instruit l’ordinateur


de réaliser les actions suivantes :
base 1. attendre que l’utilisateur saisisse une information
Entrées / Sorties (ici un entier) au clavier et la valide (en appuyant
sur la touche entrée du clavier)
2. récupérer l’entier qui vient d’être saisi par
l’utilisateur et enfin
3. l’enrégistrer dans la variable age
 L’instruction ECRIRE permet d’afficher aussi bien le
contenu d’une variable qu’une simple information ou
Concepts de les deux à la fois sur une sortie standard (l’écran par
base exemple).
Entrées / Sorties
 Elle correspond à l’instruction de Sortie

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.

ECRIRE ("Vous avez ", age, " 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

Conception  la décomposition en sous-problèmes est également


possible.
4
Concepts de  La restitution des résultats marque la fin du processus
base et consiste à imprimer à l’écran de l’ordinateur les
résultats du traitement.
Conception
Concepts de  Considérons le problème suivant : « Proposer un
base algorithme qui calcule puis affiche la somme de deux
nombres réels fournis par l’utilisateur »
Exemple complet
Exemple d’algorithme complet

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

somme = x + y Traitement : Somme des deux réels

ECRIRE ( "Leur somme donne : ", somme ) Restitution des


résultats
FIN
1. Il faut avoir une écriture rigoureuse :
 respecter la casse des mots clés
 utiliser une nomenclature appropriée pour les
identificateurs (nom de fonction, variables, etc …)

2. Il faut avoir une écriture soignée :


Concepts de  respecter l’indentation
base  privilégier l’écriture d’une instruction par ligne
Règles d’écriture
3. Il est important de commenter son algorithme

4. Il existe plusieurs solutions algorithmiques à un


problème posé. Il faut donc rechercher l’efficacité
(performant et optimal).
Problème 1 :
1. Une boutique de vente de produits vous demande
de lui implémenter un programme informatique
permettant d’afficher les informations suivantes
sur un produit :
o La TVA (Taxe sur la Valeur Ajoutée) et
Concepts de o Le prix TTC (Toute Taxe Comprise)
base 2. Le prix hors taxe du produit est fourni par
Applications l’utilisateur.
3. Le taux de la TVA est fixé à 18%

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:

1. Proposer un algorithme qui demande à


l’utilisateur son nom, son prenom, son age, sa
date et son lieu de naissance puis affiche une
phrase à l’écran qui le présente.

Concepts de  Par exemple l’ordinateur devra afficher le texte


suivant :
base
Applications « Bonjour Mr/Mme Joseph NDIAYE, vous êtes né(e) le
10-Octobre-1981 à Thies. »

 si l’utilisateur a saisi les informations suivantes :


nom = NDIAYE, prenom = Joseph, lieu de
naissance = Thies et date de naissance = 10-
Octobre-1981
 Les opérateurs arithmétiques et logiques sont très
souvent utilisés en algorithme pour manipuler et
évaluer les variables.

Concepts de  Les opérateurs arithmétiques


base + : Addition
- : Soustraction
Les opérateurs
* : Multiplication
/ : Division Euclidienne
% : Modulo
 Les opérateurs logiques
ET : Et logique
OU : Ou logique
>= : Supérieur ou égal à
Concepts de <= : Inférieur ou égal à
base == : Egal
!= : Différent de
Les opérateurs
> : Supérieur à
< : Inférieur à
! : Non
 Une proposition est un énoncé qui peut être vrai ou
faux. on dit alors que les deux valeurs de vérité
Concepts de d’une proposition sont « vrai » et « faux ».
base
La logique  A partir d’une ou plusieurs propositions, on peut en
construire d’autres.
 Négation d’une proposition
Concepts de  Si P est une proposition on définit sa négation,
notée !P en algorithmique, à partir de la table
base de vérité suivante :
La logique
P !P
V F
F V
▪ Les connecteurs logiques communément appelés :
opérateurs logiques
▪ Si P et Q sont deux propositions,
▪ On peut définir les propositions suivantes : « P OU Q »
et « P ET Q » par les tables de vérités ci-dessous :

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

▪ On peut noter que la proposition « P OU Q » est fausse


si et seulement si P est fausse et Q fausse alors que la
proposition « P ET Q » est vraie si et seulement P est
vraie et Q vraie.
Les structures
de contrôles
Les branchements - Les itérations
▪ Les structures de contrôles (encore appelées structures
conditionnelles) permettent, dans l’algorithme de poser
des conditions sur l’exécution de certaines instructions.
Les structures
de contrôle ▪ Il existe deux types de structures conditionnelles
▪ Les structures conditionnelles simples : Les branchements
▪ Les structures conditionnelles en boucle : Les itérations
Les structures ▪ La particularité des structures conditionnelles simples
de contrôle est qu’elles exécutent UNE et UNE seule fois le bloc
d’instructions lorsque la condition évaluée est VRAIE.
SIMPLES
▪ Il existe deux structures de conditionnelles simples

Les structures 1. SI ALORS SINON FINSI


2. SELON CAS DEFAUT FINSELON
de contrôle
SIMPLES
▪ Chacune d’elles s’utilisent dans un contexte bien précis.
Syntaxe d’utilisation

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

Par exemple … Ou encore …

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 …

ECRIRE ("Entrez le numero du jour :")


LIRE (numeroDuJour)
Les structures
SELON ( numeroDuJour )
de contrôle CAS 1 : ECRIRE (" Lundi ")
SELON … CAS … CAS 2 : ECRIRE (" Mardi ")
CAS 3 : ECRIRE (" Mercredi ")
CAS 4 : ECRIRE (" Jeudi ")
CAS 5 : ECRIRE (" Vendredi ")
CAS 6 : ECRIRE (" Samedi ")
CAS 7 : ECRIRE (" Dimanche ")
DEFAUT : ECRIRE (" Jour inconnu ")
FINSELON
Les structures ▪ Cette structure est appropriée et recommandée pour
l’évaluation des valeurs discrètes.
de contrôle
SELON … CAS …
Les structures 1. Problème 6 : Proposer un algorithme qui affiche la
forme littérale d’un chiffre fourni par l’utilisateur. Par
de contrôle exemple si l’utilisateur entre le chiffre « 3 », l’ordinateur
Applications devra afficher « trois » ainsi de suite …
Les structures ▪ La particularité des structures conditionnelles en boucle
de contrôle est qu’elles exécutent le bloc d’instructions autant de
fois que la condition évaluée est VRAIE.
EN BOUCLE
▪ Il existe trois structures conditionnelles en boucle

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}

NB : Toujours s’assurer que le bloc d’instructions propose une


instruction modifiant la condition au risque de se retrouver
enfermé dans une boucle infinie.
▪ Cette structure est appropriée et recommandée lorsque
Les structures le bloc d’instructions doit être exécuté au moins une fois
quelle que soit la condition et que le nombre de tours
de contrôle n’est pas connu.
FAIRE … TANTQUE
1. Problème 7 : Proposer un algorithme qui demande à
Les structures l’utilisateur un nombre positif ou nul. Si l’utilisateur
de contrôle saisit un nombre négatif, l’ordinateur devra lui
redemander un nombre et cela tantque l’utilisateur ne
Applications saisira pas la valeur attendue.
Syntaxe d’utilisation

TANTQUE ( condition ) FAIRE


instructions
Les structures
FINTQ
de contrôle
instructions est exécuté tant que condition est vérifiée
TANTQUE … FAIRE
instructions peut ne jamais être exécuté si la condition est
fausse dès le départ.
Mode de fonctionnement
TANTQUE (condition) FAIRE
instructions
FINTQ
DEBUT

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

NB : Toujours s’assurer que le bloc d’instructions propose une


instruction modifiant la condition au risque de se retrouver enfermé
dans une boucle infinie.
Les structures
▪ Cette structure est appropriée et recommandée lorsque
de contrôle le bloc d’instructions peut ne jamais être exécuté.
TANTQUE … FAIRE
Les structures 1. Problème 8 : Proposer un algorithme qui demande un
de contrôle nombre réel positif à l’utilisateur puis détermine une
approximation de sa racine carrée.
Applications
Syntaxe d’utilisation

POUR var = debut JUSQU’À fin FAIRE PAR pas


Les structures instructions
de contrôle FINPR

POUR … instructions est exécuté fin - debut + 1 fois !!


La section PAR pas est facultative lorsque le pas = 1
Mode de fonctionnement

POUR var = 1 JUSQU’À nb_tours FAIRE PAR pas


instructions
FINTQ

Les structures DEBUT


de contrôle
POUR … var <= nb_tours

vraie
var = var + pas

fausse instructions

FIN
Exemples d’utilisation

Par exemple …

POUR I = 0 JUSQU’A 10 FAIRE


ECRIRE ( I, " " )
Les structures FINPR
de contrôle NB : La variable I est implicitement incrémentée, par conséquent
POUR … l’instruction I = I + 1 n’est plus nécessaire.
Les structures ▪ Cette structure est appropriée et recommandée lorsque
de contrôle le nombre de fois que doit être exécuté le bloc
d’instructions est connu.
POUR …
 Nous savons maintenant COMMENT utiliser les trois
structures conditionnelles en boucle. Il est encore plus
important de savoir QUAND les utiliser.
 Le tableau ci-dessous fait la synthèse sur les contextes
d’utilisation de chacune d’elles.

Le nombre de fois que doit


Le nombre de fois que doit être exécuté le bloc
Les structures d’instructions N’EST PAS CONNU.
être exécuté le bloc
d’instructions EST CONNU
de contrôle Le bloc d’instructions doit Le bloc d’instructions
être exécuté AU MOINS une peut ne jamais être
Synthèse fois. exécuté POUR …
FAIRE TANTQUE … TANTQUE … FAIRE
Les structures
1. Problème 9 : Proposer un algorithme qui affiche tous les
de contrôle nombres impairs compris entre 0 et 100.
Applications
Les Tableaux
Les vecteurs - Les matrices
 Les tableaux définissent un nouveau mode de
structuration des données.

 Ce sont des variables pouvant stocker plusieurs


informations de type élémentaire ou non.
Les Tableaux
 Ils sont généralement utilisés pour effectuer un
traitement sur un ensemble d’informations de
même nature. (Calcul de moyenne, Tri, Recherche,
Sommation, etc…)
Toutes les informations
du Tableau sont de
même TYPE que celui
défini à sa déclaration.
Les Tableaux
Les caractéristiques

La taille du Tableau est


connue à sa déclaration.
 On distingue deux types de tableaux
Les Tableaux
Les caractéristiques  Les tableaux à une dimension (VECTEUR)
 Les Tableaux à deux dimensions (MATRICE)
 Déclaration d’un vecteur

Les Tableaux  VARIABLE nomDuVecteur [taille] : TYPE


Les vecteurs

 Les cellules du tableau sont indicées de 0 à taille - 1


 Exemple de déclaration d’un vecteur

Les Tableaux  VARIABLE notes [10] : REEL

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

Les Tableaux  DIRECTE


Les vecteurs  notes [3] = 17.5

 La valeur 17.5 est stockée dans la 4ème cellule du


vecteur (indice 3)

Le contenu ? ? ? 17.5 ? ? ? ? ? ?
Les indices 0 1 2 3 4 5 6 7 8 9
 Affectation dans un vecteur

Les Tableaux  INDIRECTE


Les vecteurs  LIRE (notes [7])

 La valeur saisie par l’utilisateur sera stockée dans


la 8ème cellule du vecteur (indice 7)

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

Les Tableaux  VARIABLE nomDeLaMatrice [nL][nC] : TYPE


Les matrices
 Ce tableau dispose de nL lignes (de 0 à nL – 1) et de nC
colonnes (de 0 à nC – 1)
 Exemple de déclaration d’une matrice

Les Tableaux  VARIABLE notes [3][5] : REEL


Les matrices  Le tableau notes dispose de 3 lignes accessibles
par leurs indices allant de 0 à 2 et de 5 colonnes
accessibles par leurs indices allant de 0 à 4.

0 1 2 3 4  Les indices des colonnes


0
? ? ? ? ?
Les indices →
1
des lignes ? ? ? ? ?
2
? ? ? ? ?
 Affectation dans une matrice

Les Tableaux  DIRECTE


 notes [1][3] = 8
Les matrices
 La valeur 8 est stockée dans la cellule située à la
4ème colonne (indice 3) de la 2ème ligne (indice 1)
de la matrice.

0 1 2 3 4

0 ? ? ? ? ?
1 ? ? ? 8 ?
2 ? ? ? ? ?
 Affectation dans un vecteur

Les Tableaux  INDIRECTE


 LIRE (notes [2][0])
Les matrices
 La valeur saisie par l’utilisateur sera stockée dans
la cellule située à la 1ère colonne (indice 0) de la
3ème ligne (indice 2) de la matrice

0 1 2 3 4

0 ? ? ? ? ?
1 ? ? ? ? ?
2 6 ? ? ? ?
 Initialisation d’une matrice

 POUR i = 0 JUSQU’À 2 FAIRE


Les Tableaux POUR j = 0 JUSQU’À 4 FAIRE
Les matrices
LIRE (notes [i][j])
FINPR
 FINPR 0 1 2 3 4

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

 Un problème complexe peut-être diviser en sous-problèmes


moins complexes.

 La solution à chaque sous-problème est appelé sous-algorithme.

 L’intégration de l’ensemble de ces sous-algorithmes dans un


algorithme dit principal permet de résoudre le problème initial.
Les sous-algorithmes

Problème initial complexe Solution


sous-problème 1 ss-algorithme 1
moins complexe
sous-problème 2
ss-algorithme 2
moins complexe
sous-problème 3
ss-algorithme 3
moins complexe
sous-problème 4
ss-algorithme 4
moins complexe
Les sous-algorithmes

 Les sous-algorithmes sont aussi connues sous le nom de


routines.

 La déclaration d’une routine permet d’associer un nom à une


suite d’énoncés (ou suite d’instructions), et d’utiliser ce nom
comme abréviation chaque fois que la suite apparaît dans le
programme.

 Cette utilisation du nom à la place de la suite d’énoncés s’appelle


un appel de routine.
Intérêt 1
Réduction de la taille du
code des programmes

Les sous- Intérêt 4 Intérêt 2


algorithmes Paramétrage des intructions Structuration logique de la
de la routine. solution
Les intérêts

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

 Les fonctions sont assez proches de la notion mathématique


correspondante.

 D’une part, une fonction dispose d’arguments qui


correspondent à des informations qui lui sont transmises.

 D’autre part, elle fournit un résultat (valeur de retour) à la fin


du traitement qu’elle réalise.
Les fonctions – Syntaxe

{précondition : condition à remplir pour utiliser la fonction}


{rôle : traitement effectué par la fonction}
TYPE FONCTION nomDeLaFonction (DONNEE : typeParam_i param_i, …)
DEBUT
{Zone de déclaration des objets formels (variables locales)}

{Bloc d’instructions du corps de la fonction}


RETOURNER valeurDeRetour
FIN
Les fonctions

 L’instruction RETOURNER permet de :

❑ Mettre FIN à l’exécution du programme ET

❑ Renvoyer une valeurDeRetour au module ayant exécuté l’appel de la


fonction.
Les fonctions – Exemple

{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
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

 Les procédures élargissent la notion de fonction. La procédure ne


possède pas de valeur de retour.

 Lorsqu’une routine doit renvoyer plusieurs résultats (mais aussi


aucun), il faut utiliser la notion de procédure.

 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 : condition à remplir pour utiliser la procédure}


{rôle : traitement effectué par la procédure}
PROCEDURE nomDeLaProcedure (DONNEE : typeParam_i param_i, …,
RESULTAT : typeResultat_i resultat_i, …)
DEBUT
{Zone de déclaration des objets formels (variables locales)}

{Bloc d’instructions du corps de la fonction}


{NB: L’instruction RETOURNER n’existe pas ici.}
FIN
Les procédures – Exemple 1

{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

Vous aimerez peut-être aussi