Modifications entre les versions 3 et 5 (s'étendant sur 2 versions)
Version 3 à la date du 2012-11-21 20:41:27
Taille: 113
Éditeur: roq13-2-78-235-210-46
Commentaire:
Version 5 à la date du 2012-11-21 21:01:40
Taille: 2399
Éditeur: roq13-2-78-235-210-46
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
## page was renamed from TP d’algorithmique élémentaire
Ligne 3: Ligne 2:

== Tester l’appartenance ==

Écrivez une fonction :
{{{#!highlight python
def trouve(l,x):
 ...
}}}
qui renvoie `True` si `x` est un élément de la liste `l` et `False` sinon.

Testez :
{{{#!highlight python
l=[1,6,6,4]
trouve(l,0)
trouve(l,1)
trouve(l,6)
trouve(l,4)
trouve('Bonjour','B')
trouve('Bonjour','b')
}}}

Transformez légèrement la fonction pour qu’elle renvoie l’indice de
`x` dans `l` (le numéro de la « case » où `x` apparaît) au lieu de `True`.
Testez :
{{{#!highlight python
trouve(l,6)
trouve(l,6) == False
trouve(l,1)
trouve(l,1) == False
}}}
Argh ! Que s’est-il passé ? Le test d’égalité prend en fait en compte
des conversions possibles entre les types, et permet de considérer
que `False == 0` et `True == 1`. Donc `False` n’est pas un bon choix de valeur
d’erreur. On pourrait prendre `-1` par convention, mais seulement parce qu’on
sait qu’on attend un résultat positif. La manière « propre » de gérer ce cas,
c’est d’utiliser la constante `None`, de type `NoneType`, qui a la propriété
de n’être égale qu’à elle-même. Modifiez donc encore la fonction pour renvoyer
`None` plutôt que `False` dans le cas où on ne trouve pas l’élément.



== Renverser une chaîne ==

Écrivez une fonction :
{{{#!highlight python
def renverse(entree):
 ...
 return sortie
}}}
qui prend en argument une chaîne `entree` et renvoie la chaîne
renversée, c’est-à-dire que `renverse('abcde')` doit renvoyer (et pas afficher) `'edcba'`.

Rappelez-vous qu’il n’y a pas de manière naturelle en Python de dire quelque chose comme :
« on part avec un tableau vide de n cases », et surtout que les chaînes ne sont pas mutables.
Il faut donc ''construire'' le résultat.


== Renverser une liste (en place) ==

Écrivez une fonction :
{{{#!highlight python
def ret(entree):
 ...
 return sortie
}}}
qui prend en argument une chaîne `entree` et renvoie la chaîne
renversée, c’est-à-dire que `renverse('abcde')` doit renvoyer (et pas afficher) `'edcba'`.

Rappelez-vous qu’il n’y a pas de manière naturelle en Python de dire quelque chose comme :
« on part avec un tableau vide de n cases », et surtout que les chaînes ne sont pas mutables.
Il faut donc ''construire'' le résultat.

Quelques exercices de programmation classiques

Tester l’appartenance

Écrivez une fonction :

   1 def trouve(l,x):
   2         ...

qui renvoie True si x est un élément de la liste l et False sinon.

Testez :

   1 l=[1,6,6,4]
   2 trouve(l,0)
   3 trouve(l,1)
   4 trouve(l,6)
   5 trouve(l,4)
   6 trouve('Bonjour','B')
   7 trouve('Bonjour','b')

Transformez légèrement la fonction pour qu’elle renvoie l’indice de x dans l (le numéro de la « case » où x apparaît) au lieu de True. Testez :

   1 trouve(l,6)
   2 trouve(l,6) == False
   3 trouve(l,1)
   4 trouve(l,1) == False

Argh ! Que s’est-il passé ? Le test d’égalité prend en fait en compte des conversions possibles entre les types, et permet de considérer que False == 0 et True == 1. Donc False n’est pas un bon choix de valeur d’erreur. On pourrait prendre -1 par convention, mais seulement parce qu’on sait qu’on attend un résultat positif. La manière « propre » de gérer ce cas, c’est d’utiliser la constante None, de type NoneType, qui a la propriété de n’être égale qu’à elle-même. Modifiez donc encore la fonction pour renvoyer None plutôt que False dans le cas où on ne trouve pas l’élément.

Renverser une chaîne

Écrivez une fonction :

   1 def renverse(entree):
   2         ...
   3         return sortie

qui prend en argument une chaîne entree et renvoie la chaîne renversée, c’est-à-dire que renverse('abcde') doit renvoyer (et pas afficher) 'edcba'.

Rappelez-vous qu’il n’y a pas de manière naturelle en Python de dire quelque chose comme : « on part avec un tableau vide de n cases », et surtout que les chaînes ne sont pas mutables. Il faut donc construire le résultat.

Renverser une liste (en place)

Écrivez une fonction :

   1 def ret(entree):
   2         ...
   3         return sortie

qui prend en argument une chaîne entree et renvoie la chaîne renversée, c’est-à-dire que renverse('abcde') doit renvoyer (et pas afficher) 'edcba'.

Rappelez-vous qu’il n’y a pas de manière naturelle en Python de dire quelque chose comme : « on part avec un tableau vide de n cases », et surtout que les chaînes ne sont pas mutables. Il faut donc construire le résultat.

WikISN: TPAlgoÉlémentaire (dernière édition le 2016-01-25 14:01:22 par LionelVaux)