Algorithmes gloutons

Au programme de la classe de première

Contenus Capacités attendues Commentaires
Algorithmes gloutons Résoudre un problème grâce à un algorithme glouton. Exemples : problèmes du sac à dos ou du rendu de monnaie. Les algorithmes gloutons constituent une méthode algorithmique parmi d’autres qui seront vues en terminale.

Documents

Tester ses fonctions avec 'assert'

Chapitre 5,1

Dans le document 5,1, nous avons insisté sur l’importance de la spécification d’une fonction et sur celle d’un jeu de tests.
Dans ce document, nous allons découvrir une nouvelle façon de tester ses fonctions.

Le mot clé assert

Le mot clé assert est utilisé afin de s’assurer de la robustesse d’une fonction. Il ne doit jamais être utilisé au sein d’un programme pour lever une exception ; il ne faut donc pas le confondre avec le mot clé raise.
Placé dans la zone de test du programme,

[Lire]

Contrôle du flot d'exécution d'un programme : structures iteratives

Chapitre 4,2

Ce chapitre reprend l’étude de structures de contrôles, c’est à dire d’instructions qui permettent de modifier le « flot d’exécution implicite » d’un programme.

Après les structures conditionnelles (ou alternatives), les structures itératives (ou boucles) sont introduites.

Introduction

Les boucles sont des instructions répétitives. Comme les tests conditionnels, elles nécessitent la définition de blocs d’instructions. Les instructions de ces blocs sont répétées tant qu’une condition d’arrêt n’est pas vérifiée. Chaque passage dans la boucle s’appelle une itération.

[Lire]

Contrôle du flot d'exécution d'un programme : l'alternative

Chapitre 4,1

Booléens et expressions booléennes

Une grandeur booléenne est une grandeur qui ne peut prendre que deux valeurs : Vrai ou Faux, ou 0 ou 1, ou …).
  • Dans le langage Python, les valeurs booléennes s’écrivent True et False.
  • La fonction bool transforme n’importe quel argument en valeur booléenne — tout argument à valeur nulle (entier 0, flottant 0.0, chaîne de caractères "", liste vide list(), etc.) est converti en valeur False, toute autre valeur pour l’argument devient la valeur True.
  • Une expression booléenne est une expression dont la valeur est une grandeur booléenne.
  • Une expression booléenne comporte soit un opérateur de comparaison, soit une fonction booléenne.
Opérateur Expression booléenne Description
< expr1 < expr2 retourne True si expr1 est strictement inférieure à expr2
> expr1 > expr2 retourne True si expr1 est strictement supérieure à expr2
<= expr1 <= expr2 retourne True si expr1 est inférieure ou égale à expr2
>= expr1 >= expr2 retourne True si expr1 est supérieure ou égale à expr2
== expr1 == expr2 retourne True si expr1 est égale à expr2
!= expr1 != expr2 retourne True si expr1 est différente de expr2
not not exprBool retourne le complément logique de exprBool
and expr1 and expr2 retourne le résultat d’un ET logique
or expr1 or expr2 retourne le résultat d’un OU logique
  • Un opérateur est une fonction spéciale dont l’identificateur s’écrit généralement avec des caractères non autorisés pour le nom des fonctions ordinaires (symboles ou ponctuations). Il s’agit souvent des équivalents aux opérateurs mathématiques pour le langage de programmation.
  • Les opérateurs de comparaison retournent un booléen à partir de nombres (ou de chaînes de caractères).
Une fonction booléenne est une fonction qui fait correspondre à un ou plusieurs booléens (selon son arité) un booléen.

Le comportement d’une fonction booléenne ne peut pas être décrit par une courbe. Cependant, l’ensemble des booléens n’étant constitué que de deux éléments, on peut établir la table de vérité d’une telle fonction, c’est à dire l’ensemble des valeurs qu’elle retourne en fonction des arguments qui lui sont passés.

[Lire]

Recherche d'un réactif limitant à l'aide d'un programme écrit en Python

On réalise l’oxydation des ions fer II $\ce{Fe^{2+} (aq)}$ par des ions permanganate $\ce{MnO4^- (aq)}$ en milieu acide.
Les couples oxydant/réducteur mis en jeu sont : $\ce{Fe^{3+}/Fe^{2+}}$ et $\ce{MnO4^-/Mn^{2+}}$.

  1. Montrer que l’équation de la réaction s’écrit : $$ \ce{5 Fe^{2+} (aq) + MnO4^- (aq) + 8 H^+ –> 5 Fe^{3+} (aq) + Mn^{2+} (aq) + 4 H2O } $$

On met en présence $\pu{10 mL}$ d’une solution de permanganate de potassium à la concentration $\pu{0,03 mol.L-1}$ en ion permanganate et $\pu{10 mL}$ d’une solution de sulfate de fer II à la concentration $\pu{0,1 mol.L-1}$ en ion fer II. On acidifie cette solution en ajoutant de l’acide sulfurique. Le volume final de la solution est égal à $\pu{25 mL}$ et son pH vaut $\pu{1,0}$.

[Lire]

Problème du sac à dos

Chapitre 23,02

Au programme

Algorithmique

Contenus Capacités attendues Commentaires
Algorithmes gloutons Résoudre un problème grâce à un algorithme glouton. Exemples : problèmes du sac à dos ou du rendu de monnaie. Les algorithmes gloutons constituent une méthode algorithmique parmi d’autres qui seront vues en terminale.

Algorithmes gloutons, problème du rendu de monnaie

Chapitre 23,01

Au programme

Algorithmique

Contenus Capacités attendues Commentaires
Algorithmes gloutons Résoudre un problème grâce à un algorithme glouton. Exemples : problèmes du sac à dos ou du rendu de monnaie. Les algorithmes gloutons constituent une méthode algorithmique parmi d’autres qui seront vues en terminale.

Introduction

Les algorithmes gloutons forment une catégorie d’algorithmes permettant de parvenir à une solution pour un problème d’optimisation qui vise à maximiser/minimiser une quantité (plus court chemin (GPS), plus petite durée d’exécution, meilleure organisation d’un emploi du temps, etc.)

[Lire]

Langages et programmation

Chapitre 2,1

À quoi a-t-on accès lorsqu’on utilise un langage de programmation ?

Un langage de programmation doit :

  • fournir des objets (ou types) primitifs ;
  • posséder une bibliothèque de fonctions prédéfinies ;
  • permettre la manipulation des objets primitifs et des fonctions prédéfinies ;
  • établir des règles qui permettent de construire de nouveaux objets (ou types) ou de nouvelles fonctions par combinaison des types primitifs et des fonctions prédéfinies.

Nous allons aborder chacun de ces points.

[Lire]