0% ont trouvé ce document utile (0 vote)
14 vues41 pages

Introduction à l'Algorithmique et ses Concepts

Transféré par

Steve Tohoungba
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
14 vues41 pages

Introduction à l'Algorithmique et ses Concepts

Transféré par

Steve Tohoungba
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd

ALGORITHMIQUE

Gbémiga OGOUBY
Architecte Logiciel
2

Gbémiga OGOUBY - Algorithmique

Plan du cours
1. Généralités sur les algorithmes
2. Langage algorithmique
3. Déclaration de données
4. Les instructions
5. Les structures de contrôle
6. Les fonctions et les actions
7. Les tableaux
Généralité sur les algorithme
4

- Concepts importants
Gbémiga OGOUBY - Algorithmique
Généralités

• Algorithme : mot dérivé du nom du mathématicien al_Khwarizmi qui a


vécu au 9ème siècle, était membre de l'académie des sciences à Bagdad .

• Un algorithme prend des données en entrée, exprime un traitement


particulier et fournit des données en sortie.

• Programme : série finie et non ambiguë d’instructions pouvant s’exécuter


en séquence, ou en parallèle (parallélisme matériel) qui réalise
(implémente) un algorithme
5

- Pourquoi un algorithme?
Gbémiga OGOUBY - Algorithmique
Généralités

• Pour obtenir de la «machine» qu’elle effectue un travail à notre place

• Problème: expliquer à la «machine» comment elle doit s'y prendre

• Besoins :
▫ savoir expliciter son raisonnement
▫ savoir formaliser son raisonnement
▫ concevoir (et écrire) des algorithmes:
▫ séquence d’instruction
6

- Exemples d’algorithme
Gbémiga OGOUBY - Algorithmique
Généralités

• Recette de cuisine

• Notice de montage de meuble en kit

• Mathématiques : problème 3n+1: élémentaire mais redoutable


▫ si n est pair, on le divise par 2 ;
▫ si n est impair, on le multiplie par 3 et on ajoute 1.
▫ Est-il vrai que l’on finira tôt ou tard par tomber sur 1 ?
7

- Notion de décidabilité
Gbémiga OGOUBY - Algorithmique
Généralités

Une proposition (on dit aussi énoncé) est dite décidable dans une
théorie axiomatique, si on peut la démontrer ou démontrer sa négation
dans le cadre de cette théorie.

Un problème est décidable s’il existe au moins un algorithme pour le


résoudre. C’est-à-dire qu’il existe un nombre fini d’étape pour décider
de répondre au problème par l’affirmatif ou par la négation.
8

- Notion de décidabilité
Gbémiga OGOUBY - Algorithmique
Généralités

En termes plus concrets, cela veut dire qu'on demande au système de


fournir une conclusion sans lui avoir fourni suffisamment d'hypothèses.

Ainsi, l'âge du capitaine d'un bateau est indécidable en fonction du


tonnage et de la vitesse du navire.
9

- Calculabilité
Gbémiga OGOUBY - Algorithmique
Généralités

Une fonction f est calculable si, pour tout argument x, il est possible
d'obtenir f(x) en un nombre fini d'étapes.

Un algorithme étant assimilable à un calcul, on dira qu’un problème est


calculable s’il existe un algorithme pour le résoudre.

NB: La calculabilité n’implique pas toujours un calcul au sens propre du


thème.
10

- Calculabilité
Gbémiga OGOUBY - Algorithmique
Généralités

Classe de problèmes

Les problèmes sont classiquement classés en fonction des algorithmes qui les
résolvent :
• P : il existe un algorithme qui résout le problème et se termine en temps polynomial,
c'est-à-dire qui n'explose pas en fonction de la taille des données d'entrées.

• NP : il existe un algorithme qui vérifie la solution d'un problème en temps


polynomial mais il faudra un temps exponentiel pour trouver une solution.

• Indécidables : Il n'existe pas d'algorithme pour résoudre le problème.


11

- Calculabilité
Gbémiga OGOUBY - Algorithmique
Généralités

Les problèmes NP
Les problèmes NP sont considérés comme impossibles à résoudre dans
un temps humain.

Exemple:

Faut-il déplacer ma reine ou mon fou ? Un problème NP très connu est celui du calcul du meilleur coup dans le jeu d'échecs.

Pour chaque position aux échecs, il existe un nombre extrêmement grand de positions possibles. Ainsi, il est possible
théoriquement de calculer toutes ces positions. Mais l'algorithme mettra des siècles à se terminer.

Les IA calculent toutes les positions possibles sur les x prochains tours et choisiront celui qui offre la meilleure position
dans x tours.

Ce qui rend les intelligences artificielles meilleures que les humains est leur capacité à se projeter plus loin que les
humains. Les joueurs humains calculent également les potentielles positions futures mais peuvent calculer beaucoup
moins de tours que les ordinateurs modernes.
12

– Exigences d’un algorithme


Gbémiga OGOUBY - Algorithmique
Généralités

Validité:
Un algorithme est considéré comme valide si le résultat renvoyé
est le bon pour toute entrée possible. Il est donc important de
bien spécifier le domaine de définition des entrées.

Robustesse:
Prise en compte de tous les cas de figure ou conditions
anormales d’utilisation.
Exemple: la division par 0.
13

– Exigences d’un algorithme


Gbémiga OGOUBY - Algorithmique
Généralités

Réutilisabilité:
Un algorithme est réutilisable lorsqu’il peut être utilisé pour
résoudre les problèmes équivalents à ceux pour lesquels il a
été conçu.

Complexité:
Elle fait référence au nombre d’instruction à exécuter par un
algorithme avant d’aboutir à la résolution du problème pour
lequel il a été conçu.
14

– Exigence d’un algorithme


Gbémiga OGOUBY - Algorithmique
Généralités

Efficacité:
Un algorithme est dit efficace lorsqu’il est en mesure
d’optimiser les ressources nécessaires à son exécution.
15

– Caractéristiques d’un algorithme


Gbémiga OGOUBY - Algorithmique
Généralités

• Clarté;
• Instructions élémentaires ;
• Non ambiguïté;
• Précision;
• Effectif;
• Optimal
Exercices
Langage algorithmique
18

Langage algorithmique
Gbémiga OGOUBY - Algorithmique

Algorithme NomAlgorithme L’algorithme a un nom.


{ ceci est un commentaire}
Début Les blocs d’instruction sont encadrés par
Les mots clés « Début » et « Fin »
... Actions
Fin

• Il faut avoir une écriture rigoureuse


• Il faut avoir une écriture soignée : respecter l’indentation
• Il est nécessaire de commenter les algorithmes
• Il existe plusieurs solutions algorithmiques à un problème
19

Déclaration des données


Gbémiga OGOUBY - Algorithmique

Variable:

Variable <nom_donnee> : type

• Instruction permettant de réserver de l’espace mémoire pour


stocker des données
• Dépendant du type des données : entiers, réels, caractères, etc.)

Exemples : Variables val, unNombre: entiers


nom, prénom : chaînes de caractères
20

Déclaration des données


Gbémiga OGOUBY - Algorithmique

Constante:

Constante <nom_donnee> : type valeur ou expression

Instruction permettant de réserver de l’espace mémoire pour


stocker une constante dont la valeur ne varie pas.

Exemples : Max : entier 10


DeuxMax: entier Max * 2
21

Types de donnée primitifs


Gbémiga OGOUBY - Algorithmique

• Le type Entier
Ex: 5; -10; 3
• Le type Réel
Ex: 25,5; 17,2
• Le type Caractère
Ex: e, d, o, z
• Le type Chaîne de caractère
Ex: bonjour
• Le type Booleen
Ex: Vrai; Faux
22

Les opérateurs
Gbémiga OGOUBY - Algorithmique

• Opérateurs arithmétiques
+ Addition
- Soustraction
* Multiplication
/ Division

• Opérateurs de comparaison
<, <=, >, >= Infériorité et supériorité
== Egalité
!= Différence
23

Les opérateurs
Gbémiga OGOUBY - Algorithmique

• Affectation

Ex: a 5

• Opérateurs logiques
OU
ET

• Opérateur de concaténation : &


24

Lecture et affichage de données


Gbémiga OGOUBY - Algorithmique

• Lecture de donnée
Pour lire une informations saisie au clavier par l’utilisateur, on utilise la fonction Lire.

Lire(<nom_variable>)
Ex: Lire(note)

• Affichage de données ou d’informations


Pour afficher une information en sortie (écran), on utilise la fonction Ecrire.

Ecrire(‘’Chaine’’, <variable>)
Ex: Ecrire(‘’Bonjour Jean’’)
Ecrire(‘’La somme de ’’, a, ‘’ et ‘’, b, ‘’ est : ’’, resultat)
Exercices
26

Structures de contrôle
Gbémiga OGOUBY - Algorithmique

Une structure de contrôle est un bloc d’instructions composé d’actions


élémentaires.

1- Structures de contrôle conditionnelles

Une structure de contrôle conditionnelle est basée sur la notion de condition cou
d’expression booléenne.

Elle utilise une combinaison d’opérateurs de comparaison et d’opérateurs logiques


pour déterminer si la condition posée est vraie ou pas.
27

Structures de contrôle
Gbémiga OGOUBY - Algorithmique

1-1- Structure SI ALORS SINON


Elle permet d’effectuer une action si la condition posée est vraie et éventuellement
une action alternative dans le cas contraire.

Syntaxe: Exemples:

SI <condition> ALORS SI heure > 12 ALORS


<instructions_si_vrai> Ecrire(‘’Bonsoir’’)
[SINON FINSI
<instructions_si_faux>]
FINSI SI heure > 12 ALORS
Ecrire(‘’Bonsoir’’)
SINON
Ecrire(‘’Bonjour’’)
FINSI
28

Structures de contrôle
Gbémiga OGOUBY - Algorithmique

1-2- Structure SI imbriquée


Elle est utilisée dans le cas où on veut vérifier plus de deux conditions énoncés (vrai
ou faux) comme dans le cas précédent.

Syntaxe: Exemple:

SI <condition_1> ALORS SI note < 10 ALORS


<instructions_si_condition_1> Ecrire(‘Passable’’)
SINON SINON
SI <condition_2> ALORS SI note >= 10 ET note<=14 ALORS
< instructions_si_condition_2 > Ecrire(‘’Bien’’)
SINON SINON
<instructions_par_défaut> Ecrire(‘’Très bien’’)
FINSI FINSI
FINSI FINSI
29

Structures de contrôle
Gbémiga OGOUBY - Algorithmique

1-3- Structure à choix multiple SELON


Elle est utilisée pour factoriser une action qui se répète pour une variable qui peut
prendre plusieurs valeurs. A une liste de valeur, on associe donc une suite
d’instructions.
Syntaxe:

SELON (<variable>) FAIRE


Cas <liste_valeurs_1> : <instructions_1>
Cas <liste_valeurs_2> : <instructions_2>
……………………..
Cas <liste_valeurs_n> : <instructions_n>
SINON
<instructions_par_défaut>
FINSELON
30

Structures de contrôle
Gbémiga OGOUBY - Algorithmique

1-4- Structure à choix multiple SELONQUE


Elle est utilisée pour vérifier plusieurs conditions et exécuter une action dans
chaque cas. Elle est plus appropriée lorsqu’on ne veut pas imbriquer plusieurs
structures SI.
Syntaxe:
Exemple:
SELONQUE
SELONQUE
<condition_1> : <instructions_1>
note <= 7 : Ecrire(‘’Passable’’)
<condition_2> : <instructions_2>
note >= 8 ET note <=12 : Ecrire(‘’Bien’’)
……………………..
note >= 13 ET note <=16 : Ecrire(‘’Très bien’’)
<condition_n> : <instructions_n>
SINON
SINON
Ecrire(‘’Excellent’’)
<instructions_par_défaut>
FINSELONQUE
FINSELONQUE
Exercices
32

Structures de contrôle
Gbémiga OGOUBY - Algorithmique

2- Structures itératives
Les structures itératives (boucles) permettent de répéter une instruction ou suite
d’instruction un certain nombre de fois.

2-1- Structure TANTQUE


La structure TANTQUE permet répéter une suite d’instructions tant que la condition
spécifiée est vérifiée. Elle vérifie d’abord la condition puis exécute l’instruction.

Syntaxe: Exemplaire:
i <- 2
TANTQUE <condition> FAIRE TANTQUE i <= 10 FAIRE
<instructions> Ecrire(i*2)
FINTANTQUE i <- i+1
FINTANTQUE
33

Structures de contrôle
Gbémiga OGOUBY - Algorithmique

2-2- Structure REPETER


Elle joue le même rôle que la structure TANTQUE. Sa particularité est qu’elle
exécute au moins une fois l’instruction avant de vérifier la véracité de la condition
posée.

Syntaxe: Exemplaire:
i <- 1
REPETER REPETER
<instructions> Ecrire(i*5)
JUSQUA <condition> i <- i+1
JUSQUA i <= 12
34

Structures de contrôle
Gbémiga OGOUBY - Algorithmique

2-3- Structure POUR


Cette structure répétitive est utilisée lorsqu’on connaît à l’avance le nombre de
répétition à faire. La boucle POUR utilise un compteur qui a une valeur maximale et
qui s’auto incrémente jusqu’à la valeur maximale indiquée. On peut également
spécifier une valeur de pas différente de 1 qui est la valeur par défaut.

Syntaxe: Exemplaire:

POUR <compteur> DE <min> A <max> POUR i DE 1 A 50 A PAS DE 5 FAIRE


[A PAS DE <valeur_pas> ] FAIRE Ecrire(i*5)
<instructions> FINPOUR
FINPOUR
Exercices
36

Fonctions et Actions
Gbémiga OGOUBY - Algorithmique

1- Fonctions
Une fonction est un bloc d’instructions qui permet de factoriser une suite
d’instructions visant à effectuer un traitement et à fournir un résultat.

Une fonction reçoit éventuellement des données en paramètre, effectue un calcul


et retourne un résultat. Une fonction n’interagit pas avec le programme.

A l’intérieur d’une fonction, on peut également déclarer des variables qui lui sont
propres et qui ne sont accessible qu’à l’intérieur de cette dernière.
37

Fonctions et Actions
Gbémiga OGOUBY - Algorithmique

1- Fonctions
Syntaxe:
Une fonction peut être appelée dans
Fonction <nom_fonction>([<liste_parametres>] ) : < type résultat> une autre fonction ou dans une action
[<Déclaration variables locales>]
Début
<Instructions>
retourner résultat
Fin
Exemple:

Fonction PerimetreRectangle(long, larg: réels) : réels


Variables perimetre: réel
Début
perimetre <- 2*(long+larg)
retourner perimetre
Fin
38

Fonctions et Actions
Gbémiga OGOUBY - Algorithmique

2- Actions
Une action est un bloc d’instructions qui réalise des traitements et qui peut
interagir avec le programme. Une action ne retourne pas de résultat.

Syntaxe:

Action <nom_action>([<liste_parametres>] )
[<Déclaration variables locales>]
Début
<Instructions>
Fin
Exercices
40

Tableaux
Gbémiga OGOUBY - Algorithmique

Encore appelé variable indicée, un tableau est un type de variable permettant de


regrouper et de manipuler plusieurs valeurs d’un même type de base.
Exemple: un tableau de caractères.

1- Déclaration
Pour déclarer un tableau, on précise sa taille et son type d’élément. La taille
correspond au nombre d’élément que le tableau contiendra.
Syntaxe:

<nom_tableau>[taille]: Tableau de <type_valeur>

Exemple:

Tab[10]: Tableau d’entiers


41

Tableaux
Gbémiga OGOUBY - Algorithmique

2- Manipulation d’un tableau


Les éléments d’un tableau son accessibles grâce aux indices. Dans un tableau, les
indices partent de 0.
Indices 0 1 2 3 4 5 6

Contenu 25 2 10 18 27 5 17

Syntaxe d’affectation: Syntaxe de lecture:

<nom_tableau>[indice] <valeur> <nom_tableau>[indice]

Exemple: Exemple:

Tab[2] 15 Ecrire(Tab[2]) //Affichera 15 en considérant l’exemple précédent

Vous aimerez peut-être aussi