$$\newcommand{\mtn}{\mathbb{N}}\newcommand{\mtns}{\mathbb{N}^*}\newcommand{\mtz}{\mathbb{Z}}\newcommand{\mtr}{\mathbb{R}}\newcommand{\mtk}{\mathbb{K}}\newcommand{\mtq}{\mathbb{Q}}\newcommand{\mtc}{\mathbb{C}}\newcommand{\mch}{\mathcal{H}}\newcommand{\mcp}{\mathcal{P}}\newcommand{\mcb}{\mathcal{B}}\newcommand{\mcl}{\mathcal{L}} \newcommand{\mcm}{\mathcal{M}}\newcommand{\mcc}{\mathcal{C}} \newcommand{\mcmn}{\mathcal{M}}\newcommand{\mcmnr}{\mathcal{M}_n(\mtr)} \newcommand{\mcmnk}{\mathcal{M}_n(\mtk)}\newcommand{\mcsn}{\mathcal{S}_n} \newcommand{\mcs}{\mathcal{S}}\newcommand{\mcd}{\mathcal{D}} \newcommand{\mcsns}{\mathcal{S}_n^{++}}\newcommand{\glnk}{GL_n(\mtk)} \newcommand{\mnr}{\mathcal{M}_n(\mtr)}\DeclareMathOperator{\ch}{ch} \DeclareMathOperator{\sh}{sh}\DeclareMathOperator{\th}{th} \DeclareMathOperator{\vect}{vect}\DeclareMathOperator{\card}{card} \DeclareMathOperator{\comat}{comat}\DeclareMathOperator{\imv}{Im} \DeclareMathOperator{\rang}{rg}\DeclareMathOperator{\Fr}{Fr} \DeclareMathOperator{\diam}{diam}\DeclareMathOperator{\supp}{supp} \newcommand{\veps}{\varepsilon}\newcommand{\mcu}{\mathcal{U}} \newcommand{\mcun}{\mcu_n}\newcommand{\dis}{\displaystyle} \newcommand{\croouv}{[\![}\newcommand{\crofer}{]\!]} \newcommand{\rab}{\mathcal{R}(a,b)}\newcommand{\pss}[2]{\langle #1,#2\rangle} $$
Bibm@th

Exercices sur les intervalles, inégalités, inéquations - Algorithmique

Avec des booléens et des tests
Enoncé
Écrire une fonction sous Python qui prend en entrée un réel $x$ et renvoie la valeur absolue de $x$. On n'utilisera bien sûr pas la fonction valeur absolue de Python!
Indication
Corrigé
Enoncé
Un boulanger fabrique chaque matin $100$ croissants pour un coût total de $33$€. Il vend ensuite ses croissants dans la journée à $1,10$€ pièce. Le boulanger n'est pas fort en maths, mais a confiance en sa fille qui sait programmer en Python. Il lui demande de créer un programme qui permet de savoir à la fin de la journée s'il a perdu de l'argent ou non, et quelle somme est perdue ou gagnée. La fonction s'appelle $\verb+benefice+$.
  1. Le boulanger a vendu 13 croissants. Il entre dans la console $\verb+benefice(13)+$. Voici le résultat affiché : $$("\textrm{tu perds de l'argent papa!}",-18.7).$$ Expliquer le message affiché par l'ordinateur. Retrouver le résultat affiché en faisant un calcul.
  2. Le boulanger a vendu 50 croissants. Qu'entre-t-il dans la console? Qu'affiche le programme dans la console?
  3. Soit $n$ le nombre de croissants vendus dans la journée. Prouver que le bénéfice du boulanger par jour est $B(n)=1,1n-33$.
  4. Voici le programme de la fille du boulanger, compléter les pointillés.


    def benefice(n):
      b=.......
      if .... :
        return ("tu perds de l'argent papa!",b)
      elif ....
        return ("tu gagnes de l'argent papa!",b)
      else :
        return ("tu ne perds rien, mais tu ne gagnes rien, papa!")

  5. Quel est le nombre minimum de croissants que le boulanger doit vendre pour ne pas perdre de l'argent sur cette vente? Justifier.
Corrigé
Enoncé
Pour une fête de famille, un couple se renseigne auprès d'un traiteur et d'un restaurateur pour un repas :
  • Pour le traiteur, le prix de vente total est composé:
    • d'une partie fixe: $1500$€ pour l'ensemble de la prestation.
    • d'une partie variable: $20$€ par repas.
  • Pour le restaurateur, le prix de vente total est composé:
    • d'une partie fixe: $300$€ pour l'ensemble de la prestation.
    • d'une partie variable: $50$€ par repas.
  1. ALGO: Écrire une fonction qui renvoie la prestation la moins chère selon le nombre de repas commandés.
  2. Pour combien de repas, le traiteur est-il moins cher que le restaurateur? Justifier la réponse.
Corrigé
Enoncé
Un particulier souhaite louer une voiture. L'agence de location $A$ demande un forfait de $100$€ au départ, puis $0,\!20$€ par kilomètre parcouru. L'agence de location $B$ demande un forfait de $150$€ au départ, puis $0,\!15$€ par kilomètre parcouru.
  1. Combien coûte la location d'une voiture dans l'agence A si on parcourt $200$km?
  2. Combien coûte la location d'une voiture dans l'agence B si on parcourt $3000$km?
  3. On note $x$ le nombre de kilomètres parcourus.
    1. Déterminer $A(x)$ l'expression qui donne le prix de la location dans l'agence $A$ en fonction de $x$.
    2. Déterminer $B(x)$ l'expression qui donne le prix de la location dans l'agence $B$ en fonction de $x$.
  4. ALGO: On souhaite écrire un algorithme qui, lorsque l'utilisateur lui indique le nombre de kilomètres à parcourir, affiche l'agence de location qui sera la moins chère pour lui. Compléter l'algorithme ci-dessous.


    def meilleureloc(x):
      # x désigne le nombre de kilomètres parcourus
      a=......
      # a désigne le prix payé si on choisit l'agence A
      b=......
      # b désigne le prix payé si on choisit l'agence B
      if ....:
        return "choisir l'agence A"
      elif.....:
        return "choisir l'agence B"
      else:
        return "...."

  5. Résoudre l'inéquation $0,\!2x+100>0,\!15x+150$. Interpréter le résultat.
Corrigé
Avec une boucle
Exercice 5 - Approximation de $\sqrt 2$ par balayage [Signaler une erreur] [Ajouter à ma feuille d'exos]
Enoncé
On cherche un encadrement décimal à $10^{-n}$ près du réel $\sqrt 2$, c'est-à-dire du réel positif $a$ tel que $a^2=2$. On sait que $1<a<2$. Pour trouver cet encadrement, on va balayer l'intervalle $[1;2]$ avec un pas de $10^{-n}$.
  1. A la main! Dans un premier temps, on va "balayer" l'intervalle $[1;2]$ avec un pas de $0,\!1$. Calculer $1^2$, puis $1,\!1^2$, puis $1,\!2^2$, ... Quand peut-on s'arrêter? En déduire un encadrement décimal à $10^{-1}$ près de $a$.
  2. Avec Python! Cette solution à la main n'est pas envisageable pour des encadrement à $10^{-n}$ près, et on se propose de la mettre en oeuvre à l'aide d'un algorithme sous Python. On propose la fonction suivante :


    def approx(n):
      a=1:
      pas=10**-n
      while ..... :
        a=a+p
      return (a-p,p)

    1. Que signifie la ligne $\verb+pas=10**-n+$?
    2. Compléter la condition du $\verb+while+$.
    3. Expliquer l'instruction $\verb+return(a-p,a)+$
Corrigé
Pour compléter...