Python : convertir Rad -> deg sec min
Résolu
Sayu
-
piotaras Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
piotaras Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Conversion radian degré minute seconde
- Citizen code python avis - Accueil - Outils
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Mot secret python pix ✓ - Forum Python
- Python par la pratique : 101 exercices corrigés pdf - Forum Python
- Exercice python - Forum Python
4 réponses
Bonjour,
Je me permet de proposer mon script:
#Exercice 5.2
#Convertir un angle donné en degrés, minutes, secondes en radian
#Sachant que degres=(180*radians)/pi
#La base
radians=0.602662190713642
pi=3.141592653589793238462643383279502884197
#Convertir radians en degres decimaux
degres=(180*radians)/pi
#Convertir degres de decimaux en degres fixe (degres, minutes, secondes)
Dfin=int(degres) #Mise de coté des degrés
restant=degres-int(degres) #Mise de coté des restant aprés la virgule
Mfin=int(restant*60) #Calcul des minutes
restant=(restant*60)-Mfin #Calcul des restant aprés la virgule
Sfin=int(restant*60) # Calcul des secondes
#Affichage du résultat
print("Exercice 5.2")
print("Si l'angle est égal à : ",radians,"radians")
print("Il fait donc : ",Dfin,"degrés",Mfin,"minutes",Sfin,"secondes")
et pour le contraire:
#Exercice 5.1
#Convertir un angle donné en degrés, minutes, secondes en radian
#Sachant que radian=pi*(degres(decimaux))/180
#Donner la base
Dbase=34
Mbase=31
Sbase=48
#Convertir la base en degrés décimaux
degres=Dbase+(Mbase/60)+(Sbase/3600)
#Definition de pi (3,141592653589793238462643383279502884197)
pi=3.141592653589793238462643383279502884197
#Effectuer la convertion des degres en radians
radians=(pi*degres)/180
print("Exercice 5.1")
print("Si l'angle est égal à : ",Dbase,"degrés",Mbase,"minutes",Sbase,"secondes")
print("Il fait donc : ",radians,"radians")
Je me permet de proposer mon script:
#Exercice 5.2
#Convertir un angle donné en degrés, minutes, secondes en radian
#Sachant que degres=(180*radians)/pi
#La base
radians=0.602662190713642
pi=3.141592653589793238462643383279502884197
#Convertir radians en degres decimaux
degres=(180*radians)/pi
#Convertir degres de decimaux en degres fixe (degres, minutes, secondes)
Dfin=int(degres) #Mise de coté des degrés
restant=degres-int(degres) #Mise de coté des restant aprés la virgule
Mfin=int(restant*60) #Calcul des minutes
restant=(restant*60)-Mfin #Calcul des restant aprés la virgule
Sfin=int(restant*60) # Calcul des secondes
#Affichage du résultat
print("Exercice 5.2")
print("Si l'angle est égal à : ",radians,"radians")
print("Il fait donc : ",Dfin,"degrés",Mfin,"minutes",Sfin,"secondes")
et pour le contraire:
#Exercice 5.1
#Convertir un angle donné en degrés, minutes, secondes en radian
#Sachant que radian=pi*(degres(decimaux))/180
#Donner la base
Dbase=34
Mbase=31
Sbase=48
#Convertir la base en degrés décimaux
degres=Dbase+(Mbase/60)+(Sbase/3600)
#Definition de pi (3,141592653589793238462643383279502884197)
pi=3.141592653589793238462643383279502884197
#Effectuer la convertion des degres en radians
radians=(pi*degres)/180
print("Exercice 5.1")
print("Si l'angle est égal à : ",Dbase,"degrés",Mbase,"minutes",Sbase,"secondes")
print("Il fait donc : ",radians,"radians")
# Exercice 5.2:
# Convertit en degrés, minutes et secondes un angle exprimé en radians
# Cet exercice n'a pas pu être résolu autrement qu'en utilisant la
# fonction int() qui à ce stade du livre n'a pas encore été dévoilée.
PI = 3.141592653589793
rad = 3.1416
# On commence par exprimer en secondes entières l'angle <rad>, afin
# de conserver la plus grande précision possible.
secondes = int(180*rad/PI*60*60)
s = secondes%60
m = secondes//60
d = m//60
m = m%60
print(rad,"rad = ",d,"°",m,"'",s,'"')
# Convertit en degrés, minutes et secondes un angle exprimé en radians
# Cet exercice n'a pas pu être résolu autrement qu'en utilisant la
# fonction int() qui à ce stade du livre n'a pas encore été dévoilée.
PI = 3.141592653589793
rad = 3.1416
# On commence par exprimer en secondes entières l'angle <rad>, afin
# de conserver la plus grande précision possible.
secondes = int(180*rad/PI*60*60)
s = secondes%60
m = secondes//60
d = m//60
m = m%60
print(rad,"rad = ",d,"°",m,"'",s,'"')
Cela me semble ... hum ... pas clair !
ceci le serait-il plus ?
# exo 5.1
print ("exo 5.1")
pi=3.141592653589793238462643383279502884197
degre = 34
minutes = 31
secondes = 48
myFloat = degre + minutes/60 + secondes/3600
print (degre,"°", minutes,"'",secondes, "'' == " ,myFloat)
radian = myFloat * pi / 180
print (" == ", radian , "radians")
# exo 5.2
print (" ")
print ("exo 5.2")
pi=3.141592653589793238462643383279502884197
myFloat = 0.602662190714
Fdegre = myFloat * 180 / pi
degre = int(Fdegre)
Fminutes=(Fdegre - degre)*60
minutes=int(Fminutes)
Fsecondes = (Fminutes - minutes)*60
secondes = int(Fsecondes)
print (myFloat, " radians = ",degre,"°", minutes,"'",secondes, "''")
# resultats :
exo 5.1
34 ° 31 ' 48 '' == 34.53
== 0.602662190714 radians
exo 5.2
0.602662190714 radians = 34 ° 31 ' 48 ''
ceci le serait-il plus ?
# exo 5.1
print ("exo 5.1")
pi=3.141592653589793238462643383279502884197
degre = 34
minutes = 31
secondes = 48
myFloat = degre + minutes/60 + secondes/3600
print (degre,"°", minutes,"'",secondes, "'' == " ,myFloat)
radian = myFloat * pi / 180
print (" == ", radian , "radians")
# exo 5.2
print (" ")
print ("exo 5.2")
pi=3.141592653589793238462643383279502884197
myFloat = 0.602662190714
Fdegre = myFloat * 180 / pi
degre = int(Fdegre)
Fminutes=(Fdegre - degre)*60
minutes=int(Fminutes)
Fsecondes = (Fminutes - minutes)*60
secondes = int(Fsecondes)
print (myFloat, " radians = ",degre,"°", minutes,"'",secondes, "''")
# resultats :
exo 5.1
34 ° 31 ' 48 '' == 34.53
== 0.602662190714 radians
exo 5.2
0.602662190714 radians = 34 ° 31 ' 48 ''
Le problème c'est que à ce stade du livre ("Apprendre à programmer avec Python 3", 3e édition, de Gérard Swinnen), on n'est pas censé connaître la fonction int().
Donc la question est de savoir si c'est possible de résoudre cet exercice sans y recourir, en utilisant par exemple la division entière et le modulo (%).
Ca fait une heure que je me casse la tête dessus !
Donc la question est de savoir si c'est possible de résoudre cet exercice sans y recourir, en utilisant par exemple la division entière et le modulo (%).
Ca fait une heure que je me casse la tête dessus !
J'ai retourné le probléme a l'envers, et j'ai effectué un nouveau script :
# Variables
min, sec, deg = 2, 51, 58.4713375796
pi = 3.14
# Script
a = min*3600 + sec*60 + deg
print "Un angle de", min, "minutes,", sec,"secondes et de", deg, "équivaut à", a, "degrés."
rad = pi * a / 180
print "Donc il correspond à", rad, "radian."
Resultat :
Un angle de 180 radian est égal à :
2.0 minutes, 51.0 secondes et 58.4713375796 degrés, soit un total de 10318.4713376 degrés.
Une petite recorrection du script précédemment effectué :
# Script
print "Un angle de", a, "radian est égal à :"
# Variables
min, sec, deg = 2, 51, 58.4713375796
pi = 3.14
# Script
a = min*3600 + sec*60 + deg
print "Un angle de", min, "minutes,", sec,"secondes et de", deg, "équivaut à", a, "degrés."
rad = pi * a / 180
print "Donc il correspond à", rad, "radian."
Resultat :
Un angle de 180 radian est égal à :
2.0 minutes, 51.0 secondes et 58.4713375796 degrés, soit un total de 10318.4713376 degrés.
Une petite recorrection du script précédemment effectué :
# Script
print "Un angle de", a, "radian est égal à :"