Implementación de Algoritmos en Python: Conversión de Tiempo, Arrays y Números Perfectos
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 4,33 KB
Ejercicios de Programación en Python para Informática y Telecomunicaciones
A continuación, se presentan varios ejercicios de programación implementados en Python, cubriendo temas fundamentales como la manipulación de tiempo, la gestión de arrays (vectores) y la identificación de propiedades numéricas especiales.
1. Comparación de Tiempos de Atletas
Este segmento de código define una función para convertir una cantidad de segundos en horas, minutos y segundos, y luego compara los tiempos de dos atletas para determinar el ganador.
Código Python: Conversión y Comparación de Tiempo
def tiempo(segundos):
horas = segundos // 3600
segrestantes = segundos % 3600
minutos = segrestantes // 60
segundosfinales = segrestantes % 60
return horas, minutos, segundosfinales
a = int(input("Introduce el tiempo en segundos del atleta A: "))
b = int(input("Introduce el tiempo en segundos del atleta B: "))
horasA, minutosA, segundosfinalesA = tiempo(a)
horasB, minutosB, segundosfinalesB = tiempo(b)
print("Atleta A: ", horasA, "horas,", minutosA, "minutos y", segundosfinalesA, "segundos")
print("Atleta B: ", horasB, "horas,", minutosB, "minutos y", segundosfinalesB, "segundos")
if a > b:
print("El atleta B ha ganado")
elif a == b:
print("Los atletas han quedado empate")
else:
print("El atleta A ha ganado")
2. Operaciones con Arrays: Máximo, Mínimo y Búsqueda de Número Perfecto
Este ejercicio requiere la carga de datos desde un archivo (utilizando la librería NumPy), la búsqueda del primer número perfecto dentro del array y la determinación de los valores máximo y mínimo.
Descripción del Requisito
Construye una función que recibe un array y su tamaño, y devuelve su máximo y mínimo. Luego busca el primer número perfecto que contenga.
Código Python: Array Processing y Números Perfectos
import numpy as np
v = np.loadtxt("datos.txt/csv", dtype=int)
v = v.tolist()
lon = len(v)
numdatos = lon - 1
def esPerfecto(n):
divisor = 1
suma = 0
perfecto = False
while divisor < n:
if n % divisor == 0:
suma += divisor
divisor += 1
if suma == n:
perfecto = True
return perfecto
i = 0
es_perfecto = False
while i < numdatos and es_perfecto == False:
if esPerfecto(v[i]) == True:
es_perfecto = True
else:
i += 1
print ("El primer número perfecto es el dato número ", i)
print ("El primer número perfecto es: ", v[i])
def max_min(v):
j = 0
maximo = v[j]
minimo = v[j]
while j <= numdatos:
if v[j] > maximo:
maximo = v[j]
if v[j] < minimo:
minimo = v[j]
j += 1
return maximo, minimo
maximo, minimo = max_min(v)
print ("El máximo es: ", maximo)
print ("El mínimo es: ", minimo)
4. Búsqueda de Números Perfectos en un Rango
Este fragmento de código, posiblemente parte de un Examen 2023, implementa una función para verificar si un número es perfecto y la aplica para encontrar todos los números perfectos dentro de un rango definido por el usuario.
Código Python: Rango de Números Perfectos
n1 = int(input("Introduce el número menor: "))
n2 = int(input("Introduce el número mayor: "))
def es_perfecto(n):
suma = 0
for j in range(1, n):
if n % j == 0:
suma += j
if suma == n:
return True
else:
return False
for i in range(n1, n2 + 1):
if es_perfecto(i):
print(i)
5. Verificación de Frecuencia en un Vector
Este último ejercicio determina si un número específico (N) aparece al menos una cantidad de veces (X) dentro de un vector cargado desde un archivo.
Código Python: Contar Ocurrencias en un Array
import numpy as np
v = np.loadtxt("datos1.txt", dtype=int)
v = v.tolist()
lon = len(v)
def numeros_veces (N, X):
cont = 0
for i in range (lon):
if v[i] == N:
cont += 1
if cont >= X:
return True
else:
return False
N = int(input("Número que quieres saber si está: "))
X = int(input("Veces que quieres saber que está el número N en el vector: "))
res = numeros_veces (N, X)
if res:
print("Sí")
else:
print("No")