Université François Rabelais de Tours
Laboratoire de Mathématiques et Physique Théorique
Mathématiques Discrètes et Algorithmique
UE 5-4 Option Semestre 5
1. Introduction
L’objectif de ce cours est de se familiariser avec la notion d’algorithme : être capable d’écrire des algo-
rithmes, d’étudier leur complexité et de les implémenter.
Voici une définition informelle (il n’y en aura pas de formelle !) d’un algorithme : 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. Un algorithme est donc en quelque sorte une "recette de cuisine". Puisque la
procédure doit être bien définie, il est nécessaire d’utiliser un langage spécifique évitant toute ambiguité :
deux personnes, qui ne peuvent pas communiquer entre-elles, doivent être capables d’effectuer la même
suite d’opérations.
Nous décrirons les algorithmes en pseudo-code, c’est à dire sans faire référence à un programme infor-
matique. Le pseudocode est la plupart du temps “naturellement compréhensible. La seule chose à savoir
est que “ :=” signifie “devient égal à” et que le “=” (ainsi que “<,>,,”) est un test d’égalité, la ré-
ponse étant soit “oui” soit “non”. Nous utiliserons aussi les notations suivantes : le ième élément d’une liste
L= (a1, a2,...,an)(ou L= [a1,...,an]) sera noté L[i]. L’entrée (i, j)d’une matrice A= (ai,j )sera notée
A[i][j]. Donnons tout de suite un exemple pour se fixer les idées.
Données : Liste d’entiers (a1, a2,...,an)
Résultat :max ai
max := a1
pour i=2 ànfaire
si max < aialors
max := ai
fin
fin
Algorithme 1: Déterminer le maximum d’une liste d’entiers
La distinction algorithme-programme est importante :
Un algorithme est la description, la plus imagée possible, d’une suite d’actions qui ne dépendent d’aucune
machine ;
Un programme est un texte très lourd, très pointilleux, destiné à un compilateur. Il est écrit dans un
langage donné (pour nous ce sera Python)
Nous utiliserons le logiciel Sage : c’est un logiciel libre de mathématiques. Il combine la puissance de
nombreux programmes libres dans une interface commune basée sur le langage de programmation Python.
Le programme Python de l’algorithme 1 est comme suit.
def maximum(L)
max=L[1]
for iin range(1,len(L)):
if L[i]>max:
max=L[i]
return max
Programme Python pour déterminer le maximum
1
1 / 1 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !