0% ont trouvé ce document utile (0 vote)
4 vues28 pages

Étude des blocs en algorithmes

Transféré par

elogemaximesohou
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues28 pages

Étude des blocs en algorithmes

Transféré par

elogemaximesohou
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Etude des blocs

Eugène C. Ezin

1 Enseignant-Chercheur

Université d’Abomey-Calavi.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 1 / 27


Définition

Définition
Un bloc encore appelé fonction est une unité autonome d’un algorithme.

On distingue quatre différents types de blocs à savoir:


les blocs qui retournent une valeur et ne prennent aucun paramètre en
entrée;

les blocs qui retournent une valeur et qui prennent des paramètres en
entrée;

les blocs qui ne retournent aucune valeur et ne prennent aucun


paramètre en entrée;

les blocs qui ne retournent aucune valeur et prennent des paramètres


en entrée.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 2 / 27


Caractéristisation des blocs

Il existe un bloc qu’on appelle bloc principal. Il est unique dans un


algorithme. Ainsi donc, les algorithmes présentés dans le deuxième
chapitre sont des blocs principaux.

Un bloc peut faire appel à lui-même dans un algorithme: on parle


d’appel récursif.

Aucun bloc ne peut faire appel au bloc principal dans un algorithme.

Le bloc principal peut faire appel à n’importe quel autre bloc dans un
algorithme.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 3 / 27


Déclaration et définition d’un bloc

Il y a deux notions importantes à ne pas confondre lorsqu’on utilise les


blocs. Il s’agit de la déclaration et de la définition d’un bloc.
La déclaration d’un bloc consiste à préciser le type de retour, le nom
du bloc et les types des arguments du bloc.

La définition d’un bloc consiste à écrire les instructions requises pour


la tâche dévolue au bloc. On met en exergue dans ce cas le type de
retour, les paramètres en entrée et leurs types.

Important
Il est important de déclarer et de définir un bloc pour l’utiliser dans un
algorithme.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 4 / 27


Syntaxe de déclaration d’un bloc

La syntaxe de déclaration d’un bloc est la suivante:


Fonction nomBloc (type1, type2) Retourne type;
Déclarer une fonction qui fait la somme de deux entiers.
Fonction somme (Entier, Entier) Retourne Entier;

Déclarer une fonction qui calcule la moyenne de deux entiers.


Fonction moyenne (Entier,Entier) Retourne Reel;

Déclarer une fonction qui affiche la somme de deux entiers.


Fonction affiche(Entier,Entier) Retourne Vide;

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 5 / 27


Le type Vide

Le type Vide est un type spécial qui est utilisé dans deux cas:

Lorsqu’un bloc ne retourne aucune information, on utilise Vide;

Lorsqu’un bloc ne prend aucun paramètre en entrée, on utilise


également Vide.

Retenons
Le type Vide est un type spécial qui ne traduit pas la nature d’une
information comme c’est le cas avec Entier, Caractere, Reel, Chaine, et
Booleen.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 6 / 27


Syntaxe pour la définition d’un bloc

La syntaxe de définition d’un bloc est la suivante:

Fonction nomBloc (type1, type2) Retourne type


Variables: identif1, identif2: type
Debut
instruct1;
instruct2;
Fin

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 7 / 27


Recursivité

Enoncé
Un bloc est récursif lorsqu’il fait appel à lui-même lors de son exécution.

Les bloc récursifs sont gourmand en mémoire.

Il est parfois très commode malgré cette limite de recourir aux blocs
récursifs surtout le cas des parcours des graphes.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 8 / 27


Exemple

Enoncé
Proposer la déclaration et la définition du bloc de factoriel d’un nombre
entier.

Prototype de factoriel()
Fonction factoriel (Entier) Retourne Entier;

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 9 / 27


Exemple (suite)

Définition de factoriel()
Fonction factoriel (Entier a) Retourne Entier
Variable: fact: Entier;
Debut
fact ←− 1;
Si (n = 0) Alors
fact ←− 1;
Sinon else
fact ←− fact * factoriel (n-1); FinSi
Retourne fact;

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 10 / 27


Structure d’un algorithme avec des blocs

La syntaxe d’un algorithme qui utilise les blocs se présente comme suit:
Syntaxe d’un algorithme avec blocs
Algorithme nomAlgorithme
Variables: identif1, identif2: type;
Constantes: cste1, cste2: type;
Fonction nomBloc(type1, type2) Retourne type;
Debut
instructions;
nomBloc1(param1,param2);
Fin
...

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 11 / 27


Structure d’un algorithme avec des blocs (suite)

Syntaxe d’un algorithme avec blocs (suite)


Fonction nomBloc(type1 a, type b) Retourne type
Variables: identificateur1, identificateur2: type
Debut
instruct1;
instruct2;
Fin

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 12 / 27


Vocabulaire

L’algorithme qui fait appel aux blocs est appelé algorithme principal
ou bloc principal;

Les différents blocs sont appelés fonctions et ils sont appelés dans le
bloc principal;

Seul le bloc principal peut faire appel aux autres blocs;

Aucun bloc ne peut faire appel au bloc principal.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 13 / 27


Exercice

Enoncé
En utilisant les blocs, proposer un algorithme qui calcule la somme et le
quotient de deux entiers entrées au clavier.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 14 / 27


Exercice

Enoncé
En utilisant les blocs, proposer un algorithme qui calcule la somme et le
quotient de deux entiers entrées au clavier.

On a trois blocs dans cet énoncé à savoir:


le bloc principal;
le bloc pour la somme;
et le bloc pour le quotient.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 14 / 27


Solution

Algorithme calcul
Variables: a, b, som, quot: Entier;
Fonction somme (Entier, Entier) Retourne Entier;
Fonction quotient (Entier, Entier) Retourne Reel;
Debut
Ecrire(”Tapez deux entiers: ”);
Lire(a,b);
som ←− somme(a,b);
quot ←− quotient (a,b);
Ecrire (”La somme et le quotient sont:”, som, quot);
Fin

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 15 / 27


Suite de la solution

Fonction somme (Entier a, Entier b) Retourne Entier


Variable : s: Entier;
Debut
s ←− a +b;
Retourne s;
Fin

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 16 / 27


Suite et fin de la solution

Fonction quotient (Entier a, Entier b) Retourne Reel


Variable : s: Entier;
Debut
Si (b 6= 0) Alors
s ←− a +b;
Sinon
Debut
Ecrire(”Division par zero n’est pas autorisé.”);
s ←− 9999999;
Fin
FinSi
Retourne s;
Fin
La valeur 9999999 est choisie juste pour traiter le cas de 0.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 17 / 27


Exercice

Enoncé
Proposer une fonction qui fait la somme de 20 entiers d’un tableau.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 18 / 27


Solution
Definition du bloc sommeVingtTab()
Fonction sommeTab(Tableau t:Entier) Retourne Entier
Variables:i, s: Entier;
Debut
s ←− 0;
Repeter ∀ i ∈ [0, dim − 1]
s ←− s + t[i];
Retourne s;
Fin

Remarques
Cette fonction ne fait que la soomme des vingt premiers éléments
d’un tableau.
Si le nombre d’éléments du tableau est plus petit que 20, le calcul
n’est pas possible.
Si le nombre d’éléments du tableau dépasse 20, la fonction ne fait que
Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 19 / 27
Exercice

Enoncé
Proposer une fonction qui fait la somme des entiers d’un tableau de n
éléments.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 20 / 27


Solution

Definition du bloc sommeTab()


Fonction sommeTab(Tableau t:Entier, Entier dim) Retourne Entier
Variables:i,s: Entier;
Debut
s ←− 0;
Repeter ∀ i ∈ [0, dim − 1]
s ←− s + t[i];
Retourne s;
Fin

Exemples d’appels
a ←− sommeTab(q, 10);
b ←− sommeTab(p, 25);

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 21 / 27


Recursivité

Enoncé
Un bloc est récursif lorsqu’il fait appel à lui-même lors de son exécution.

Les bloc récursifs sont gourmands en mémoire.

Il est parfois très commode malgré cette limite de recourir aux blocs
récursifs surtout dans le cas des parcours des graphes.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 22 / 27


Exemple

Enoncé
Proposer la déclaration et la définition du bloc de factoriel d’un nombre
entier.

Prototype de factoriel()
Fonction factoriel (Entier) Retourne Entier;

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 23 / 27


Exemple (suite)

Définition de factoriel()
Fonction factoriel (Entier a) Retourne Entier
Variable: fact: Entier;
Debut
fact ←− 1;
Si (n = 0) Alors
fact ←− 1;
Sinon
fact ←− fact * factoriel (n-1);
FinSi
Retourne fact;

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 24 / 27


Forme itérative

Définition de factoriel()
Fonction factoriel (Entier n) Retourne Entier
Variable: fact: Entier;
Debut
fact ←− 1;
Repeter ∀i ∈ [1, n]
fact ←− fact *i;
Retourne fact;
Fin

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 25 / 27


Exercices à faire

Proposer la définition une fonction qui fait la somme de deux entiers.

Proposer la définition d’une fonction qui fait la division de deux


entiers.

Proposer une fonction qui détermine le maximum de deux réels.

Proposer une fonction qui compte le nombre de caractères d’une


chaine de caractères passée en paramètre.

Proposer une fonction qui affiche si un nombre entier passé en


paramètre est premier ou non.

Proposer une fonction qui fait la somme des éléments d’un tableau
d’entiers passé en paramètre.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 26 / 27


Conclusion

Merci pour votre attention.

Eugène C. Ezin (Université d’Abomey-Calavi) Etude des blocs 27 / 27

Vous aimerez peut-être aussi