prueba1
DownloadTélécharger
Actions
Vote :
ScreenshotAperçu

Informations
Catégorie :Category: nCreator TI-Nspire
Auteur Author: nicorcastro
Type : Classeur 3.0.1
Page(s) : 1
Taille Size: 4.48 Ko KB
Mis en ligne Uploaded: 12/09/2025 - 16:02:38
Mis à jour Updated: 12/09/2025 - 16:16:35
Uploadeur Uploader: nicorcastro (Profil)
Téléchargements Downloads: 1
Visibilité Visibility: Archive publique
Shortlink : https://tipla.net/a4839982
Type : Classeur 3.0.1
Page(s) : 1
Taille Size: 4.48 Ko KB
Mis en ligne Uploaded: 12/09/2025 - 16:02:38
Mis à jour Updated: 12/09/2025 - 16:16:35
Uploadeur Uploader: nicorcastro (Profil)
Téléchargements Downloads: 1
Visibilité Visibility: Archive publique
Shortlink : https://tipla.net/a4839982
Description
Fichier Nspire généré sur TI-Planet.org.
Compatible OS 3.0 et ultérieurs.
<<
import math #Importamos la librería math para poder usar las funciones matemáticas #RECOLECCION DE DATOS def decimalASexagesimal(angulo): #Creamos la función para mostrar en grados sexagesimales de grados decimales grados = int(angulo) minutosDecimales = abs(angulo - grados) * 60 minutos = int(minutosDecimales) segundos = (minutosDecimales - minutos) * 60 return grados, minutos, segundos print("=== LATITUD ===") # RECOLECCIÓN Y VALIDACIÓN DE DATOS DE LATITUD while True: grados = float(input("Introduce los grados de la latitud (-90 a 90): ")) #Pedimos al usuario los grados de la latitud minutos = float(input("Introduce los minutos de la latitud (0 a 59): ")) #Pedimos los minutos de la latitud segundos = float(input("Introduce los segundos de la latitud (0 a 59): ")) #Pedimos los segundos de la latitud if grados < -90 or grados > 90: print("Error: los grados de latitud deben estar entre -90 y 90.") #Validamos rango de grados continue if abs(minutos) >= 60 or abs(segundos) >= 60: print("Error: minutos y segundos deben estar entre 0 y 59.") #Validamos rango de minutos y segundos continue if grados < 0: minutos *= -1 segundos *= -1 #Ajustamos el signo en minutos y segundos si los grados son negativos latitud_decimal = grados + minutos/60 + segundos/3600 #Calculamos la latitud en grados decimales if abs(latitud_decimal) > 90: print("Error: la latitud total supera el rango permitido (-90 a 90).") #Validamos que el valor decimal esté en el rango real continue break #Si todo es correcto, salimos del ciclo latitud = math.radians(latitud_decimal) #Convertimos la latitud de grados a radianes print() #Salto de línea print("=== LONGITUD ===") # RECOLECCIÓN Y VALIDACIÓN DE DATOS DE LONGITUD while True: grados = float(input("Introduce los grados de la longitud (-180 a 180): ")) #Pedimos al usuario los grados de la longitud minutos = float(input("Introduce los minutos de la longitud (0 a 59): ")) #Pedimos los minutos de la longitud segundos = float(input("Introduce los segundos de la longitud (0 a 59): ")) #Pedimos los segundos de la longitud if grados < -180 or grados > 180: print("Error: los grados de longitud deben estar entre -180 y 180.") #Validamos rango de grados continue if abs(minutos) >= 60 or abs(segundos) >= 60: print("Error: minutos y segundos deben estar entre 0 y 59.") #Validamos rango de minutos y segundos continue if grados < 0: minutos *= -1 segundos *= -1 #Ajustamos el signo en minutos y segundos si los grados son negativos longitud_decimal = grados + minutos/60 + segundos/3600 #Calculamos la longitud en grados decimales if abs(longitud_decimal) > 180: print("Error: la longitud total supera el rango permitido (-180 a 180).") #Validamos que el valor decimal esté en el rango real continue break #Si todo es correcto, salimos del ciclo longitud = math.radians(longitud_decimal) #Convertimos la longitud de grados a radianes print() #Salto de línea print("=== ALTURA (h) ===") h = float(input("Ingrese la altura h: ")) #Pedimos al usuario que introduzca la altura print() #Salto de línea #Seleccionamos el elipsoide a usar WGS84, Internacional, GRS80 print("=== SELECCIÓN DE DATUM GEODÉSICO ===") print("1. Internacional") print("2. GRS80") print("3. WGS84") print() #Salto de línea # Diccionario con semieje mayor (a) y achatamiento (f) opciones = { 1: {"a": 6378388.0, "f": 1/297.0}, 2: {"a": 6378137.0, "f": 1/298.257222101}, 3: {"a": 6378137.0, "f": 1/298.257223563} } # Variables para almacenar a y f-1 a = float(0) #Semieje mayor inv_f = float(0) # 1/f # Bucle de selección while True: try: eleccion = int(input("Seleccione el datum a usar (1-3): ")) if eleccion in opciones: a = opciones[eleccion]["a"] inv_f = 1 / opciones[eleccion]["f"] print() #Salto de línea print(f"=ú Parámetros del datum elegido:") print(f"Semieje mayor (a): {a} m") print(f"f1 {inv_f}") break else: print("Opción no válida. Ingrese 1, 2 o 3.") except ValueError: print("Error: ingrese un número.") b = ((1-(1/inv_f))*a) #Semieje menor del elipsoide WGS84 print() print(f"b = {b} m") # CÁLCULOS DIRECTOS primeraE = (2 / inv_f) - ((1 / inv_f)**2) #Calculamos el valor de la primera excentricidad segundaE = (a**2 - b**2) / (b**2) #Calculamos el valor de la segunda excentricidad w = (math.sqrt(1 - (primeraE * (math.sin(latitud)**2)))) #Calculamos w N = a / w #Calculamos la gran normal (N) x = (N+h) * math.cos(latitud) * math.cos(longitud) #Calculamos x y = (N+h) * math.cos(latitud) * math.sin(longitud) #Calculamos y z = ((N * ( 1 - primeraE )) + h) * math.sin(latitud) # CÁLCULOS MÉTODO INVERSO (SOLUCIÓN EXACTA) omega = math.atan((z * a) / (b * (math.sqrt( (x**2)+(y**2) ))))
[...]
>>
Compatible OS 3.0 et ultérieurs.
<<
import math #Importamos la librería math para poder usar las funciones matemáticas #RECOLECCION DE DATOS def decimalASexagesimal(angulo): #Creamos la función para mostrar en grados sexagesimales de grados decimales grados = int(angulo) minutosDecimales = abs(angulo - grados) * 60 minutos = int(minutosDecimales) segundos = (minutosDecimales - minutos) * 60 return grados, minutos, segundos print("=== LATITUD ===") # RECOLECCIÓN Y VALIDACIÓN DE DATOS DE LATITUD while True: grados = float(input("Introduce los grados de la latitud (-90 a 90): ")) #Pedimos al usuario los grados de la latitud minutos = float(input("Introduce los minutos de la latitud (0 a 59): ")) #Pedimos los minutos de la latitud segundos = float(input("Introduce los segundos de la latitud (0 a 59): ")) #Pedimos los segundos de la latitud if grados < -90 or grados > 90: print("Error: los grados de latitud deben estar entre -90 y 90.") #Validamos rango de grados continue if abs(minutos) >= 60 or abs(segundos) >= 60: print("Error: minutos y segundos deben estar entre 0 y 59.") #Validamos rango de minutos y segundos continue if grados < 0: minutos *= -1 segundos *= -1 #Ajustamos el signo en minutos y segundos si los grados son negativos latitud_decimal = grados + minutos/60 + segundos/3600 #Calculamos la latitud en grados decimales if abs(latitud_decimal) > 90: print("Error: la latitud total supera el rango permitido (-90 a 90).") #Validamos que el valor decimal esté en el rango real continue break #Si todo es correcto, salimos del ciclo latitud = math.radians(latitud_decimal) #Convertimos la latitud de grados a radianes print() #Salto de línea print("=== LONGITUD ===") # RECOLECCIÓN Y VALIDACIÓN DE DATOS DE LONGITUD while True: grados = float(input("Introduce los grados de la longitud (-180 a 180): ")) #Pedimos al usuario los grados de la longitud minutos = float(input("Introduce los minutos de la longitud (0 a 59): ")) #Pedimos los minutos de la longitud segundos = float(input("Introduce los segundos de la longitud (0 a 59): ")) #Pedimos los segundos de la longitud if grados < -180 or grados > 180: print("Error: los grados de longitud deben estar entre -180 y 180.") #Validamos rango de grados continue if abs(minutos) >= 60 or abs(segundos) >= 60: print("Error: minutos y segundos deben estar entre 0 y 59.") #Validamos rango de minutos y segundos continue if grados < 0: minutos *= -1 segundos *= -1 #Ajustamos el signo en minutos y segundos si los grados son negativos longitud_decimal = grados + minutos/60 + segundos/3600 #Calculamos la longitud en grados decimales if abs(longitud_decimal) > 180: print("Error: la longitud total supera el rango permitido (-180 a 180).") #Validamos que el valor decimal esté en el rango real continue break #Si todo es correcto, salimos del ciclo longitud = math.radians(longitud_decimal) #Convertimos la longitud de grados a radianes print() #Salto de línea print("=== ALTURA (h) ===") h = float(input("Ingrese la altura h: ")) #Pedimos al usuario que introduzca la altura print() #Salto de línea #Seleccionamos el elipsoide a usar WGS84, Internacional, GRS80 print("=== SELECCIÓN DE DATUM GEODÉSICO ===") print("1. Internacional") print("2. GRS80") print("3. WGS84") print() #Salto de línea # Diccionario con semieje mayor (a) y achatamiento (f) opciones = { 1: {"a": 6378388.0, "f": 1/297.0}, 2: {"a": 6378137.0, "f": 1/298.257222101}, 3: {"a": 6378137.0, "f": 1/298.257223563} } # Variables para almacenar a y f-1 a = float(0) #Semieje mayor inv_f = float(0) # 1/f # Bucle de selección while True: try: eleccion = int(input("Seleccione el datum a usar (1-3): ")) if eleccion in opciones: a = opciones[eleccion]["a"] inv_f = 1 / opciones[eleccion]["f"] print() #Salto de línea print(f"=ú Parámetros del datum elegido:") print(f"Semieje mayor (a): {a} m") print(f"f1 {inv_f}") break else: print("Opción no válida. Ingrese 1, 2 o 3.") except ValueError: print("Error: ingrese un número.") b = ((1-(1/inv_f))*a) #Semieje menor del elipsoide WGS84 print() print(f"b = {b} m") # CÁLCULOS DIRECTOS primeraE = (2 / inv_f) - ((1 / inv_f)**2) #Calculamos el valor de la primera excentricidad segundaE = (a**2 - b**2) / (b**2) #Calculamos el valor de la segunda excentricidad w = (math.sqrt(1 - (primeraE * (math.sin(latitud)**2)))) #Calculamos w N = a / w #Calculamos la gran normal (N) x = (N+h) * math.cos(latitud) * math.cos(longitud) #Calculamos x y = (N+h) * math.cos(latitud) * math.sin(longitud) #Calculamos y z = ((N * ( 1 - primeraE )) + h) * math.sin(latitud) # CÁLCULOS MÉTODO INVERSO (SOLUCIÓN EXACTA) omega = math.atan((z * a) / (b * (math.sqrt( (x**2)+(y**2) ))))
[...]
>>