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 -
Bonjour,
Je suis en train de programmer en Python pour le plaisir, et dans mon tuto on me donne des exercices.
Je cite :
5.2. Écrivez un programme qui convertisse en degrés, minutes, secondes un angle fourni au départ en radians.
Voilà mon algorithme :
# Variables
a = 180 #angle en radian
pi = 3.14
# Script
print "Un angle de", a, "degrés est égal à :"
a = 180 * a / pi
print a
deg = a % 60
sec = ((a-deg)/60)%60
min = (a-deg-sec*60)/60/60
print min, "minutes,", sec, "secondes et", deg, "degrés."
Mon angle en radian est de 180 rad.
Voilà le resultat :
Un angle de 180 degrés est égal à :
10318.4713376
2.0 minutes, 51.0 secondes et 58.4713375796 degrés.
Je précise que je passe en seconde... Donc je n'ai jamais vu tout cela. Je voudrai juste savoir si mon résultat est juste...
Merci d'avance :D
Je suis en train de programmer en Python pour le plaisir, et dans mon tuto on me donne des exercices.
Je cite :
5.2. Écrivez un programme qui convertisse en degrés, minutes, secondes un angle fourni au départ en radians.
Voilà mon algorithme :
# Variables
a = 180 #angle en radian
pi = 3.14
# Script
print "Un angle de", a, "degrés est égal à :"
a = 180 * a / pi
print a
deg = a % 60
sec = ((a-deg)/60)%60
min = (a-deg-sec*60)/60/60
print min, "minutes,", sec, "secondes et", deg, "degrés."
Mon angle en radian est de 180 rad.
Voilà le resultat :
Un angle de 180 degrés est égal à :
10318.4713376
2.0 minutes, 51.0 secondes et 58.4713375796 degrés.
Je précise que je passe en seconde... Donc je n'ai jamais vu tout cela. Je voudrai juste savoir si mon résultat est juste...
Merci d'avance :D
A voir également:
- Conversion radian degré minute seconde
- Citizen code python avis - Accueil - Outils
- Mot secret python pix ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Python par la pratique : 101 exercices corrigés pdf - Forum Python
- Citizen code python solution - 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 à :"