{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exercices du livre - Chapitre 10\n",
    "\n",
    "---"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Exercice 1 ✓✓\n",
    "\n",
    "La distance d'édition est une distance, au sens mathématique du terme, donnant une mesure de la différence entre deux chaînes de caractères. Elle est égale au nombre minimal de caractères qu'il faut supprimer, insérer ou remplacer pour passer d’une chaîne à l’autre. C'est une mesure de leur ressemblance.\n",
    "\n",
    "Écrire une fonction récursive qui reçoit deux chaînes de caractères s et t et qui retourne leur distance d'édition suivant l'algorithme :\n",
    "\n",
    "![algo](../data/algo_60.png)\n",
    "\n",
    "Écrire un programme principal qui saisie les deux chaînes et affiche leur distance d'édition.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "Exercice 1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercice 2 ✓\n",
    "\n",
    "  Écrire une fonction récursive sans paramètre qui saisit des flottants jusqu'à une saisie vide et qui retourne la somme des entrées.\n",
    "\n",
    "  Écrire un programme principal qui teste cette fonction. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Exercice 2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercice 3 ✓✓\n",
    "\n",
    "  On définit les nombres romains comme une liste de tuples : \n",
    "\n",
    "```python\n",
    "couples = [(1000, 'M'), (900, 'CM'), (500, 'D'), ... (1, 'I')]\n",
    "```\n",
    "\n",
    "Saisissez un entier entre 1 et 3999 et affichez-le sous forme de nombre romain"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Exercice 3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercice 4 ✓✓\n",
    "\n",
    "  Écrire une fonction récursive qui reçoit une chaîne de caractères et qui retourne `True` si la chaîne est un palindrome, `False` sinon.\n",
    "\n",
    "  Écrire un programme principal qui saisie une chaîne et teste cette fonction."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Exercice 4"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercice 5 ✓✓\n",
    "\n",
    "  Trouvez une paire d'éléments parmi une liste dont la somme est égale à une cible.\n",
    "\n",
    "  Par exemple, pour les entrées :\n",
    "  \n",
    "```python\n",
    "une_liste = (10, 20, 10, 40, 50, 60, 70)\n",
    "cible = 60\n",
    "```\n",
    "on trouve les indices 1 et 3."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Exercice 5"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercice 6 ✓✓✓\n",
    "\n",
    "  Proposer une version récursive du problème n° 7 des $n$ dés présenté au chapitre 4."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Exercice 6"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
