Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Dernière révision Les deux révisions suivantes | ||
cuve_cylindrique_horizontale [2008/03/17 09:25] tyrtamos |
cuve_cylindrique_horizontale [2008/03/17 11:29] tyrtamos |
||
---|---|---|---|
Ligne 57: | Ligne 57: | ||
Maintenant, si la hauteur du liquide dépasse le rayon r de la cuve, le calcul sera différent. Pour éviter de le refaire, on va utiliser l' | Maintenant, si la hauteur du liquide dépasse le rayon r de la cuve, le calcul sera différent. Pour éviter de le refaire, on va utiliser l' | ||
+ | |||
+ | ===== Le code ===== | ||
Tout cela nous donne le code Python suivant: | Tout cela nous donne le code Python suivant: | ||
- | + | <code python> | |
+ | # | ||
+ | # -*- coding: utf-8 -*- | ||
+ | |||
+ | # indispensable pour qu'une division entre 2 entiers donne un résultat décimal! | ||
+ | from __future__ import division | ||
+ | |||
+ | from math import pi, | ||
+ | |||
+ | def volcuve(h, | ||
+ | """ | ||
+ | if h==0: | ||
+ | return 0 | ||
+ | r=d/2 | ||
+ | if h==r: | ||
+ | return vt/2 | ||
+ | if h==d: | ||
+ | return vt | ||
+ | if h>r: | ||
+ | h=d-h | ||
+ | nivhaut=True | ||
+ | else: | ||
+ | nivhaut=False | ||
+ | st=pi*r*r | ||
+ | alpha=acos((r-h)/ | ||
+ | sr=(r-h)*sqrt(r*r-(r-h)**2) | ||
+ | sa=st/ | ||
+ | sh=sa-sr | ||
+ | v=vt*sh/ | ||
+ | if nivhaut: | ||
+ | v=vt-v | ||
+ | return v | ||
+ | |||
+ | # exemples d' | ||
+ | print volcuve(0, | ||
+ | print volcuve(40, | ||
+ | print volcuve(60, | ||
+ | print volcuve(80, | ||
+ | print volcuve(100, | ||
+ | print volcuve(120, | ||
+ | </ | ||
+ | |||
+ | Si vous utilisez cette fonction dans une calculatrice, | ||
+ | |||
+ | * %%0< | ||
+ | * d>0 | ||
+ | * vt>0 | ||
+ | Vous pouvez essayer cette fonction dans ma calculatrice en ligne: [[http:// | ||