Ajout des TP faits jusque là.
Ajout des TP 2 et 3.
This commit is contained in:
parent
4ae3dfa87f
commit
798f58ba8f
8 changed files with 869 additions and 0 deletions
66
S1/TP 2/Conversion Celsius Fahrenheit.py
Normal file
66
S1/TP 2/Conversion Celsius Fahrenheit.py
Normal file
|
@ -0,0 +1,66 @@
|
|||
# PREUD'HOMME BONTOUX Geoffrey - PeiP 12 - 2014/2015
|
||||
# TP n°2 donné le 19/09/2014 - Conversion Celsius ↔ Fahrenheit
|
||||
# http://www.fil.univ-lille1.fr/~wegrzyno/portail/Info/Doc/HTML/tp_donnees_expressions.html
|
||||
|
||||
# Q1
|
||||
C = 20
|
||||
|
||||
# Q2
|
||||
F = 9/5*C+32
|
||||
|
||||
# Q3
|
||||
print("Une température de", C, "°C correspond à une température de", F, "F.")
|
||||
|
||||
# Q4
|
||||
F2 = 75
|
||||
C2 = 5/9*(F2-32)
|
||||
print("Une température de", F2, "F correspond à une température de", C2, "°C.")
|
||||
|
||||
# Q5
|
||||
def celsius_en_fahrenheit(celsius):
|
||||
"""
|
||||
Convertit une température en degrés Celsius en degrés Fahrenheit.
|
||||
|
||||
CU : celsius numérique
|
||||
|
||||
Exemple :
|
||||
|
||||
>>> celsius_en_fahrenheit(20)
|
||||
68.0
|
||||
"""
|
||||
return 9/5*celsius+32
|
||||
|
||||
help(celsius_en_fahrenheit)
|
||||
|
||||
print("Q5", "Une température de 21 °C correspond à une température de", \
|
||||
celsius_en_fahrenheit(21), "F.")
|
||||
print("Q5", "Une température de 34 °C correspond à une température de", \
|
||||
celsius_en_fahrenheit(34), "F.")
|
||||
print("Q5", "Une température de 55 °C correspond à une température de", \
|
||||
celsius_en_fahrenheit(55), "F.")
|
||||
|
||||
# Q6
|
||||
def fahrenheit_en_celsius(fahrenheit):
|
||||
"""
|
||||
Convertit une température en degrés Fahrenheit en degrés Celsius.
|
||||
|
||||
CU : fahrenheit numérique
|
||||
|
||||
Exemple :
|
||||
|
||||
>>> fahrenheit_en_celsius(75)
|
||||
23.88888888888889
|
||||
"""
|
||||
return 5/9*(fahrenheit-32)
|
||||
|
||||
# Q7
|
||||
# On fait une composition de fonction (au moins deux fois pour vérifier les
|
||||
# deux sens) avec un nombre choisi arbitrairement
|
||||
|
||||
nombreTest = 42
|
||||
|
||||
test = celsius_en_fahrenheit( \
|
||||
fahrenheit_en_celsius( \
|
||||
celsius_en_fahrenheit( \
|
||||
fahrenheit_en_celsius(nombreTest)))) == nombreTest
|
||||
print("Q7", "Le test sur la réciprocité des fonctions a retourné :", test)
|
|
@ -0,0 +1,65 @@
|
|||
# PREUD'HOMME BONTOUX Geoffrey - PeiP 12 - 2014/2015
|
||||
# TP n°2 donné le 19/09/2014 - Début du developpement en fraction continue d’un
|
||||
# réel
|
||||
# http://www.fil.univ-lille1.fr/~wegrzyno/portail/Info/Doc/HTML/tp_donnees_expressions.html
|
||||
|
||||
# Q1
|
||||
from math import floor
|
||||
|
||||
# Q2
|
||||
def afficher_debut(x):
|
||||
"""
|
||||
Réalise le début du développement en fraction continue d’un nombre et
|
||||
affiche les parties entières calculées.
|
||||
|
||||
CU : x numérique
|
||||
|
||||
Exemple :
|
||||
|
||||
>>> afficher_debut(3.14159265359)
|
||||
a0 = 3
|
||||
a1 = 7
|
||||
a2 = 15
|
||||
"""
|
||||
# Calcul des valeurs
|
||||
a0 = floor(x)
|
||||
y = (x - a0) ** -1
|
||||
a1 = floor(y)
|
||||
z = (y - a1) ** -1
|
||||
a2 = floor(z)
|
||||
|
||||
# Affichage des valeurs
|
||||
print("a0 = ", a0)
|
||||
print("a1 = ", a1)
|
||||
print("a2 = ", a2)
|
||||
|
||||
# Q3
|
||||
from math import pi
|
||||
|
||||
# Q4
|
||||
afficher_debut(pi)
|
||||
|
||||
def afficher_debut_bis(x):
|
||||
"""
|
||||
Réalise le début du développement en fraction continue d’un nombre et
|
||||
affiche une approximation de ce nombre sous la forme d'une fraction
|
||||
continue.
|
||||
|
||||
CU : x numérique
|
||||
|
||||
Exemple :
|
||||
|
||||
>>> afficher_debut_bis(3.14159265359)
|
||||
3 + 1 / (7 + 1 / 15)
|
||||
"""
|
||||
# Calcul des valeurs
|
||||
a0 = floor(x)
|
||||
y = (x - a0) ** -1
|
||||
a1 = floor(y)
|
||||
z = (y - a1) ** -1
|
||||
a2 = floor(z)
|
||||
|
||||
# Affichage des valeurs
|
||||
print(str(a0) + " + 1 / (" + str(a1) + " + 1 / " + str(a2) + ")")
|
||||
|
||||
afficher_debut_bis(pi)
|
50
S1/TP 2/Taille d un entier en base 10.py
Normal file
50
S1/TP 2/Taille d un entier en base 10.py
Normal file
|
@ -0,0 +1,50 @@
|
|||
# PREUD'HOMME BONTOUX Geoffrey - PeiP 12 - 2014/2015
|
||||
# TP n°2 donné le 19/09/2014 - Taille d'un entier en base 10
|
||||
# http://www.fil.univ-lille1.fr/~wegrzyno/portail/Info/Doc/HTML/tp_donnees_expressions.html
|
||||
|
||||
# Q1
|
||||
from math import log10
|
||||
|
||||
# Q2
|
||||
from math import floor
|
||||
print("Q2", "floor(3.14159265359) retourne", floor(3.14159265359))
|
||||
|
||||
# Q3
|
||||
def taille(entier):
|
||||
"""
|
||||
Calcule la taille décimale d’un entier positif.
|
||||
|
||||
CU : entier int ≥ 0
|
||||
|
||||
Exemple :
|
||||
|
||||
>>> taille(2014)
|
||||
4
|
||||
"""
|
||||
return floor(log10(entier)) + 1
|
||||
|
||||
# Q4
|
||||
print("Q4", "taille(2**100) retourne", taille(2**100))
|
||||
|
||||
# Q5
|
||||
# Le code qui suit a été éxecuté dans l'interpréteur puis inseré ici en tant
|
||||
# que commentaire pour garder le fichier valide car il provoque des erreurs
|
||||
|
||||
# >>> taille(-2014)
|
||||
# Traceback (most recent call last):
|
||||
# File "<stdin>", line 1, in <module>
|
||||
# File "<stdin>", line 12, in taille
|
||||
# ValueError: math domain error
|
||||
|
||||
# Lors de l'éxecution de ce script, Python détecte une erreur. Il affiche donc
|
||||
# dans la console la liste des fonctions appelées en dernier afin de nous aider
|
||||
# à voir d'où vient l'erreur. Ici, cette dernière vient de la fonction taille(),
|
||||
# plus précisément de la ligne contenant l'instruction suivante :
|
||||
# ```return floor(log10(entier)) + 1```
|
||||
# Le texte de l'erreur est le suivant : "ValueError: math domain error". Cela
|
||||
# signifie qu'une fonction a été appelée avec un argument en dehors de son
|
||||
# domaine de définition. La fonction en question est log10 (nous pouvons le
|
||||
# vérifier en tapant dans l'interpréteur ```log10(-2014)```, qui est une étape
|
||||
# de la fonction taille(), ce qui affiche la même erreur), qui est définie
|
||||
# pour tout réel strictement positif. Or, -2014 n'en est pas un, ce qui
|
||||
# déclenche l'erreur.
|
122
S1/TP 2/Votre age en secondes.py
Normal file
122
S1/TP 2/Votre age en secondes.py
Normal file
|
@ -0,0 +1,122 @@
|
|||
# PREUD'HOMME BONTOUX Geoffrey - PeiP 12 - 2014/2015
|
||||
# TP n°2 donné le 19/09/2014 - Votre âge en secondes
|
||||
# http://www.fil.univ-lille1.fr/~wegrzyno/portail/Info/Doc/HTML/tp_donnees_expressions.html
|
||||
|
||||
# Q1
|
||||
ref_an = 1900
|
||||
ref_mois = 1
|
||||
ref_jour = 1
|
||||
|
||||
# Q2
|
||||
nbre_sec_jour = 24 * 60 * 60
|
||||
|
||||
# Q3
|
||||
nbre_sec_an = 365.2425 * nbre_sec_jour
|
||||
|
||||
# Q4
|
||||
nbre_sec_mois = nbre_sec_an / 12
|
||||
|
||||
# Q5
|
||||
aujourdhui_jour = 19
|
||||
aujourdhui_mois = 9
|
||||
aujourdhui_an = 2014
|
||||
|
||||
# Q6
|
||||
nbre_an_entre_1900_et_aujourdhui = aujourdhui_an - ref_an
|
||||
nbre_mois_entre_1900_et_aujourdhui = aujourdhui_mois - ref_mois
|
||||
nbre_jour_entre_1900_et_aujourdhui = aujourdhui_jour - ref_jour
|
||||
nbre_sec_entre_1900_et_aujourdhui = \
|
||||
nbre_an_entre_1900_et_aujourdhui * nbre_sec_an \
|
||||
+ nbre_mois_entre_1900_et_aujourdhui * nbre_sec_mois \
|
||||
+ nbre_jour_entre_1900_et_aujourdhui * nbre_sec_jour
|
||||
|
||||
print("Q6", "Secondes entre la date de référence et aujourd’hui :", \
|
||||
nbre_sec_entre_1900_et_aujourdhui)
|
||||
|
||||
# Q7
|
||||
naissance_jour = 14
|
||||
naissance_mois = 2
|
||||
naissance_an = 1997
|
||||
|
||||
nbre_an_entre_1900_et_naissance = naissance_an - ref_an
|
||||
nbre_mois_entre_1900_et_naissance = naissance_mois - ref_mois
|
||||
nbre_jour_entre_1900_et_naissance = naissance_jour - ref_jour
|
||||
nbre_sec_entre_1900_et_naissance = \
|
||||
nbre_an_entre_1900_et_naissance * nbre_sec_an \
|
||||
+ nbre_mois_entre_1900_et_naissance * nbre_sec_mois \
|
||||
+ nbre_jour_entre_1900_et_naissance * nbre_sec_jour
|
||||
|
||||
|
||||
# Q8
|
||||
mon_age_en_secondes = \
|
||||
nbre_sec_entre_1900_et_aujourdhui - nbre_sec_entre_1900_et_naissance
|
||||
print("Q8", "Mon âge en secondes :", mon_age_en_secondes)
|
||||
|
||||
# Q9
|
||||
def nbre_sec_depuis_1900(jour, mois, an):
|
||||
"""
|
||||
Calcule le nombre approximatif de secondes écoulées entre la date de
|
||||
référence (le 1er janvier 1900) à 0h00 et la date passée en paramètre
|
||||
|
||||
CU : jour entier ; 1 ≤ jour ≤ 31 ; mois entier ; 1 ≤ mois ≤ 12 ;
|
||||
an entier ; an ≥ 1900 ; la date doit avant aujourd'hui
|
||||
|
||||
Exemple :
|
||||
|
||||
>>> nbre_sec_depuis_1900(14, 2, 1997)
|
||||
3064777290.0
|
||||
"""
|
||||
nbre_jour_entre_1900_et_date = jour - ref_jour
|
||||
nbre_mois_entre_1900_et_date = mois - ref_mois
|
||||
nbre_an_entre_1900_et_date = an - ref_an
|
||||
nbre_sec_entre_1900_et_date = \
|
||||
nbre_an_entre_1900_et_date * nbre_sec_an \
|
||||
+ nbre_mois_entre_1900_et_date * nbre_sec_mois \
|
||||
+ nbre_jour_entre_1900_et_date * nbre_sec_jour
|
||||
return nbre_sec_entre_1900_et_date
|
||||
|
||||
# Q10
|
||||
mon_age_en_secondes = \
|
||||
nbre_sec_depuis_1900(aujourdhui_jour, aujourdhui_mois, aujourdhui_an) \
|
||||
- nbre_sec_depuis_1900(naissance_jour, naissance_mois, naissance_an)
|
||||
print("Q10", "Mon âge en secondes (via nbre_sec_depuis_1900) :", \
|
||||
mon_age_en_secondes)
|
||||
|
||||
# Q11
|
||||
from datetime import *
|
||||
|
||||
aujourdhui = date.today()
|
||||
|
||||
aujourdhui_jour = aujourdhui.day
|
||||
aujourdhui_mois = aujourdhui.month
|
||||
aujourdhui_an = aujourdhui.year
|
||||
|
||||
mon_age_en_secondes = \
|
||||
nbre_sec_depuis_1900(aujourdhui_jour, aujourdhui_mois, aujourdhui_an) \
|
||||
- nbre_sec_depuis_1900(naissance_jour, naissance_mois, naissance_an)
|
||||
print("Q11", "Mon âge en secondes (via datetime) :", \
|
||||
mon_age_en_secondes)
|
||||
|
||||
|
||||
# Q12
|
||||
def age_en_secondes(jour, mois, an):
|
||||
"""
|
||||
Calcule le nombre approximatif de secondes écoulées depuis la date passée
|
||||
en paramètre.
|
||||
|
||||
CU : jour entier ; 1 ≤ jour ≤ 31 ; mois entier ; 1 ≤ mois ≤ 12 ;
|
||||
an entier ; an ≥ 1900 ; la date doit avant aujourd'hui
|
||||
|
||||
Exemple (si nous sommes le 19/09/2014) :
|
||||
|
||||
>>> age_en_secondes(14, 2, 1997)
|
||||
555308406.0
|
||||
"""
|
||||
ajd = date.today()
|
||||
return nbre_sec_depuis_1900(ajd.day, ajd.month, ajd.year) \
|
||||
- nbre_sec_depuis_1900(jour, mois, an)
|
||||
|
||||
mon_age_en_secondes = \
|
||||
age_en_secondes(naissance_jour, naissance_mois, naissance_an)
|
||||
print("Q12", "Mon âge en secondes (via age_en_secondes) :", \
|
||||
mon_age_en_secondes)
|
Reference in a new issue