Page 1 sur 5
Algorithmique
1. Quelques définitions
Le mot « algorithme » vient du nom du mathématicien Al Khwarizmi (780 ?-850?), qui, au 9ème siècle écrivit le premier ouvrage systématique sur la solution des équations linéaires et quadratiques. La notion d'algorithme est donc historiquement liée aux manipulations numériques, mais elle s'est progressivement développée pour porter sur des objets de plus en plus complexes : des textes, des images, des formules logiques, des objets physiques, etc.
Définition : Un algorithme est une suite d'instructions simples à exécuter pour résoudre en temps fini un problème posé.
Un algorithme est dit correct s'il se termine avec la sortie juste pour toute instance.
Si un algorithme est correct on dit qu'il résout le problème.
Ici :
Données = Ingrédients Résultats = Crêpes 2. Conventions du pseudo-code
Exemple d’algorithme écrit en pseudo-code
En programmation, le pseudo-code est une façon de décrire un algorithme en respectant certaines conventions, mais sans référence à un langage de programmation en particulier.
Il n’existe pas de convention universelle pour le pseudo-code.
Afin de bien se comprendre dans la suite de ce cours, nous adopterons celle décrite ci-dessous.
Données d'entrées
Par exemple : Année <- 1582
Résultat en sortie
Par exemple : Date de Pâques pour l'année donnée Nom de l'algorithme
Par exemple : Calcul de la date de Pâques
Tableau unidimensionnel ou liste
A[i] : l'élément de rang i dans le tableau A, on suppose les tableaux numérotés à partir de 0.
Tableau multidimensionnel A[i,j]
Élément en ligne i et en colonne j du tableau A.
Page 2 sur 5 Structure de l’algorithme
l'en-tête ;
déclaration des variables ;
corps de l'algorithme ;
sortie.
L'en-tête
Il commence par le mot "Algorithme". Il identifie :
le nom de l'algorithme ;
ce que l'algorithme doit faire ;
les entrées et les sorties.
La déclaration des variables
Elle commence par le mot "Variables".
Elle définit :
le nom des variables ;
le type des variables.
Procédure
PROCEDURE nom(paramètres) instruction
...
Résultat Fonction
FONCTION nom(paramètres) instruction
...
RETOURNER résultat Bloc si
SI condition ALORS instruction-si-vrai ...
SINON
instruction-si-faux ...
FIN SI
Chaîne de caractères
"string" (entre guillemets)
Bloc tant que
TANT QUE condition FAIRE instruction
...
FIN TANT QUE Bloc pour
POUR i ALLANT DE d À f FAIRE instruction
...
FIN POUR Affectation
a 10 Commentaires
/* ceci est un commentaire */
Page 3 sur 5 Algorithme complet
3. Historique d’éxécution
Pour comprendre et vérifier le fonctionnement d'un algorithme, il faut :
donner un exemple d'exécution
numéroter les lignes de l'algorithme
sélectionner les variables à suivre
construire un tableau représentant les valeurs de chaque variable au fur et à mesure de l'exécution de l'algorithme en fonction de la ligne.
Le corps de l'algorithme
Il commence par le mot "Début" et s'achève par le mot "Fin".
Les indentations permettent d'identifier les blocs d'instructions.
La plupart des algorithmes se décomposent en 2 parties :
ce qu'on calcule ;
ce qu'on renvoie à l'utilisateur (instruction Retourner()).
Page 4 sur 5 4. Recherche du maximun :
Algorithme max(tab )
/* algorithme qui recherche le maximum d’une liste*/
Entrées : liste de nombres réels
Sorties : resultat : le maximum recherché tab : tableau de réels ;
max : réel Début
max tab[0]
POUR i ALLANT DE 1 A longueur de tab FAIRE : SI tab[i]>max ALORS:
maxtab[i]
FIN SI FIN POUR renvoyer(max) Fin
Exercice 1 :
Soit le tableau tab=[24, 15, -5, 68, 2, 145, 55], on souhaite obtenir le maximum de la liste.
a) Quel est le résultat attendu ?
b) En vous aidant de l’algorithme ci-dessus, donner l’historique d’exécution en complétant le tableau ci-dessous. (le recopier dans votre cahier et ajouter le nombre de lignes nécessaires)
Instructions Tab Max i Condition Valeur retournée
[24,15,-5,68,2,145,55]
Ligne 1
Ligne 2
….
….
….
c) Ecrire le programme correspondant en Python.
Page 5 sur 5 Exercice 2 :
1. Ecrire un algorithme qui recherche le minimum d’une liste (avec la définition des entrées et des sorties, la déclaration des variables).
2. Soit le tableau tab=[24, 15, -5, 68, 2, 145, 55], on souhaite obtenir le minimum de la liste.
2.1. Quel est le résultat attendu ? 2.2. Donner l’historique d’exécution.
Exercice 3 :
A l’aide du module “random”, créer, en compréhension, un tableau de 8 entiers choisis aléatoirement et compris entre -20 et 20.
Ecrire le programme Python permettant de rechercher le maximum des 8 nombres.
Exercice 4 :
Soit le tableau tab = ['pomme', 'abricot', 'banane', 'kiwi', 'orange', 'clementine']
Ecrire un programme en Python, permettant de classer le mot se trouvant le dernier dans le dictionnaire.
Aide : Voici les résultats obtenus dans une console python :
Ces comparaisons sont possibles, parce que les caractères alphabétiques qui constituent une chaîne de caractères sont mémorisés dans la mémoire de l'ordinateur sous forme de nombres binaires dont la valeur est liée à la place qu'occupe le caractère dans l'alphabet. Pour connaître cette valeur, il suffit de faire ord(‘lettre’) comme ci-dessus.
Dans le système de codage ASCII, par exemple, A=65, B=66, C=67, etc.