0% ont trouvé ce document utile (0 vote)
204 vues33 pages

Algorithmique2 Chapitre 0

Transféré par

Elabrouj Reda
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)
204 vues33 pages

Algorithmique2 Chapitre 0

Transféré par

Elabrouj Reda
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

Royaume du Maroc

Université Cadi Ayyad


Faculté des Sciences Semlalia
Marrakech

Algorithmique II
Pr. Ilyass OUAZZANI TAYBI
E-mail : [email protected]
Département : Informatique FSSM
Université Cadi Ayyad
Filière SMI S3

1
Année universitaire : 2023/2024
Plan du cours

 Rappel (Algorithmique I)
 Tableaux
 Fonctions et procédures
 Récursivité
 Algorithmes de tri
 Pointeurs et Enregistrements
 Fichiers
 Complexité et preuve d’algorithme

Pr. Ilyass OUAZZANI TAYBI Faculté des Sciences Semlalia - Marrakech 2


Plan du cours

CHAPITRE 0 : RAPPEL (ALGORITHMIQUE I)

1. Notion d’algorithme
2. Du problème au résultat
3. Représentation d’un algorithme
4. Notion de donnée
5. Instructions de base
6. Structures de contrôle

Pr. Ilyass OUAZZANI TAYBI Faculté des Sciences Semlalia - Marrakech 3


Rappel (Algorithmique I)

1. Notion d’algorithme
 Un algorithme correspond à la description d’une méthode de résolution pour un
problème donné ( Algorithme = méthode de résolution).
 Cette description est effectuée par une suite d’instructions d’un langage humain.
 Ces instructions permettent de traiter et de transformer les données (entrées) du
problème à résoudre pour aboutir à des résultats (sorties).
 Un algorithme n’est pas une solution en soi, mais une méthode à suivre pour trouver les
solutions.
 Une bonne connaissance de l’algorithmique permet d’écrire des algorithmes exacts et
efficaces.

4
Rappel (Algorithmique I)

1. Notion d’algorithme
 Un algorithme doit:
 avoir un nombre fini d’étapes (instructions);
 avoir un nombre fini d’opérations par étape;
 se terminer après un nombre fini d’opérations;
 fournir un résultat.
 Chaque opération doit être:
 définie rigoureusement et sans ambiguïté;
 effective, c-à-d réalisable par une machine.

 Un algorithme est une suite finie d’instructions à appliquer, dans un ordre déterminé, sur
des données afin d'aboutir à un certain résultat en un temps fini.
5
Rappel (Algorithmique I)

2. Du problème au résultat

Phase de Phase de
Phase Phase
Problème conception traduction Résultat
d’analyse d’exécution
(Algorithme) (Programme)

Sur papier Sur machine

6
Rappel (Algorithmique I)
3. Représentation d’un algorithme
Algorithme Nom_algorithme
Constantes /*Déclaration des constantes*/
Variables /*Déclaration des variables*/
Début
/*commentaire
sur plusieurs lignes */
//commentaire sur une seule ligne
Instruction1
Instruction2

Instructions n
Fin

Pseudo-code Organigramme
7
Rappel (Algorithmique I)
4. Notion de donnée
Les données sont les objets manipulés par les instructions d'un algorithme. Elles peuvent
être des variables ou des constantes.
Une variable est le nom d’un espace mémoire dont le contenu peut changer pendant
l’exécution d'un algorithme.
Une constante est le nom d’un espace mémoire dont le contenu ne change jamais,
contrairement à une variable il garde la même valeur pour un algorithme.
Chaque donné est caractérisée par :
Un identificateur (nom);
Un type (entier, réel, caractère, chaîne de caractères, booléen,…);
Une valeur.

8
Rappel (Algorithmique I)

4. Notion de donnée

 La première chose à faire avant de pouvoir utiliser une donnée (variable ou constante) est
de lui réserver l’espace mémoire nécessaire. Ceci se fait tout au début de l’algorithme,
avant même les instructions proprement dites. C’est ce qu’on appelle la déclaration des
données.

Déclaration : Exemple :
Constante nomConstante = valeur; Constante pi = 3.14;
Variable nomVariable : Type; Variable rayon : réel;

9
Rappel (Algorithmique I)
4. Notion de donnée
Exemple :

L’en-tête Algorithme Exemple;


Constantes
PI = 3.14;
Message = "Bonjour";
La partie déclarative Variables
A1: Entier;
A2 : Chaine de caractères;
Début
Instruction_1;
Le corps de l’algorithme …
Instruction_N;
Fin.
10
Rappel (Algorithmique I)
5. Instructions de base
 Affectation : c’est l’opération qui permet de ranger la valeur d’une expression dans une
variable. Elle se note généralement en algorithmique avec le signe  .
Syntaxe : Exemple:
Nom_variable  valeur ou expression; age  20;
 Lecture : L’instruction de lecture permet de lire des valeurs à partir du clavier et les
affecter aux variables.
Syntaxe : Exemple:
Lire(var1, var2, …); Lire(nom, age);
 Ecriture : L’instruction d'écriture permet d'afficher les valeurs des variables ou expressions
à l'écran.
Syntaxe : Exemple:
Ecrire(expression_1, expression_2,…); Ecrire(“La surface est : ”, surface);
11
Rappel (Algorithmique I)
6. Structures de contrôle

Structure

Séquentielle Conditionnelle Itérative

12
Rappel (Algorithmique I)
6. Structures de contrôle – Séquentielle –
La structure séquentielle est une structure dont les instructions s’enchaînent les unes après les
autres et s’exécutent une seule fois au cours de l’algorithme. C'est la structure la plus simple
d'un algorithme.
Exemple :
Algorithme surfaceRectangle;
Variables
longueur, largeur, surface : Réel;
Début
Ecrire (“Veuillez saisir la longueur et la largeur du rectangle : ”);
Lire (longueur, largeur);
surface  longueur*largeur;
Ecrire (“La surface du rectangle est : ”, surface);
Fin
13
Rappel (Algorithmique I)
6. Structures de contrôle – Conditionnelle –

Structure
conditionnelle

A choix
Simple Alternative
multiple

14
Rappel (Algorithmique I)
6. Structures de contrôle – Conditionnelle simple –

Syntaxe :

Si (condition) Alors
Instruction(s);
FinSi

Pseudo-code Organigramme

 La condition est nécessairement une expression booléenne.

15
Rappel (Algorithmique I)
6. Structures de contrôle – Conditionnelle simple –
Exemple :
Algorithme quotientDeuxEntiers;
Variables
nombre1, nombre2 : Entier;
quotient : Réel;
Début
Ecrire (“Veuillez saisir deux entiers :”);
Lire (nombre1, nombre2);
Si (nombre2 <> 0) alors
quotient  nombre1/nombre2;
Ecrire (nombre1,“ / ”, nombre2, “ = ”, quotient);
FinSi
Fin
16
Rappel (Algorithmique I)
6. Structures de contrôle – Conditionnelle alternative –

Syntaxe :

Si (condition) Alors
Instruction(s)_1;
Sinon
Instruction(s)_2;
FinSi

Pseudo-code Organigramme

17
Rappel (Algorithmique I)
6. Structures de contrôle – Conditionnelle alternative –
Exemple :
Algorithme pair;
Variable a : entier ;
Début
Ecrire("Entrez un nombre entier : ") ;
Lire(a );
Si ( ( a % 2 ) = 0 ) alors
Ecrire("Le nombre " , a , " est pair." ) ;
Sinon
Ecrire("Le nombre " , a , " est impair." ) ;
Finsi
Fin.
18
Rappel (Algorithmique I)
6. Structures de contrôle – Conditionnelle alternative –
La clause SinonSi
On peut ajouter autant de clause SinonSi que de conditions à tester.
Syntaxe : Si (condition1) Alors
Instruction(s)_1;
SinonSi (condition2) Alors
Instruction(s)_2;

SinonSi (conditionN) Alors
Instruction(s)_N;
Sinon
Instruction(s);
FinSi
Pseudo-code Organigramme 19
Rappel (Algorithmique I)
6. Structures de contrôle – Conditionnelle alternative –
Exemple (Clause SinonSi):
Algorithme signe ;
Variable nombre : réel ;
Début
Ecrire("Entrez un nombre réel") ;
Lire(nombre);
Si ( nombre < 0 ) alors
Ecrire("Le nombre : " , nombre , " est négatif." ) ;
SinonSi ( nombre > 0 ) alors
Ecrire("Le nombre : " , nombre , " est positif." ) ;
Sinon
Ecrire("Le nombre : " , nombre , " est nul." ) ;
Finsi
Fin.
20
Rappel (Algorithmique I)
6. Structures de contrôle – Conditionnelle à choix multiples –
La structure conditionnelle à choix multiples permet une programmation plus claire en
évitant une trop grande imbrication de Si successifs. Elle permet de choisir le traitement à
effectuer en fonction de la valeur ou de l'intervalle de valeurs d'une variable ou d'une
expression.
Syntaxe :
Selonque variable_selecteur vaut
Liste_Valeurs_1 : Instruction(s)_1;
Liste_Valeurs_2 : Instruction(s)_2;
...
Liste_Valeurs_n : Instruction(s)_n;
Sinon Instruction(s)_m;
FinSelon
21
Rappel (Algorithmique I)
6. Structures de contrôle – Conditionnelle à choix multiples –
Exemple : Algorithme jours;
Variable n: entier ;
Début
Ecrire(“Donner un numéro de jour entre 1 et 7 :”) ;
Lire(n) ;
SelonQue n Vaut
1 : Ecrire(“Lundi”) ;
2 : Ecrire(“Mardi”) ;
3 : Ecrire(“Mercredi”) ;
4 : Ecrire(“Jeudi”) ;
5 : Ecrire(“Vendredi”) ;
6 : Ecrire(“Samedi”) ;
7 : Ecrire(“Dimanche”) ;
Sinon : Ecrire (“ il faut choisir un nombre entre 1 et 7!! ”) ;
FinSelon
Fin. 22
Rappel (Algorithmique I)
6. Structures de contrôle – Conditionnelle –
Imbrication de SI
Naturellement, il est possible d’imbriquer les structures de contrôle conditionnelles les unes
à l’intérieur des autres, comme ceci : Si (condition1) Alors
Si (condition2) Alors
Instruction(s)1;
Sinon Instruction(s);
FinSi
Sinon
Si (condition3) Alors
Instruction(s);
Sinon Instruction(s);
FinSi
FinSi
23
Rappel (Algorithmique I)
6. Structures de contrôle – Itérative –

Structure itérative

À condition
À condition
Complète (Pour) d’arrêt
d’arrêt (TantQue)
(Répéter…jusqu’à)

24
Rappel (Algorithmique I)
6. Structures de contrôle – Itérative Complète (Pour) –

Syntaxe :

Pour i de initiale à finale [Pas de p] faire


Instruction(s);
FinPour

Pseudo-code Organigramme
Remarques :
 i est une variable de type entier (ou caractère). Elle doit être déclarée.
 p est un entier qui peut être positif ou négatif. p peut ne pas être mentionné, car par
défaut sa valeur est égal à 1.
 Initiale et finale peuvent être des valeurs, des variables définies avant le début de la
boucle ou des expressions de même type que i.
25
Rappel (Algorithmique I)
6. Structures de contrôle – Itérative Complète (Pour) –

Exemple :

Algorithme bonjour100Fois;
Variable i : Entier;
Début
Pour i de 1 à 100 Faire
Ecrire ("Bonjour chers étudiants !! ") ;
FinPour
Fin

26
Rappel (Algorithmique I)
6. Structures de contrôle – Itérative à condition d’arrêt (TantQue) –
Syntaxe :

TantQue (condition) faire


Instruction(s);
FinTantQue

Pseudo-code Organigramme
Remarques :
Le contenu de la structure TantQue peut ne jamais être exécuté. Donc cette structure permet en réalité
de répéter un traitement 0 ou plusieurs fois.
La condition étant évaluée au début, les variables utilisées dans la condition doivent avoir été initialisées.
On doit s'assurer de la terminaison (sinon l’algorithme ne se termine jamais). Pour cela, il faut
nécessairement que dans le corps de la structure, la condition soit modifiée quelque part.
27
Rappel (Algorithmique I)
6. Structures de contrôle – Itérative à condition d’arrêt (TantQue) –

Exemple :

Algorithme saisirEntierPositif;
Variable valeur : Entier;
Début
Ecrire ("Veuillez saisir un entier positif :");
Lire(valeur);
TantQue valeur < 0 faire
Ecrire ("Erreur : Veuillez saisir un entier positif");
Lire(valeur);
FinTantQue
Fin.

28
Rappel (Algorithmique I)
6. Structures de contrôle – Itérative à condition d’arrêt (Répéter… jusqu’à) –
Syntaxe :

Répéter
Instruction(s);
Jusqu’à (condition);

Pseudo-code Organigramme
Remarques :
Il y a toujours au moins une exécution du bloc d’instructions. La structure Répéter… jusqu’à permet de
répéter un traitement 1 ou plusieurs fois.
Pour choisir entre Répéter… jusqu’à et TantQue il faut se poser la question : faut-il éventuellement ne
jamais faire le traitement ? Si oui : il faut utiliser TantQue , sinon utiliser la structure Répéter… jusqu’à qui
exécute au moins une fois le traitement.
29
Rappel (Algorithmique I)
6. Structures de contrôle – Itérative à condition d’arrêt (Répéter… jusqu’à) –

Exemple :

Algorithme saisirEntierPositif;
Variable valeur : Entier;
Début
Ecrire ("Veuillez saisir un entier positif :");
Répéter
Lire(valeur);
Si valeur < 0 alors
Ecrire ("Erreur : Veuillez saisir un entier positif");
Jusqu’à valeur >= 0;
Fin.

30
Rappel (Algorithmique I)
6. Structures de contrôle – Itérative –
Nombre
Conclusion: d’itérations
connu?
Oui Non

Traitement
Structure itérative
exécuté au moins
POUR
une fois ?
Oui Non

Structure itérative Structure itérative


Répéter…Jusqu’à TantQue

31
Merci pour votre
attention

Pr. Ilyass OUAZZANI TAYBI Faculté des Sciences Semlalia - Marrakech 32


Royaume du Maroc
Université Cadi Ayyad
Faculté des Sciences Semlalia
Marrakech

Informatique 2 : Algorithmique I
Pr. Ilyass OUAZZANI TAYBI
E-mail : [email protected]
Département : Informatique FSSM
Université Cadi Ayyad
Filière SMI S3

Année universitaire : 2023/2024

Vous aimerez peut-être aussi