0% ont trouvé ce document utile (0 vote)
29 vues34 pages

Cours Algorithmique

Le document présente un plan pour une leçon sur les algorithmes. Le plan introduit les algorithmes et leur histoire, puis détaille les éléments clés comme les variables, les constantes, les structures de contrôle et les fonctions.

Transféré par

Amr Bahri
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)
29 vues34 pages

Cours Algorithmique

Le document présente un plan pour une leçon sur les algorithmes. Le plan introduit les algorithmes et leur histoire, puis détaille les éléments clés comme les variables, les constantes, les structures de contrôle et les fonctions.

Transféré par

Amr Bahri
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
Vous êtes sur la page 1/ 34

03/11/2014

1 2

Plan
¾ Introduction

¾ Informatisation d’un problème : Langage algorithmique

¾ Les variables

Algorithmique ¾ Les constantes

¾ Fonctions d’entrée-sortie
TOUHTOUH Samira
¾ Les structures

Ecole Nationale des Sciences ¾ Les tableaux


Appliquées d’El Jadida ¾ Les fonctions

¾ Les fichiers

3 4

Plan
¾ Introduction I. Introduction
¾ Informatisation d’un problème : Langage algorithmique
¾ Introduction à l’algorithme
¾ Les variables

¾ Les constantes • Histoire


¾ Fonctions d’entrée-sortie Le mot algorithme vient du mot latinisé du mathématicien « Al-
Khawarismi », après la traduction du livre « kitâb- aljabr wa al-
¾ Les structures de contrôle muqâbala » par Gherardo di cremona sous le titre « Dixit Algorismi ».
¾ Les fonctions

¾ Les tableaux • Définition


Défi i i générale
é é l
¾ Le tri d’un tableau Une séquences d’instructions logique à suivre pour obtenir un résultat
donné.
¾ La recherche dans un tableau

¾ Les fichiers

1
03/11/2014

5 6

¾ L’ordre des opérations a son importance, mais dans certains cas plusieurs
ordres sont possibles.
Exemple 1 : Comment accéder à L’ENSA?
¾ Décomposer les actions trop complexes.
1. Réussir le bac
Exemple :
2. C did
Candidater
3. Passer le concours Préparer un café au lait
4. Réussir le concours
5. Déposer un dossier d’inscription 1. Préparer le café
2. Préparer le lait
3. Mélanger les deux
Exemple 2 : Préparer un café au lait
Etape élémentaire : Préparer le café
11. Préparer le café 1. Préparer
p la cafetière
2. Remplir d’eau
2. Préparer le lait 3. Mettre le filtre
3. Mélanger les deux 4. Mettre le café
5. Brancher la cafetière
6. Lancer la cafetière

7 8

En informatique :
¾ Exécuter avec a=40 et b=12
¾ Procédure de calcul bien défini qui prend en entrée une valeur, ou un ensemble de valeurs,
et qui donne en sortie une valeur, ou un ensemble de valeurs. Etape 1: a ← 40 b ← 12
Etape 2 :c ← a − b = 28
Exemple :
Etape 3 : a ← 28 b ← 12
¾ Algorithme d’Euclide Etape 4 :c ← a − b = 16

Etape 5 :a ← 16 b ← 12
Calculer le PGCD de deux entiers a et b.
Etape 6 :c ← a − b = 4

Etape 7 :a ← 12 b ← 4
1. Ordonner a et b tel que a≥b
Etape 8 :c ← a − b = 8

2. Calculer leur différence


Etape 9 :a ← 8 b ← 4
Etape 9 :c ← a − b = 4
3. Remplacer a par c c a-b
Etape 10 :a ← 4 b ← 4
Etape 11 :a = b = 4 Fin

2
03/11/2014

9 10

¾ Exemple 2

Exécuter avec a=100 et b=40

11 12

¾ Un algorithme est correct si, pour chaque instance en entrée, il se termine Plan
en produisant la bonne sortie.
¾ Introduction

¾ Un algorithme incorrect risque de ne pas se terminer pour certaines ¾ Informatisation d’un problème : Langage algorithmique
instances en entrée, voire de se terminer sur une réponse autre que celle
désirée. ¾ Les variables

¾ Algorithme
¾ Un algorithme peut être spécifié en langage humain ou en langage ¾ Les constantes
informatique. L’unique obligation est que la spécification fournisse une
description précise de la procédure de calcul à suivre. ¾ Les structures

¾ Les fonctions

3
03/11/2014

13 14

II. Langage algorithmique ¾ Le langage algorithmique est différent du langage de programmation.

Langage de programmation

Énoncé du
problème
Algorithme Programme
Langages de Langages de
bas niveau haut niveau
Liés au Langages
processeur
p évolués

Langage Langage Langage de


naturel algorithmique programmation
CC++ Java

15 16

¾ L’organigramme est un schéma fonctionnel qui présente les différentes


¾ Le langage algorithmique exprime les instructions résolvant un parties d’un algorithme les unes à la suite des autres en utilisant des
problème donné indépendamment des particularités d’un langage de symboles graphiques pour visualiser l’exécution de l'algorithme et le
programmation.
p g cheminement des données.
données

¾ En générale on utilise deux types de notations pour représenter les


algorithmes:

• L’organigramme

• Le pseudo-code

4
03/11/2014

17 18

Exemple : somme de deux nombres A et B


¾ le pseudo-code est purement conventionnel, aucune machine n’est
censée le reconnaître.

Exemple
e p e : So
Sommee de deu
deux nombres
o b es A et B

Algorithme somme_de_deux_nombres
Variables A, B, somme en entier
Début
Lire A
Lire B
somme A+B
Ecrire ‘’ La somme de A et B est : ’’, somme
¾ L’écriture d’un algorithme avec un organigramme est rapidement abandonnée. La Fin
lisibilité devient rapidement difficile pour les algorithmes assez long.

19 20

Exemple : Calculer le PGCD de a et b.


¾ Les différents éléments d’un algorithme sont :

Données :
• Données : ce qui doit être donné à l’algorithme Données a et b deux entiers positifs

• Résultats : ce que doit produire l’algorithme

• L’algorithme : les grandes étapes des traitements et calculs Algorithme

Résultats Résultat :
PGCD de a et b

5
03/11/2014

21 22

¾ Structure d’un algorithme


Exemple 1 :

Nom de l’algorithme // partie en-tête qui précise le nom de


Ecrire un algorithme qui permet d’afficher « Bonjour ».
ll’algorithme
algorithme

Déclaration des variables // partie déclaration des variables Algorithme algo-bonjour

Début // partie traitement des données Début

Algorithme (définir les actions à suivre pour résoudre un problème écrire ( ‘’bonjour‘’ );
donné)
Fin
Fin

23 24

Plan
¾ Introduction
Exemple 2 :
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui ¾ Informatisation d’un problème : Langage algorithmique
calcule et affiche le carré de ce nombre,
¾ Les
L variables
i bl

¾ Les constantes

¾ Les structures

¾ Les fonctions

¾ Les tableaux

¾ Le tri d’un tableau

¾ La recherche dans un tableau

¾ Les fichiers

6
03/11/2014

25 26

II. Les variables


¾ Déclaration et utilisation des variables (les données)

• Dans un programme informatique, on va avoir en permanence besoin de • La première chose à faire avant de pouvoir utiliser une variable est
stocker provisoirement des valeurs.
de créer la boîte et de lui donner une étiquette. Ceci se fait tout au
• Il peut s’agir de données issues du disque dur, fournies par l’utilisateur début de l’algorithme, avant même les instructions proprement
(frappées au clavier), etc.. dites. C’est ce qu’on appelle la déclaration des variables.

• Ces données peuvent être de plusieurs types des nombres, du texte, etc. Une variable est désignée par :
• Pour stocker une information au cours d’un programme, on utilise une
variable. Un nom unique qui la désigne

• P
Pour employer
l une iimage, une variable
i bl estt une b
boîte,
ît que lle programme
(l’ordinateur) va repérer par une étiquette. Un type de définition unique

• Une variable désigne un emplacement mémoire désigner par une adresse Une valeur attribuée et modifiée au cours du déroulement de
binaire qui permet de stocker une valeur.
l’algorithme.

27 28

¾ Le nom-le type-la valeur ¾ Les variables utilisées au cours de l’exécution de l’algorithme sont
déclarées après le nom de l’algorithme. Il suffit d’indiquer le nom de la
variable suivi de son type, séparés par deux points « : »,
‰ Nom d’une variable.
¾ La structure d’un algorithme (déclarant une variable nommé indice et
• Le nom d’une variable permet de l’identifier de manière unique au cours de de type entier) est la suivante :
l’algorithme.

Les règles à respecter pour nommer les variables : Algorithme nom-de-l’algorithme // partie en-tête

• Le nom d’une variable commence par une minuscule. Variables : indice : entier // partie des déclarations des variables

• Le nom d
d’une
une variable ne comporte pas d
d’espace
espace, Début // partie traitement

• Si le nom de la variable est composé de plusieurs mots, il faut faire Bloc d’instructions
commencer chacun deux par une majuscule et ne pas faire figurer de traits
d’union. Fin

7
03/11/2014

29 30

Exemple : Calculer et écrire le double d’un nombre réel donné • Déroulement de l’exemple :
(exemple : 7).
Algorithme double
• L’algorithme nous informe qu’un nombre réel est donné (e (exemple
emple 7)
et que un autre nombre réel sera calculé (7x2 = 14) puis affiché. Variables : nombre, résultat : réel; nombre = ? résultat =?

Début nombre =? résultat=?

nombre 7, nombre = 7 résultat = ?

résultat nombrex2;; nombre = 7 résultat = 14


4

écrire(résultat); résultat = 14

Fin Les variables n’existent plus

31 32

‰ Types des variables


• L’algorithme se déroule de manière séquentielle et ligne après ligne.
Type réel - le type entier

• Les variables de types numériques utilisées en algorithme ont


• Au départ, lors de la déclaration, les valeurs sont inconnues : leur valeur
comme domaine usuels ceux fournis par les mathématiques : réel et
est indiquée par « ? ».
entier.

• Le type de codage choisi pour un nombre va déterminer :


• L’existence des variables n’a de sens que le temps de l’exécution de
l’algorithme.
- Les valeurs maximales et minimales des nombres pouvant être
stockés dans la variable.

- La précision de ces nombres (dans le cas de nombres (décimaux)

8
03/11/2014

33 34

• Les langages offrent plusieurs types numériques, le tableau ci-


dessous présente les plus rencontrés : Expressions et opérateurs

Type numérique Plage


• Une expression est un ensemble de valeurs, reliées par des opérateurs,
Byte (octet) O à 255
et équivalent à une seule valeur.
Entier simple -32 768 à 32 767
• Un opérateur est un symbole d’opération
Entier long -2 62 147 483 à 2 147 483 647

Réel simple -3,4x1038 à -1,4x1045 pour les • Une expression est soit :
valeurs négatives
1,4x10-45 à 3,4x1038 pour les valeurs
positives ™ une constante
™ une variable
™ une opération
Réel double 1,79x10308 à -4,95x10-324 pour les
valeurs négatives
4,94x10-324 à 1,79x 10308 pour les
• Pourquoi ne pas déclarer toutes les variables
valeurs numériques en
positives réel
double?

35 36

• Deux opérations sont spécifiques aux entiers : la division entière


• Une opération est l'association d'un operateur avec ses opérandes qui DIV et le modulo MOD.
permet d'effectuer un calcul.

• L’opération DIV entre deux entiers retourne le résultat entier de


leur division.
• Les opérations utilisables sur les éléments de type entier ou réel les
opérations arithmétiques classiques : l’addition (+), la soustraction (-
), le produit (x) et la division (/). • L’opération MOD entre deux entiers retourne le reste de leur
division.

• On pourra aussi utiliser les opérateurs de comparaison classiques :


< > # = ≥ ≤ • Exemple : 15 DIV 2 vaut 7 et 15 MOD 2 vaut 1, en effet, 15 = 7x2+1.

9
03/11/2014

37 38

Conversion :
Exemple : Algorithme type réel
• Convertir un entier en réel est possible : cette opération n’entraine pas de
perte d’information. Par exemple, l’entier 15 deviendra 15,0.
Algorithme type-réel
• Convertir un réel en entier entraîne une perte d
d’information
information : Les chiffres
Variables : nombre1, nombre2, résultat : réel ; décimaux sont perdus. Par exemple, le réel 15,75 deviendra 15.
var1:entier;
Algorithme conversion-numérique
Début
Variables : nombre1 : entier;
nombre2 : réel;
nombre1 1.5 Début
nombre2 15
o b e
nombre 15
5
var1 2 Nombre2 nombre1 // nombre2 vaut 15.0
résultat nombre1 / nombre2 x var1; nombre1 nombre2 + 0.5 // erreur : impossible

Fin
Fin

39 40

Le type caractère

• Il s’agit du domaine constitué des caractères alphabétiques, numériques


et de ponctuation.

• On devra pas confondre le signe ‘3’ (noté entre deux « simples quotes »
en tant que caractère et l’entier 3.

• En pseudo-code une chaîne de caractères est toujours notée entre


guillemets.

• A chaque caractère est associé une unique valeur numérique ( le code


ASCII, établie cette correspondance : par exemple, la lettre A
correspond a la valeur 65 ).

• http://www.table-ascii.com/

10
03/11/2014

41 42

Expressions et opérateurs

• Les seules opérations élémentaires pour les éléments de type


caractère
è sont lles opérations
é i d
de comparaison.
i

< > # = ≤ ≥

Conversion

• La conversion de type caractère vers entier : pour convertir le


caractère ‘3’ en une valeur entière 3, il suffit de calculer la
différence entre les deux caractères : ‘3’ –’0’, qui vaut 3.

43 44

Le type logique booléen


Exemple :

• Le domaine des booléens est l’ensemble formé des deux seules


Algorithme conversion-caractère-entier
valeurs (vrai, faux).

Variables : car : caractère


nombre : entier;
• Les opérations admissibles sur les éléments de ce domaine sont
Début réalisées à l’aide de tous les connecteurs logiques, notés :
car ‘3’;
nombre ‘3’ - ‘0’; // nombre vaut 3 ET : pour le « et logique »;
nombre nombre + 2; // nombre vaut 5 OU : il est vrai si ll’un
un des deux booléens testés vaut vrai;
car ‘0’ + nombre ; // car vaut ‘5’ NON : pour le « non logique »
Fin

11
03/11/2014

45 46

Exemple1 : Exemple 2:
Algorithme type-booleen
Ecrire un algorithme qui demande à l’utilisateur d’entrer une
température de l’eau pour il indique son état physico-chimique.
Algorithme type-booléen
V i bl :
Variables booleen1,
b l b
booléen2
lé : b
booléen;
lé Variable
V i bl Temp
T en Entier
E ti
Début Variables A, B : Booléen
Début
booléen1 5< 6; // booléen1 prend la valeur Vrai
Ecrire “Entrez la température de l’eau :”
Lire Temp
booléen2 (5<7) OU (3>8); // booléen2 prend la valeur Vrai A ← Temp =< 0
booléen vrai; // booléen prend la valeur Vrai B ← Temp < 100
Fin Si A Alors
Ecrire “C’est
C est de la glace“
glace
Sinon Si B Alors
Ecrire “C’est du liquide”
Sinon
Ecrire “C’est de la vapeur”
Fin

47 48

¾ Valeur d’une variable Exemple 1 :

• La valeur de la variable est la seul caractéristique qui soit modifiée A 2


au cours de l’algorithme. Au début de l’algorithme, toutes les B A+1
variables ont des valeurs inconnues.

• Les variables changent de valeur grâce à l’opération d’affectation.


Exemple 2 :

Début Début
¾ Affectation :
Caractère
C tè ‘’‘’chaîne’’
h î ’’ caractère
tè ‘’‘’chaîne’’
h î ’’
• L’affectation est une opération qui fixe une nouvelle valeur à une Type ‘’caractère’’ Type caractère
variable. Le symbole de l’affectation est
Fin Fin

12
03/11/2014

49 50

¾ L’ordre des instructions Plan


¾ Introduction
• L’
L’ordre
d dans
d lequel
l l les
l iinstructions
i sont éécrites
i jjoue un rôle
ôl
essentiel dans le résultat final. ¾ Informatisation d’un problème : Langage algorithmique

¾ Les variables
Exemple 3 :
Quelles seront les valeurs des variables A et B après exécution des ¾ Les constantes
instructions suivantes ?
¾ Les structures de contrôle
Variables A, B en Entier
¾ Les fonctions
Début
A←1 ¾ Les tableaux
B←A+3
A←3 ¾ Les fichiers
Fin

51 52

Plan
¾ Introduction
IV. Les constantes
¾ Informatisation d’un problème : Langage algorithmique
• Valeurs utilisées mais non modifiées par l’algorithme. Une constante
ne change jamais dans le temps. ¾ Les variables

¾ Les constantes
• Les constantes sont placés avant le lexique des variables.
¾ Fonctions d’entrée-sortie
• Les constantes sont définies par :
¾ Les structures de contrôle
Nom référence de la constante (en majuscule).
¾ Les tableaux
Type nature de la valeur ¾ Le tri d’un tableau

Valeur la valeur de la constante, ¾ La recherche dans un tableau

Description un texte indiquant ce que représente la constante, ¾ Les fonctions

Exemple : CONST MAX=10 ¾ Les fichiers

13
03/11/2014

53 54

V. Fonctions d’entrée-sortie ¾ La fonction lire

L’instruction de saisie de données par l’utilisateur est :


• L
Les programmes utilisent
ili ffréquemment
é d
des iinstructions
i permettant
• Lire (nomDeVariable);
l’affichage à l’écran et la saisie de valeurs au clavier par l’utilisateur.

• Nous avons deux opérations analogues permettant de simuler : L’exécusion de cette instruction consiste à :

• L’affichage d’une phrase avec l’instruction écrire (); 1. Demander à l’utilisateur de saisir une valeur sur le périphérique d’entrée;

• La saisie d’une valeur par l’utilisateur avec l’instruction lire (). 2. Modifier la valeur de la variable passé entre parenthèses;

Avant l’exécution de cette instruction, la variable de la liste avait ou n’avait


pas de valeur. Après, elle a la valeur lue au clavier ( le périphérique
d’entrée).

55 56

¾ La fonction écrire Algorithme exemple-lire-écrire

L’instruction d’affichage à l’écran (le périphérique de sortie) d’une Variables : nb: réel;
expression est :
Début
• Ecrire (expression);
lire nb // l’utilisateur saisie le nombre au clavier
Cette instruction réalise simplement l’affichage de l’expression passé
entre parenthèse.
écrire(« la valeur de nb ») // une phrase est affichée à l’écran

Cette expression
p p
peut être :
é i nb
écrire b // une valeur
l estt affichée
ffi hé à l’é
l’écran

• Une variable
écrire (« la valeur de nb est : » , nb) // une phrase suivie de la
• Des commentaires écrits sous la forme d’une suite de caractère entre
valeur est affichée à l’écran
guillemets.
• A la fois des phrases et des valeurs séparés par une virgule.
Fin

14
03/11/2014

57 58
Plan
¾ Introduction
Exemple :
¾ Informatisation d’un problème : Langage algorithmique

¾ Les variables
• Ecrire un algorithme
g q
qui demande à l’utilisateur de saisir au clavier
trois nombres réels et qui affiche à l’écran la somme de ces trois ¾ Les constantes
nombres.
¾ Fonctions d’entrée-sortie

¾ Les structures de contrôle

¾ Les tableaux

¾ Le tri d’un tableau

¾ La recherche dans un tableau

¾ Les fonctions

¾ Les fichiers

59 60

VI. Les structures de contrôle


¾ Exemple avec un organigramme :

¾ Instruction conditionnelle
• Un algorithme est constitué d’une suite d’instructions qui - Lors de la manipulation d’un distributeur de café, on utilise souvent
s’exécutent les unes après les autres de la première à la dernière. les sélecteurs « sucré/non sucré » et « chaud /froid). Ensuite on voit
apparaitre de la poudre de café, du sucre, puis de l’eau chaude ou
froide en fonction de nos demandes.

• L’instruction conditionnelle va nous permettre de concevoir un


algorithme qui n’exécutera pas certains blocs d’instructions.

¾ La conditionnelle
- Voici un organigramme qui représente l’algorithme enregistré dans
• L’instruction conditionnelle détermine si le bloc d’instructions l’appareil :
suivant est exécuté ou non. La condition est une expression
booléenne dont la valeur détermine le bloc d’instructions.

15
03/11/2014

61 62

Distribuer un
// L’action « fournir un gobelet » doit
gobelet
être effectuée à chaque exécution de • La syntaxe de cette instruction est :
l’algorithme. La poudre de café doit aussi
Verser le être toujours fournie
café Si (condition) alors

{
Sucré ? Bloc d’instructions n°1 ; // exécuté si la condition égale vrai
// L’action « verser du sucre » n’est
}
Verser effectuée que si l’utilisateur a choisi un
le sucre café sucré
sinon
{
chaud Bloc d’instructions n°2; // exécuté si la condition égale Faux
? }
// Une seule des deux actions « verser de
Verser l’eau Verser l’eau
l’eau chaude » et « verser de l’eau froide
froide chaude
» est effectuée.

63 64

• L’algorithme de la machine à café se présentera ainsi : Exemple :


Ecrire un algorithme qui lit deux entiers et affiche le plus grand des deux.

Distribuer un gobelet Algorithme Max-de-deux-entiers


Verser le café en poudre Variables
i bl : x, y, max : entier
i
Début
Si le café doit être sucré Lire x
Alors verser du sucre Lire y
si x>y alors
Si le café doit être chaud {
max x
Alors verser de l’eau chaude
}
si non
Sinon verser de l’eau froide
{
max y
}
Ecrire ‘’ le maximum est : ‘’, max
Fin

16
03/11/2014

65 66

• Exécuter avec x = 5 et y = 7 Exemple 2 : (avec une variable caractère)

Ecrire un algorithme qui prend en compte la réponse d’un utilisateur


qui doit répondre à une question par oui ou par non,
La question est « Peut-on passer au feu rouge clignotant? »

67 68

¾ Applications Exemple :

La condition simple Ecrire un algorithme qui lit un entier et qui affiche sa valeur positive.

• Une version plus simple est utilisée si l’alternative n’a pas lieu. La
syntaxe de cette instruction est alors :

Si (condition) alors

{
Instructions;
}

17
03/11/2014

69 70

Exemple :
¾ La présentation La différence entre les deux algorithmes identiques suivants :
Algorithme Max-de-deux-entiers Algorithme Max-de-deux-entiers
Variables : x, y, max : entier Variables : x, y, max : entier
• Les décalages dans l’écriture d’un algorithme (ou d’un programme)
Début Début
sont nécessaires à sa bonne lisibilité.
lisibilité Lire
i x Lire
i x
Lire y Lire y
Si x>y alors Si x>y alors

{ {
Max x Max x
} }

Sinon Sinon

{ {
Max y Max y
} }

Ecrire (‘’ le maximum est : ‘’, max) Ecrire (‘’ le maximum est : ‘’, max)
Fin Fin

71 72

Exemple : Comparons les deux algorithmes ¾ Conditionnelles imbriquées

Variables X, Y, Z : nombres • Il est possible d’imbriquer des blocs de programme les uns dans les
Début Variables X, Y, Z : nombres autres.
Y 2 Déb t
Début
Lire X Y 2 Exemple :
Si X > 10 Alors Lire X
Si X > 10 Alors
Ecrire un algorithme qui demande à l’utilisateur une note et affiche
X X – 10 le commentaire associé à la note :
X X – 10
Y 1 Y 1
Z X*Y Z X*Y
X Y Note de 0 à 8 inclus : « insuffisant »;;
Ecrire Z Ecrire Z Note de 8 à 12 inclus : « moyen »
Note de 12 à 16 inclus : » bien »;
Fin Fin Note de 16 à 20 inclus : « très bien ».

18
03/11/2014

73 74

• La première solution utilise l’instruction conditionnelle classique :

¾ Instruction de répétition
Algorithme commentaires-notes

Variables : note : entier ¾ La boucle


Début
Lire note • L’instruction de répétition, appelée boucle, permet d’exécuter
Si note ≤ 8 alors plusieurs fois consécutives un même bloc d’instructions. La répétition
Ecrire (‘’insuffisant ‘’) s’effectue tant que la valeur de l’expression booléenne est égale à
Vrai.
Si note>8 ET note ≤12 alors
Ecrire (‘’moyen’’)

Si note > 12 ET note ≤16 alors • On dispose de trois structures de contrôle différentes :
Ecrire (‘’bien’’)

Si note > 16 alors


Ecrire (‘’très bien’’)
Fin

75 76

tant que…………faire : Exemple 1 :

• Cette structure de contrôle fait répéter une séquence d’instructions, Ecrire un algorithme qui permet d’afficher à l’écran les entiers de 1 à 5.
aussi longtemps qu’une condition a la valeur Vrai.

Algorithme affichage-des-entiers-1-à-5
• Son fonctionnement précis est décrit par l’organigramme :
Variables: compteur : entier

non Condition Début


oui Compteur 1 // initialisation
tant-que
tant que compteur ≤ 5 faire // condition de poursuite
{ // début du bloc
Séquence
écrire compteur // traitement
suite D’instructions
compteur compteur + 1 // incrémentation du compteur
} // fin du bloc
Fin

19
03/11/2014

77 78

Exemple :
Remarques
Ecrire un algorithme qui prend en compte la réponse d’un utilisateur
qui doit répondre à une question par oui ou par non,
• Les variables intervenant dans la condition doivent avoir reçu une La question est « Peut-on passer au feu rouge clignotant? »
valeur avant l’évaluation de cette condition : initialiser la
condition de la boucle.
Rep ‘’Z’’

• Cette valeur peut être complètement arbitraire, et n’avoir qu’un seul Tant Que Rep # ‘’O ‘’ et Rep # ‘’N’’ Faire
intérêt : forcer l’entrée dans le boucle.
Ecrire ‘’Répondez
Répondez O pour oui,
oui N pour Non
Non’’

Lire Rep

79 80

¾ Structure pour
• Si la première évaluation de la condition fournit la valeur Faux, le
corps de la boucle n’est pas exécuté, la condition ne sera plus évalué Lorsque la répétition ne porte que sur le nombre d’itérations et qu’il est
et on passe directement à la suite. connu avant de commencer la boucle,
boucle il est pratique d
d’utiliser
utiliser la
boucle :

• Si la séquence ne change pas la valeur de la condition et si celle-ci a pour de à faire


la valeur Vrai, la séquence sera répétée sans que l’on passe jamais à
la suite : une boucle infinie.
infinie

20
03/11/2014

81 82

Exemple 2 :
Exemple1 :
Ecrire un algorithme qui permet d’afficher la table de multiplication
par 7, présentée à l’ancienne :
Ecrire un algorithme qui permet d’afficher les entiers de 1 à 5.
7 fois 1 font 7
7 fois 2 font 14
……
7 fois 10 font 70

83 84

¾ La boucle faire-tant que Exemple 2 :

Soit l’algorithme
• La boucle faire-tant q
que effectue l’évaluation de la condition
Variable x : nombre entier
booléenne après avoir effectué le premier tour de boucle.
Début
Ecrire ‘’donnez l’entier de départ’’
Lire x
Tant que x<100 Faire
Ecrire x
x x+20
Fin
Que produit cet algorithme lorsque x vaut 43, 195 ou -7?

L’écrire à l’aide de Répéter….Jusqu’à…. et Si… Alors….

21
03/11/2014

85 86
Plan
¾ Les boucles imbriquées ¾ Introduction

¾ Informatisation d’un problème : Langage algorithmique


• Quand un bloc d’instructions à répéter lors d’une boucle est ¾ Les variables
composé
p de p
plusieurs boucles , on p
parle de boucles imbriquées.
q
¾ Les constantes

¾ Fonctions d’entrée-sortie
Exemple :
¾ Les structures de contrôles

• Calculer la somme des notes d’une suite de notes comprises entre 0 ¾ Les tableaux
et 20. Il faut exiger que chaque note soit bien dans l’intervalle
[0,20]. On envisagera deux méthodes pour déterminer si la suite est ¾ Le tri d’un tableau
terminée : soit poser une question ( « encore (O/N? »), soit accepter ¾ La recherche dans un tableau
un codage (par exemple 99) après la dernière note.
¾ Les fonctions

¾ Les fichiers

87 88

VII. Les tableaux • Les températures à 16 heures de chacun des jours d’une semaine
seront les 7 valeurs de la variable Temp qui est un tableau de 7
¾ Introduction variables de type nombre qui sont désignées par Temp[1], Temp[2],…
Temp[7]
• Dans certains conditions, les variables que nous connaissons sont très
mall adaptées
d té aux ttraitements
it t à effectuer.
ff t Le nom Temp
L T dé i
désigne
Temp
l’ensemble du tableau
• Lorsqu’il s’agit d’un grand nombre de valeurs de même types qui se 1 8
répète, le traitement est lourd. 2 6
• Imaginons, que nous avons plusieurs traitements à effectuer sur des 3 7
consommations mensuelles d’eau. Pour conserver ces valeurs en 4 11
mémoire, nous pouvons prendre 12 variables numériques que nous Cette case du tableau
appellerons, par exemple, Eau1, Eau2,…..,Eau12. 5 6 représente la variable
6 8 Temp[5] dont la valeur est 6
• Pour calculer la consommation mensuelle moyenne sur l’année nous
pouvons écrire la longue formule : 7 9

• Moyenne = (eau1 + eau2 + eau3+ eau4 + eau5+ eau6+ eau7 + eau8+


eau9+eau10 + eau11+ eau12)/12

22
03/11/2014

89 90

Exemple :
Ecrire un algorithme qui permet de calculer la moyenne des • Le principe d'un tableau est très simple : on stocke les éléments dans des
températures de la semaine : cases, chaque case étant étiquetée d'un numéro(généralement appelé
indice). Pour accéder à un élément particulier d'un tableau, on donne
son indice.

• Le nombre maximal d’éléments du tableau, qui est précisé à la


définition, s’appelle sa dimension.

• Le type de ses éléments s’appelle le type du tableau.

• Pour accéder aux éléments d’un tableau, un indice indique le rang de


l’élément.

91 92

¾ Déclaration d’un tableau


¾ Utilisation d’un tableau

1) T: Tableau [6] de réels // liste de notes ou de températures Tableau à une dimension

2) T: Tableau [1,6]
[1 6] de réels • La manipulation des éléments du tableau (notes) est décrite dans
l’exemple suivant : une seule variable permet de stocker 4 notes
entières.
3) T: Tableau [0,5] de réels
Algorithme utilisation d’un tableau

Variables : notes : tableau[4] d’entiers;


• Réels : Type des éléments du tableau
Début
• [6] : N
Nombre
b d’élé
d’éléments
t dans
d le
l ttableau.
bl
notes[0] 12 : on peut fixer la valeur de l’élément d’indice 0
notes[1] 14
• Chaque élément est repéré dans le tableau par un indice varie notes[2] 10
de 0 à taille-1 ou de 1 à taille. notes[3] 18

Fin
• On accède à la case 2 par T[2]. (c’est la 3e case ou la 2e case)

23
03/11/2014

93 94

L’état de mémoire ¾ Manipulation de tous les éléments d’un tableau

Exemple 1 : Lire les valeurs des éléments d’un tableau T de N


nombres
o b es eentiers.
t e s.

12 14 10 18

95 96

Exemple 2 : Afficher toutes les valeurs des éléments d’un tableau T de Exemple 3 : Mettre à zéro tous les éléments d’un tableau T de N nombres
N nombres.

24
03/11/2014

97 98

Tableaux dynamiques
Exemple :

Il arrive fréquemment que l’on ne connaisse pas à l’avance le nombre Tableau Notes [ ] en entiers
d’éléments
d éléments que devra comporter un tableau
tableau. Variable
nb : Entier
Solution1 : Déclarer un grand tableau (10000).
Notes : Tableau [ ] d’entiers
Inconvénients : mémoire non utilisée.
Début
Ecrire "Combien y a-t-il de notes à saisir ?"
Solution2 : Déclarer le tableau sans préciser au départ son nombre
Lire nb
d’éléments , ensuite redimensionner (Redim).
Redim Notes [nb]

99 100

Exemple :
Tableau à deux dimensions
Ecrire un algorithme remplissant un tableau de 6 sur 13, avec des
• L’informatique
q nous offre la possibilité
p de déclarer des tableaux zéros.
dans lesquels les valeurs ne sont pas repérées par une seule, mais
par deux coordonnées.

Tableau [7,7] en Entier

25
03/11/2014

101 102

Le tri d’un tableau La recherche dans un tableau

Ecrire un algorithme pour trier le tableau suivant :


• Soit un tableau comportant 20 valeurs. Ecrire un algorithme
saisissant un nombre au clavier, et informe l’utilisateur de la
présence ou de l’absence de la valeur saisie dans le tableau.

2 4 7 9 6 3 9

103 104

La recherche dichotomique

Plan
¾ Introduction

¾ Informatisation d’un problème : Langage algorithmique


‰ Soit un tableau comportant 20 valeurs. Ecrire un
algorithme saisissant un nombre au clavier, et informe ¾ Les variables

l’utilisateur de la présence ou de l’absence de la valeur ¾ Les constantes


saisie dans le tableau.
¾ Fonctions d’entrée-sortie

¾ Les structures de contrôles

¾ Les tableaux

¾ Procédures et fonctions

¾ Les fichiers

26
03/11/2014

105 106
Algorithme : reponseOuiNon
Variables : rep : caractère ; compteur : entier
Procédures Début :
Compteur 0
Ecrire ‘’Peut-on passer au feu rouge clignotant‘’
¾ Nous voulons poser plusieurs questions aux quelles nous attendons une Lire rep
réponse sous la forme O ou N
N. Un compteur nous permettra de compter le Tant que rep # ‘’O’’ O ET rep # ‘’N’’
N faire
nombre de réponse positive. {
Ecrire ‘’ répondez O pour oui et N pour non’’
‘’Peut-on passer au feu rouge clignotant?‘’ Lire rep
}
‘’Doit-on marquer un arrêt au STOP? ‘’ Si Rep ‘‘N’’ alors compteur compteur + 1
Ecrire ‘’Doit-on marquer un arrêt au STOP ‘’
Lire rep
¾ Pour prendre en compte la réponse de ll’utilisateur
utilisateur qui doit répondre Tant que rep # ‘’O’’ O ET rep # ‘’N’’
N faire
seulement par OUI ou par NON {
Ecrire ‘’ répondez O pour oui et N pour non’’
Lire rep
¾ Ceci nécessite l’utilisation de plusieurs instructions en particulier }
l’utilisation de la boucle tant que, Si Rep ‘‘O’’ alors compteur compteur + 1
Ecrire ‘’points marqués : ‘’, compteur
Fin

107 108

Définition d’une procédure :

Procédure maProcédure ( )
// déclaration des variables
¾ Pour ne pas avoir à recopier plusieurs fois les mêmes lignes dans l’algorithme, Variables var1 : entier
nous pouvons créer une procédure qui est une partie d’algorithme, écrite à part, Début
désigné par un nom, et que l’on fait exécuter plusieurs fois, en citant son nom.
instructions 1
instructions 2
Fin procédure

27
03/11/2014

109 110

Début
Variables Question : chaîne de caractères Compteur 0
Rep : caractère;
Question ‘’peut-on
peut on passer au feu rouge clignotant?
clignotant?’’
Compteur: nombre entier
PeponseOuiNon
Procédure ReponseOuiNon ( quest : chaîne de caractère)
Si Rep ‘‘N’’ alors compteur compteur + 1
Variables quest : chaîne de caractère Question ‘’doit-on marquer un arrêt au STOP?’’
Début PeponseOuiNon
Ecrire Question Si Rep ‘‘O’’ alors compteur compteur + 1
Lire Rep Ecrire ‘’points marqués : ‘’, compteur
T t que ((rep # ‘O’) ett (Rep
Tant (R # ‘N’) Faire
F i Fin
Fi
Ecrire ‘’répondez par O ou par N’’
Lire Rep
Fin

111 112

Les variables locales et globales


Paramètres

¾ Un paramètre est une variable particulière sert à la communication


¾ Chaque algorithme et sous algorithme a son propre espace de
entre algorithme appelant et sous-algorithme.
variables, inaccessible par les autres.
Deux types de communication de valeurs par paramètres apparaissent :
¾ Les variables sont dites LOCALES.
¾ La valeur du paramètre effectif est affectée avant l’exécution de la
¾ Il peut exister des variables GLOBALES, mais leur usage est procédure au paramètre formel qui est une variable appartenant à la
déconseillé. procédure : on dit q
p que le p
paramètre est en entrée.

¾ Le paramètre formel est une autre désignation du paramètre effectif,


valable pendant la durée de la procédure : Le paramètre est en
sortie.

28
03/11/2014

113 114

Paramètres en entrée : transmission par valeur


Procédure ReponseOuiNon (Quest : chaîne de caractères)
Début
Ecrire Quest
Lire Rep
¾ Dans l’exemple 1, on peut déclarer une nouvelle variable Quest, qui Tant que (rep # ‘O’) et (Rep # ‘N’) Faire
va service d’un variable locale à la procédure. Ecrire ‘’répondez par O ou par N’’
Lire Rep
Fin
Début
Compteur 0
ReponseO iNon(‘’pe t on passer au
ReponseOuiNon(‘’peut-on a feu
fe rouge?’’)
ro ge?’’)
Si Rep = ‘’N’’ Alors BonnesReponses BonnesReponses + 1
ReponseOuiNon(‘’Doit-on marquer un arrêt au STOP?’’)
Si Rep = ‘’O’’ Alors BonnesReponses BonnesReponses + 1
Fin

115 116

¾ Le paramètre est écrit entre parenthèses, on le qualifie de paramètre Paramètre en sortie : transmission par adresse
formel dans la déclaration, de paramètre effectif lors de chaque
appel. Exemple :
Nous voulons stocker les réponses successives dans le tableau R de
[1..20] caractères pour permettre un traitement ultérieur.
¾ Lors du premier appel à la procédure, le texte « Peut-on passer au
feu rouge clignotant? » est automatiquement affecté au paramètre Début
Quest, lectureOuiNon(‘’peut-on passer au feu rouge clignotant?’’)
R[1] Rep
¾ Il sera remplacé par « doit-on marquer un arrêt au STOP? » lors du LectureOuiNon(‘’doit-ont marquer un arrêt u STOP’’?)
d
deuxième
iè appel.
l R[2] Rep

¾ On n’a plus à s’occuper de la variable Question qui peut disparaitre Nous préférons créer un second paramètre : la variable effective dans
du programme, mais seulement à fournir, lors de chaque appel, le laquelle la procédure doit lire la réponse. L’algorithme devient :
paramètre effectif qui correspond au paramètre formel.

29
03/11/2014

117 118

Procédure ReponseOuiNon (Quest : chaîne de caractères, Rep : • La correspondance entre la variable R[1] et le paramètre Rep ne
caractère) peut pas fonctionner comme pour le paramètre Quest,
Début
Ecrire Quest • On ne souhaite pas voir affecter la valeur de R[1] à Rep, mais on
veut au contraire que la valeur finale de Rep se trouve dans R[1],
Lire Rep
Tant que (Rep # ‘’O’’) et (Rep # ‘’N’’) Faire
• Le nom Rep, défini comme paramètre formel de la procédure est un
Ecrire ‘’répondez par OUI ou par NON’’ nom provisoire désignant le paramètre effectif pour la durée de
Lire REP l’exécution de la procédure.
Fin
Début
ReponseOuiNon(‘’peut-on passer au feu rouge?’’, R[1])
ReponseOuiNon(‘’Doit-on marquer un arrêt au STOP?’’, R[2])
Fin

119 120

Les fonctions
Structure générale des fonctions

Les langages informatiques, proposent généralement une fonction SIN. Si


nous voulons stocker le sinus de 35 dans la variable A, nous écrirons :
• C
Certains
i traitements
i ne peuvent êêtre effectués
ff é par un algorithme,
l ih exemple
l lle
cas du calcul du sinus d’un angle.
A sin(35)

• Tout langage de programmation propose un certain nombre de fonctions;


certains sont indispensables, car elles permettent d’effectuer des traitements
qui seraient sans elles impossibles. D’autres servent à faciliter la
programmation.

30
03/11/2014

121 122

¾ Une fonction est constituée de trois parties : ¾ L’utilité des fonctions :

- Le nom de la fonction.
Le nom dd’une
une fonction commence par une minuscule. • Le code des algorithmes est plus simple,
simple plus clair et plus court.
court Dans un
Le nom d’une fonction ne comporte pas d’espace. algorithme, appeler une fonction se fait en une seule ligne et la fonction
Si le nom de la fonction est composé de plusieurs mots, faire peut être appelée à plusieurs reprises.
commencer chacun d’eux par une majuscule (par exemple :
sommeDeDeuxEntiers,) et ne pas faire figurer de traits d’union. • Une seule modification dans la fonction sera automatiquement répercutée
sur tous les algorithmes qui utilisant cette fonction.

- Deux parenthèses, une ouvrante, une fermante.


• L’utilisation de fonctions génériques dans des algorithmes différents
permet ded réutiliser
é ili son travail
il et d
de gagner d
du temps.
- Une liste de valeurs, indispensables à la bonne exécution de la
fonction. Ces valeurs s’appellent des arguments, ou des paramètres.
Certaines fonctions exigent un seul argument, d’autres deux et
d’autres aucun.

123 124

Trois étapes sont toujours nécessaires à l’exécution d’une fonction :

¾ Les fonctions sont comparables aux procédures :


1. L programme appelant
Le l iinterrompt son exécution.
é i
• Leur appel ne constitue pas à lui seul une instruction, mais figure dans
une expression. 2. La fonction appelée effectue son bloc d’instructions. Dès qu’une
instruction retourne est exécutée, la fonction s’arrête.
• Leur exécution produit un résultat qui prend la place de la fonction lors
de l’évaluation de l’expression. 3. Le programme appelant reprend alors son exécution.

• L’instruction
L’i t ti retourne,
t

31
03/11/2014

125 126

¾ Fonction sans valeur retournée

Ecrire et utiliser une fonction simple qui doit afficher « bonjour ». Cette Ecrire un algorithme qui appelle la fonction afficheBonjour ().
fonction ne retourne p pas de valeur : ceci est signalé
g en p
précisant q
qu’elle
retourne vide.

Algorithme utilise_fonction
Fonction afficheBonjour () : vide

Début Début
écrire ‘’bonjour’’ afficheBonjour ()
retourner () Fin
Fin

Une fonction se termine toujours par l’instruction retourne. Cette fonction


effectuera les instructions entre Debut et Fin.

127 128

Exemple :
• Ecrire un programme qui affiche à l’aide d’une fonction, la table de
multiplication d’un nombre donné.
Ecrire un algorithme qui appelle 10 fois la fonction afficheBonjour ().

32
03/11/2014

129 130

Fonction avec une valeur retournée Fonctions récursives

Définition • Construire la solution d’un problème en utilisant la solution du même


problème dans un contexte différent (plus simple).
La valeur de retour
• La suite des contextes doit tendre vers une solution directe (cas
Une fonction peut retourner une valeur au programme appelant. Cette terminal).
valeur est unique. Le retour de la valeur signifie l’arrêt de la
fonction. • Les fonctions récursives sont adaptées à une certaine classe de
problèmes.
Exemple :
Exemple : la factorielle
Ecrire un programme qui calcul la factoriel d’un entier à l’aide d’une
fonction.

131 132

33
03/11/2014

133 134

135 136

• Exemple 2
• Une fonction récursive valide doit contenir :

Calculer la somme des entiers de 1 à N .


‰ au moins un appel à elle-même avec des paramètres différents ;

‰ au moins un cas où elle ne s’appelle pas ;

‰ au moins une conditionnelle pour séparer ces différents cas.

34

Vous aimerez peut-être aussi