Skip to content
Snippets Groups Projects
Forked from Info 111 Programmation Impérative / 2023-2024 / Semaine1
Up to date with the upstream repository.
jupytext:
  text_representation:
    extension: .md
    format_name: myst
    format_version: 0.13
    jupytext_version: 1.15.1
kernelspec:
  display_name: Python 3
  language: python
  name: python3

+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "30edab3c3b48b688a1fe7deb30ec6d2f", "grade": false, "grade_id": "cell-531faa6d137cc87a", "locked": true, "schema_version": 3, "solution": false, "task": false}}

Les cruches

Soient deux cruches de capacités respectives 5 et 7 litres. Ces cruches ne sont pas graduées. Vous avez accès à un robinet qui vous permet de remplir à tout moment l'une ou l'autre des cruches:

remplir(0)
remplir(1)

De même, vous disposez d'une évacuation d'eau permettant de vider l'une ou l'autre des cruches:

vider(0)
vider(1)

Enfin, vous pouvez transvaser le contenu de la première cruche dans la seconde, et réciproquement:

verser(0)
verser(1)

Et c'est tout.

---
deletable: false
editable: false
nbgrader:
  cell_type: code
  checksum: 2a0ad69dfc58b0a6c3172644adaacb03
  grade: false
  grade_id: cell-7d3ed103afb89c6c
  locked: true
  schema_version: 3
  solution: false
  task: false
---
from ipywidgets_game_jugs.__global__.fr import *
CRUCHES(5, 7)

+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "0bf332bdfc40a34fc025eb7b8c87d5b9", "grade": false, "grade_id": "cell-498cce0f0d44af99", "locked": true, "schema_version": 3, "solution": false, "task": false}}

Écrire un programme de sorte que l'une ou l'autre des cruches contienne 4 litres à la fin. Noter que, dans cette feuille, le programme doit être écrit en Python, mais ici cela ne change pas grand chose.

---
deletable: false
nbgrader:
  cell_type: code
  checksum: 41898fb056db165792fae267e0ee7eeb
  grade: false
  grade_id: cell-c2904c17dda5ff4d
  locked: false
  schema_version: 3
  solution: true
  task: false
---
vider(0)
vider(1)
# REMPLACER CETTE LIGNE ET LA SUIVANTE PAR VOTRE RÉPONSE
---
deletable: false
editable: false
nbgrader:
  cell_type: code
  checksum: 96e64d30164135c4e7f85c40d940fdf5
  grade: true
  grade_id: cell-fc05ad6c1f39ca29
  locked: true
  points: 1
  schema_version: 3
  solution: false
  task: false
---
assert valides()[4]

+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "394bca589f2fe7337d679ff07c826fae", "grade": false, "grade_id": "cell-e74cb261b0883571", "locked": true, "schema_version": 3, "solution": false, "task": false}}

Compléter le programme pour que tous les volumes entre 1 et 7 soient atteints:

---
deletable: false
nbgrader:
  cell_type: code
  checksum: 6a3febe1c7eb1e49c1fe845e4d7cebc0
  grade: false
  grade_id: cell-5a9025cc96a5d3cc
  locked: false
  schema_version: 3
  solution: true
  task: false
---
# REMPLACER CETTE LIGNE ET LA SUIVANTE PAR VOTRE RÉPONSE
---
deletable: false
editable: false
nbgrader:
  cell_type: code
  checksum: 073da6c5c1ab521b2edc9619dffb81bd
  grade: true
  grade_id: cell-b3fb4f73e1c7ca78
  locked: true
  points: 1
  schema_version: 3
  solution: false
  task: false
---
assert all(valides())

+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "b8e47555c1b29fa07ad21227d819a7c1", "grade": false, "grade_id": "cell-05ad37a017d55ccc", "locked": true, "schema_version": 3, "solution": false, "task": false}}

Pour aller plus loin:

Dans une nouvelle feuille de travail:

  • essayez avec des cruches de tailles différentes
  • est-il toujours possible d'obtenir n'importe quel volume?
  • écrire un algorithme qui, étant donné deux cruches de capacités quelconques, détermine et obtienne tous les volumes possibles.